大家好、
连接到 msp430F5329 MCU 的 SDHC 4GB (4类)卡。
我的 SPI 速度低于400Khz。
发送 CMD0后从 SD 卡获取响应0x01。
2. 在发送 CMD8后从 SD 卡获取响应0x05、这意味着我的 SD 卡是版本1、而不是版本2。
3.发送 ACMD41 (0x55+0x69)后从 SD 卡获取响应0x01。(如果我使用16MHz SPI 时钟频率进行测试、则获取响应0x00)。
CLEAR_CS_SDCARD;
sd_sendcmd (GO_IDLE_STATE、0、0x95);//软件复位和理想 cmd
//现在等待就绪响应
if (mmcGetResponse (go_idle_State)!= 0x01)
返回 MMC_INIT_ERROR;
CLEAR_CS_SDCARD;
spiB1Tx (DUMYBYTE);
if (RESPONSE=0x01)
{
CLEAR_CS_SDCARD;
spiB1Tx (DUMYBYTE);
sd_sendcmd (send_if_cond、0x1AA、0x87);//使用旧 SD 卡
//如果新 SD 卡要使用 CMD8、arg:0x1AA、CRC:0x87
Response=mmcGetResponse (send_if_cond);
执行{
// CLEAR_CS_SDCARD;
spiB1Tx (DUMYBYTE);
sd_sendcmd (app_CMD、0x0、0x65);//使用旧 SD 卡
//如果新 SD 卡要使用 CMD8、arg:0x1AA、CRC:0x87
Response=mmcGetResponse (APP_CMD);
// SET_CS_SDCARD;
spiB1Tx (DUMYBYTE);
spiB1Tx (DUMYBYTE);
// CLEAR_CS_SDCARD;
sd_sendcmd (app_send_op_cond、0x40000000、0xFF);// ACMD41 SCH=1
RESPONSE=mmcGetResponse (0x69);
// SET_CS_SDCARD;
watchdogReset();
} while (RESPONSE!=0x00);
如果 SPI 时钟为16MHz,则获取响应0x00,而 CMD1也获取响应,但不获取 CMD16的响应。 请帮助我解决问题。


