|
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦i.MXRT1xxx系列MCU的SD/eMMC卡启动。
5 `& q! K! ]: t4 E7 k( v" l: E最近在恩智浦官方社区上支持了一个关于 i.MXRT 从 SD 卡启动的案例,这让痞子衡想起了一年前写过的一篇《i.MXRT600从SD/eMMC启动》,那一篇重点介绍了基于 eMMC 设备制作程序、下载程序、启动程序的方法。虽然 SD 和 eMMC 在启动流程上差别不大,但是细节上还是有一些不同的。借此机会,今天痞子衡再认真捋一下 SD 卡上制作、下载、启动程序的方法: u; M4 y0 P7 [% ^, h8 s
Note:文中贴图、代码主要以 i.MXRT1050 为例,其余 i.MXRT1xxx 系列原理类似。一、支持的SD/eMMCi.MXRT 四位数和 i.MXRT 三位数用于访问 SD/MMC 卡的外设是同一个即 uSDHC,外设本身能支持到 SD3.0。但是芯片 BootROM 里并不一定完全按 uSDHC 全功能来做实现,i.MXRT1050 BootROM 主要实现了以下类型的 SD 卡启动支持:; k5 J% h& u6 o! ~' |8 q) g1 H
? SDv2.0 or less
( o3 L. A) a; _8 M. l2 s( x? eSDv2.10 rev-0.9, with or without FAST_BOOT
" @6 \, R" h. u# ]/ Y" ?? SDXCv3.0
) G8 R4 F/ a8 |7 U0 V作为对比,i.MXRT600 BootROM 对于 SD 卡启动支持与 i.MXRT1050 则稍有不同:: u8 T3 ~. l z$ }) i
? SD Version 3.0 or earlier version- B8 B& e8 `/ J# W* L/ X
? SD: 1-bit/4-bit; SDR12, SDR25, SDR50 and SDR104.+ |: Y/ D, V2 O! L* s; U$ [" ?/ T
全系列 MIMXRT10xx-EVK 上均配置了 MicroSD 卡槽,均连接在了第一个 uSDHC 端口上,所以我们测试 SD 启动还是非常方便的。
& [5 w$ v* ~5 T9 a3 P7 j二、SD/eMMC硬件连接除了 i.MXRT1010/1015 不包含 uSDHC 外设之外,其余 i.MXRT1xxx 内部都有 2 个 uSDHC 模块(注:uSDHC2 可能在一些小封装上没有引出),i.MXRT1050 BootROM 支持如下 pinmux 来连接 SD/eMMC 卡去启动: |
|