这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 如何使用USB2.0内置DMA

共1条 1/1 1 跳转至

如何使用USB2.0内置DMA

菜鸟
2024-09-02 15:40:41     打赏

按照musbhdrc指导手册给芯片写驱动,使用CPU方式逐个往USB的FIFO寄存器可以实现数据收发了,但是现在要改成使用USB内部的DMA。

遇到的问题是:数据通信用的bulk模式,无论数据长短(大于或小于512字节)都使用DMA的MODE1模式发送,用DMA第一次发送短数据数据正常,用DMA第二次发送的数据是全0,或者有时候第一次发数据就是发的全0。

按照手册定义的要设置寄存器:

INTRTXE = 00010000(使用端点4发送)

TXCSR2 = 10110100(TXCSR高8位)

CNTL1 = 0000 0110 0100 1111;

设置完CNTL1寄存器后就会发送数据,随后进入终端,如果是短数据会手动设置TxPktRdy = 1。

按照手册配的寄存器,但是不知道问题出在哪里,DMA发送完后读CNTL1寄存器可以看到D0位已经置0了,应该是关闭了DMA,不需要手动关的样子。不知道是不是我的寄存器配置的问题导致发送出去的数据是全0的。求各位大佬指点1




关键词: USB2.0     内置DMA    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]