本帖最后由 szembed 于 2021-6-1 15:56 编辑
tf卡及EMMC启动
IoT-6ULX及评估板EVB-6ULX简介:
i.MX6UL/L核心模块产品:
评估板(工控板)实物图:
2 tf卡及EMMC启动2.1 tf卡及EMMC启动原理
I.MX6UL根据BOOT_MODE0和BOOT_MODE1配置不同,分为如下四种启动方式. Fuses启动模式 (BOOT_MODE[1:0] = 00b) 当BOOT_MODE[1:0]寄存器为00b是,选择为从Fuses模式下启动。该模式和内部启动模式很相似,只是有一点不同:在此模式下,GPIO启动(internal boot 内部启动)重载引脚会被忽略。 内部启动模式 (BOOT_MODE[1:0] = 0b10) BOOT_MODE[1:0]寄存器的值为0b10时,选择为内部启动模式。在此模式下,处理器继续执行内部的启动代码。启动代码执行硬件初始化,从选择的启动设备中加载程序镜像,使用HAB执行镜像有效性检查,然后跳到程序镜像地址处。如果在内部启动中出项任何错误,启动代码就会跳到串行下载器。 内部启动模式一般只用于产品的开发阶段,因为此模式要占用大量的GPIO资源,而这些GPIO是EIM中关键的数据和地址控制线。在Fuses启动模式下,一旦这些eFuses被烧录,均不能被重擦修改,显而易见的是后者不利于开发中的摸索尝试(一旦出现错误,我们甚至要考虑更换CPU)。在开发阶段,我们使用跳线来配置efuses,然后我们调试测试,直至其稳定后,在最终的产品中,使用和跳线配置相对的eFuses值来烧录fuse,最终可将这些GPIO上的跳线去除,而用于一般用途。 下载模式 (BOOT_MODE[1:0] = 0b01) 该模式下,i.mx6ul处于下载模式,可以通过mfgtools工具对i.mx6ul的存储媒质进行烧写. EVB-P6UL支持4种存储媒质的启动,分别是SD/TF卡启动、NAND启动、eMMC启动和QSPI启动(分为不同的四类产品,根据客户选择核心模块的不同),通过对BT_CFG1、BT_CFG2和BT_CFG4三组信号来配合设置来改变启动媒质,除了BT_CFG4之外,其他两组信号BT_CFG1和BT_CFG2直接影响启动模式选择(BT_CFG1+BT_CFG2+BT_CFG4等于24位LCD信号),整个启动配置如下图2-1、图2-2所示: 而根据EVB-P6UL评估板原理图里面对BOOT的选择,只设置了几个信号来供用户进行配置选择,其他都已经被强制拉高或拉低,原理设计如图2-3所示。 因EVB-P6UL采取了internal boot mode,所以,这些配置的gpio起到了关键作用,直接决定了启动模式的选择,TF卡关于信号的配置(启动电阻)说明参考如图2-4、图2-5所示: 说明:目前只操作了普速卡。如若把BOOT_DFG2[1]设为1,GPIO_IO5设为1,VDD_SD1输出3.3V,板子可以正常启动。 陷:当操作高速卡时,即把BOOT_DFG2[1]设为1,GPIO1_IO5为0,VDD-SD1输出为1.8V,终端会打印信息提示提供电压不足, 2.1 tf卡启动原理及实现 我们刚刚交代了tf卡(接到端口uSDHC1)和emmc(接到端口uSDHC2)启动的原理,为了更改为TF卡启动,我们必须去更改配置电阻,那么是否有更好的办法实现TF卡启动呢?经过我们仔细查看相关手册,我们发现,在Fuses启动(BOOT_MODE[1:0] = 00b)这个模式下,默认的启动就是从uSDHC1启动:
|