打印
[技术问答]

分不多,问题就是金钱!NUC472的USB-MassStorage采用DMA发送失败

[复制链接]
2040|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jackem|  楼主 | 2014-8-29 13:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jackem 于 2014-8-29 13:45 编辑

我用的是nuc472芯片,调式MassStorage协议通信,EP接收采用中断方式,EP发送采用DMA方式,现在遇到困难,DMA发送失败啊,就是启用端口DMA传输后,g_usbd_DmaDone得不到置位,导致死在循环内。请问哪些情况会导致DMA完成无法被触发?
沙发
jackem|  楼主 | 2014-8-29 13:41 | 只看该作者
补充一下,MCU端EP中断接收正常。上位机给nuc472发送数据能成功,就是等不到nuc返回的数据,调式发现MCU死在了如下循环里面,一筹莫展啊。。。。。。。
void USBSendDataByDMA(uint32_t u32Addr, uint32_t u32Len)
{
    /* Enable BUS interrupt */
    UBSD_ENABLE_BUS_INT(USBD_BUSINTEN_SUSPENDIEN_Msk | USBD_BUSINTEN_RSTIEN_Msk | USBD_BUSINTEN_VBUSDETIEN_Msk |
                                                USBD_BUSINTEN_DMADONEIEN_Msk);
    /* bulk in, dma read, epnum = 1 */         //BULK-IN端口为EPC
    USBD_SET_DMA_READ(BULK_IN_EP_NUM);
    USBD_SET_DMA_ADDR(u32Addr);
    USBD_SET_DMA_LEN(u32Len);
    g_usbd_DmaDone = 0;
    g_usbd_ShortPacket = 1;
    USBD_ENABLE_DMA();
    while(g_u8MscStart)
        {
        if (g_usbd_DmaDone)
        {
        break;
        }
        if (!USBD_IS_ATTACHED())
        {
         break;
        }
    }
}

使用特权

评论回复
板凳
haolaishi| | 2014-8-29 14:02 | 只看该作者
建议你烧官方的程序试试,然后在官方的上面改,比如DMA的时钟,触发,等等,可以参考官方DMA的初始化例程和应用手册

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
jackem + 2 淡定
地板
jackem|  楼主 | 2014-8-29 15:25 | 只看该作者
自己已经解决。必须在main中一直检测,而不能在别的函数中调用USBSendDataByDMA,估计是寄存器端点位置的问题。

使用特权

评论回复
5
haolaishi| | 2014-8-30 08:30 | 只看该作者
jackem 发表于 2014-8-29 15:25
自己已经解决。必须在main中一直检测,而不能在别的函数中调用USBSendDataByDMA,估计是寄存器端点位置的问 ...

usb一直是我不敢触碰的地方,给你赞一个

使用特权

评论回复
6
zhang..yb| | 2014-8-30 11:49 | 只看该作者
这芯片的 USB 很难搞,我也卡在这, 用 Bus Hound  发Bulk Out  512 字节, 下位机接收到, 但用 libusb 的 Bulk write 函数发 512 字节,下位机死活不收,libusb 能找到该 USB设备,就是不能收发。

使用特权

评论回复
7
sdnumcu| | 2014-8-30 22:49 | 只看该作者
USB是个硬骨头

使用特权

评论回复
8
zxf0168| | 2014-8-30 23:07 | 只看该作者
我是来接分的

使用特权

评论回复
9
jackem|  楼主 | 2014-9-1 14:36 | 只看该作者
好样的,这么想要它,那分就给你好了!

使用特权

评论回复
10
le062| | 2014-9-12 21:47 | 只看该作者
道听途说 ,该usbd的dma有问题

使用特权

评论回复
11
598330983| | 2014-9-15 19:40 | 只看该作者
楼下的你怎么看?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:没有完美的追求,只有执着的理想!

3

主题

64

帖子

1

粉丝