JL杰理AC696N开发板做存储设备适配(1):SD/TF卡与MMC卡的基础配置与兼容
引言
做蓝牙音箱方案,SD/TF卡播放是标配功能。但市面上存储卡种类多,MMC卡和SD卡长得像,协议却有差异。如果程序里配的是CMD检测,MMC卡可能直接不识别。
在JL杰理AC696N开发板调卡播放时,就遇到过这种兼容性问题。把卡类型区分、检测方式选择和MMC卡使能的方法整理一下,方便做杰理蓝牙音频系列芯片开发时少踩坑。

一、SD/TF卡配置要点
JL杰理AC696N开发板支持多种即插即用的存储设备。正确配置是稳定读卡的关键。
检测方式 :支持CMD检测、CLK检测、IO检测三种。
MMC卡与SD卡的区别 :

- 正常SD卡比MMC卡厚约0.7mm,外表几乎一样,用手摸能感觉到厚薄差别。
- MMC卡和SD卡的CMD检测命令不一致。如果程序配置SD卡检测方式为CMD检测,会出现无法兼容MMC卡的情况。

- 如需兼容SD卡和MMC卡,SD卡检测方式应选为CLK或IO检测。

配置示例 (在板级配置头文件中):
#define TCFG_SD0_DET_MODE SD_CLK_DECT
#define TCFG_SD0_DET_IO_LEVEL 0
二、如何使能MMC卡功能
如果需要支持市场上的MMC卡,程序上需要做以下配置:
- 打开MMC卡配置:
SDK\apps\soundbox\log_config\lib_driver_config.cc复制下载
const int sdx_can_operate_mmc_card = 1;
- SD卡的检测改为CLK或IO检测, 不能使用CMD检测 。

卡检测流程 :
检测到卡插入或拔出 → 触发公共设备事件处理 → 解码设备上下线,设备挂载 → 设备扫盘
总结
SD卡和MMC卡兼容的关键就两点:
一是检测方式别用CMD,改用CLK或IO检测;
二是把sdx_can_operate_mmc_card开关打开。
配置完记得用两种卡分别在AC696N开发板上测试一下。
另外,如果卡座硬件不支持CLK检测,非要改回CMD检测的话,后续可能会有兼容性问题,建议多做测试。
|