Silicon Labs(亦稱(chēng)芯科科技)在全系列EFM8 8位MCU出廠時(shí)預(yù)置帶I2C、UART或USB等多種方式下載功能的Bootloader進(jìn)行程序更新,并提供源代碼方便用戶(hù)進(jìn)行定制Bootloader,這對(duì)于廣大的光模塊研發(fā)工程師來(lái)說(shuō),無(wú)疑是注入了一支興奮劑。
什么是Bootloader?
Bootloader顧名思義,即具有Boot引導(dǎo)系統(tǒng)和Loader更新系統(tǒng)功能,其功能類(lèi)似計(jì)算機(jī)的BIOS,是MCU上電后執(zhí)行的第一段代碼,它完成CPU和相關(guān)硬件的初始化后,判斷系統(tǒng)此時(shí)應(yīng)進(jìn)入Boot模式還是Loader模塊。在Boot模式下,MCU會(huì)跳轉(zhuǎn)到用戶(hù)代碼處執(zhí)行用戶(hù)程序;在Loader模式下,MCU接收I2C、UART或USB等方式傳輸?shù)臄?shù)據(jù),覆蓋用戶(hù)程序代碼區(qū),更新程序代碼。
通過(guò)預(yù)置Bootloader,用戶(hù)可以不使用調(diào)試接口和工具,直接在通訊接口上進(jìn)行程序的更新和升級(jí),極大地方便用戶(hù)更新產(chǎn)品程序。
光模塊為何需要內(nèi)置I2C Bootloader?
一直以來(lái),Bootloader由于硬件限制,只限于在性能和存儲(chǔ)容量大的32位嵌入式系統(tǒng)上使用,作為引導(dǎo)操作系統(tǒng)的功能。隨著現(xiàn)代電子產(chǎn)品對(duì)體積、功能、應(yīng)用和調(diào)試等多方面的需求,8位MCU上也開(kāi)始出現(xiàn)Bootloader需求,光模塊在這方面體現(xiàn)得尤其強(qiáng)烈。
光模塊的作用就是光電轉(zhuǎn)換,發(fā)送端把電信號(hào)轉(zhuǎn)換成光信號(hào),通過(guò)光纖傳送后,接收端再把光信號(hào)轉(zhuǎn)換成電信號(hào)。光模塊的體積非常小,對(duì)硬件工程師布線是一個(gè)很大的考驗(yàn),很多工程師為預(yù)留程序下載接口絞盡腦汁。由于光模塊普遍采用I2C Slave接收數(shù)據(jù),因此內(nèi)置I2C Bootloader進(jìn)行程序更新,可以極大地方便硬件工程師進(jìn)行設(shè)計(jì),同時(shí)方便客戶(hù)批量生產(chǎn)。
EFM8的I2CBootloader實(shí)現(xiàn)
Silicon Labs的8位MCU由于體積小、功耗低、外圍器件少、性能穩(wěn)定,受到廣大光模塊廠家的青睞,其C8051F33X、C8051F39X和C8051F85X等系列的8位MCU在光模塊領(lǐng)域普遍使用。今年,Silicon Labs繼續(xù)發(fā)力,針對(duì)光模塊市場(chǎng)推出EFM8BB系列的低成本和EFM8LB系列的高性能MCU,并在EFM8全系產(chǎn)品中加入Bootloader。
計(jì)算機(jī)通過(guò)USB或串口通過(guò)EFM8進(jìn)行程序更新的原理如圖1所示:
圖1: EFM8的USB和串口下載
計(jì)算機(jī)上的下載軟件首先將下位機(jī)上執(zhí)行的固件HEX文件轉(zhuǎn)換為二進(jìn)制的記錄文件,然后將文件內(nèi)容拆分成多個(gè)數(shù)據(jù)包,分次傳給EFM8 Bootloader,EFM8收到數(shù)據(jù)后解包,更新用戶(hù)程序區(qū)代碼。
由于計(jì)算機(jī)沒(méi)有I2C接口,因此EFM8的I2C下載需要增加MCU進(jìn)行UART到I2C協(xié)議轉(zhuǎn)換,如圖2所示:

圖2 :EFM8的I2C下載
目前UART到I2C協(xié)議轉(zhuǎn)換,Silicon Labs提供基于C8051F37X和C8051F39X的全套源代碼,客戶(hù)也可以輕松地移植到其它平臺(tái)上。
EFM8內(nèi)置的Bootloader位于其代碼安全頁(yè)上,確保Bootloader在Flash頁(yè)被鎖定的情況下仍然正確更新程序,同時(shí),如果客戶(hù)不需要Bootloader,也可以用下載器擦除釋放Flash空間。
綜上所述,Silicon Labs充分考慮光模塊的需求,適時(shí)在EFM8上增加I2C下載功能,同時(shí)繼續(xù)保持其業(yè)界體積小、功耗低的優(yōu)勢(shì),無(wú)疑會(huì)增加產(chǎn)品競(jìng)爭(zhēng)力,使其繼續(xù)保持光模塊市場(chǎng)份額領(lǐng)先地位。
-
mcu
+關(guān)注
關(guān)注
147文章
18789瀏覽量
393049 -
cpu
+關(guān)注
關(guān)注
68文章
11250瀏覽量
223861 -
usb
+關(guān)注
關(guān)注
60文章
8411瀏覽量
282972
原文標(biāo)題:光模塊利器-預(yù)置I2C Bootloader的EFM8 8位MCU
文章出處:【微信號(hào):SiliconLabs,微信公眾號(hào):Silicon Labs】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
I2C 為什么只要兩根線就能搞定通信?
基于FPGA的I2C控制模塊設(shè)計(jì)
AS32X601的I2C模塊操作EEPROM詳解
I2C死鎖的問(wèn)題
基于芯源CW32F030 MCU的I2C通信及應(yīng)用
深入剖析I2C協(xié)議
AS32系列MCU芯片I2C模塊性能解析與調(diào)試
第十八章 I2C通信測(cè)試
第十六章 一文淺談I2C
簡(jiǎn)單了解I2C接口
嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-I2C設(shè)備驅(qū)動(dòng)之Linux下的I2C驅(qū)動(dòng)簡(jiǎn)介
飛凌嵌入式ElfBoard ELF 1板卡-I2C設(shè)備驅(qū)動(dòng)之Linux下的I2C驅(qū)動(dòng)簡(jiǎn)介
是德DSOX4034A示波器I2C總線信號(hào)分析
芯科科技光模塊利器預(yù)置I2C Bootloader功能
評(píng)論