STM32N6 如何配置EMMC启动 LAT1581

关键字:STM32N6,FSBL,EMMC,BootROM

1. 引言

ST官方手册UM3234"How to proceed with boot ROM on STM32N6 MCUs"中 对STM32N6的各种启动模式进行了详细的介绍,但客户在使用STM32N6配置eMMC 启动过程中仍会遇到了一些问题。本文重点介绍eMMC启动配置,涉及到了常见的 STM32N6 eMMC启动配置中的问题,供大家参考。

2. BootROM

STM32N6(内核为Arm-Cortex-M55)没有内置Flash,上电复位后,首先执行 BootROM代码,BootROM根据配置确定启动源及启动顺序。BootROM代码固化在 STM32N6中的ROM中,是多级启动序列的第一级,它根据检测到的启动类型,执行 BootROM代码的不同分支。STM32N6的启动类型根据Boot Mode的设置不同,分为 Flash Boot 和Serial Boot。 Flash Boot 需要将Boot0 和Boot1都设置为0,支持的 Flash设备包括sNOR,HyperFlash,SD 卡与eMMC 。Serial Boot则需要将Boot0设 置为1,Boot1设置为0,包括USB Boot和UART Boot,对于Serial Boot本文不做讨 论,只重点讨论属于Flash Boot的eMMC 启动设置。

3. eMMC启动

3.1. Boot Mode设置

首先,我们需要确定STM32N6 Boot Mode,对于eMMC启动,属于Flash Boot, 需要将Boot0和Boot1均设置为0。参见下表1,其中列出了更多Boot Mode的设置细 节。

表1. STM32N6 Boot Mode设置

3.2. Flash Boot Source 设置

eMMC启动需要设置BOOTROM_CONFIG_2(OTP11),其中 BOOTROM_CONFIG_2[8 :5]是flash_boot_source 的选项,如下表2所示。设置为2 时,从SDMMC1外设启动,设置为8时,从SDMMC2启动。

表2. STM32N6 OTP Flash Boot Source设置

需要注意的是,STM32N6有多种封装。STM32N6xxX0(264 Pins)和 STM32N6xxL0(223 Pins)有两个SDMMC接口;STM32N6xxB0(198 Pins)和 STM32N6xxI0(178 Pins)只有一个SDMMC接口(SDMMC1),即只能从SDMMC1 启动;而STM32N6xxA0(169 Pins),STM32N6xxZ0(142 Pins)没有一个SDMMC 接口,不能从eMMC启动。

SDMMC1/2在Boot器件使用1根数据线(SDMMC_D0)、CMD及CK与eMMC 设备交互。具体如下表3所示。

表3. STM32N6 SDMMC Boot管脚

3.3. VDDIO与HSLV设置

STM32N6中,VDDIO4/5是独立的外部供电,VDDIO4对PC[1], PC[12:6], 和 PH[9,2]十个 I/O供电,VDDIO5对PC[0], PC[5:2], 和 PE[4]六个 I/O供电,这些管脚与 SDMMC外设相关。VDDIO4 对应SDMMC1,VDDIO5 对应SDMMC2(见前表3)。 关于电源管理部分,请参阅RM0486 第13章Power Control部分。这里当供电电压 VDDIO采用1.8V时,需要注意使能 HCONF1(OTP124)中的HSLV_VDDIO4或/和 HSL_VDDIO5以激活HSLV(高速低压模式),详见下表4。

表4. STM32N6 OTP HSLV 设置

3.4. SDMMC外设设置

STM32N6 BootROM代码首先会对SDMMC1或SDMMC2接口进行设置, SDMMC1与SDMMC2配置相同,具体见下表5。

图5. STM32N6 BootROM 针对eMMC 启动的SDMMC 设置

3.5. eMMC设备设置与时序

STM32N6 上电复位后BootROM会发送 GO_PRE_IDLE_STATE命令(参数为 0xF0F0F0F0 的CMD0,eMMC设备EXT_CSD[162] 可以保持默认,不用设置 RST_n_ENABLE)。eMMC设备如果设置了BOOT_PARTITION_ENABLE,则识别并进 入引导模式(5种操作模式之一)。STM32N6(主机)发送CMD0后,需要eMMC设 备给出应答(ACK)。eMMC设备在CMD线拉低50ms之内给出应答(010)之后,开 始准备引导数据,并遵循eMMC规范,STM32N6支持V5.1,在CMD线拉低1秒之 内,开始在数据线上向主机发送第一个引导数据。主机必须保持CMD线为低以读取所有 引导数据。eMMC设备引导流程如下图1所示(摘自eMMC 规范V5.1)

图1. eMMC 引导流程

STM32N6 eMMC Boot不支持DDR数据传输,也不支持HS200模式,仅支持SDR 数据传输,在该单倍数据率模式(SDR)下,设备数据输出和主机采样都在时钟上升沿完 成。eMMC具体时序图如下图2所示(摘自eMMC spec V5.1):

图2. eMMC 启动模式时序

eMMC设备启动应答模式如下图3所示:

图3. eMMC 启动应答模式

备注:图1,图2,图3均摘自eMMC规范。

要实现上述时序,需要对eMMC设备进行相应配置。下表6中列出了主要的eMMC 设备相关寄存器的设置。

表6. eMMC设备寄存器设置

当完成所有配置后,则可以进行启动测试。测试前需要将FSBL烧录到eMMC。FSBL 或应用中可以对SDMMC设置进行修改,比如使用4线通信(取决于硬件设计)及高速 模式等,以提升eMMC设备数据分区的读写速度。

4. 小结

ST 官方手册UM3234对STM32N6的各种启动模式已有详细介绍,基于给客户快速 开发参考的目的,本文针对eMMC启动设置,结合规范进行了一个专题介绍。其中并没 有对规范进行过多的介绍,需要的客户可以参阅JEDEC STANDARD,Embedded Multi Media Card (e•MMC) Electrical Standard (V5.1)。

意法半导体公司及其子公司 ("ST")保留随时对 ST 产品和 / 或本文档进行变更的权利,恕不另行通知。买方在订货之前应获取关于 ST 产 品的最新信息。 ST 产品的销售依照订单确认时的相关 ST 销售条款。 买方自行负责对 ST 产品的选择和使用, ST 概不承担与应用协助或买方产品设计相关的任何责任。 ST 不对任何知识产权进行任何明示或默示的授权或许可。 转售的 ST 产品如有不同于此处提供的信息的规定,将导致 ST 针对该产品授予的任何保证失效。 ST 和 ST 徽标是 ST 的商标。若需 ST 商标的更多信息,请参考 www.st.com/trademarks。所有其他产品或服务名称均为其 各自所有者的财 产。 本文档是ST中国本地团队的技术性文章,旨在交流与分享,并期望借此给予客户产品应用上足够的帮助或提醒。若文中内容存有局限或与ST 官网资料不一致,请以实际应用验证结果和ST官网最新发布的内容为准。您拥有完全自主权是否采纳本文档(包括代码,电路图等)信息, 我们也不承担因使用或采纳本文档内容而导致的任何风险。 本文档中的信息取代本文档所有早期版本中提供的信息。

相关推荐
Wave8457 小时前
基于 STM32 + ESP8266 + W25Q64 的双核 OTA 底层架构总结
stm32·嵌入式硬件·架构
xiangw@GZ8 小时前
WiFi 全世代(WiFi1~WiFi7)技术规范与核心参数总结
嵌入式硬件
振南的单片机世界8 小时前
CPU时钟:频率越高跑越快,但物理极限在“拖后腿”
stm32·单片机·嵌入式硬件
普中科技9 小时前
【普中 51-Ai8051 开发攻略】-- 第 20 章 输入捕获实验
单片机·嵌入式硬件·输入捕获·pca·普中科技·ai8051u·aicube
d111111111d10 小时前
直流电机位置式 PID 控制 和 舵机的区别
笔记·stm32·单片机·嵌入式硬件·学习
d111111111d12 小时前
了解Modbus
网络·笔记·stm32·单片机·嵌入式硬件·学习
三佛科技-1341638421212 小时前
主控FT32F031便携式吸尘器方案,迷你手持吸尘器MCU控制方案开发
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
一个平凡而乐于分享的小比特13 小时前
一文读懂MCU与FPGA:核心区别、协同之道与双修秘籍
单片机·fpga开发·职场发展·mcu开发
踏着七彩祥云的小丑14 小时前
嵌入式——认识电子元器件——微动开关系列
单片机·嵌入式硬件
调光IC-小雅14 小时前
解析FP62××系列限流保护机制:为何它是DC/DC芯片的安全底线
单片机·嵌入式硬件