[信息] STM32N6 如何配置EMMC启动

[复制链接]
166|0
STM新闻官 发表于 2025-11-2 09:15 | 显示全部楼层 |阅读模式
本帖最后由 STM新闻官 于 2025-11-2 09:22 编辑

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 设置为1,Boot1设置为0,支持的Flash设备包括sNOR,HyperFlash,SD 卡与eMMC 。Serial Boot则需要将Boot0和Boot1都设置为0,包括USB Boot和UART Boot,对于Serial Boot本文不做讨论,只重点讨论属于Flash Boot的eMMC 启动设置。

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

3.2. Flash Boot Source 设置 eMMC启动需要设置BOOTROM_CONFIG_2(OTP11),其中BOOTROM_CONFIG_2[8 :5]是flash_boot_source 的选项,如下表2所示。设置为2时,从SDMMC1外设启动,设置为8时,从SDMMC2启动。
978636906b09f1ea91.png
需要注意的是,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所示。

338776906b0e19b528.png
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。
730536906b0f78cb87.png
3.4. SDMMC外设设置 STM32N6 BootROM代码首先会对SDMMC1或SDMMC2接口进行设置,SDMMC1与SDMMC2配置相同,具体见下表5。
图5. STM32N6 BootROM 针对eMMC 启动的SDMMC 设置
707856906b12129add.png
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)
335426906b14050766.png
STM32N6 eMMC Boot不支持DDR数据传输,也不支持HS200模式,仅支持SDR数据传输,在该单倍数据率模式(SDR)下,设备数据输出和主机采样都在时钟上升沿完成。eMMC具体时序图如下图2所示(摘自eMMC spec V5.1):
495946906b1e32d8dc.png
eMMC设备启动应答模式如下图3所示:  

501856906b1cebb260.png
381576906b1da65689.png
备注:图1,图2,图3均摘自eMMC规范。 要实现上述时序,需要对eMMC设备进行相应配置。下表6中列出了主要的eMMC设备相关寄存器的设置。
599486906b20906732.png 645116906b20ad3c90.png
当完成所有配置后,则可以进行启动测试。测试前需要将FSBL烧录到eMMC。FSBL或应用中可以对SDMMC设置进行修改,比如使用4线通信(取决于硬件设计)及高速模式等,以提升eMMC设备数据分区的读写速度。

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

本版积分规则

认证:意法半导体(中国)投资有限公司
简介:您的嵌入式应用将得益于意法半导体领先的产品架构、技术、多源产地和全方位支持。意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器。

1428

主题

1758

帖子

25

粉丝
快速回复 在线客服 返回列表 返回顶部