电子达人2011的个人空间 http://bbs.21ic.com/?2714018 [收藏] [复制] [RSS]

日志

光模块利器-预置I2CBootloader的EFM88位MCU

已有 134 次阅读2018-8-29 18:29 |个人分类:半导体|系统分类:模拟技术| 电子

光模块利器-预置I2CBootloader的EFM88位MCU


Silicon Labs(亦称芯科科技)在全系列EFM8 8MCU出厂时预置带I2CUARTUSB等多种方式下载功能的Bootloader进行程序更新,并提供源代码方便用户进行定制Bootloader,这对于广大的光模块研发工程师来说,无疑是注入了一支兴奋剂。


 




什么是
Bootloader


Bootloader顾名思义,即具有Boot引导系统和Loader更新系统功能,其功能类似计算机的BIOS,是MCU上电后执行的第一段代码,它完成CPU和相关硬件的初始化后,判断系统此时应进入Boot模式还是Loader模块。在Boot模式下,MCU会跳转到用户代码处执行用户程序;在Loader模式下,MCU接收I2CUARTUSB等方式传输的数据,覆盖用户程序代码区,更新程序代码。


 


通过预置Bootloader,用户可以不使用调试接口和工具,直接在通讯接口上进行程序的更新和升级,极大地方便用户更新产品程序。


 




光模块为何需要内置
I2C
Bootloader


一直以来,Bootloader由于硬件限制,只限于在性能和存储容量大的32位嵌入式系统上使用,作为引导操作系统的功能。随着现代电子产品对体积、功能、应用和调试等多方面的需求,8MCU上也开始出现Bootloader需求,光模块在这方面体现得尤其强烈。


 


光模块的作用就是光电转换,发送端把电信号转换成光信号,通过光纤传送后,接收端再把光信号转换成电信号。光模块的体积非常小,对硬件工程师布线是一个很大的考验,很多工程师为预留程序下载接口绞尽脑汁。由于光模块普遍采用I2C
Slave
接收数据,因此内置I2C Bootloader进行程序更新,可以极大地方便硬件工程师进行设计,同时方便客户批量生产。


 




EFM8
I2CBootloader实现


Silicon Labs8MCU由于体积小、功耗低、外围器件少、性能稳定,受到广大光模块厂家的青睐,其C8051F33XC8051F39XC8051F85X等系列的8MCU在光模块领域普遍使用。今年,Silicon
Labs
继续发力,针对光模块市场推出EFM8BB系列的低成本和EFM8LB系列的高性能MCU,并在EFM8全系产品中加入Bootloader


 


计算机通过USB或串口通过EFM8进行程序更新的原理如图1所示:


 


光模块利器-预置I2CBootloader的EFM88位MCU 1 EFM8USB和串口下载


 


计算机上的下载软件首先将下位机上执行的固件HEX文件转换为二进制的记录文件,然后将文件内容拆分成多个数据包,分次传给EFM8
Bootloader
EFM8收到数据后解包,更新用户程序区代码。


 


由于计算机没有I2C接口,因此EFM8I2C下载需要增加MCU进行UARTI2C协议转换,如图2所示:





 


光模块利器-预置I2CBootloader的EFM88位MCU


2 EFM8I2C下载


 


目前UARTI2C协议转换,Silicon Labs提供基于C8051F37XC8051F39X的全套源代码,客户也可以轻松地移植到其它平台上。


 


EFM8内置的Bootloader位于其代码安全页上,确保BootloaderFlash页被锁定的情况下仍然正确更新程序,同时,如果客户不需要Bootloader,也可以用下载器擦除释放Flash空间。


 


综上所述,Silicon Labs充分考虑光模块的需求,适时在EFM8上增加I2C下载功能,同时继续保持其业界体积小、功耗低的优势,无疑会增加产品竞争力,使其继续保持光模块市场份额领先地位。


 更多内容请查看


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

返回顶部