主题中讨论的其他器件: MSP-EXP430F5529、 MSP430FR5994、 MSP-EXP430FR5994、 MSP430F5529、 MSP430WARE
工具/软件:Code Composer Studio
您好!
我一直在从事一个项目、该项目将数据从微控制器写入 SD 卡。 我使用的微控制器是 MSP430f6736。 我在此项目中使用了3个不同的 SD 卡(32GB、8GB、256MB)。 这是为了验证我的命令。 我正在尝试发送 CMD0 (GO_IDLE_STATE)命令、但 响应 为0x07 (大部分)、0x03、0x05。 32GB 和256MB 提供 0x07 (大部分)、0x03响应,而8GB 提供 0x07 (大部分)、0x05。 有时我会得到其他回答、但这些主要是发生的。 将这些响应计算在内
处于空闲状态
-擦除复位
非法命令
我应该得到的响应是0x01。 我无法理解"擦除复位"是什么意思? 我发送以下命令作为命令0x40、0x00、0x00、0x00、0x00、 0x95作为 CMD0命令。 我使用32kHz 时钟作为 SCLK。 我也很困惑我是如何获得非法命令的。
代码设置如下(如果需要、我可以将代码发送到您的电子邮件地址);
*初始化 SPI 和 GPIO 引脚及其起始变量值。
*将 CS 和 MOSI 设置为高电平
*检查插卡检测针脚是否插入插卡->如果未插入则继续->循环直至插入。
*发送74个虚拟值(0xff)
*将 CS 设置为低电平(然后延迟5个周期)
*发送 CMD0命令
*将 CS 设置为高电平并返回 RxBUF
我已经阅读了一些文章、其中说我们需要发送虚拟值(SCLK)并倾听、直到您获得正确的值。 当我这么做时、我不会一直得到除0xFF 以外的任何东西。 但是、当我重复上述序列时、我会得到值0x07、0x03、0x05 Time to Time、并且 RxBUF 会更改它的值。
这里可能会出现什么误差? 什么是擦除复位、为什么会出现非法命令错误? 我的 SCLK 为38kHz。 这是问题吗?