所有带有40路表头(A+、B+、Pi2、Pi3、Zero)和计算模块的树莓派板上均提供最高24位的并行RGB接口。该接口允许并行的RGB显示器以RGB24(红色、绿色和蓝色8位)或RGB666(每种颜色6位)或RGB565(红色5位、绿色6位和蓝色5位)的形式连接到树莓派GPIO。 该接口由图形处理器固件控制,用户可以通过特殊的配置参数和启用正确的Linux设备树覆盖来对其进行编程。
在树莓派GPIO的存储体0上可选择的替代功能之一是DPI(显示并行接口),它是一个简单的时钟并行接口(最多8位的R、G和B;时钟、使能、hsync和vsync)。该接口可作为GPIO组0上的备用功能2 (ALT2)使用:
请注意,在565、666或24位模式下,DPI输出引脚上的颜色值有多种呈现方式(参见下表和下面dpi_output_format参数的output_format部分):
dtparam=i2c_arm=off
dtparam=spi=off
输出格式(时钟、颜色格式、同步极性、使能)可以通过传递给config.txt中dpi_output_format参数的幻数(前缀为0x的无符号整数或十六进制值)来控制,该参数由以下字段创建:
output_format = (dpi_output_format >> 0) & 0xf;
rgb_order = (dpi_output_format >> 4) & 0xf;
output_enable_mode = (dpi_output_format >> 8) & 0x1;
invert_pixel_clock = (dpi_output_format >> 9) & 0x1;
hsync_disable = (dpi_output_format >> 12) & 0x1;
vsync_disable = (dpi_output_format >> 13) & 0x1;
output_enable_disable = (dpi_output_format >> 14) & 0x1;
hsync_polarity = (dpi_output_format >> 16) & 0x1;
vsync_polarity = (dpi_output_format >> 17) & 0x1;
output_enable_polarity = (dpi_output_format >> 18) & 0x1;
hsync_phase = (dpi_output_format >> 20) & 0x1;
vsync_phase = (dpi_output_format >> 21) & 0x1;
output_enable_phase = (dpi_output_format >> 22) & 0x1;
output_format:
1: DPI_OUTPUT_FORMAT_9BIT_666
2: DPI_OUTPUT_FORMAT_16BIT_565_CFG1
3: DPI_OUTPUT_FORMAT_16BIT_565_CFG2
4: DPI_OUTPUT_FORMAT_16BIT_565_CFG3
5: DPI_OUTPUT_FORMAT_18BIT_666_CFG1
6: DPI_OUTPUT_FORMAT_18BIT_666_CFG2
7: DPI_OUTPUT_FORMAT_24BIT_888
rgb_order:
1: DPI_RGB_ORDER_RGB
2: DPI_RGB_ORDER_BGR
3: DPI_RGB_ORDER_GRB
4: DPI_RGB_ORDER_BRG
output_enable_mode:
0: DPI_OUTPUT_ENABLE_MODE_DATA_VALID
1: DPI_OUTPUT_ENABLE_MODE_COMBINED_SYNCS
invert_pixel_clock:
0: RGB Data changes on rising edge and is stable at falling edge
1: RGB Data changes on falling edge and is stable at rising edge.
hsync/vsync/output_enable_polarity:
0: default for HDMI mode
1: inverted
hsync/vsync/oe phases:
0: DPI_PHASE_POSEDGE
1: DPI_PHASE_NEGEDGE
注意,单个位字段都充当“反转默认行为”。
在2018年8月或更高版本的固件中,以前用于设置dpi计时的hdmi计时配置条目已被新的DPI计时参数取代。如果dpi _ timings参数不存在,系统将返回使用hdmi _ timings参数以确保向后兼容。如果两者都不存在并且请求定制模式,则使用VGAp60的默认参数集。
dpi_group和dpi_mode配置参数用于设置预定模式(如HDMI所使用的DMT或CEA模式),或者用户可以生成定制模式。
dpi_group=2
dpi_mode=87
这将告诉驱动程序为dpi面板使用自定义的DPI定时(旧固件使用hdmi定时)。
dpi _ timings参数被指定为一组以空格分隔的参数:
dpi_timings=<h_active_pixels> <h_sync_polarity> <h_front_porch> <h_sync_pulse> <h_back_porch> <v_active_lines> <v_sync_polarity> <v_front_porch> <v_sync_pulse> <v_back_porch> <v_sync_offset_a> <v_sync_offset_b> <pixel_rep> <frame_rate> <interlaced> <pixel_freq> <aspect_ratio>
<h_active_pixels> = horizontal pixels (width)
<h_sync_polarity> = invert hsync polarity
<h_front_porch> = horizontal forward padding from DE acitve edge
<h_sync_pulse> = hsync pulse width in pixel clocks
<h_back_porch> = vertical back padding from DE active edge
<v_active_lines> = vertical pixels height (lines)
<v_sync_polarity> = invert vsync polarity
<v_front_porch> = vertical forward padding from DE active edge
<v_sync_pulse> = vsync pulse width in pixel clocks
<v_back_porch> = vertical back padding from DE active edge
<v_sync_offset_a> = leave at zero
<v_sync_offset_b> = leave at zero
<pixel_rep> = leave at zero
<frame_rate> = screen refresh rate in Hz
<interlaced> = leave at zero
<pixel_freq> = clock frequency (width*height*framerate)
<aspect_ratio> = *
* The aspect ratio can be set to one of eight values (choose closest for your screen):
HDMI_ASPECT_4_3 = 1
HDMI_ASPECT_14_9 = 2
HDMI_ASPECT_16_9 = 3
HDMI_ASPECT_5_4 = 4
HDMI_ASPECT_16_10 = 5
HDMI_ASPECT_15_9 = 6
HDMI_ASPECT_21_9 = 7
HDMI_ASPECT_64_27 = 8
dtoverlay=vga666
enable_dpi_lcd=1
display_default_lcd=1
dpi_group=2
dpi_mode=82
dtoverlay=dpi24
overscan_left=0
overscan_right=0
overscan_top=0
overscan_bottom=0
framebuffer_width=800
framebuffer_height=480
enable_dpi_lcd=1
display_default_lcd=1
dpi_group=2
dpi_mode=87
dpi_output_format=0x6f005
dpi_timings=800 0 40 48 88 480 0 13 3 32 0 0 0 60 0 32000000 6