新闻详情

新闻详情

首页 / 资讯中心 / 详情

嵌入式分享#28:我在RK3576踩坑了

发布时间:2026/10/1 7:19:53来源:尧图网络
嵌入式分享#28:我在RK3576踩坑了
我在 RK3576 上踩坑了SD 卡 CD 检测与初始化问题按照经验SD 卡通常是“信号直连 SoC、驱动成熟”的模块似乎不需要太多调试。但这次在 RK3576 上却遇到了两个问题SD 卡拔插无反应以及更换 CD 检测脚后初始化失败。先给结论RK3576 不能使用普通 I/O 口替代 CD 检测脚必须正确使用SDMMC0_DETN否则可能导致 SD 卡无法完成初始化。1. 硬件连接与 CD 检测系统通过 SDMMC0_CD 引脚的电平状态判断是否插入 SD 卡插入 Micro SD 卡时卡座检测弹片与外壳接触CD 引脚接地变为低电平系统检测到低电平后判断 SD 卡已插入拔出 SD 卡后CD 引脚恢复高电平系统判断 SD 卡已移除。因此CD 检测脚并不是一个可以随意替换的普通 GPIO。SD 卡识别过程可以把识别过程简单理解为主控向 SD 卡发送带有 48 bit 数据的 48 个时钟SD 卡返回 48 个时钟和 48 bit 响应数据控制器根据响应继续完成初始化和电压切换。2. 基础软件配置SDMMC 节点的配置示例sdmmc { max-frequency 200000000; no-sdio; no-mmc; bus-width 4; cap-mmc-highspeed; cap-sd-highspeed; disable-wp; sd-uhs-sdr104; vqmmc-supply vccio_sd_s0; status okay; };3. 问题一SD 卡拔插无反应现象配置 DTS 后插入 SD 卡系统没有识别反应。查看引脚加载正常说明驱动侧暂时没有明显问题接下来应重点排查硬件连接和 CD 检测信号。可以先查看 pinctrl 的加载情况cat/sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinmux-pins|grepsdmmc原因分析系统依赖 SDMMC0_CD 引脚的电平变化判断插拔。如果插拔都没有反应说明 CD 检测脚可能没有产生电平变化。进一步排查发现硬件使用的不是SDMMC0_DETN而是普通 I/O 口GPIO2_D6。解决方式参考 RK 官方文档使用正确的 CD 检测配置。例如sdmmc { pinctrl-0 sdmmc0_clk sdmmc0_cmd sdmmc0_bus4; max-frequency 200000000; no-sdio; no-mmc; bus-width 4; cap-mmc-highspeed; cap-sd-highspeed; disable-wp; sd-uhs-sdr104; cd-gpios gpio2 RK_PD6 GPIO_ACTIVE_LOW; vqmmc-supply vccio_sd_s0; status okay; };实际设计时仍应以芯片手册、原理图和板级连接为准确认 CD 检测脚没有被其他功能占用。4. 问题二SD 卡初始化失败现象重新配置 CD 检测脚后插拔 SD 卡已经能够输出日志但初始化仍然失败mmc_host mmc1: Timeout sending command mmc1: Skipping voltage switch mmc1: error -110 whilst initialising SD card dwmmc_rockchip 2a310000.mmc: Busy; trying anyway mmc_host mmc1: Timeout sending command原因分析初步怀疑 SD 卡无法从 3.3 V 切换到 1.8 V导致初始化失败。进一步分析发现系统复位后SoC 会根据SDMMC0_DETN的输入电平决定使用 SDMMC0 还是 JTAG 功能该引脚被 Wi-Fi 复用为唤醒脚因此 SD 卡初始化阶段无法正确完成功能切换。定位结论必须使用SDMMC0_DETN作为 CD 检测脚不能用普通 I/O 替代也不能把它作为其他普通功能使用。RK3576 的 JTAG 与 SDMMC0 功能存在复用关系。系统复位结束后芯片会根据SDMMC0_DETN管脚的电平切换 IOMUX 功能这也是问题的关键。5. 调试经验总结这次问题表面上像是 SD 卡驱动异常实际涉及CD 检测脚选择SoC 管脚复用SDMMC0 与 JTAG 的功能复用3.3 V 到 1.8 V 的电压切换Wi-Fi 对相关引脚的复用硬件连接与设备树配置的一致性。排查这类问题时建议按下面的清单执行对照原理图确认 CD 检测脚对照芯片手册确认管脚复用限制检查 DTS 中的pinctrl、cd-gpios和供电配置查看插拔时 CD 引脚是否真的发生电平变化检查 3.3 V/1.8 V 电压切换结合内核日志确认超时发生在哪个阶段检查 Wi-Fi 等其他模块是否占用了复用引脚。6. 小结调试驱动不仅要懂代码、Linux 系统和通信机制也必须理解硬件原理。知道“软件哪里可能有问题”还不够还要能通过电平、波形、复用关系和日志找到证据。RK3576 这个案例再次说明当硬件功能与 JTAG、Wi-Fi 等功能复用时管脚选择本身就是功能正确性的前提。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

AI绘画角色一致性漂移破解:角色资产模型与分镜锚定实操 2026/10/1 8:19:43

AI绘画角色一致性漂移破解:角色资产模型与分镜锚定实操

你有没有遇到过这种情况:单张出图惊艳到能当壁纸,但把同一个角色的正面、侧面、打斗分镜排在一起时,第一张像A,第二张像B,第三张又像C——鼻子不一样、发饰换了、服装长度都变了。这不是模型不够聪明,而是提…

阅读更多 →
HoloCubic_AIO刷机失败怎么办:CP2102驱动、卡在BOOT等常见问题全解决 2026/10/1 8:19:37

HoloCubic_AIO刷机失败怎么办:CP2102驱动、卡在BOOT等常见问题全解决

HoloCubic_AIO刷机失败怎么办:CP2102驱动、卡在BOOT等常见问题全解决 【免费下载链接】HoloCubic_AIO HoloCubic超多功能AIO固件 基于esp32-arduino的天气时钟、相册、视频播放、桌面投屏、web服务、bilibili粉丝等 项目地址: https://gitcode.com/GitHub_Trendin…

阅读更多 →
HTTP/HTTPS 面试题:后端开发如何从“差个 s”答到 TLS 安全机制? 2026/10/1 8:19:37

HTTP/HTTPS 面试题:后端开发如何从“差个 s”答到 TLS 安全机制?

脉脉上一条后端开发面试讨论,因为一句“差个 s”引发了很多评论。原帖本身是一个面试段子,但对准备后端面试的程序员来说,它对应的是一道很常见的基础题:HTTP 和 HTTPS 到底差在哪里?本文先给结论:不要只回…

阅读更多 →
分层测试体系:单元、集成、契约与端到端测试策略 2026/10/1 8:19:36

分层测试体系:单元、集成、契约与端到端测试策略

1. 分层测试到底在解决什么问题分层测试(Layered Testing Approach)这套方法论,我在带过三个不同规模的团队之后才真正体会到它的价值。刚入行那会儿,我总觉得测试就是"写完代码跑一遍看有没有报错",直到有一…

阅读更多 →
1985-2025年地级市本地合作专利与异地合作专利数据+代码 2026/10/1 8:19:17

1985-2025年地级市本地合作专利与异地合作专利数据+代码

1. 指标界定 合作型专利可发生在同一地理边界之内,也可跨越城市边界。本数据集在地级行政区层面刻画该地理分布: 本地合作:一件合作型专利的全部申请人归属到同一地级行政区; 异地合作:一件合作型专利的申请人跨至少…

阅读更多 →
AI真人头像生成实践:参考图约束 + 提示词五要素 + 4套可直接复制的场景模板 2026/10/1 8:19:17

AI真人头像生成实践:参考图约束 + 提示词五要素 + 4套可直接复制的场景模板

在AI绘画工具中生成一张"像自己"的人像头像,关键不在选哪个模型,而在两件事:参考图的视觉约束质量,和提示词的结构化程度。 实践中大多数人翻车,是因为只给了文字描述(例如"一个美女"…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉