Silicon Labs(亦稱芯科科技)在全系列EFM8 8位MCU出廠時預置帶I2C、UART或USB等多種方式下載功能的Bootloader進行程序更新,并提供源代碼方便用戶進行定制Bootloader,這對于廣大的光模塊研發工程師來說,無疑是注入了一支興奮劑。
什么是Bootloader?
Bootloader顧名思義,即具有Boot引導系統和Loader更新系統功能,其功能類似計算機的BIOS,是MCU上電后執行的第一段代碼,它完成CPU和相關硬件的初始化后,判斷系統此時應進入Boot模式還是Loader模塊。在Boot模式下,MCU會跳轉到用戶代碼處執行用戶程序;在Loader模式下,MCU接收I2C、UART或USB等方式傳輸的數據,覆蓋用戶程序代碼區,更新程序代碼。
通過預置Bootloader,用戶可以不使用調試接口和工具,直接在通訊接口上進行程序的更新和升級,極大地方便用戶更新產品程序。
光模塊為何需要內置I2C Bootloader?
一直以來,Bootloader由于硬件限制,只限于在性能和存儲容量大的32位嵌入式系統上使用,作為引導操作系統的功能。隨著現代電子產品對體積、功能、應用和調試等多方面的需求,8位MCU上也開始出現Bootloader需求,光模塊在這方面體現得尤其強烈。
光模塊的作用就是光電轉換,發送端把電信號轉換成光信號,通過光纖傳送后,接收端再把光信號轉換成電信號。光模塊的體積非常小,對硬件工程師布線是一個很大的考驗,很多工程師為預留程序下載接口絞盡腦汁。由于光模塊普遍采用I2C Slave接收數據,因此內置I2C Bootloader進行程序更新,可以極大地方便硬件工程師進行設計,同時方便客戶批量生產。
EFM8的I2CBootloader實現
Silicon Labs的8位MCU由于體積小、功耗低、外圍器件少、性能穩定,受到廣大光模塊廠家的青睞,其C8051F33X、C8051F39X和C8051F85X等系列的8位MCU在光模塊領域普遍使用。今年,Silicon Labs繼續發力,針對光模塊市場推出EFM8BB系列的低成本和EFM8LB系列的高性能MCU,并在EFM8全系產品中加入Bootloader。
計算機通過USB或串口通過EFM8進行程序更新的原理如圖1所示:
圖1: EFM8的USB和串口下載
計算機上的下載軟件首先將下位機上執行的固件HEX文件轉換為二進制的記錄文件,然后將文件內容拆分成多個數據包,分次傳給EFM8 Bootloader,EFM8收到數據后解包,更新用戶程序區代碼。
由于計算機沒有I2C接口,因此EFM8的I2C下載需要增加MCU進行UART到I2C協議轉換,如圖2所示:
圖2 :EFM8的I2C下載
目前UART到I2C協議轉換,Silicon Labs提供基于C8051F37X和C8051F39X的全套源代碼,客戶也可以輕松地移植到其它平臺上。
EFM8內置的Bootloader位于其代碼安全頁上,確保Bootloader在Flash頁被鎖定的情況下仍然正確更新程序,同時,如果客戶不需要Bootloader,也可以用下載器擦除釋放Flash空間。
綜上所述,Silicon Labs充分考慮光模塊的需求,適時在EFM8上增加I2C下載功能,同時繼續保持其業界體積小、功耗低的優勢,無疑會增加產品競爭力,使其繼續保持光模塊市場份額領先地位。
-
mcu
+關注
關注
146文章
17019瀏覽量
350374 -
cpu
+關注
關注
68文章
10829瀏覽量
211193 -
usb
+關注
關注
60文章
7903瀏覽量
264049
原文標題:光模塊利器-預置I2C Bootloader的EFM8 8位MCU
文章出處:【微信號:SiliconLabs,微信公眾號:Silicon Labs】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論