|
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦i.MXRT1xxx系列MCU的SD/eMMC卡启动。
3 N) w9 p4 \- K# _2 y最近在恩智浦官方社区上支持了一个关于 i.MXRT 从 SD 卡启动的案例,这让痞子衡想起了一年前写过的一篇《i.MXRT600从SD/eMMC启动》,那一篇重点介绍了基于 eMMC 设备制作程序、下载程序、启动程序的方法。虽然 SD 和 eMMC 在启动流程上差别不大,但是细节上还是有一些不同的。借此机会,今天痞子衡再认真捋一下 SD 卡上制作、下载、启动程序的方法:
- I( H Z4 r) VNote:文中贴图、代码主要以 i.MXRT1050 为例,其余 i.MXRT1xxx 系列原理类似。一、支持的SD/eMMCi.MXRT 四位数和 i.MXRT 三位数用于访问 SD/MMC 卡的外设是同一个即 uSDHC,外设本身能支持到 SD3.0。但是芯片 BootROM 里并不一定完全按 uSDHC 全功能来做实现,i.MXRT1050 BootROM 主要实现了以下类型的 SD 卡启动支持:4 K2 ]% u% a. m1 s
? SDv2.0 or less
: u) O8 `6 y, E4 o? eSDv2.10 rev-0.9, with or without FAST_BOOT9 W+ V, E3 K$ T) u0 O7 x
? SDXCv3.09 J4 w u: _7 J; j9 F7 t9 _; A
作为对比,i.MXRT600 BootROM 对于 SD 卡启动支持与 i.MXRT1050 则稍有不同:8 p0 g/ |# P' t( B
? SD Version 3.0 or earlier version
1 A: a& s9 R0 H2 X? SD: 1-bit/4-bit; SDR12, SDR25, SDR50 and SDR104./ d! @/ E& d8 U$ o$ M6 H
全系列 MIMXRT10xx-EVK 上均配置了 MicroSD 卡槽,均连接在了第一个 uSDHC 端口上,所以我们测试 SD 启动还是非常方便的。
. }8 V7 U" B: Q2 y二、SD/eMMC硬件连接除了 i.MXRT1010/1015 不包含 uSDHC 外设之外,其余 i.MXRT1xxx 内部都有 2 个 uSDHC 模块(注:uSDHC2 可能在一些小封装上没有引出),i.MXRT1050 BootROM 支持如下 pinmux 来连接 SD/eMMC 卡去启动: |
|