DPI เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เช…เชจเซ‡ FPGA เชฌเซ‹เชฐเซเชก เชฆเซเชตเชพเชฐเชพ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ Pi3 เชฎเชพเชŸเซ‡ เชฌเซ€เชœเซเช‚ HDMI เชฎเซ‹เชจเชฟเชŸเชฐ


เช† เชตเชฟเชกเชฟเชฏเซ‹ เชฌเชคเชพเชตเซ‡ เช›เซ‡: เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ Pi3 เชฌเซ‹เชฐเซเชก, GPIO เช•เชจเซ‡เช•เซเชŸเชฐ เชฆเซเชตเชพเชฐเชพ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒ FPGA เชฌเซ‹เชฐเซเชก Mars Rover2rpi (เชธเชพเชฏเช•เซเชฒเซ‹เชจ IV) เช›เซ‡, เชœเซ‡เชจเซ€ เชธเชพเชฅเซ‡ HDMI เชฎเซ‹เชจเชฟเชŸเชฐ เชœเซ‹เชกเชพเชฏเซ‡เชฒ เช›เซ‡. เชฌเซ€เชœเซเช‚ เชฎเซ‹เชจเชฟเชŸเชฐ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ Pi3 เชจเชพ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค HDMI เช•เชจเซ‡เช•เซเชŸเชฐ เชฆเซเชตเชพเชฐเชพ เชœเซ‹เชกเชพเชฏเซ‡เชฒ เช›เซ‡. เชกเซเชฏเซเช…เชฒ เชฎเซ‹เชจเชฟเชŸเชฐ เชธเชฟเชธเซเชŸเชฎเชจเซ€ เชœเซ‡เชฎ เชฌเชงเซเช‚ เชเช•เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡.

เช†เช—เชณ เชนเซเช‚ เชคเชฎเชจเซ‡ เช•เชนเซ€เชถ เช•เซ‡ เช† เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ Pi3 เชฌเซ‹เชฐเซเชกเชฎเชพเช‚ GPIO เช•เชจเซ‡เช•เซเชŸเชฐ เช›เซ‡ เชœเซ‡เชจเชพ เชฆเซเชตเชพเชฐเชพ เชคเชฎเซ‡ เชตเชฟเชตเชฟเชง เชตเชฟเชธเซเชคเชฐเชฃ เช•เชพเชฐเซเชกเซเชธเชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹: เชธเซ‡เชจเซเชธเชฐ, LEDs, เชธเซเชŸเซ‡เชชเชฐ เชฎเซ‹เชŸเชฐ เชกเซเชฐเชพเช‡เชตเชฐเซเชธ เช…เชจเซ‡ เช˜เชฃเซเช‚ เชฌเชงเซเช‚. เช•เชจเซ‡เช•เซเชŸเชฐ เชชเชฐ เชฆเชฐเซ‡เช• เชชเชฟเชจเชจเซเช‚ เชšเซ‹เช•เซเช•เชธ เช•เชพเชฐเซเชฏ เชชเซ‹เชฐเซเชŸ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช›เซ‡. GPIO ALT2 เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชคเชฎเชจเซ‡ เช•เชจเซ‡เช•เซเชŸเชฐเชจเซ‡ DPI เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชฎเซ‹เชก, เชกเชฟเชธเซเชชเซเชฒเซ‡ เชธเชฎเชพเช‚เชคเชฐ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชชเชฐ เชธเซเชตเชฟเชš เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. VGA เชฎเซ‹เชจเชฟเชŸเชฐเชจเซ‡ DPI เชฎเชพเชฐเชซเชคเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชตเชฟเชธเซเชคเชฐเชฃ เช•เชพเชฐเซเชก เช›เซ‡. เชœเซ‹ เช•เซ‡, เชชเซเชฐเชฅเชฎ, VGA เชฎเซ‹เชจเชฟเชŸเชฐเซเชธ เชนเชตเซ‡ HDMI เชœเซ‡เชŸเชฒเชพ เชธเชพเชฎเชพเชจเซเชฏ เชจเชฅเซ€ เช…เชจเซ‡ เชฌเซ€เชœเซเช‚, เชกเชฟเชœเชฟเชŸเชฒ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เชเชจเชพเชฒเซ‹เช— เช•เชฐเชคเชพ เชตเชงเซเชจเซ‡ เชตเชงเซ เชธเชพเชฐเซเช‚ เช›เซ‡. เชคเชฆเซเชชเชฐเชพเช‚เชค, เช†เชตเชพ VGA เชตเชฟเชธเซเชคเชฐเชฃ เชฌเซ‹เชฐเซเชก เชชเชฐ DAC เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ R-2-R เชธเชพเช‚เช•เชณเซ‹เชจเชพ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เช˜เชฃเซ€เชตเชพเชฐ เชคเซ‡ เชฐเช‚เช— เชฆเซ€เช  6 เชฌเชฟเชŸเซเชธ เช•เชฐเชคเชพเช‚ เชตเชงเซ เชนเซ‹เชคเซเช‚ เชจเชฅเซ€.

ALT2 เชฎเซ‹เชกเชฎเชพเช‚, GPIO เช•เชจเซ‡เช•เซเชŸเชฐ เชชเชฟเชจเชจเซ‹ เชจเซ€เชšเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡:

DPI เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เช…เชจเซ‡ FPGA เชฌเซ‹เชฐเซเชก เชฆเซเชตเชพเชฐเชพ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ Pi3 เชฎเชพเชŸเซ‡ เชฌเซ€เชœเซเช‚ HDMI เชฎเซ‹เชจเชฟเชŸเชฐ

เช…เชนเซ€เช‚ เชฎเซ‡เช‚ เช•เชจเซ‡เช•เซเชŸเชฐเชจเซ€ RGB เชชเชฟเชจ เช…เชจเซเช•เซเชฐเชฎเซ‡ เชฒเชพเชฒ, เชฒเซ€เชฒเชพ เช…เชจเซ‡ เชตเชพเชฆเชณเซ€ เชฐเช‚เช—เชจเซ€ เช•เชฐเซ€ เช›เซ‡. เช…เชจเซเชฏ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชธเช‚เช•เซ‡เชคเซ‹ V-SYNC เช…เชจเซ‡ H-SYNC เชธเช‚เช•เซ‡เชคเซ‹ เชคเซ‡เชฎเชœ CLK เช›เซ‡. CLK เช˜เชกเชฟเชฏเชพเชณเชจเซ€ เช†เชตเชฐเซเชคเชจ เช เช†เชตเชฐเซเชคเชจ เช›เซ‡ เช•เซ‡ เชœเซ‡เชจเชพ เชชเชฐ เชชเชฟเช•เซเชธเซ‡เชฒ เชฎเซ‚เชฒเซเชฏเซ‹ เช•เชจเซ‡เช•เซเชŸเชฐเชฎเชพเช‚ เช†เช‰เชŸเชชเซเชŸ เชฅเชพเชฏ เช›เซ‡; เชคเซ‡ เชชเชธเช‚เชฆ เช•เชฐเซ‡เชฒ เชตเชฟเชกเชฟเช“ เชฎเซ‹เชก เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช›เซ‡.

เชกเชฟเชœเชฟเชŸเชฒ HDMI เชฎเซ‹เชจเชฟเชŸเชฐเชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เชˆเชจเซเชŸเชฐเชซเซ‡เชธเชจเชพ DPI เชธเชฟเช—เซเชจเชฒเซ‹เชจเซ‡ เช•เซ‡เชชเซเชšเชฐ เช•เชฐเชตเชพเชจเซ€ เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ‡ HDMI เชธเชฟเช—เซเชจเชฒเซ‹เชฎเชพเช‚ เช•เชจเซเชตเชฐเซเชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช† เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช…เชฎเซเช• เชชเซเชฐเช•เชพเชฐเชจเชพ FPGA เชฌเซ‹เชฐเซเชกเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡. เชœเซ‡เชฎ เชœเซ‡เชฎ เชคเซ‡ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชฎเชพเชฐเซเชธ เชฐเซ‹เชตเชฐ2เช†เชฐเชชเซ€เช†เชˆ เชฌเซ‹เชฐเซเชก เช† เชนเซ‡เชคเซเช“ เชฎเชพเชŸเซ‡ เชฏเซ‹เช—เซเชฏ เช›เซ‡. เชนเช•เซ€เช•เชคเชฎเชพเช‚, เช† เชฌเซ‹เชฐเซเชกเชจเซ‡ เชตเชฟเชถเชฟเชทเซเชŸ เชเชกเซ‡เชชเซเชŸเชฐ เชฆเซเชตเชพเชฐเชพ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชจเซ‹ เชฎเซเช–เซเชฏ เชตเชฟเช•เชฒเซเชช เช†เชจเชพ เชœเซ‡เชตเซ‹ เชฆเซ‡เช–เชพเชฏ เช›เซ‡:

DPI เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เช…เชจเซ‡ FPGA เชฌเซ‹เชฐเซเชก เชฆเซเชตเชพเชฐเชพ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ Pi3 เชฎเชพเชŸเซ‡ เชฌเซ€เชœเซเช‚ HDMI เชฎเซ‹เชจเชฟเชŸเชฐ

เช† เชฌเซ‹เชฐเซเชกเชจเซ‹ เช‰เชชเชฏเซ‹เช— GPIO เชชเซ‹เชฐเซเชŸเชจเซ€ เชธเช‚เช–เซเชฏเชพ เชตเชงเชพเชฐเชตเชพ เช…เชจเซ‡ เชตเชงเซ เชชเซ‡เชฐเชฟเชซเซ‡เชฐเชฒ เช‰เชชเช•เชฐเชฃเซ‹เชจเซ‡ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡. เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เช† เช•เชจเซ‡เช•เซเชถเชจ เชธเชพเชฅเซ‡เชจเชพ 4 GPIO เชธเชฟเช—เซเชจเชฒเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— JTAG เชธเชฟเช—เซเชจเชฒเซ‹ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡, เชœเซ‡เชฅเซ€ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€เชจเซ‹ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ FPGA เชซเชฐเซเชฎเชตเซ‡เชฐเชจเซ‡ FPGA เชฎเชพเช‚ เชฒเซ‹เชก เช•เชฐเซ€ เชถเช•เซ‡. เช† เช•เชพเชฐเชฃเซ‡, เช† เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เช•เชจเซ‡เช•เซเชถเชจ เชฎเชจเซ‡ เช…เชจเซเช•เซ‚เชณ เชจเชฅเซ€; 4 DPI เชธเชฟเช—เซเชจเชฒ เชกเซเชฐเซ‹เชช เช†เช‰เชŸ. เชธเชฆเชญเชพเช—เซเชฏเซ‡, เชฌเซ‹เชฐเซเชก เชชเชฐเชจเชพ เชตเชงเชพเชฐเชพเชจเชพ เช•เซ‹เชฎเซเชฌเซเชธเชฎเชพเช‚ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€-เชธเซเชธเช‚เช—เชค เชชเชฟเชจเช†เช‰เชŸ เช›เซ‡. เชคเซ‡เชฅเซ€ เชนเซเช‚ เชฌเซ‹เชฐเซเชกเชจเซ‡ 90 เชกเชฟเช—เซเชฐเซ€ เชซเซ‡เชฐเชตเซ€ เชถเช•เซเช‚ เช›เซเช‚ เช…เชจเซ‡ เชนเชœเซ€ เชชเชฃ เชคเซ‡เชจเซ‡ เชฎเชพเชฐเชพ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชธเชพเชฅเซ‡ เชœเซ‹เชกเซ€ เชถเช•เซเช‚ เช›เซเช‚:

DPI เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เช…เชจเซ‡ FPGA เชฌเซ‹เชฐเซเชก เชฆเซเชตเชพเชฐเชพ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ Pi3 เชฎเชพเชŸเซ‡ เชฌเซ€เชœเซเช‚ HDMI เชฎเซ‹เชจเชฟเชŸเชฐ

เช…เชฒเชฌเชคเซเชค, เชคเชฎเชพเชฐเซ‡ เชฌเชพเชนเซเชฏ JTAG เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชชเชกเชถเซ‡, เชชเชฐเช‚เชคเซ เช† เช•เซ‹เชˆ เชธเชฎเชธเซเชฏเชพ เชจเชฅเซ€.

เชนเชœเซ€ เชเช• เชจเชพเชจเซ€ เชธเชฎเชธเซเชฏเชพ เช›เซ‡. เชฆเชฐเซ‡เช• FPGA เชชเชฟเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช˜เชกเชฟเชฏเชพเชณเชจเชพ เช‡เชจเชชเซเชŸ เชคเชฐเซ€เช•เซ‡ เช•เชฐเซ€ เชถเช•เชพเชคเซ‹ เชจเชฅเซ€. เชคเซเชฏเชพเช‚ เชฎเชพเชคเซเชฐ เชฅเซ‹เชกเชพ เชธเชฎเชฐเซเชชเชฟเชค เชชเชฟเชจ เช›เซ‡ เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช† เชนเซ‡เชคเซเช“ เชฎเชพเชŸเซ‡ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชคเซ‡เชฅเซ€ เชคเซ‡ เช…เชนเซ€เช‚ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช•เซ‡ GPIO_0 CLK เชธเชฟเช—เซเชจเชฒ FPGA เช‡เชจเชชเซเชŸ เชธเซเชงเซ€ เชชเชนเซ‹เช‚เชšเชคเซเช‚ เชจเชฅเซ€, เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— FPGA เช˜เชกเชฟเชฏเชพเชณ เช‡เชจเชชเซเชŸ เชคเชฐเซ€เช•เซ‡ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡. เชคเซ‡เชฅเซ€ เชฎเชพเชฐเซ‡ เชนเชœเซ เชชเชฃ เชธเซเช•เชพเชฐเซเชซ เชชเชฐ เชเช• เชตเชพเชฏเชฐ เชฎเซ‚เช•เชตเชพเชจเซ‹ เชนเชคเซ‹. เชนเซเช‚ GPIO_0 เช…เชจเซ‡ เชฌเซ‹เชฐเซเชกเชจเชพ KEY[1] เชธเชฟเช—เซเชจเชฒเชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซเช‚ เช›เซเช‚:

DPI เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เช…เชจเซ‡ FPGA เชฌเซ‹เชฐเซเชก เชฆเซเชตเชพเชฐเชพ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ Pi3 เชฎเชพเชŸเซ‡ เชฌเซ€เชœเซเช‚ HDMI เชฎเซ‹เชจเชฟเชŸเชฐ

เชนเชตเซ‡ เชนเซเช‚ เชคเชฎเชจเซ‡ FPGA เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชตเชฟเชถเซ‡ เชฅเซ‹เชกเซเช‚ เช•เชนเซ€เชถ. HDMI เชธเชฟเช—เซเชจเชฒ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เชฎเซเช–เซเชฏ เชฎเซเชถเซเช•เซ‡เชฒเซ€ เช–เซ‚เชฌ เชŠเช‚เชšเซ€ เชซเซเชฐเซ€เช•เซเชตเชจเซเชธเซ€เช เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ HDMI เช•เชจเซ‡เช•เซเชŸเชฐ เชชเชฟเชจเช†เช‰เชŸ เชœเซเช“ เช›เซ‹, เชคเซ‹ เชคเชฎเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹ เช•เซ‡ RGB เชธเชฟเช—เซเชจเชฒเซ‹ เชนเชตเซ‡ เชธเซ€เชฐเซ€เชฏเชฒ เชกเชฟเชซเชฐเชจเซเชธเชฟเชฏเชฒ เชธเชฟเช—เซเชจเชฒเซ‹ เช›เซ‡:

DPI เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เช…เชจเซ‡ FPGA เชฌเซ‹เชฐเซเชก เชฆเซเชตเชพเชฐเชพ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ Pi3 เชฎเชพเชŸเซ‡ เชฌเซ€เชœเซเช‚ HDMI เชฎเซ‹เชจเชฟเชŸเชฐ

เชตเชฟเชญเซ‡เชฆเช• เชธเชฟเช—เซเชจเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชคเชฎเชจเซ‡ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชถเชจ เชฒเชพเช‡เชจ เชชเชฐ เชธเชพเชฎเชพเชจเซเชฏ เชฎเซ‹เชกเชจเซ€ เชฆเช–เชฒ เชธเชพเชฎเซ‡ เชฒเชกเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡. เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชฆเชฐเซ‡เช• เชฐเช‚เช— เชธเชฟเช—เซเชจเชฒเชจเซ‹ เชฎเซ‚เชณ เช†เช -เชฌเซ€เชŸ เช•เซ‹เชก 10-เชฌเซ€เชŸ TMDS (เชŸเซเชฐเชพเชจเซเชเซ€เชถเชจ-เชฎเชฟเชจเชฟเชฎเชพเช‡เชเซเชก เชกเชฟเชซเชฐเชจเซเชธเชฟเชฏเชฒ เชธเชฟเช—เซเชจเชฒเชฟเช‚เช—) เชฎเชพเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เชฅเชพเชฏ เช›เซ‡. เชธเชฟเช—เซเชจเชฒเชฎเชพเช‚เชฅเซ€ DC เช˜เชŸเช•เชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเชตเชพ เช…เชจเซ‡ เชตเชฟเชญเซ‡เชฆเช• เชฐเซ‡เช–เชพเชฎเชพเช‚ เชธเชฟเช—เซเชจเชฒ เชธเซเชตเชฟเชšเชฟเช‚เช—เชจเซ‡ เช˜เชŸเชพเชกเชตเชพ เชฎเชพเชŸเซ‡ เช† เชเช• เชตเชฟเชถเชฟเชทเซเชŸ เช•เซ‹เชกเชฟเช‚เช— เชชเชฆเซเชงเชคเชฟ เช›เซ‡. 10 เชฌเชฟเชŸเซเชธ เชนเชตเซ‡ เชฐเช‚เช—เชจเชพ เชเช• เชฌเชพเช‡เชŸ เชฎเชพเชŸเซ‡ เชธเซ€เชฐเซ€เชฏเชฒ เชฒเชพเช‡เชจ เชชเชฐ เชชเซเชฐเชธเชพเชฐเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชตเชพเชฅเซ€, เชคเซ‡ เชคเชพเชฐเชฃ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เชธเซ€เชฐเซ€เชฏเชฒเชพเช‡เชเชฐเชจเซ€ เช˜เชกเชฟเชฏเชพเชณเชจเซ€ เชเชกเชช เชชเชฟเช•เซเชธเซ‡เชฒ เช˜เชกเชฟเชฏเชพเชณเชจเซ€ เชเชกเชช เช•เชฐเชคเชพเช‚ 10 เช—เชฃเซ€ เชตเชงเชพเชฐเซ‡ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช. เชœเซ‹ เช†เชชเชฃเซ‡ เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ เชตเชฟเชกเชฟเชฏเซ‹ เชฎเซ‹เชก 1280x720 60Hz เชฒเชˆเช, เชคเซ‹ เช† เชฎเซ‹เชกเชจเซ€ เชชเชฟเช•เซเชธเซ‡เชฒ เชซเซเชฐเซ€เช•เซเชตเชจเซเชธเซ€ 74,25 MHz เช›เซ‡. เชธเซ€เชฐเซ€เชฏเชฒเชพเช‡เชเชฐ 742,5 MHz เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช.

เชจเชฟเชฏเชฎเชฟเชค FPGAs, เช•เชฎเชจเชธเซ€เชฌเซ‡, เช† เชฎเชพเชŸเซ‡ เชธเช•เซเชทเชฎ เชจเชฅเซ€. เชœเซ‹ เช•เซ‡, เชธเชฆเชจเชธเซ€เชฌเซ‡ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡, FPGA เชฎเชพเช‚ เชฌเชฟเชฒเซเชŸ-เช‡เชจ DDIO เชชเชฟเชจ เช›เซ‡. เช† เชเชตเชพ เชคเชพเชฐเชฃเซ‹ เช›เซ‡ เชœเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชคเซ‡ เชนเชคเชพ, 2-เชฅเซ€-1 เชธเซ€เชฐเซ€เชฏเชฒเชพเช‡เชเชฐเซเชธ. เชเชŸเชฒเซ‡ เช•เซ‡, เชคเซ‡เช“ เช˜เชกเชฟเชฏเชพเชณเชจเซ€ เช†เชตเชฐเซเชคเชจเชจเซ€ เชตเชงเชคเซ€ เช…เชจเซ‡ เชชเชกเชคเซ€ เช•เชฟเชจเชพเชฐเซ€เช“ เชชเชฐ เช•เซเชฐเชฎเชฟเช• เชฐเซ€เชคเซ‡ เชฌเซ‡ เชฌเชฟเชŸเซเชธ เช†เช‰เชŸเชชเซเชŸ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ FPGA เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚ เชคเชฎเซ‡ 740 MHz เชจเชนเชฟ, เชชเชฐเช‚เชคเซ 370 MHz เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ เชคเชฎเชพเชฐเซ‡ FPGA เชฎเชพเช‚ DDIO เช†เช‰เชŸเชชเซเชŸ เชคเชคเซเชตเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชนเชตเซ‡ 370 MHz เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเซ€ เช†เชตเชฐเซเชคเชจ เช›เซ‡. เช•เชฎเชจเชธเซ€เชฌเซ‡, 1280x720 เชฎเซ‹เชก เช เชฎเชฐเซเชฏเชพเชฆเชพ เช›เซ‡. เชฎเชพเชฐเซเชธ เชฐเซ‹เชตเชฐ2เช†เชฐเชชเซ€เช†เชˆ เชฌเซ‹เชฐเซเชก เชชเชฐ เชธเซเชฅเชพเชชเชฟเชค เช…เชฎเชพเชฐเชพ เชšเช•เซเชฐเชตเชพเชค IV FPGA เชฎเชพเช‚ เช‰เชšเซเชš เชฐเชฟเชเซ‹เชฒเซเชฏเซเชถเชจ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ€ เชถเช•เชพเชคเซเช‚ เชจเชฅเซ€.

เชคเซ‡เชฅเซ€, เชกเชฟเชเชพเช‡เชจเชฎเชพเช‚, เช‡เชจเชชเซเชŸ เชชเชฟเช•เซเชธเซ‡เชฒ เช†เชตเชฐเซเชคเชจ CLK PLL เชชเชฐ เชœเชพเชฏ เช›เซ‡, เชœเซเชฏเชพเช‚ เชคเซ‡เชจเซ‡ 5 เชตเชกเซ‡ เช—เซเชฃเชพเช•เชพเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช† เช†เชตเชฐเซเชคเชจ เชชเชฐ, R, G, B เชฌเชพเช‡เชŸเซเชธ เชฌเซ€เชŸ เชœเซ‹เชกเซ€เชฎเชพเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เชฅเชพเชฏ เช›เซ‡. เช† เชคเซ‡ เช›เซ‡ เชœเซ‡ TMDS เชเชจเซเช•เซ‹เชกเชฐ เช•เชฐเซ‡ เช›เซ‡. เชตเซ‡เชฐเชฟเชฒเซ‹เช— เชเชšเชกเซ€เชเชฒเชฎเชพเช‚ เชธเซเชคเซเชฐเซ‹เชค เช•เซ‹เชก เช†เชจเชพ เชœเซ‡เชตเซ‹ เชฆเซ‡เช–เชพเชฏ เช›เซ‡:

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 เช†เช‰เชŸเชชเซเชŸเชฎเชพเช‚ เช–เชตเชกเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡ เช•เซเชฐเชฎเชฟเช• เชฐเซ€เชคเซ‡ เชตเชงเชคเซ€ เช…เชจเซ‡ เชชเชกเชคเซ€ เช•เชฟเชจเชพเชฐเซ€เช“ เชชเชฐ เชเช•-เชฌเซ€เชŸ เชธเชฟเช—เซเชจเชฒ เช‰เชคเซเชชเชจเซเชจ เช•เชฐเซ‡ เช›เซ‡.

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 เชจเชพ เชฎเซ‡เช—เชพเชซเช‚เช•เซเชถเชจ ALTDIO_OUT เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชฎเชพเชฐเซ‹ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ ALTDIO_OUT เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ เช˜เชŸเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡.

เช† เชฌเชงเซเช‚ เชฅเซ‹เชกเซเช‚ เชฎเซเชถเซเช•เซ‡เชฒ เชฒเชพเช—เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡.

เชคเชฎเซ‡ เชตเซ‡เชฐเชฟเชฒเซ‹เช— HDL เชฎเชพเช‚ เชฒเช–เซ‡เชฒเชพ เชคเชฎเชพเชฎ เชธเซเชฐเซ‹เชค เช•เซ‹เชก เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹ เช…เชนเซ€เช‚ เช—เซ€เชฅเชฌ เชชเชฐ.

FPGA เชฎเชพเชŸเซ‡ เช•เชฎเซเชชเชพเชˆเชฒ เช•เชฐเซ‡เชฒ เชซเชฐเซเชฎเชตเซ‡เชฐเชจเซ‡ Mars Rover2rpi เชฌเซ‹เชฐเซเชก เชชเชฐ เชธเซเชฅเชพเชชเชฟเชค EPCS เชšเชฟเชชเชฎเชพเช‚ เชซเซเชฒเซ‡เชถ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช†เชฎ, เชœเซเชฏเชพเชฐเซ‡ เชเชซเชชเซ€เชœเซ€เช เชฌเซ‹เชฐเซเชก เชชเชฐ เชชเชพเชตเชฐ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชเชซเชชเซ€เชœเซ€เช เชซเซเชฒเซ‡เชถ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚เชฅเซ€ เชชเซเชฐเชพเชฐเช‚เชญ เชฅเชถเซ‡ เช…เชจเซ‡ เชถเชฐเซ‚ เชฅเชถเซ‡.

เชนเชตเซ‡ เช†เชชเชฃเซ‡ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€เชจเชพ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชตเชฟเชถเซ‡ เชฅเซ‹เชกเซ€ เชตเชพเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เชนเซเช‚ เชกเซ‡เชฌเชฟเชฏเชจ เชฌเชธเซเชŸเชฐ, เชธเช‚เชธเซเช•เชฐเชฃ: เช“เช—เชธเซเชŸ 32 เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ 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, DPI เชชเชฐ เชชเชฟเช•เซเชธเซ‡เชฒ เชฆเซ€เช  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 เชฎเชพเชฒเชฟเช•เซ‹ เชฌเซ‡ เชฎเซ‹เชจเชฟเชŸเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชถเซ‡.

เชฎเชพเชฐเซเชธ เชฐเซ‹เชตเชฐ2เช†เชฐเชชเซ€เช†เชˆ เชฌเซ‹เชฐเซเชกเชจเซเช‚ เชตเชฐเซเชฃเชจ เช…เชจเซ‡ เชธเชฐเซเช•เชฟเชŸ เชกเชพเชฏเชพเช—เซเชฐเชพเชฎ เชฎเชณเซ€ เชถเช•เซ‡ เช›เซ‡ เช…เชนเซ€เช‚ เชœเซเช“.

เชธเซ‹เชฐเซเชธ: www.habr.com