Dedalus 发表于 2020-4-2 19:39:31

关于ov5640摄像头的rgb565输出寄存器的疑问

按照例程CH0_ov5640_demo中配置成rgb565的寄存器是0x4300,并且配置成了0x60,根据datasheet如图:

该寄存器配置为0x60对应的2个8bit的应该是{b,g}和{g,r},然后在代码中:

这里byte_flag为1的时候拼接两个8bit数据,为0的时候接收高位到cmos_data_d0中,所以按照这样拼接出的rgb565数据是不是
应该等于{b,g,g,r},按照这样的输出应该是bgr565数据,
代码中处理后输出rgb_o,然后经过fifo,ddr3缓存最后输出到hdmi核。
疑问就是后续处理这个数据都是当作rgb565处理的,而不是bgr565数据,就像下图,从高位到低位分别复制给了rgb三个通道

在ov5640的datasheet中也不像ov7725的datasheet明确给出了rgb565的两个8bit,如下图:

所以我的疑问就是在例程的ov5640配置中,这个高低位两个8bit数据是{b,g,g,r}这样的bgr565形式,还是后续处理的rgb565形式

uisrc 发表于 2020-4-3 18:16:32

RGB565 正好是2个输出输出一个像素,但是这里的代码实际上不容易看出来RGB的通道,因为还要看HDMI的RGB通道,这里面我没有严格查过RGB通道,一般测试出来如果R B 反了,只要FPGA里面调换下数据位置就可以解决
页: [1]
查看完整版本: 关于ov5640摄像头的rgb565输出寄存器的疑问