实验板是阿波罗F429
在进行 sdio + dma测试的时候,sd卡时钟分频数至少需要设置为2,即 hsd.Init.ClockDiv = 2;
理论上设置为0(默认为0),或1,都没有超过25Mhz时钟,不应该出错。实际测试时,设置为0或1,出现各种错误,比如:中断处理回调错误,FIFO溢出错误,sd_findscr函数错误,等等,乱七八糟的错误。改为2后,就没问题了。
系统时钟180Mhz,SDIO适配器时钟45Mhz,测试成功。
系统时钟150Mhz,SDIO适配器时钟48Mhz,测试成功。
我看原子的程序里面,分频数是0,没有用到dma。难道使用dma需要降低时钟频率吗? |