1. 简介
HPM6000系列MCU目前提供了不同的启动方式,方便客户在研发生产等不同阶段使用。
本文提供了HPM6000系列微控制器的BOOT 模式的说明以及相应的外部电路设计建议。
2. BOOT模式说明
HPM6000系列高性能MCU目前提供了3种启动模式,分别是
主启动模式 (XPI NOR启动)
串行启动模式(通过UART, USB-HID)
在线编程模式(ISP)(通过UART, USB-HID)
芯片上电后,BOOT ROM首先查看OTP中相应的BOOT MODE位,并根据相应的值进入相应启动模式:
当OTP中的BOOT MODE[1:0]为00时, 系统将由BOOT MODE管脚来选择启动模式:
2.1 主启动模式
当系统进入主启动模式后,BOOT ROM会通过储存在OTP中的相应配置信息,来读取外部挂接的 Flash。
2.2 串行启动模式
当系统进入串行启动模式后,BOOT ROM会通过UART0或者USB0来响应上位机发出的指令。
用户可以参考微控制器用户手册启动章节的第2节第3小节(以HPM6700/6400系列微控制器用户手册和HPM6300系列微控制器用户手册为例,章节19.2.3)。
2.3 在系统编程模式
同上,当系统进入编程模式后,BOOT ROM同样会通过UART0或者USB0来响应上位机发出的指令,用户可以参考微控制器用户手册启动章节的第2节第4,5小节(以HPM6700/6400系列微控制器用户手册和HPM6300系列微控制器为例,章节19.2.4和19.2.5)。
3. BOOT模式管脚
HPM6000系列微控制器的在上电后,会首先执行BOOT ROM中的代码,进行条件判断。BOOT ROM会首先判断OTP中的BOOT_MODE值,当此时的BOOT_MODE值为00时,才会进一步检测BOOT_MODE管脚的值。OTP中BOOT_MODE的默认情况下为00。
HPM6000系列微控制器提供了2个硬件管脚作为BOOT MODE选择。
在HPM63xx系列中:
在HPM67xx/HPM64xx系列中:
在系统上电后,HPM63xx系列的BOOT ROM会将BOOT_MODE管脚设置为输入下拉,下拉电阻为100k欧姆。而对于HPM67xx/HPM64xx系列,BOOT ROM选择默认状态即输入下拉,下拉电阻为76.7k欧姆。
由此,对于所有的HPM6000系列的芯片,其BOOT_MODE管脚在上电后均为输入下拉的设置。用户在设计电路的时候,如果这2个管脚仅做BOOT MODE的配置的话,置高的时候可以选择直接连接管脚的电源域。如果需要使用其复用功能,在置高的时候,可以将其串接一个电阻(10k欧姆)到该管脚的电源域。此外,必须要注意与管脚相应的电源域适配,由于HPM63xx系列和HPM67xx/HPM64xx系列的电源域不同,因此用户在设计时要注意此差别。
4. BOOT模式管脚功能复用
如同HPM6000系列微控制器的每一个管脚,BOOT_MODE管脚本身还可以有多种功能可以复用
在HPM63xx系列中:
在HPM67xx/HPM64xx系列中:
BOOT_MODE功能本身不会影响用户自身程序对管脚的相应的功能的使用。但是如果用户选择使用BOOT_MODE对应管脚的功能,就要明确外部电路对BOOR_MODE的影响。例如,如果在HPM63xx中,PA20/PA21使用了I2C功能,那么总线上的上拉电阻势必会产生分压,使得BOOT ROM对BOOT MODE管脚的识别产生误判。同理,连接在相关管脚的芯片的默认状态,也会对管脚的识别产生影响。因此,用户必须明确外部电路对BOOT MODE管脚的影响,在使用外部引脚进行BOOT模式判断时,硬件工程师需要确保外部电路对于BOOT模式的判断不产生不良影响。
学习学习了,谢谢楼主分享,先MARK下收藏了,谢谢!