[X]关闭

CH01_DMA_PL_LWIP\AD7606_TCP_8LANE实例的疑问

文档创建者:zdw1932
浏览次数:4525
最后更新:2024-01-09
 
本帖最后由 zdw1932 于 2019-1-7 11:14 编辑

1、通过研究AD7606_TCP_8LANE工程,发现其采集的AD数据每1024点有一个轻微的毛刺,为确认该问题是与adc_to_axistream模块中“1021”数值,对应每1023一个tlast信号,需要修改该数字,但修订该数值后,sdk并不能正常将数据发送到上位机;

2、继续研究CH01_DMA_PL_LWIP实例,这个实例中的顶层文件与
adc_to_axistream模块类似,SDK与其也类似;



我的问题如下:

1、这个1021/1022如何在sdk与PL中同时修改;

2、能否pl中我每512一个tlast信号,DMA的配置代码

                        Status = XAxiDma_SimpleTransfer(&AxiDma, (u32)RxBufferPtr[packet_index & 1] + HEADER_SIZE,                                                (u32)(ADC_PACKET_LENGTH), XAXIDMA_DEVICE_TO_DMA);每次发起传输依然未1024;我分别修改这个数值后,有时候模块并不能正常运行。

3、AD7606_TCP_8LANE实例中如何保证每两个1023之间AD数据不丢点的。


发表评论已发布 5

uisrc

发表于 2019-1-8 21:15:51 | 显示全部楼层

1、1021/1022 这个FPGA中传输的位宽是16bit =2BYTE 所以 DMA SDK的 PACKET_LENGTH设置为2048(2K BYTE)
2、Status = XAxiDma_SimpleTransfer(&AxiDma, (u32)RxBufferPtr[packet_index & 1] + HEADER_SIZE,                                                (u32)(ADC_PACKET_LENGTH), XAXIDMA_DEVICE_TO_DMA); 设置的长度代表BYTE的长度,FPGA 中代码 是并行传输的,所以需要换算成BYTE,比如DMA设置长度为1024BYTE 如果FPGA的FIFO 长度是128BIT(16BYTE) 那么FPGA传输的次数是1024/16=64就要产生一次last 让DMA去产生中断。
3、数据是一直采集,写入FIFO的,不会暂停。
越努力越幸运!加油!

zdw1932

发表于 2019-1-18 13:35:54 | 显示全部楼层

首先,非常感谢您的回复,我还有疑问:

1、DMA的中断,是必须有last 才能触发?
2、tlast间隔和DMA长度必须要相等?
3、如果可以,您要是有时间,可以告知下dma说明书中哪一页描述了用法。

uisrc

发表于 2019-1-25 11:46:08 | 显示全部楼层

1、last 是为了控制什么时候产生中断,不是必须last,具体是根据实际情况而定的,这里的例子控制last最方便
2、长度需要相等
3、dma的用法,看我们资料就可以了,很多都是从官方资料里面收集来的,官方的资料比较零碎。
越努力越幸运!加油!

。_lr7Im

发表于 2024-1-9 19:18:55 | 显示全部楼层

uisrc 发表于 2019-1-8 21:15
1、1021/1022 这个FPGA中传输的位宽是16bit =2BYTE 所以 DMA SDK的 PACKET_LENGTH设置为2048(2K BYTE)
2、S ...

3问题我有疑惑,一直采集,但是采集速度比上传的网速慢,应该丢数据了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则