cyt4bb DMA传输时间异常

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
ee1
Level 2
Level 2
5 questions asked 5 replies posted 5 sign-ins

用tcpwm 触发ADC,ADC触发dma。存储采集搬运2048个点后进入中断。进入中断的时间间隔大概250ms,目标数组是16位,datasize为16位。假如将srcTxfrSize设为1,进入中断时间减短,为150ms,用一个同样是16位的数组代替ADC result寄存器作为源数组,并且将srcTxfrSize设为0,进入中断时间是正确的为250ms,请问怎么解决。谢谢

0 点赞
7 回复数
Jimmy_L
Moderator
Moderator
Moderator
250 replies posted 250 sign-ins 50 solutions authored

你好,

这个位参数定义为data size,也就是传输的数据格式大小,分为

Jimmy_L_0-1707210003149.png

 

您可以参考application note

https://myicp.infineon.com/sites/TRAVEODocumentation/Lists/defaultdoclib/Traveo%20II/Traveo%20II%20B...

 

0 点赞
ee1
Level 2
Level 2
5 questions asked 5 replies posted 5 sign-ins

你好,我已经看过相关的资料了,现在问题就是假如dataSize设为32bit,srcTxfrSize,destTxfrSize都为0和dataSize设为16bit,srcTxfrSize为1,destTxfrSize为0的情况中理论上需要250ms传输完成的东西,现在150ms完成。假如dataSize设为16bit,srcTxfrSize,destTxfrSize都为0的话250ms时正常完成。我不知道是不是某些数据没传导致的时间缩短。timer触发adc,adc触发dma,理论上timer的速度和dma的速度一样。

0 点赞
Jimmy_L
Moderator
Moderator
Moderator
250 replies posted 250 sign-ins 50 solutions authored

你好,

我理解是这样,如果data size是32 bit,建议srcTxfrSize和destTxfrSize都设为2,类比16 bit设为1,8 bit设为0,这样理论上可以按照DMA的最快速率进行传输。

0 点赞
ee1
Level 2
Level 2
5 questions asked 5 replies posted 5 sign-ins

你好,datasize为16bit,我将srcTxfrSize和destTxfrSize都设为1,目标数组偶数个元素没有值,我觉得这个srcTxfrSize和destTxfrSize是datasize倍数的关系。

0 点赞
Jimmy_L
Moderator
Moderator
Moderator
250 replies posted 250 sign-ins 50 solutions authored

你好,

是的,你理解是对的,srcTxfrSize和destTxfrSize是datasize倍数的关系。

关于您说的这个时间问题,可能是trigger的问题。比如你现在srcTxfrSize为0,那就是16 bit触发,然后传输,但如果srcTxfrSize为1,即32bit触发,从理论上来讲传输同样的数据触发次数少一倍,效率自然高。

您可以把dest address那里的数据读回来验证传输数据是否有缺失。

0 点赞
ee1
Level 2
Level 2
5 questions asked 5 replies posted 5 sign-ins

我发现只要传输32位数据时间就会减少,datasize TxfrSize 都是32bit,数据数组也是32bit我是用定时器触发dma转换的,按理说时间不应该减少,应该是个固定值

0 点赞
Jimmy_L
Moderator
Moderator
Moderator
250 replies posted 250 sign-ins 50 solutions authored

你好,

抱歉不是很明白您的意思。您说的时间减少这个对比是基于什么因素得到的?如果是说TxfrSize选用32bit对比其选用8/16bit会减少那应该是正确的。

0 点赞