TI中文支持网
TI专业的中文技术问题搜集分享网站

cc3200 sd卡 dma 配置后无法传输

cc3200 sd卡配置DMA传输后,使用DMA写数据时,发送SendCmd(CMD_WRITE_MULTI_BLK|SDHOST_DMA_EN, ulBlockNo)命令后,DMA进入写完成中断SDHOST_INT_DMAWR,但端口没有数据写出。想问一下有相关例程吗?如果没有直接的例程能否回答以下问题:

1.SDHOST_INT_DMAWR是电平触发还是脉冲触发?文档上写的是传输完成置位,但没有在寄存器中找到相应标志位。由此触发的中断是表示DMA将数据搬到SD卡的BUFF里传输完成吗?

2.使用DMA搬数据时,是先将数据搬完再发送写命令还是先发写命令再搬数据呢?如果先发写命令的话,会不会由于DMA侧总线阻塞而造成数据超时?如果先搬数据再发命令,会不会将命令之前的数据冲刷掉?DMA搬数据时需要增加除DMA,INT之外其他配置吗?

3.哪个中断表示实际传输完成?SDHOST_INT_TC这个标志是不是只表示数据总线状态,也就是数据总线上电平的实时测量值?

Viki Shi:

只有DMA的例程,uart_dma,路径:C:\ti\CC3200SDK_1.3.0\cc3200-sdk\example

其他问题assign给wifi专家了,请等待回复

q z:

回复 Viki Shi:

谢谢您!uart_dma的例子我看了,4种传输方式都有,挺全的。但我对dma的中断还是比较模糊,比如中断产生时刻,中断的类型以及如何清除中断。比如sd host模块中,我使用的SDHOST_INT_DMAWR中断,它是dma写传输完成之后产生的吗?因为此中断是在sd host模块中产生,他也可能是dma写传输完成之后并且写入sd卡之后产生的。另外,进入中断后清除,一般使用MAP_SDHostIntClear(SDHOST_BASE,SDHOST_INT_DMAWR);直接清除就好了,但这个中断清除后还会重复进入,我现在都不知道怎么清除了,只能进去之后先关上。

有详细讲sd host模块各中断的文档吗?或者相关例程让我参考下。

赞(0)
未经允许不得转载:TI中文支持网 » cc3200 sd卡 dma 配置后无法传输
分享到: 更多 (0)