|
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦i.MXRT1xxx系列MCU的SD/eMMC卡启动。
' i8 g$ @0 m* r/ P f Z最近在恩智浦官方社区上支持了一个关于 i.MXRT 从 SD 卡启动的案例,这让痞子衡想起了一年前写过的一篇《i.MXRT600从SD/eMMC启动》,那一篇重点介绍了基于 eMMC 设备制作程序、下载程序、启动程序的方法。虽然 SD 和 eMMC 在启动流程上差别不大,但是细节上还是有一些不同的。借此机会,今天痞子衡再认真捋一下 SD 卡上制作、下载、启动程序的方法:
2 R* E' I: w* d m0 f; YNote:文中贴图、代码主要以 i.MXRT1050 为例,其余 i.MXRT1xxx 系列原理类似。一、支持的SD/eMMCi.MXRT 四位数和 i.MXRT 三位数用于访问 SD/MMC 卡的外设是同一个即 uSDHC,外设本身能支持到 SD3.0。但是芯片 BootROM 里并不一定完全按 uSDHC 全功能来做实现,i.MXRT1050 BootROM 主要实现了以下类型的 SD 卡启动支持:2 a4 x: f1 V. q6 G) p5 z7 a ]
? SDv2.0 or less
' c; o! W V. U? eSDv2.10 rev-0.9, with or without FAST_BOOT
. A3 Y5 k" a* ]% T |. D @? SDXCv3.0+ t; s( @9 E5 D+ I5 o" ^/ u) j% ?
作为对比,i.MXRT600 BootROM 对于 SD 卡启动支持与 i.MXRT1050 则稍有不同:; y7 ]5 L1 h( C& S
? SD Version 3.0 or earlier version4 q' l/ W1 x. O* K( _0 g, N: G
? SD: 1-bit/4-bit; SDR12, SDR25, SDR50 and SDR104.
2 j2 _, j' \* S3 g5 B X全系列 MIMXRT10xx-EVK 上均配置了 MicroSD 卡槽,均连接在了第一个 uSDHC 端口上,所以我们测试 SD 启动还是非常方便的。
6 O r# k& u- w* }二、SD/eMMC硬件连接除了 i.MXRT1010/1015 不包含 uSDHC 外设之外,其余 i.MXRT1xxx 内部都有 2 个 uSDHC 模块(注:uSDHC2 可能在一些小封装上没有引出),i.MXRT1050 BootROM 支持如下 pinmux 来连接 SD/eMMC 卡去启动: |
|