您好,我在使用RT1052的USDH1外设操作sd卡的时候,发现USDH读取和写入sd卡block时间太长的问题,我使用的sdk版本是SDK_2_13_0,用的是sdmmc_examples/sdcard_fatfs_freertos,配置sd时钟为198MHz,sd卡正确识别为SDR104,并且fatfs文件操作均正常,示波器观察clk确实是198MHz
但是底层函数sd卡读取和写block时间太长了,理论读取两个block(512byte*2)为1024byte,在四线情况下,需要2048个时钟,198MHz情况下,理论上需要时间为1/198*2048=10.3us,但是实际操作两个block时间为3.87ms(链接脚本中,代码运行在SDRAM和Nor Qspi Flash我都尝试了,问题一样)
这严重超出正常预期,block读写时间过长导致我的上层FATFS读写1M的文件都需要1到2秒时间,SD卡的高速读写能力对项目至关重要,并且我认为带SD3.0外设性能强悍的RT系列不应该是这个速度,我想知道这种问题可能出现的原因是什么,该如何解决。
附:
我的系统时钟配置如下
我几乎没修改SDK中sdmmc_examples/sdcard_fatfs_freertos的代码
我能确认测试过程比较严谨
应用重要代码
底层打标记
串口输出的连续的block读写打印信息
然后就是上面示波器的CLK波形,一块一块的出现在示波器上面,并且时间我用光标指示出来了
Best wishes
would be possible that you put your question in English
regards
I saw your other thread