WL板子EK-STM32F103调试读SD卡经验总结
一开始碰到的问题:发送CMD0能执行返回01,CMD1超时没响应。查到原因:模板程序控制SD供电逻辑反了。#if 0
#define MSD_POWER_ON() GPIO_ResetBits(GPIOD, GPIO_Pin_10)
#define MSD_POWER_OFF() GPIO_SetBits(GPIOD, GPIO_Pin_10)
#else
#define MSD_POWER_ON() GPIO_SetBits(GPIOD, GPIO_Pin_10)
#define MSD_POWER_OFF() GPIO_ResetBits(GPIOD, GPIO_Pin_10)
#endif
第二个问题:单步执行CMD0,CMD1,有响应,直接运行没响应。查到原因,上电时间少于1ms,SD卡内部复位没准备好,初始化前加廷时1ms.
/* delay 1ms*/
delay(5000);
/* MSD chip select low */
MSD_CS_LOW();
/* Send CMD0 (GO_IDLE_STATE) to put MSD in SPI mode */
MSD_SendCmd(MSD_GO_IDLE_STATE, 0, 0x95);
第三个问题:有时执行还是没有响应。原因,SD卡初始化SPI时钟要在100kHz到400kHz之间,更改SPI速率为180kHz.
第四个问题:读SD卡CSD寄存器没返回数据。原因:供电不足,平时只有2.9V,SPI通迅时,出现瞬间低于2.7V现像。短接直接供3.3V,如附图。继续其它试验。
https://www.stmcu.org.cn/../data/myspace/5/28444/bbs/1220442973/b3f40f85.jpg
出处:kimfufree
回复:WL板子EK-STM32F103调试读SD卡经验总结
这样的好帖子 得多支持!
页:
[1]