AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示

本章节主要使用uart接收图片数据,然后通过ddr3缓存,最后通过hdmi接口显示输出,功能框图如下图所示

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第1张图片

 uart接收的图片数据位1024*768*3分辨率大小的数据,一共2359296个字节,输入图片如下图所示

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第2张图片

  图片属性

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第3张图片

 串口接收数据,并且通过串口发送接口发出来,可以看到发送的数据量就是1024*768*3

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第4张图片

 因接收的是图片,所以不需要对ddr写使用vs场信号进行清零,ddr读外接hdmi显示屏是动态显示,所以需要对ddr读端口使用vs场信号进行清零,可以看到只有输出的vout_vs进行清零,输入的vin_vs悬空

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第5张图片

ddr3突发长度设置为64

计数到64执行写突发

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第6张图片

当一幅图片通过串口传输完成后,会发出一个写完成信号,因前面并没有使用vs场信号清零,所以这个ddr_wr_end信号将会一直拉高,并且做为突发读的使能信号,当计数到64时执行一次突发读

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第7张图片

 读通道的vout_vs会产生一个场信号,并且产生rd_reset复位信号

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第8张图片

 所以从下面可以看出,vout_vs在一行刚刚开始,会产生一个复位信号,主要对ddr的地址进行清零,并且对fifo清零 

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第9张图片

 rd_reset复位信号,主要对ddr读地址和fifo进行清零

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第10张图片

 AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第11张图片

当串口接收图片完成后,可以看到ddr_wr_end被拉高,并且地址也是和设置的一样1024*768-8=786424

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第12张图片

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第13张图片

抓取读通道ddr_rd_end读结束,可以看到ddr_rd_end拉高后读结束地址和写地址是一致的786424

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第14张图片

串口发送和接收的数据量是一样的

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第15张图片

 再来看uart输入的第一个数据是7F 60 3F,下面我们通过ila抓取hdmi输出显示通道看能否抓到

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第16张图片

 因接收的数据进行了一次RGB转换操作,输入的是7F 60 3F,那么输出的颠倒后应该是3F 60 7F

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第17张图片

 可以看到当读有效可以抓到3F 60 7F,而且从上面的输入数据起始可以看出一共输入了四个7F 60 3F,所以可以看到输出数据前面一部分值都是一样的3F 60 7F,下一个数据也和输入是一样的42 63 82

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第18张图片

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第19张图片

结束信号数据对应00252525,而且还可以看到起始数据也是对应的3F 60 7F

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第20张图片

AX7A200教程(6): 串口接收图片数据,通过hdmi接口输出显示_第21张图片

 hdmi输出1024*768显示效果

工程链接:https://pan.baidu.com/s/1aZrw9_sJVBTq7PqaJeDeFQ 
提取码:0bs7

你可能感兴趣的:(AX7A200,ddr3,fifo,fpga开发,hdmi显示)