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