ccschen 发表于 2023-7-6 03:02:25

关于SDIO的流控问题

FREERTOS + FATFS + EMWIN + MSC + SDIO + DMA

SD时钟分频为2M。
先说现象,作为从机,插入电脑,U盘盘符一直不出,后面发现是HAL_SD_STATE_BUSY,然后把流控关掉,盘符也就很快出了。
按道理说,流控是防止SDIO DMA上溢出或下溢出的。

那么这流控到底需要打开不,如果打开,偶尔一次枚举U盘成功,如果关闭,就一直成功。

eric2013 发表于 2023-7-6 09:59:21

我们的例子一直是使能的。
DMA_FlowControllerConfig(SD_SDIO_DMA_STREAM, DMA_FlowCtrl_Peripheral);

https://www.armbbs.cn/forum.php?mod=viewthread&tid=17658

V6-349-FreeRTOS实验_FreeRTOS+STemWin+FatFS+USB Devicet综合

ccschen 发表于 2023-7-6 11:59:48

现在枚举U盘的时候,read10命令不好用,老是出错,感觉要把DMA+SDIO加U盘功能调好,很麻烦。而且盘片也是经过多家厂商轮番筛选下来的,不如一线大厂的TF卡。

ccschen 发表于 2023-7-6 12:21:23

eric2013 发表于 2023-7-6 09:59
我们的例子一直是使能的。
DMA_FlowControllerConfig(SD_SDIO_DMA_STREAM, DMA_FlowCtrl_Peripheral);
...

有不有HAL库加DMA的版本的?

ccschen 发表于 2023-7-6 17:01:43

如果用了RTOS,生成工程的时候就强制用DMA,用DMA就有地址对齐的问题。这都不是问题。问题是设备上的FATFS都好好的,MSC反而不好用,插上电脑,半天不出盘符。

eric2013 发表于 2023-7-7 09:33:50

ccschen 发表于 2023-7-6 12:21
有不有HAL库加DMA的版本的?
HAL的是独立的一个fatfs例子。

https://www.armbbs.cn/forum.php?mod=viewthread&tid=93255

filex做了个带USB的
https://www.armbbs.cn/forum.php?mod=viewthread&tid=108546

eric2013 发表于 2023-7-7 09:35:53

ccschen 发表于 2023-7-6 17:01
如果用了RTOS,生成工程的时候就强制用DMA,用DMA就有地址对齐的问题。这都不是问题。问题是设备上的FATFS ...

MSC的接口函数调用不带DMA的API试试
页: [1]
查看完整版本: 关于SDIO的流控问题