DPI เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจ…เจคเฉ‡ FPGA เจฌเฉ‹เจฐเจก เจฆเฉเจ†เจฐเจพ เจฐเจพเจธเจฌเฉ‡เจฐเฉ€ Pi3 เจฒเจˆ เจฆเฉ‚เจœเจพ HDMI เจฎเจพเจจเฉ€เจŸเจฐ


เจ‡เจน เจตเฉ€เจกเฉ€เจ“ เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเจพ เจนเฉˆ: เจ‡เฉฑเจ• Raspberry Pi3 เจฌเฉ‹เจฐเจก, เจœเจฟเจธ เจจเจพเจฒ, GPIO เจ•เจจเฉˆเจ•เจŸเจฐ เจฆเฉเจ†เจฐเจพ, เจ‡เฉฑเจ• FPGA เจฎเจพเจฐเจธ เจฐเฉ‹เจตเจฐ2rpi (เจธเจพเจˆเจ•เจฒเฉ‹เจจ IV) เจฌเฉ‹เจฐเจก เจœเฉเฉœเจฟเจ† เจนเฉ‹เจ‡เจ† เจนเฉˆ, เจœเจฟเจธ เจจเจพเจฒ เจ‡เฉฑเจ• HDMI เจฎเจพเจจเฉ€เจŸเจฐ เจœเฉเฉœเจฟเจ† เจนเฉ‹เจ‡เจ† เจนเฉˆเฅค เจฆเฉ‚เจœเจพ เจฎเจพเจจเฉ€เจŸเจฐ เจฎเจฟเจ†เจฐเฉ€ Raspberry Pi3 HDMI เจ•เจจเฉˆเจ•เจŸเจฐ เจฐเจพเจนเฉ€เจ‚ เจœเฉเฉœเจฟเจ† เจนเฉ‹เจ‡เจ† เจนเฉˆเฅค เจ‡เจน เจธเจญ เจฎเจฟเจฒ เจ•เฉ‡ เจ‡เฉฑเจ• เจกเฉเจ…เจฒ เจฎเจพเจจเฉ€เจŸเจฐ เจธเจฟเจธเจŸเจฎ เจตเจพเจ‚เจ— เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจ…เฉฑเจ—เฉ‡ เจฎเฉˆเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฆเฉฑเจธเจพเจ‚เจ—เจพ เจ•เจฟ เจ‡เจธเจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ.

เจชเฉเจฐเจธเจฟเฉฑเจง Raspberry Pi3 เจฌเฉ‹เจฐเจก เจตเจฟเฉฑเจš เจ‡เฉฑเจ• GPIO เจ•เจจเฉˆเจ•เจŸเจฐ เจนเฉˆ เจœเจฟเจธ เจฐเจพเจนเฉ€เจ‚ เจคเฉเจธเฉ€เจ‚ เจตเฉฑเจ–-เจตเฉฑเจ– เจตเจฟเจธเจคเจพเจฐ เจฌเฉ‹เจฐเจกเจพเจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœ เจธเจ•เจฆเฉ‡ เจนเฉ‹: เจธเฉˆเจ‚เจธเจฐ, LED, เจธเจŸเฉˆเจชเจฐ เจฎเฉ‹เจŸเจฐ เจกเจฐเจพเจˆเจตเจฐ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจฌเจนเฉเจค เจ•เฉเจเฅค เจ•เฉเจจเฉˆเจ•เจŸเจฐ 'เจคเฉ‡ เจนเจฐเฉ‡เจ• เจชเจฟเฉฐเจจ เจฆเจพ เจ–เจพเจธ เจซเฉฐเจ•เจธเจผเจจ เจชเฉ‹เจฐเจŸ เจธเฉฐเจฐเจšเจจเจพ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค 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 เจกเฉ€เจชเฉ€เจ†เจˆ เจธเจฟเจ—เจจเจฒ เจฌเจพเจนเจฐ เจจเจฟเจ•เจฒเจฆเฉ‡ เจนเจจ. เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจฌเฉ‹เจฐเจก 'เจคเฉ‡ เจตเจพเจงเฉ‚ เจ•เฉฐเจ˜เฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฐเจธเจฌเฉ‡เจฐเฉ€-เจ…เจจเฉเจ•เฉ‚เจฒ เจชเจฟเจจเจ†เจ‰เจŸ เจนเฉˆเฅค เจคเจพเจ‚ เจœเฉ‹ เจฎเฉˆเจ‚ เจฌเฉ‹เจฐเจก เจจเฉ‚เฉฐ 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 (เจŸเฉเจฐเจพเจ‚เจœเจผเจฟเจธเจผเจจ-เจฎเจฟเจจเฉ€เจฎเจพเจˆเจœเจผเจก เจกเจฟเจซเจฐเฉˆเจ‚เจธเจผเฉ€เจ…เจฒ เจธเจฟเจ—เจจเจฒ) เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจธเจฟเจ—เจจเจฒ เจคเฉ‹เจ‚ เจกเฉ€เจธเฉ€ เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจจเฉ‚เฉฐ เจนเจŸเจพเจ‰เจฃ เจ…เจคเฉ‡ เจกเจฟเจซเจฐเฉˆเจ‚เจธเจผเฉ€เจ…เจฒ เจฒเจพเจˆเจจ เจตเจฟเฉฑเจš เจธเจฟเจ—เจจเจฒ เจธเจตเจฟเจšเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจ˜เฉฑเจŸ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจเจจเจ•เฉ‹เจกเจฟเฉฐเจ— เจตเจฟเจงเฉ€ เจนเฉˆเฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจนเฉเจฃ เจธเฉ€เจฐเฉ€เจ…เจฒ เจฒเจพเจˆเจจ เจ‰เฉฑเจคเฉ‡ เจชเฉเจฐเจคเฉ€ เจฌเจพเจˆเจŸ เจฐเฉฐเจ— เจธเฉฐเจšเจพเจฐ เจ•เจฐเจจ เจฒเจˆ 10 เจฌเจฟเฉฑเจŸ เจนเจจ, เจ‡เจน เจชเจคเจพ เจšเจฒเจฆเจพ เจนเฉˆ เจ•เจฟ เจธเฉ€เจฐเฉ€เจ…เจฒเจพเจˆเจœเจผเจฐ เจฆเฉ€ เจ˜เฉœเฉ€ เจฆเฉ€ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจชเจฟเจ•เจธเจฒ เจฆเฉ€ เจ˜เฉœเฉ€ เจฆเฉ€ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจจเจพเจฒเฉ‹เจ‚ 10 เจ—เฉเจฃเจพ เจตเฉฑเจง เจนเฉ‹เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ เจตเฉ€เจกเฉ€เจ“ เจฎเฉ‹เจก 1280x720 60Hz เจฒเฉˆเจ‚เจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจ‡เจธ เจฎเฉ‹เจก เจฆเฉ€ เจชเจฟเจ•เจธเจฒ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ 74,25MHz เจนเฉˆเฅค เจธเฉ€เจฐเฉ€เจ…เจฒเจพเจˆเจœเจผเจฐ 742,5 MHz เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

เจชเจฐเฉฐเจชเจฐเจพเจ—เจค FPGAs เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจธ เจฆเฉ‡ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ‡, เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ. เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจธเจพเจกเฉ€ เจ•เจฟเจธเจฎเจค เจฒเจˆ, FPGA เจ•เฉ‹เจฒ เจฌเจฟเจฒเจŸ-เจ‡เจจ DDIO เจชเจฟเฉฐเจจ เจนเจจเฅค เจ‡เจน เจ‰เจน เจธเจฟเฉฑเจŸเฉ‡ เจนเจจ เจœเฉ‹ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจนเจจ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เจน เจธเจจ, 2-เจคเฉ‹เจ‚-1 เจธเฉ€เจฐเฉ€เจ…เจฒเจพเจˆเจœเจผเจฐเฅค เจญเจพเจต, เจ‰เจน เจšเฉœเฉเจนเจจ เจ…เจคเฉ‡ เจกเจฟเฉฑเจ—เจฃ เจตเจพเจฒเฉ€ เจ˜เฉœเฉ€ เจฆเฉ€ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉเจฐเจฎ เจตเจฟเฉฑเจš เจฆเฉ‹ เจฌเจฟเฉฑเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจ‡เจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ FPGA เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš เจคเฉเจธเฉ€เจ‚ 740 MHz เจจเจนเฉ€เจ‚, เจธเจ—เฉ‹เจ‚ 370 MHz เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ FPGA เจตเจฟเฉฑเจš DDIO เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจคเฉฑเจคเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ‡เฉฑเจฅเฉ‡ 370 MHz เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ‡เฉฑเจ• เจชเฉเจฐเจพเจชเจคเฉ€เจฏเฉ‹เจ— เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจนเฉˆเฅค เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, 1280 ร— 720 เจฎเฉ‹เจก เจธเฉ€เจฎเจพ เจนเฉˆเฅค Rover2rpi เจฌเฉ‹เจฐเจก 'เจคเฉ‡ เจธเจฅเจพเจชเจฟเจค เจธเจพเจกเฉ‡ FPGA เจšเฉฑเจ•เจฐเจตเจพเจค IV เจตเจฟเฉฑเจš เจ‰เฉฑเจš เจฐเฉˆเจœเจผเฉ‹เจฒเจฟเจŠเจธเจผเจจ เจชเฉเจฐเจพเจชเจค เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ‡เจธ เจฒเจˆ, เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš, เจ‡เจจเจชเฉเจŸ เจชเจฟเจ•เจธเจฒ เจซเฉเจฐเฉ€เจ•เฉเจเจ‚เจธเฉ€ CLK PLL เจจเฉ‚เฉฐ เจซเฉ€เจก เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจœเจฟเฉฑเจฅเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ 5 เจจเจพเจฒ เจ—เฉเจฃเจพ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ 'เจคเฉ‡, R, G, B เจฌเจพเจˆเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฟเฉฑเจŸ เจœเฉ‹เฉœเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจ‰เจน เจนเฉˆ เจœเฉ‹ TMDS เจเจจเจ•เฉ‹เจกเจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค 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 เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจคเฉฑเจคเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฒเจˆ Altera เจฆเฉ‡ ALTDIO_OUT เจฎเฉˆเจ—เจพเจซเฉฐเจ•เจธเจผเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจฎเฉ‡เจฐเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš, เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ ALTDIO_OUT เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจ‡เจน เจธเจญ เจ•เฉเจ เจฎเฉเจธเจผเจ•เจฒ เจฒเฉฑเจ— เจธเจ•เจฆเจพ เจนเฉˆ, เจชเจฐ เจ‡เจน เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ.

เจคเฉเจธเฉ€เจ‚ เจตเฉ‡เจฐเฉ€เจฒเฉŒเจ— HDL เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจธเจพเจฐเจพ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ‡เฉฑเจฅเฉ‡ github 'เจคเฉ‡.

FPGA เจฒเจˆ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเฉ‡ เจซเจฐเจฎเจตเฉ‡เจ…เจฐ เจจเฉ‚เฉฐ Mars Rover2rpi เจฌเฉ‹เจฐเจก 'เจคเฉ‡ เจธเจฅเจพเจชเจฟเจค EPCS เจšเจฟเฉฑเจช เจตเจฟเฉฑเจš เจเจฎเจฌเฉ‡เจก เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, เจœเจฆเฉ‹เจ‚ FPGA เจฌเฉ‹เจฐเจก 'เจคเฉ‡ เจชเจพเจตเจฐ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, FPGA เจซเจฒเฉˆเจธเจผ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจคเฉ‹เจ‚ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพเฅค

เจนเฉเจฃ เจธเจพเจจเฉ‚เฉฐ เจฐเจธเจฌเฉ‡เจฐเฉ€ เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจฌเจพเจฐเฉ‡ เจฅเฉ‹เฉœเฉ€ เจ—เฉฑเจฒ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ.

เจฎเฉˆเจ‚ เจกเฉ‡เจฌเฉ€เจ…เจจ เจฌเจธเจŸเจฐ, เจธเฉฐเจธเจ•เจฐเจฃ: เจ…เจ—เจธเจค 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, 24 เจฌเจฟเฉฑเจŸ เจชเฉเจฐเจคเฉ€ เจชเฉเจ†เจ‡เฉฐเจŸ เจชเฉเจฐเจคเฉ€ DPI;
  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

เจ–เฉˆเจฐ, เจœเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจธเจฅเจพเจชเจฟเจค เจจเจนเฉ€เจ‚ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจœเจผเฉ€เจจเฉ‡เจฐเจฎเจพ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ. เจซเจฟเจฐ เจกเฉˆเจธเจ•เจŸเฉŒเจช เจธเจชเฉ‡เจธ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ‹ เจฎเจพเจจเฉ€เจŸเจฐเจพเจ‚ เจคเฉฑเจ• เจตเจงเจพเจ‡เจ† เจœเจพเจตเฉ‡เจ—เจพ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‰เจชเจฐเฉ‹เจ•เจค เจกเฉˆเจฎเฉ‹ เจตเฉ€เจกเฉ€เจ“ เจตเจฟเฉฑเจš เจฆเจฟเจ–เจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค

เจ‡เจน เจธเจผเจพเจ‡เจฆ เจธเจญ เจ•เฉเจ เจนเฉˆเฅค เจนเฉเจฃ, Raspberry Pi3 เจฆเฉ‡ เจฎเจพเจฒเจ• เจฆเฉ‹ เจฎเจพเจจเฉ€เจŸเจฐเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจ—เฉ‡.

เจฎเจพเจฐเจธ เจฐเฉ‹เจตเจฐ2เจ†เจฐเจชเฉ€เจ†เจˆ เจฌเฉ‹เจฐเจก เจฆเจพ เจตเฉ‡เจฐเจตเจพ เจ…เจคเฉ‡ เจšเจฟเฉฑเจคเจฐ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจ‡เฉฑเจฅเฉ‡ เจตเฉ‡เจ–เฉ‹.

เจธเจฐเฉ‹เจค: www.habr.com