WCH沁恒单片机
直播中

笑过就走

9年用户 884经验值
擅长:可编程逻辑 电源/新能源 MEMS/传感技术
私信 关注
[问答]

请问HSPI的DMA数据和USB3.0的DMA数据是怎么交互的?

最近有个项目想实现USB3.0和FPGA的双向高速通讯,查到贵公司的CH569比较合适,查看了相关资料和例程,明白数据从HSPI接口通过DMA到RAMX,也能够明白USB3.0数据通过DMA到RAMX,但是两个不同的RAMX地址数据是怎么交互的?HSPI的DMA和USB3.0的DMA怎么怎么连一起的?例程没有相关说明,麻烦帮忙指导一下,如果有USB3.0到HSPI的例程就更好了!
  

回帖(4)

邹昀

2022-6-15 15:24:29
外设在初始化的时候需要配置DMA目标地址,当然也可以在传输过程中配置DMA地址。
规划环形缓冲区,交替的在传输完一包数据后修改DMA偏移来实现数据交互。RAMX没有限制访问,外设都是可以调用DMA访问任意地址的。
举报

李晓欢

2022-6-15 15:24:34
HSPI采用双缓冲,一个缓冲填满之后,启动USB3.0的DMA将缓冲的数据上传给PC机,USB3.0的DMA首地址和填满的HSPI缓冲的首地址一样!是这个思路吧?我看例程上,USB的收发缓冲是同一个,能否分开成2个独立的缓冲?
举报

王琳

2022-6-15 15:24:39
是的。核心思路就是避免出现memcpy类的CPU执行的复制操作,修改DMA地址可以将代码开销做到最小。
举报

jf_86591120

2022-11-30 11:20:25
CH569的程序实现USB3.0到HSPI双向通讯的朋友+QQ420246392
举报

更多回帖

发帖
×
20
完善资料,
赚取积分