DPI เด‡เดจเตเดฑเตผเดซเต‡เดธเตเด‚ FPGA เดฌเต‹เตผเดกเตเด‚ เดตเดดเดฟ Raspberry Pi3-เดฒเต‡เด•เตเด•เตเดณเตเดณ เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† HDMI เดฎเต‹เดฃเดฟเดฑเตเดฑเตผ


เดˆ เดตเต€เดกเดฟเดฏเต‹ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเดคเต: เด’เดฐเต เดฑเดพเดธเตโ€Œเดฌเต†เดฑเดฟ เดชเตˆ3 เดฌเต‹เตผเดกเต, GPIO เด•เดฃเด•เตเดฑเตเดฑเตผ เดตเดดเดฟ เด…เดคเดฟเดฒเต‡เด•เตเด•เต เด•เดฃเด•เตโ€Œเดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เด’เดฐเต FPGA เดฌเต‹เตผเดกเต Mars Rover2rpi (เดธเตˆเด•เตเดฒเต‹เตบ IV) เด†เดฃเต, เด…เดคเดฟเดฒเต‡เด•เตเด•เต HDMI เดฎเต‹เดฃเดฟเดฑเตเดฑเตผ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดฎเต‹เดฃเดฟเดฑเตเดฑเตผ เดฑเดพเดธเตโ€Œเดฌเต†เดฑเดฟ เดชเตˆ3 เดฏเตเดŸเต† เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดŽเดšเตเดšเตโ€ŒเดกเดฟเดŽเด‚เด เด•เดฃเด•เตเดฑเตเดฑเตผ เดตเดดเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด’เดฐเต เดกเตเดฏเตเดตเตฝ เดฎเต‹เดฃเดฟเดฑเตเดฑเตผ เดธเดฟเดธเตเดฑเตเดฑเด‚ เดชเต‹เดฒเต† เดŽเดฒเตเดฒเดพเด‚ เด’เดฐเตเดฎเดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต.

เด‡เดคเต เดŽเด™เตเด™เดจเต† เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ เดžเดพเตป เดจเดฟเด™เตเด™เดณเต‹เดŸเต เดชเดฑเดฏเตเด‚.

เดœเดจเดชเตเดฐเดฟเดฏ Raspberry Pi3 เดฌเต‹เตผเดกเดฟเดจเต เด’เดฐเต GPIO เด•เดฃเด•เตเดฑเตเดฑเตผ เด‰เดฃเตเดŸเต, เด…เดคเดฟเดฒเต‚เดŸเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเดฟเดตเดฟเดง เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃ เด•เดพเตผเดกเตเด•เตพ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚: เดธเต†เตปเดธเดฑเตเด•เตพ, LED-เด•เตพ, เดธเตเดฑเตเดฑเต†เดชเตเดชเตผ เดฎเต‹เดŸเตเดŸเต‹เตผ เดกเตเดฐเตˆเดตเดฑเตเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเตเด‚ เด…เดคเดฟเดฒเต‡เดฑเต†เดฏเตเด‚. เด•เดฃเด•เตเดŸเดฑเดฟเดฒเต† เด“เดฐเต‹ เดชเดฟเดจเตเดจเดฟเดจเตเดฑเต†เดฏเตเด‚ เด•เตƒเดคเตเดฏเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดชเต‹เตผเดŸเตเดŸเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. GPIO ALT2 เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดจเดฟเด™เตเด™เดณเต† DPI เด‡เดจเตเดฑเตผเดซเต‡เดธเต เดฎเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เด•เดฃเด•เตเดŸเตผ เดฎเดพเดฑเตเดฑเดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต, เดธเดฎเดพเดจเตเดคเดฐ เด‡เดจเตเดฑเตผเดซเต‡เดธเต เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเด•. DPI เดตเดดเดฟ VGA เดฎเต‹เดฃเดฟเดฑเตเดฑเดฑเตเด•เตพ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃ เด•เดพเตผเดกเตเด•เดณเตเดฃเตเดŸเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด’เดจเตเดจเดพเดฎเดคเดพเดฏเดฟ, VGA เดฎเต‹เดฃเดฟเดฑเตเดฑเดฑเตเด•เตพ HDMI เดชเต‹เดฒเต† เดธเดพเดงเดพเดฐเดฃเดฎเดฒเตเดฒ, เดฐเดฃเตเดŸเดพเดฎเดคเดพเดฏเดฟ, เดกเดฟเดœเดฟเดฑเตเดฑเตฝ เด‡เดจเตเดฑเตผเดซเต‡เดธเต เด…เดจเดฒเต‹เด—เดฟเดจเต‡เด•เตเด•เดพเตพ เดฎเดฟเด•เดšเตเดšเดคเดพเดฃเต. เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เด…เดคเตเดคเดฐเด‚ VGA เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃ เดฌเต‹เตผเดกเตเด•เดณเดฟเดฒเต† DAC เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ R-2-R เดถเตƒเด‚เด–เดฒเด•เดณเตเดŸเต† เดฐเต‚เดชเดคเตเดคเดฟเดฒเดพเดฃเต เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต, เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เด“เดฐเต‹ เดจเดฟเดฑเดคเตเดคเดฟเดจเตเด‚ 6 เดฌเดฟเดฑเตเดฑเตเด•เดณเดฟเตฝ เด•เต‚เดŸเดฐเตเดคเต.

ALT2 เดฎเต‹เดกเดฟเตฝ, GPIO เด•เดฃเด•เตเดฑเตเดฑเตผ เดชเดฟเดจเตเดจเตเด•เตพเด•เตเด•เต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด…เตผเดคเตเดฅเดฎเตเดฃเตเดŸเต:

DPI เด‡เดจเตเดฑเตผเดซเต‡เดธเตเด‚ FPGA เดฌเต‹เตผเดกเตเด‚ เดตเดดเดฟ Raspberry Pi3-เดฒเต‡เด•เตเด•เตเดณเตเดณ เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† HDMI เดฎเต‹เดฃเดฟเดฑเตเดฑเตผ

เด‡เดตเดฟเดŸเต† เดžเดพเตป เด•เดฃเด•เตเดŸเดฑเดฟเดจเตเดฑเต† RGB เดชเดฟเดจเตเดจเตเด•เตพเด•เตเด•เต เดฏเดฅเดพเด•เตเดฐเดฎเด‚ เดšเตเดตเดชเตเดชเต, เดชเดšเตเดš, เดจเต€เดฒ เดจเดฟเดฑเด™เตเด™เตพ เดจเตฝเด•เดฟ. เดฎเดฑเตเดฑเต เดชเตเดฐเดงเดพเดจ เดธเดฟเด—เตเดจเดฒเตเด•เตพ V-SYNC, H-SYNC เดธเดฟเด—เตเดจเดฒเตเด•เตพ, เด…เดคเตเดชเต‹เดฒเต† CLK เดŽเดจเตเดจเดฟเดตเดฏเดพเดฃเต. เด•เดฃเด•เตเดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เต เดชเดฟเด•เตเดธเตฝ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เด†เดตเตƒเดคเตเดคเดฟเดฏเดพเดฃเต CLK เด•เตเดฒเต‹เด•เตเด•เต เดซเตเดฐเต€เด•เตเดตเตปเดธเดฟ; เด‡เดคเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดค เดตเต€เดกเดฟเดฏเต‹ เดฎเต‹เดกเดฟเดจเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เด’เดฐเต เดกเดฟเดœเดฟเดฑเตเดฑเตฝ HDMI เดฎเต‹เดฃเดฟเดฑเตเดฑเตผ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เด‡เดจเตเดฑเตผเดซเต‡เดธเดฟเดจเตเดฑเต† DPI เดธเดฟเด—เตเดจเดฒเตเด•เตพ เดชเดฟเดŸเดฟเดšเตเดšเต†เดŸเตเด•เตเด•เตเด•เดฏเตเด‚ เด…เดตเดฏเต† HDMI เดธเดฟเด—เตเดจเดฒเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดตเต‡เดฃเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ FPGA เดฌเต‹เตผเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚. เด‡เดคเต เดฎเดพเดฑเตเดจเตเดจเดคเตเดชเต‹เดฒเต†, Mars Rover2rpi เดฌเต‹เตผเดกเต เดˆ เด†เดตเดถเตเดฏเด™เตเด™เตพเด•เตเด•เต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฃเต. เดธเดคเตเดฏเดคเตเดคเดฟเตฝ, เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เด…เดกเดพเดชเตเดฑเตเดฑเดฑเดฟเดฒเต‚เดŸเต† เดˆ เดฌเต‹เตผเดกเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดงเดพเดจ เด“เดชเตเดทเตป เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต:

DPI เด‡เดจเตเดฑเตผเดซเต‡เดธเตเด‚ FPGA เดฌเต‹เตผเดกเตเด‚ เดตเดดเดฟ Raspberry Pi3-เดฒเต‡เด•เตเด•เตเดณเตเดณ เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† HDMI เดฎเต‹เดฃเดฟเดฑเตเดฑเตผ

เดˆ เดฌเต‹เตผเดกเต GPIO เดชเต‹เตผเดŸเตเดŸเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด•เต‚เดŸเตเดคเตฝ เดชเต†เดฐเดฟเดซเดฑเตฝ เด‰เดชเด•เดฐเดฃเด™เตเด™เดณเต† เดฑเดพเดธเตเดฌเต†เดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด…เดคเต‡ เดธเดฎเดฏเด‚, เดˆ เด•เดฃเด•เตเดทเดจเตเดณเตเดณ 4 GPIO เดธเดฟเด—เตเดจเดฒเตเด•เตพ JTAG เดธเดฟเด—เตเดจเดฒเตเด•เตพเด•เตเด•เดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เด…เด™เตเด™เดจเต† เดฑเดพเดธเตเดฌเต†เดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเดจเต FPGA เดซเต‡เด‚เดตเต†เดฏเตผ FPGA-เดฏเดฟเดฒเต‡เด•เตเด•เต เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚. เด‡เด•เตเด•เดพเดฐเดฃเดคเตเดคเดพเตฝ, เดˆ เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เด•เดฃเด•เตเดทเตป เดŽเดจเดฟเด•เตเด•เต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดฒเตเดฒ; 4 เดกเดฟเดชเดฟเด เดธเดฟเด—เตเดจเดฒเตเด•เตพ เดกเตเดฐเต‹เดชเตเดชเต เด”เดŸเตเดŸเต. เดญเดพเด—เตเดฏเดตเดถเดพเตฝ, เดฌเต‹เตผเดกเดฟเดฒเต† เด…เดงเดฟเด• เดšเต€เดชเตเดชเตเด•เตพเด•เตเด•เต เดฑเดพเดธเตโ€Œเดฌเต†เดฑเดฟ-เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เดชเดฟเตปเด”เดŸเตเดŸเต เด‰เดฃเตเดŸเต. เด…เดคเดฟเดจเดพเตฝ เดŽเดจเดฟเด•เตเด•เต เดฌเต‹เตผเดกเต 90 เดกเดฟเด—เตเดฐเดฟ เดคเดฟเดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด‡เดชเตเดชเต‹เดดเตเด‚ เด…เดคเต เดŽเดจเตเดฑเต† เดฑเดพเดธเตเดฌเต†เดฑเดฟเดฏเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเดพเด‚:

DPI เด‡เดจเตเดฑเตผเดซเต‡เดธเตเด‚ FPGA เดฌเต‹เตผเดกเตเด‚ เดตเดดเดฟ Raspberry Pi3-เดฒเต‡เด•เตเด•เตเดณเตเดณ เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† HDMI เดฎเต‹เดฃเดฟเดฑเตเดฑเตผ

เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดฌเดพเดนเตเดฏ JTAG เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดฟเดตเดฐเตเด‚, เดชเด•เตเดทเต‡ เด‡เดคเต เด’เดฐเต เดชเตเดฐเดถเตเดจเดฎเดฒเตเดฒ.

เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดชเตเดฐเดถเตเดจเด‚ เด‡เดชเตเดชเต‹เดดเตเด‚ เด‰เดฃเตเดŸเต. เดŽเดฒเตเดฒเดพ FPGA เดชเดฟเดจเตเดจเตเด‚ เด’เดฐเต เด•เตเดฒเต‹เด•เตเด•เต เด‡เตปเดชเตเดŸเตเดŸเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ. เดˆ เด†เดตเดถเตเดฏเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เด•เตเดฑเดšเตเดšเต เดธเดฎเตผเดชเตเดชเดฟเดค เดชเดฟเดจเตเดจเตเด•เตพ เดฎเดพเดคเตเดฐเดฎเต‡เดฏเตเดณเตเดณเต‚. เด…เดคเดฟเดจเดพเตฝ GPIO_0 CLK เดธเดฟเด—เตเดจเตฝ FPGA เด‡เตปเดชเตเดŸเตเดŸเดฟเตฝ เดŽเดคเตเดคเตเดจเตเดจเดฟเดฒเตเดฒ, เด…เดคเต FPGA เด•เตเดฒเต‹เด•เตเด•เต เด‡เตปเดชเตเดŸเตเดŸเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เด…เดคเดฟเดจเดพเตฝ เดŽเดจเดฟเด•เตเด•เต เด‡เดชเตเดชเต‹เดดเตเด‚ เดธเตเด•เดพเตผเดซเดฟเตฝ เด’เดฐเต เดตเดฏเตผ เด‡เดŸเต‡เดฃเตเดŸเดฟเดตเดจเตเดจเต. เดžเดพเตป GPIO_0 เด‰เด‚ เดฌเต‹เตผเดกเดฟเดจเตเดฑเต† KEY[1] เดธเดฟเด—เตเดจเดฒเตเด‚ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต:

DPI เด‡เดจเตเดฑเตผเดซเต‡เดธเตเด‚ FPGA เดฌเต‹เตผเดกเตเด‚ เดตเดดเดฟ Raspberry Pi3-เดฒเต‡เด•เตเด•เตเดณเตเดณ เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† HDMI เดฎเต‹เดฃเดฟเดฑเตเดฑเตผ

FPGA เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด‡เดชเตเดชเต‹เตพ เดžเดพเตป เดจเดฟเด™เตเด™เดณเต‹เดŸเต เด•เตเดฑเดšเตเดšเต เดชเดฑเดฏเตเด‚. HDMI เดธเดฟเด—เตเดจเดฒเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดงเดพเดจ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเต เดตเดณเดฐเต† เด‰เดฏเตผเดจเตเดจ เด†เดตเตƒเดคเตเดคเดฟเดฏเดพเดฃเต. เดจเดฟเด™เตเด™เตพ HDMI เด•เดฃเด•เตเดฑเตเดฑเตผ เดชเดฟเตปเด”เดŸเตเดŸเต เดจเต‹เด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, RGB เดธเดฟเด—เตเดจเดฒเตเด•เตพ เด‡เดชเตเดชเต‹เตพ เดธเต€เดฐเดฟเดฏเตฝ เดกเดฟเดซเดฑเตปเดทเตเดฏเตฝ เดธเดฟเด—เตเดจเดฒเตเด•เดณเดพเดฃเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚:

DPI เด‡เดจเตเดฑเตผเดซเต‡เดธเตเด‚ FPGA เดฌเต‹เตผเดกเตเด‚ เดตเดดเดฟ Raspberry Pi3-เดฒเต‡เด•เตเด•เตเดณเตเดณ เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† HDMI เดฎเต‹เดฃเดฟเดฑเตเดฑเตผ

เด’เดฐเต เดกเดฟเดซเดฑเตปเดทเตเดฏเตฝ เดธเดฟเด—เตเดจเดฒเดฟเดจเตเดฑเต† เด‰เดชเดฏเต‹เด—เด‚ เดŸเตเดฐเดพเตปเดธเตเดฎเดฟเดทเตป เดฒเตˆเดจเดฟเดฒเต† เดชเตŠเดคเตเดตเดพเดฏ เดฎเต‹เดกเต เด‡เดŸเดชเต†เดŸเดฒเดฟเดจเต† เดšเต†เดฑเตเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด“เดฐเต‹ เด•เดณเตผ เดธเดฟเด—เตเดจเดฒเดฟเดจเตเดฑเต†เดฏเตเด‚ เดฏเดฅเดพเตผเดคเตเดฅ เดŽเดŸเตเดŸเต-เดฌเดฟเดฑเตเดฑเต เด•เต‹เดกเต 10-เดฌเดฟเดฑเตเดฑเต เดŸเดฟเดŽเด‚เดกเดฟเดŽเดธเต (เดŸเตเดฐเดพเตปเดธเดฟเดทเตป-เดฎเดฟเดจเดฟเดฎเตˆเดธเตเดกเต เดกเดฟเดซเดฑเตปเดทเตเดฏเตฝ เดธเดฟเด—เตเดจเดฒเดฟเด‚เด—เต) เด†เดฏเดฟ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต. เดธเดฟเด—เตเดจเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเดฟเดธเดฟ เด˜เดŸเด•เด‚ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เดกเดฟเดซเดฑเตปเดทเตเดฏเตฝ เดฒเตˆเดจเดฟเตฝ เดธเดฟเด—เตเดจเตฝ เดธเตเดตเดฟเดšเตเดšเดฟเด‚เด—เต เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เด•เต‹เดกเดฟเด‚เด—เต เดฐเต€เดคเดฟเดฏเดพเดฃเดฟเดคเต. เด’เดฐเต เดฌเตˆเดฑเตเดฑเต เดตเตผเดฃเตเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ 10 เดฌเดฟเดฑเตเดฑเตเด•เตพ เด‡เดชเตเดชเต‹เตพ เดธเต€เดฐเดฟเดฏเตฝ เดฒเตˆเดจเดฟเดฒเต‚เดŸเต† เด•เตˆเดฎเดพเดฑเต‡เดฃเตเดŸเดคเดฟเดจเดพเตฝ, เดธเต€เดฐเดฟเดฏเดฒเตˆเดธเตผ เด•เตเดฒเต‹เด•เตเด•เต เดตเต‡เด—เดค เดชเดฟเด•เตเดธเตฝ เด•เตเดฒเต‹เด•เตเด•เต เดตเต‡เด—เดคเดฏเต‡เด•เตเด•เดพเตพ 10 เดฎเดŸเด™เตเด™เต เด•เต‚เดŸเตเดคเดฒเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เด‰เดฆเดพเดนเดฐเดฃเดฎเดพเดฏเดฟ เดจเดฎเตเดฎเตพ เดตเต€เดกเดฟเดฏเต‹ เดฎเต‹เดกเต 1280x720 60Hz เดŽเดŸเตเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดˆ เดฎเต‹เดกเดฟเดจเตเดฑเต† เดชเดฟเด•เตเดธเตฝ เดซเตเดฐเต€เด•เตเดตเตปเดธเดฟ 74,25 MHz เด†เดฃเต. เดธเต€เดฐเดฟเดฏเดฒเตˆเดธเตผ 742,5 MHz เด†เดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚.

เดธเดพเดงเดพเดฐเดฃ FPGA-เด•เตพ, เดจเดฟเตผเดญเดพเด—เตเดฏเดตเดถเดพเตฝ, เด‡เดคเดฟเดจเต เดชเตเดฐเดพเดชเตเดคเดฎเดฒเตเดฒ. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดญเดพเด—เตเดฏเดตเดถเดพเตฝ, FPGA-เดฏเดฟเตฝ เด…เดจเตเดคเตผเดจเดฟเตผเดฎเตเดฎเดฟเดค DDIO เดชเดฟเตปเดธเต เด‰เดฃเตเดŸเต. เด‡เดต เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต†, 2-เดŸเต-1 เดธเต€เดฐเดฟเดฏเดฒเตˆเดธเดฑเตเด•เดณเดพเดฃเต. เด…เดคเดพเดฏเดคเต, เด•เตเดฒเต‹เด•เตเด•เต เดซเตเดฐเต€เด•เตเดตเตปเดธเดฟเดฏเตเดŸเต† เด‰เดฏเดฐเตเดจเตเดจเดคเตเด‚ เดตเต€เดดเตเดจเตเดจเดคเตเดฎเดพเดฏ เด…เดฐเดฟเด•เตเด•เดณเดฟเตฝ เด…เดตเดฏเตเด•เตเด•เต เดฐเดฃเตเดŸเต เดฌเดฟเดฑเตเดฑเตเด•เตพ เดคเตเดŸเตผเดšเตเดšเดฏเดพเดฏเดฟ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚. เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚ เด’เดฐเต เดŽเดซเตเดชเดฟเดœเดฟเดŽ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต 740 เดฎเต†เด—เดพเดนเต†เตผเดŸเตเดธเต เด…เดฒเตเดฒ, 370 เดฎเต†เด—เดพเดนเต†เตผเดŸเตเดธเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚, เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เตพ เดŽเดซเตเดชเดฟเดœเดฟเดŽเดฏเดฟเตฝ เดกเดฟเดกเดฟเดเด’ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เด˜เดŸเด•เด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด‡เดชเตเดชเต‹เตพ 370 เดฎเต†เด—เดพเดนเต†เตผเดŸเตเดธเต เด‡เดคเดฟเดจเด•เด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เด•เตˆเดตเดฐเดฟเด•เตเด•เดพเดตเตเดจเตเดจ เด†เดตเตƒเดคเตเดคเดฟเดฏเดพเดฃเต. เดจเดฟเตผเดญเดพเด—เตเดฏเดตเดถเดพเตฝ, 1280x720 เดฎเต‹เดกเต เด†เดฃเต เดชเดฐเดฟเดงเดฟ. Mars Rover2rpi เดฌเต‹เตผเดกเดฟเตฝ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดžเด™เตเด™เดณเตเดŸเต† Cyclone IV FPGA-เตฝ เด‰เดฏเตผเดจเตเดจ เดฑเต†เดธเดฒเตเดฏเต‚เดทเตป เดจเต‡เดŸเดพเดจเดพเด•เดฟเดฒเตเดฒ.

เด…เดคเดฟเดจเดพเตฝ, เดกเดฟเดธเตˆเดจเดฟเตฝ, เด‡เตปเดชเตเดŸเตเดŸเต เดชเดฟเด•เตเดธเตฝ เดซเตเดฐเต€เด•เตเดตเตปเดธเดฟ CLK PLL-เดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเดจเตเดจเต, เด…เดตเดฟเดŸเต† เด…เดคเต 5 เด•เตŠเดฃเตเดŸเต เด—เตเดฃเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เด†เดตเตƒเดคเตเดคเดฟเดฏเดฟเตฝ, R, G, B เดฌเตˆเดฑเตเดฑเตเด•เตพ เดฌเดฟเดฑเตเดฑเต เดœเต‹เดกเดฟเด•เดณเดพเดฏเดฟ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต. เด‡เดคเดพเดฃเต เดŸเดฟเดŽเด‚เดกเดฟเดŽเดธเต เดŽเตปเด•เต‹เดกเตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต. Verilog HDL-เดฒเต† เดธเต‹เดดเตเดธเต เด•เต‹เดกเต เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต:

module hdmi(
	input wire pixclk,		// 74MHz
	input wire clk_TMDS2,	// 370MHz
	input wire hsync,
	input wire vsync,
	input wire active,
	input wire [7:0]red,
	input wire [7:0]green,
	input wire [7:0]blue,
	output wire TMDS_bh,
	output wire TMDS_bl,
	output wire TMDS_gh,
	output wire TMDS_gl,
	output wire TMDS_rh,
	output wire TMDS_rl
);

wire [9:0] TMDS_red, TMDS_green, TMDS_blue;
TMDS_encoder encode_R(.clk(pixclk), .VD(red  ), .CD({vsync,hsync}), .VDE(active), .TMDS(TMDS_red));
TMDS_encoder encode_G(.clk(pixclk), .VD(green), .CD({vsync,hsync}), .VDE(active), .TMDS(TMDS_green));
TMDS_encoder encode_B(.clk(pixclk), .VD(blue ), .CD({vsync,hsync}), .VDE(active), .TMDS(TMDS_blue));

reg [2:0] TMDS_mod5=0;  // modulus 5 counter
reg [4:0] TMDS_shift_bh=0, TMDS_shift_bl=0;
reg [4:0] TMDS_shift_gh=0, TMDS_shift_gl=0;
reg [4:0] TMDS_shift_rh=0, TMDS_shift_rl=0;

wire [4:0] TMDS_blue_l  = {TMDS_blue[9],TMDS_blue[7],TMDS_blue[5],TMDS_blue[3],TMDS_blue[1]};
wire [4:0] TMDS_blue_h  = {TMDS_blue[8],TMDS_blue[6],TMDS_blue[4],TMDS_blue[2],TMDS_blue[0]};
wire [4:0] TMDS_green_l = {TMDS_green[9],TMDS_green[7],TMDS_green[5],TMDS_green[3],TMDS_green[1]};
wire [4:0] TMDS_green_h = {TMDS_green[8],TMDS_green[6],TMDS_green[4],TMDS_green[2],TMDS_green[0]};
wire [4:0] TMDS_red_l   = {TMDS_red[9],TMDS_red[7],TMDS_red[5],TMDS_red[3],TMDS_red[1]};
wire [4:0] TMDS_red_h   = {TMDS_red[8],TMDS_red[6],TMDS_red[4],TMDS_red[2],TMDS_red[0]};

always @(posedge clk_TMDS2)
begin
	TMDS_shift_bh <= TMDS_mod5[2] ? TMDS_blue_h  : TMDS_shift_bh  [4:1];
	TMDS_shift_bl <= TMDS_mod5[2] ? TMDS_blue_l  : TMDS_shift_bl  [4:1];
	TMDS_shift_gh <= TMDS_mod5[2] ? TMDS_green_h : TMDS_shift_gh  [4:1];
	TMDS_shift_gl <= TMDS_mod5[2] ? TMDS_green_l : TMDS_shift_gl  [4:1];
	TMDS_shift_rh <= TMDS_mod5[2] ? TMDS_red_h   : TMDS_shift_rh  [4:1];
	TMDS_shift_rl <= TMDS_mod5[2] ? TMDS_red_l   : TMDS_shift_rl  [4:1];
	TMDS_mod5 <= (TMDS_mod5[2]) ? 3'd0 : TMDS_mod5+3'd1;
end

assign TMDS_bh = TMDS_shift_bh[0];
assign TMDS_bl = TMDS_shift_bl[0];
assign TMDS_gh = TMDS_shift_gh[0];
assign TMDS_gl = TMDS_shift_gl[0];
assign TMDS_rh = TMDS_shift_rh[0];
assign TMDS_rl = TMDS_shift_rl[0];

endmodule

module TMDS_encoder(
	input clk,
	input [7:0] VD,	// video data (red, green or blue)
	input [1:0] CD,	// control data
	input VDE,  	// video data enable, to choose between CD (when VDE=0) and VD (when VDE=1)
	output reg [9:0] TMDS = 0
);

wire [3:0] Nb1s = VD[0] + VD[1] + VD[2] + VD[3] + VD[4] + VD[5] + VD[6] + VD[7];
wire XNOR = (Nb1s>4'd4) || (Nb1s==4'd4 && VD[0]==1'b0);
wire [8:0] q_m = {~XNOR, q_m[6:0] ^ VD[7:1] ^ {7{XNOR}}, VD[0]};

reg [3:0] balance_acc = 0;
wire [3:0] balance = q_m[0] + q_m[1] + q_m[2] + q_m[3] + q_m[4] + q_m[5] + q_m[6] + q_m[7] - 4'd4;
wire balance_sign_eq = (balance[3] == balance_acc[3]);
wire invert_q_m = (balance==0 || balance_acc==0) ? ~q_m[8] : balance_sign_eq;
wire [3:0] balance_acc_inc = balance - ({q_m[8] ^ ~balance_sign_eq} & ~(balance==0 || balance_acc==0));
wire [3:0] balance_acc_new = invert_q_m ? balance_acc-balance_acc_inc : balance_acc+balance_acc_inc;
wire [9:0] TMDS_data = {invert_q_m, q_m[8], q_m[7:0] ^ {8{invert_q_m}}};
wire [9:0] TMDS_code = CD[1] ? (CD[0] ? 10'b1010101011 : 10'b0101010100) : (CD[0] ? 10'b0010101011 : 10'b1101010100);

always @(posedge clk) TMDS <= VDE ? TMDS_data : TMDS_code;
always @(posedge clk) balance_acc <= VDE ? balance_acc_new : 4'h0;

endmodule

เด…เดชเตเดชเต‹เตพ เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต เดœเต‹เดกเดฟเด•เตพ เดกเดฟเดกเดฟเดเด’ เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเดฟเดฒเต‡เด•เตเด•เต เดจเตฝเด•เตเดจเตเดจเต, เด‡เดคเต เดคเตเดŸเตผเดšเตเดšเดฏเดพเดฏเดฟ เด‰เดฏเดฐเตเดจเตเดจเดคเตเด‚ เดตเต€เดดเตเดจเตเดจเดคเตเดฎเดพเดฏ เด…เดฐเดฟเด•เตเด•เดณเดฟเตฝ เด’เดฐเต เดฌเดฟเดฑเตเดฑเต เดธเดฟเด—เตเดจเตฝ เด‰เดคเตเดชเดพเดฆเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดตเต†เดฐเดฟเดฒเต‹เด—เต เด•เต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต DDIO เดคเดจเตเดจเต† เดตเดฟเดตเดฐเดฟเด•เตเด•เดพเด‚:

module ddio(
	input wire d0,
	input wire d1,
	input wire clk,
	output wire out
	);

reg r_d0;
reg r_d1;
always @(posedge clk)
begin
	r_d0 <= d0;
	r_d1 <= d1;
end
assign out = clk ? r_d0 : r_d1;
endmodule

เดŽเดจเตเดจเดพเตฝ เด…เดคเต เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚ เด…เด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดฟเดฒเตเดฒ. เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ DDIO เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต เด˜เดŸเด•เด™เตเด™เตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ Alter-เดจเตเดฑเต† megafunction ALTDDIO_OUT เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดŽเดจเตเดฑเต† เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต ALTDDIO_OUT เดฒเตˆเดฌเตเดฐเดฑเดฟ เด˜เดŸเด•เด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

เด‡เดคเต†เดฒเตเดฒเดพเด‚ เด…เตฝเดชเตเดชเด‚ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณเดคเดพเดฏเดฟ เดคเต‹เดจเตเดจเดฟเดฏเต‡เด•เตเด•เดพเด‚, เดชเด•เตเดทเต‡ เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต.

เดตเต†เดฐเดฟเดฒเต‹เด—เต HDL-เตฝ เดŽเดดเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดŽเดฒเตเดฒเดพ เดธเต‹เดดเตโ€Œเดธเต เด•เต‹เดกเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚ เด‡เดตเดฟเดŸเต† github-เตฝ.

FPGA-เดฏเตโ€Œเด•เตเด•เดพเดฏเดฟ เดธเดฎเดพเดนเดฐเดฟเดšเตเดš เดซเต‡เด‚เดตเต†เดฏเตผ Mars Rover2rpi เดฌเต‹เตผเดกเดฟเตฝ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดณเตเดณ EPCS เดšเดฟเดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เดซเตเดฒเดพเดทเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด…เด™เตเด™เดจเต†, FPGA เดฌเต‹เตผเดกเดฟเตฝ เดชเดตเตผ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, FPGA เดซเตเดฒเดพเดทเต เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ เด†เดฐเด‚เดญเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด‚.

เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเดฎเตพ เดฑเดพเดธเตเดฌเต†เดฑเดฟเดฏเตเดŸเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เตเดฑเดšเตเดšเต เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เดกเต†เดฌเดฟเดฏเตป เดฌเดธเตเดฑเตเดฑเตผ, เดชเดคเดฟเดชเตเดชเต: เด“เด—เดธเตเดฑเตเดฑเต 32, เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เดžเดพเตป Raspberry PI OS-เตฝ (2020 เดฌเดฟเดฑเตเดฑเต) เดชเดฐเต€เด•เตเดทเดฃเด™เตเด™เตพ เดจเดŸเดคเตเดคเตเด•เดฏเดพเดฃเต.
เดฑเดฟเดฒเต€เดธเต เดคเต€เดฏเดคเดฟ: 2020-08-20, เด•เต‡เตผเดฃเตฝ เดชเดคเดฟเดชเตเดชเต: 5.4.

เดจเดฟเด™เตเด™เตพ เดฐเดฃเตเดŸเต เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต:

  • config.txt เดซเดฏเตฝ เดŽเดกเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•;
  • เดฐเดฃเตเดŸเต เดฎเต‹เดฃเดฟเดฑเตเดฑเดฑเตเด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด’เดฐเต X เดธเต†เตผเดตเตผ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด‰เดฃเตเดŸเดพเด•เตเด•เตเด•.

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ /boot/config.txt เดซเดฏเตฝ เดŽเดกเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ:

  1. i2c, i2s, spi เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เด‰เดชเดฏเต‹เด—เด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเด•;
  2. เด“เดตเตผเดฒเต‡ dtoverlay=dpi24 เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต DPI เดฎเต‹เดกเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเด•;
  3. เดตเต€เดกเดฟเดฏเต‹ เดฎเต‹เดกเต เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเด• 1280ร—720 60Hz, เดกเดฟเดชเดฟเดเดฏเดฟเตฝ เด“เดฐเต‹ เดชเดฟเด•เตเดธเดฒเตเด‚ 24 เดฌเดฟเดฑเตเดฑเตเด•เตพ;
  4. เด†เดตเดถเตเดฏเดฎเดพเดฏ เดซเตเดฐเต†เดฏเดฟเด‚เดฌเดซเดฑเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเด• 2 (max_framebuffers=2, เด…เดชเตเดชเต‹เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เด‰เดชเด•เดฐเดฃเด‚ /dev/fb1 เดฆเตƒเดถเตเดฏเดฎเดพเด•เต‚)

config.txt เดซเดฏเดฒเดฟเดจเตเดฑเต† เดชเต‚เตผเดฃเตเดฃ เดตเดพเดšเด•เด‚ เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต.

# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

dtparam=i2c_arm=off
dtparam=spi=off
dtparam=i2s=off

dtoverlay=dpi24
overscan_left=0
overscan_right=0
overscan_top=0
overscan_bottom=0
framebuffer_width=1280
framebuffer_height=720
display_default_lcd=0
enable_dpi_lcd=1
dpi_group=2
dpi_mode=87
#dpi_group=1
#dpi_mode=4
dpi_output_format=0x6f027
dpi_timings=1280 1 110 40 220 720 1 5 5 20 0 0 0 60 0 74000000 3

# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
#dtoverlay=vc4-fkms-v3d
max_framebuffers=2

[all]
#dtoverlay=vc4-fkms-v3d
max_framebuffers=2

เด‡เดคเดฟเดจเตเดถเต‡เดทเด‚, /dev/fb0, /dev/fb1 เดŽเดจเตเดจเต€ เดฐเดฃเตเดŸเต เดซเตเดฐเต†เดฏเดฟเด‚เดฌเดซเดฑเตเด•เดณเดฟเตฝ เดฐเดฃเตเดŸเต เดฎเต‹เดฃเดฟเดฑเตเดฑเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต X เดธเต†เตผเดตเดฑเดฟเดจเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพ เด’เดฐเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต:

เดŽเดจเตเดฑเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเตฝ /usr/share/x11/xorg.conf.d/60-dualscreen.conf เด‡เดคเตเดชเต‹เดฒเต†เดฏเดพเดฃเต

Section "Device"
        Identifier      "LCD"
        Driver          "fbturbo"
        Option          "fbdev" "/dev/fb0"
        Option          "ShadowFB" "off"
        Option          "SwapbuffersWait" "true"
EndSection

Section "Device"
        Identifier      "HDMI"
        Driver          "fbturbo"
        Option          "fbdev" "/dev/fb1"
        Option          "ShadowFB" "off"
        Option          "SwapbuffersWait" "true"
EndSection

Section "Monitor"
        Identifier      "LCD-monitor"
        Option          "Primary" "true"
EndSection

Section "Monitor"
        Identifier      "HDMI-monitor"
        Option          "RightOf" "LCD-monitor"
EndSection

Section "Screen"
        Identifier      "screen0"
        Device          "LCD"
        Monitor         "LCD-monitor"
EndSection

Section "Screen"
        Identifier      "screen1"
        Device          "HDMI" 
	Monitor         "HDMI-monitor"
EndSection

Section "ServerLayout"
        Identifier      "default"
        Option          "Xinerama" "on"
        Option          "Clone" "off"
        Screen 0        "screen0"
        Screen 1        "screen1" RightOf "screen0"
EndSection

เดถเดฐเดฟ, เด‡เดคเต เด‡เดคเดฟเดจเด•เด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพ Xinerama เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด…เดชเตเดชเต‹เตพ เดฎเตเด•เดณเดฟเดฒเต† เดกเต†เดฎเต‹ เดตเต€เดกเดฟเดฏเต‹เดฏเดฟเตฝ เด•เดพเดฃเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต† เดกเต†เดธเตเด•เตเดŸเต‹เดชเตเดชเต เดธเตเดชเต‡เดธเต เดฐเดฃเตเดŸเต เดฎเต‹เดฃเดฟเดฑเตเดฑเดฑเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเดฟ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚.

เด’เดฐเตเดชเด•เตเดทเต‡ เด…เดคเตเดฐเดฏเต‡เดฏเตเดณเตเดณเต‚. เด‡เดชเตเดชเต‹เตพ, Raspberry Pi3 เด‰เดŸเดฎเด•เตพเด•เตเด•เต เดฐเดฃเตเดŸเต เดฎเต‹เดฃเดฟเดฑเตเดฑเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

Mars Rover2rpi เดฌเต‹เตผเดกเดฟเดจเตเดฑเต† เดตเดฟเดตเดฐเดฃเดตเตเด‚ เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเต เดกเดฏเด—เตเดฐเดพเดฎเตเด‚ เด•เดพเดฃเดพเด‚ เด‡เดตเดฟเดŸเต† เดจเต‡เดพเด•เตเด•เตเด•.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com