AX7A200教程(7): 基于DDR3的串口发送和接收(64次突发)(二)

编程入门 行业动态 更新时间:2024-10-24 10:16:47

AX7A200教程(7): 基于DDR3的<a href=https://www.elefans.com/category/jswz/34/1769224.html style=串口发送和接收(64次突发)(二)"/>

AX7A200教程(7): 基于DDR3的串口发送和接收(64次突发)(二)

本章节主要使用ddr3做为缓存,串口接收的数据通过ddr缓存后通过发送模块发送出去。我们之前的串口发送数据通过ddr缓存是一个突发长度,本篇文章将会传输64个突发长度。整体的功能框图所下图所示

因本博文使用的是上个章节的图片数据,所以数据大小是1024*768*3 = 2359296(byte),也就是2359296个八位,因之前的输入的rx_data_convert模块是八转32位,而我们输入的数据是一个24位的图片数据,所以rx_data_convert模块会将高8位添0凑成一个32位数据

 本章节的图片数据存放到uart_data.txt文件里

将 uart_data.txt里的数据复制到串口调试助手

串口调试助手里的数据如下图所示

 将程序下载到黑金开发板

 注意串口调试助手的波特率设置为115200,发送和接收都设置为Hex

 点击发送后可以看到串口待发送的数据量刚好是2359296byte,也就是1024*768*3的图片数据

 可以看到黑金开发板的uart的rx灯一直在闪烁,说明一直在接收串口发送的数据

 串口接收结束后,可以看到串口发送开始往电脑发送数据

串口发送结束后,可以看到数据量刚好是3145728byte,和我们计算的一样,也就是1024*768*4,为什么是1024*768*4而不是输入的1024*768*3,因为我的输入转换模块将24位的图片数据高位添0一共凑成32位数据,所以是1024*768*4 = 3145728byte

 从上面串口截图数据可以看出高位都是添加0的,如下图所示

 程序说明

 突发长度设置为64

突发写使能设置为62产生一次突发写突发

    //突发写使能always@(posedge ui_clk or negedge i_rst_n)beginif(!i_rst_n)wr_len_en    <=  1'd0;    else if(ddr_wr_end)wr_len_en    <=  1'd0;    else if(rd_len_en)wr_len_en    <=  1'd0;    else if(wr_len_done)wr_len_en    <=  1'd0;                             else if(rd_data_count >= 9'd62)wr_len_en    <=  1'd1;                        end 

突发读使能设置为64产生一次突发读突发

//突发读使能always@(posedge ui_clk or negedge i_rst_n)beginif(!i_rst_n)rd_len_en    <=  1'd0;else if(ddr_rd_end)rd_len_en    <=  1'd0;            else if(wr_len_en)rd_len_en    <=  1'd0;     else if(rd_len_done)rd_len_en    <=  1'd0;                 else if(ddr_wr_end && wr_data_count <= 9'd64)rd_len_en    <=  1'd1;                     end 

 数据地址设置为1024*768-8

  前面我们提到数据量是1024*768*4,为什么是乘以4,因为这里的ddr3数据宽度是32位的,所以乘以4,当然如果ddr的数据宽带是16位的,那么就是乘以2

整体的工程如下,还是挺长的,我这里只对部分重要的设置进行说明,其它的大家可以参考工程自己慢慢看

这个工程测了几次了每次测试总是接收的数据量不对,以为是工程的问题,然后通过ila各种抓数据发现读和写的地址都没有错,最后发现接收和发送的时间比较长,一直将开发板放到哪里自己发送和接收,然后电脑运行一段时间360出现弹窗屏保,居然会让串口中断一下,所以一直导致接收的数据不对,搞了好几天才发现是弹窗导致的,真是无语了,然后将弹窗关闭后,果然接收的数据是对的,希望大家不要碰到我踩过的坑

工程链接: 
提取码:gv3w

更多推荐

AX7A200教程(7): 基于DDR3的串口发送和接收(64次突发)(二)

本文发布于:2024-03-05 16:29:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1712805.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:串口   教程

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!