【技术】 EFM8系列MCU BootLoader之HEX2BOOT工具解析
EFM8系列MCU是SILICON LABS公司在C8051Fxxx系列基础上推出的高性能低价格8位单片机。在工业、医疗、智能家居、传感器、通讯等行业已经得到广泛运用。MCU在产品的应用过程中,往往需要具有在线升级的功能。针对这一需求,Silicon Labs公司提供全套的解决方案。
在这个方案中,需要用到Hex2boot.exe工具(./ AN945SW/Tools/Windows目录下)。这个工具实现什么功能?如何使用?是否可以不使用这个工具?很多工程师使用的时候几乎都有这些疑问。
我们一般通过Simplicity Studio开发环境或者keil C51编译软件编译的代码输出为HEX格式文件。Silicon Labs公司提供的bootloader引导程序并不具备HEX格式文件的解析功能。所以,我们需要通过Hex2boot工具将HEX文件转换为bootloader引导程序可识别的文件:efm8文件。
Hex2boot工具是一个DOS程序,需要在DOS下通过命令实现格式转换。创建一个EFM8文件可以使用如下命令:
hex2boot.exe input_file.hex -o Filename.efm8
// input_file.hex为需要转换的hex文件,Filename.efm8为bootloader烧写文件
注意:hex2boot的更多参数和运用说明可以查看文档AN945的第5.1节
EFM8是Silicon Labs公司自定义的一种文件格式。了解efm8文件格式,有利于进行bootloader升级时,正确进行数据传输。
下述通过比较同一个hex文件转换成的bin文件和efm8文件来分析efm8文件内容。
图1:bin文件和efm8文件比较
从图1可以看出,efm8文件是在bin文件的基础上,将第一个字符02修改为FF,然后增加了部分数据。增加的数据其实为bootloader烧写指令。指令格式如图2:
图2:bootloader指令格式
参照指令格式,可以从图1中提取以下指令:
指令1:0x24 0x04 0x31 0xA5 0xF1 0x00
//0x24 指令头;0x04 数据长度;0x31 Setup指令;0xA5 0xF1关键字;0x00 bank参数(该指令是在烧写之前,通知bootloader选择Flash Bank,除了EFM8SB2之外,其他MCU均采用此指令格式,不可省略此指令)。
指令2:0x24 0x55 0x32 0x00 0x00
//0x32 擦除指令;0x00 0x00起始地址(两字节),后面为烧写数据(bin文件内容)。
//如果指令后带有数据,则擦除Flash后直接将数据烧入Flash。
指令3:0x24 0x07 0x34 0x00 0x00 0x00 0x51 0xD3 0x92
//0x34 校验指令;0x00 0x00起始地址;0x00 0x51结束地址;0xD3 0x92 CRC16-CCITT校验值。
指令4:0x24 0x04 0x33 0x00 0x00 0x02
//将Flash地址0x00数据修改为0x02。
指令5:0x24 0x03 0x36 0x00 0x00
//启动APP程序
注意:bootloader具有0x32(擦除指令)和0x33(烧写指令)。这两条指令运用非常相近。0x32指令可以擦除后直接将数据写入Flash。0x33指令将数据写入Flash,写入前自动擦除Flash,不需要再使用0x32指令进行擦除。区别在于0x32指令可以只擦除,不写入数据。由于0x32或者0x33指令,后面的数据最大值为128字节,所以需要在bin文件数据中,每隔128个字节插入一条0x32或者0x33指令。如图3:
图3:在烧写数据中每隔128字节插入烧写指令
Hex2boot工具转换后的efm8文件,其中已经包含了参数设置、擦除、烧写、校验、加密(如有需要)等所有指令。因此,通过bootloader升级时,只需要将efm8文件按顺序将数据传输到MCU,bootloader会根据接收到的数据分析出指令进行对应操作,完成程序升级。如果不使用Hex2boot工具进行文件转换,则需要在桌面系统上设计烧写软件,在传输bin文件数据时自行添加控制指令。
世强元件电商版权所有,转载请注明来源及链接。
- |
- +1 赞 0
- 收藏
- 评论 9
本网站所有内容禁止转载,否则追究法律责任!
相关推荐
SILICON LABS 8-bit Microcontroller选型表
SILICON LABS 8位MCU选型,MCU Core 8051,频率20MHz~100MHz,Flash存储2kB~120kB,RAM存储0.25kB~8kB。
产品型号
|
品类
|
系列
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Dig I/O Pins
|
ADC 1
|
Temp Sensor
|
Timers (16-bit)
|
PCA Channels
|
DAC
|
Comparators
|
UART
|
SPI
|
I2C
|
HS I2C Slave
|
EMIF
|
CAN
|
LIN
|
VREF
|
Debug Interface
|
C8051F392-A-GM
|
8位MCU
|
C8051F39x Small Form Factor
|
50
|
16
|
1
|
1.8
|
3.6
|
QFN20
|
4x4
|
±2
|
17
|
10-bit, 16-ch., 500 ksps
|
Temp Sensor
|
6
|
3
|
10-bit, 2-ch.
|
1
|
1
|
1
|
2
|
0
|
0
|
0
|
0
|
VREF
|
C2
|
选型表 - SILICON LABS 立即选型
【选型】Silicon Labs的8位微控制器EFM8BB5和EFM8BB21性能差异对比
为了方便客户了解EFM8BB5系列和EFM8BB21系列的区别,更好的进行选型,本文例举出了Silicon Labs的8位微控制器EFM8BB21、EFM8BB51和EFM8BB52三者之间的不同点,来进行性能差异对比。
SILICON LABS EFM8 Universal Bee 8-bit Microcontrollers选型表
SILICON LABS 8位MCU选型,基于48MHz Frequency,8~64kB Flash,2~4kB RAM等参数进行选型
产品型号
|
品类
|
MCU Core
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
5 Volt Tolerant
|
ADC 1
|
USB
|
Temp Sensor
|
Timers (16-bit)
|
PCA Channels
|
Comparators
|
UART
|
SPI
|
I2C
|
EMIF
|
CAN
|
LIN
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
VREF
|
Debug Interface
|
Temperature Range (ºC)
|
EFM8UB20F64G-QFP48
|
Microcontroller
|
8051
|
48
|
64
|
4
|
40
|
5 Volt Tolerant
|
10-bit, 32-ch.
|
USB
|
Temp Sensor
|
6
|
5
|
2
|
2
|
1
|
2
|
1
|
0
|
0
|
2.7
|
5.25
|
QFP48
|
7x7
|
±1.5
|
VREF
|
C2
|
-40 to 85
|
选型表 - SILICON LABS 立即选型
8位单片机EFM8的烧录器有哪些?
8位单片机EFM8系列采用C2调试接口,常见的烧录器有:1,官方的EFM8 STK、USB Debug Adapter、ToolStick。2,第三方的U-EC2/6、WizPro200EFM(支持EFM8和EFM32)等。
世界上最节能的微控制器EFM32之十大低功耗奥秘
Silicon Labs EFM32 32 位微控制器系列是世界上最为节能的微控制器,特别适用于低功耗和能源敏感型应用,包括能源、水表和燃气表、楼宇自动化、警报及安防和便携式医疗/健身器材。本文着重强调10个Silicon Labs32位MCU功耗低的因素。
【应用】微控制器CKS32F103RBT6用于智能家居系统,采用ARM® Cortex®-M3 32位的RISC内核
中科芯着手推出一份高性价比智能家居系统应用方案,以CKS32F103RBT6微控制器(MCU)为主控芯片,这些丰富和外设配置,使得适用于多种应用场合:电机驱动和应用控制、医疗和手持设备、智能家居系统、视频对讲等。
【产品】16位微处理器S1C17M33、SICI17W3X,睡眠电流分别低至0.2uA、0.15uA
EPSON推出的微处理器S1C17M33、SICI17W34/SICI17W35/SICI17W36都属于低电压、低电流微处理器,可大幅延长产品电池寿命,它们嵌入式电路部分可帮助客户降低总产品数量、节省板子空间和减少软件开发时间,也均可驱动LCD显示模式,可广泛应用于通信设备、工业电子、汽车电子及消费电子领域。
雅特力携工业控制、电机控制、消费电子、智能家居及汽车电子等领域近百款产品与方案亮相ELEXCON 2022
雅特力作为32位微控制器的创新领导者,携工业控制、电机控制、消费电子、智能家居及汽车电子等五大领域近百款产品与方案亮相此次展会,全面展示了雅特力最新技术与成果,吸引了众多电子行业人士参观交流!
C8051系列MCU用外部振荡器作为时钟源,在软件中该如何配置这些外部振荡器引脚?
对于具有专用振荡器引脚的 MCU (如 C8051F12x系列),这些引脚将自动配置为所选的外部振荡模式。 对于那些外部振荡器引脚与GPIO引脚复用的器件(如C8051F30x),这些与外部振荡器相关的GPIO引脚必须按照下面描述配置: 1. 对于一个外部晶体振荡器,XTAL1和XTAL2两个引脚必须配置为模拟输入。 2. 对于“RC”模式或“C”模式,XTAL2 或 EXTCLK引脚必须配置为模拟输入。 3. 对于CMOS时钟模式,XTAL2或EXTCLK引脚必须配置为数字输入。 对于振荡器引脚与GPIO复用的器件,任何时候使用外部振荡器,相关的Crossbar必须配置跳过这些被振荡器电路使用的引脚,以避免任何与Crossbar外设之间的 冲突。
使用KEIL C51开发环境,仿真调试正常,手动切换内部默认20MHz时钟到24.5MHz时钟后,调试仿真MCU和开发环境卡死,仿真器USB接口不断尝试连接不成功,是不是仿真器的问题?应该如何解决?
在KEIL C51环境和Eclipse环境下操作时钟切换要特别小心,一定要先确认切换到的时钟已经正常振荡,否则一旦切换到没有起振的时钟源,将导致开发环境和目标板卡死的现象,这并非仿真器的问题。解决办法:重新启动开发环境软件或者计算机,连接仿真器和目标板,检查程序是否先打开了24.5MHz的内部高速振荡器,循环判断等待振荡标志位生效,然后再切换主时钟到内部高速24.5MHz时钟源上。
8位混合信号单片机能够降低汽车电子设计的成本和复杂度
芯科科技提供的是C8051F58x单片机提供了高精度的振荡器,高精准的电压参考器,5V整流模块等相当多的片上外设,这些让混合信号单片机在汽车电子系统设计中的应用系统的设计难度降低了,并减少了元器件的数量和印制板的尺寸。
【产品】最大工作频率48MHz的微控制器,嵌入式应用最佳选择
Silicon Labs新推出微控制器EFM8UB3系列,Flash容量为40kB,在512字节扇区内支持在线可编程,提供非易失性数据存储,同时支持固件的现场升级。提供独立的片上系统解决方案,具有多功能的外设接口。
【产品】Silicon Labs多用途 8 位微控制器EFM8UB2,所有全速USB应用的理想选择
Silicon Labs发布了一款带有USB功能集的多用途 8 位微控制器EFM8UB2。该芯片集成高精度振荡器的 USB 外围设备接口、时钟恢复电路、以及集成收发器,无需外部组件,是所有全速 USB 应用的理想选择。
电子商城
现货市场
服务
可定制板装式压力传感器支持产品量程从5inch水柱到100 psi气压;数字输出压力传感器压力范围0.5~60inH2O,温度补偿范围-20~85ºС;模拟和数字低压传感器可以直接与微控制器通信,具备多种小型SIP和DIP封装可选择。
提交需求>
可来图定制均温板VC尺寸50*50mm~600*600 mm,厚度1mm~10mm,最薄0.3mm。当量导热系数可达10000W/M·K,散热量可达10KW, 功率密度可达50W/cm²。项目单次采购额需满足1万元以上,或年需求5万元以上。
提交需求>
查看全部2条回复