主题中讨论的其他器件:HALCOGEN
工具/软件:Code Composer Studio
当前设置:
- CCSv7
- Halcogen v4.07
- RM48L952ZWT
- SanDisk EDGE 4GB MicroSD HCI (OEM 卡)(由于 SPI 模式将所有 SD 卡视为0级、因此速度等级应该不相关)
- 卡格式化为 FAT32
我目前正在从事一个项目、该项目将使用 SPI 读/写 microSDHC 卡。 CCS 工程还会尝试启用串行通信、以设置用户终端界面。 SCI 和 SPI 通信已通过验证。 我遇到的 SD 卡问题。 我研究了在 SPI 模式下引导所需的命令序列。 根据我的理解、我应该执行以下过程:
- 将 CS 引脚设置为高电平(取消选择从器件)
- 切换时钟至少74次(我通过发送虚拟字节0xFF 10次来完成此操作80次)
- 将 CS 引脚置为低电平(选择从器件)
- 发送 CMD0;ARG:0x0;CRC:0x95 (响应:0x01)
- 发送 CMD8;ARG:0x000001AA;CRC:0x87 (响应是 R7数据包、即 R1、后跟发送的 ARG 值的回显:0x01; 0x000001AA)
- 发送 CMD55+ACMD41
- CMD55;ARG:0x0、CRC:0x65 (可能无关紧要?)
- ACMD41;arg:0x40000000、CRC:0x77 (可能无关紧要?)
- ACMD41的 ARG 将 HCS 位设置为1、因为我使用的是高容量(HC)卡
- 重新发送 CMD55+ACMD41 n 次(等待 SD 卡退出 IDLE 状态)
此时、我已验证了导致首次迭代 CMD55+ACMD41的所有命令及其响应。 我发送 CMD55、得到响应0x01 (R1按预期);然后是 ACMD41、我得到 R1响应0x01。 这就是问题发生的地方。 对于两个命令(CMD55 + ACMD41)、每次后续迭代都会导致 R1响应为0xFF。 我一直在尝试弄清楚如何解决这个问题、我发现的唯一信息涉及到 DO 引脚(数据输出;代表 MISO 线路)可能会留在高阻态 可能的补救办法是在 MISO 线路上放置一个47k 上拉电阻器、我无法这样做、因为我无法更改我正在使用的硬件。 这样、我就需要使用内部上拉电阻器。 我看到、在 SPI3的端口选项卡中、HALCoGen (PSL)中有一个内部上拉选项、但默认情况下已经选中了该选项。 我还看到、MISO 线路上的内部上拉仅在 UC 为3.3V 时使用;如果我的 UC 为5V、则不应使用内部上拉、除非 MISO 线路具有适当的5 -> 3.3V 逻辑转换。 简而言之、我卡死了、无法进行 SD 卡存储/通信。 我目前有一个 GitHub、它为任何希望详细了解我目前拥有的 CCS 项目提供了一个 zip 文件。 CCS 项目中的所有内容都是按照使用 Hercules LaunchPad 和 HALCoGen 的项目指南开发的。 项目指南分为三个部分、全部可从我链接的页面导航(请参阅链接的博客文章底部的"相关博客"表)。 以下是两种资源的 URL:
GitHub URL (具有.zip 的工程):
TI Hercules Launchpad 项目指南:
在过去的四天里、我已经记录了43个小时的项目、但尚未开始工作。 像往常一样、我们非常感谢您提供有关此主题的任何建议/信息!

