MC56F83789支持 256KB閃存,帶 ECC。內置雙閃存塊支持實時更新,高達 64KB RAM,以與內核相同的速度運行。增強型DMA。增加了引導ROM,以支持 UART、I2C和 CAN的代碼更新。
高達16通道高分辨率PWM,分辨率為312ps。雙路低功耗ADC,每個高達3MSPS。集成事件發生器(EVTG),集成USB 2.0 PHY 全速模式 OTG,CAN-FD外設,支持車規 AEC Q100 認證。
可用于電機控制、開電源應用場景,如 EV空調壓縮機, 電動汽車充電器, 電源模塊, 車載充電器,充電樁,太陽能離網逆變器, 家用儲能等應用。
MC56F83xxx在片上 Flash中運行代碼,因此Bootloader的主要任務是在制造生產期間或設備壽命期間的任何時間為內部 Flash 提供嵌入式固件應用程序更新。
MC56F83xxx具有片上ROM引導加載程序,這與 Kinetis 和 LPC系列相同,因為引導加載程序代碼保存在 ROM中,引導加載程序無法修改。
它使用以下固定外設下載應用程序代碼。Bootloader 通過充當從設備并監聽主設備可以啟動通信的各種外圍端口來進行配置。
內置 BootRom 支持通過 I2C, UART, CAN 總線接口進行在線升級,無需額外的仿真調試工具。
如果用戶設計目標板,想使用片上引導加載,則必須使用以下引腳。
下面演示用 blhost.exe軟件和 MC56F83xxx內置的Boot進行通信。
BCA和閃存配置字段配置,片上閃存中有一個特殊的空間,稱為BCA,位于 P:00x3C0,它提供了配置 Bootloader操作所需的所有參數。
對于未初始化的閃存,Bootloader使用預定義的默認配置。主機應用程序可以使用Bootloader對BCA進行編程,以便在引導加載器的后續初始化期間使用。
在P:0x400~0x40F處有一個名為Flash配置字段的特殊空間,必須設置FOPT(P:0x40D)的Bit7和Bit6,以便在復位啟動時執行引導加載程序。
為了設置BCA配置和Flash配置字段,用戶只需修改 Flash_config.c,它由CodeWarrior IDE軟件為 MCU 工具自動創建。
基于CodeWarrior為 MCU V11.x版本軟件生成 S-Record 固件文件,引導加載程序可以下載應用程序代碼以閃存 S-Record格式文件。
如下圖所示,S-Record文件可以由 CodeWarrior為 MCU工具生成,以便 blhost可以將 S-Record文件下載到 Flash。
請注意,必須選中“生成S記錄文件”/“按地址排序”/“生成字節地址”的選項。
最大S記錄長度設置為128,必須選擇DOS模式,如下圖所示。
請注意,由 blhost 工具下載的只能是*.elf.p.S文件而不是*.elf.S下載。限制:ROM 引導加載程序將其全局變量從 x:0x0000放入RAM,對它們沒有保護。
如果使用“.S”或“.x.S”文件,可能會損壞ROM引導加載程序的變量。因此,需要將“.p.s”文件與ROM一起使用。
Blhost -p com19 get property 1
Blhost-p com19 flash erase all unsecure //mass erase and set the DSC in unsecure mode by setting the P:0x40C byte in BYTE address mode
Blhost -p com19 flash image *.s19 erase
將應用程序代碼和常量轉儲到文件中,以便用戶比較應用程序代碼和常量是否正確編寫,或者當目標板從現場返回時,可以驗證應用程序固件是否損壞。
打開 CodeWarrior 軟件,創建新項目,通過點擊 + 按鈕添加任務及任務名。
選擇項目,點擊 Run->Debug 配置,調試配置菜單出現,選擇“Attach”,同時點擊 Debug按鈕,PC端將會連接目標板。
在點擊“Suspend” 按鈕后,PC端將會和 DSC板子通信,可以看到 P flash 的內容,點擊 Export 按鈕,“Export Memory” 菜單將會出現。然后輸入需要保存的文件名,保存 Flash的內容到該文件中。
可以看到 2.txt文件將包含 S-Record格式的文件數據。
備注:在安全模式下,JTAG端口被阻止訪問,用戶無法使用JTAG進行寫入或讀取。
但有一個后門,JTAG在安全模式下只接受大規模擦除命令,這樣可以在安全模式中擦除所有 Flash 以保護代碼,同時避免芯片 Flash一旦處于安全模式就永遠無法寫入的現象。
CW工具可以生成以下數組,并在將代碼下載到 Flash時將其寫入Flash 中的配置字段。
#pragma define_section reserved_FCF "reserved_FCF.text" RX
#pragma section reserved_FCF begin
static const uint8_t _flash_config_field[] = {
/* NV_BACKKEY3: KEY=0xFF */
0xFFU,
/* NV_BACKKEY2: KEY=0xFF */
0xFFU,
/* NV_BACKKEY1: KEY=0xFF */
0xFFU,
/* NV_BACKKEY0: KEY=0xFF */
0xFFU,
/* NV_BACKKEY7: KEY=0xFF */
0xFFU,
/* NV_BACKKEY6: KEY=0xFF */
0xFFU,
/* NV_BACKKEY5: KEY=0xFF */
0xFFU,
/* NV_BACKKEY4: KEY=0xFF */
0xFFU,
/* NV_FPROT3: PROT=0xFF */
0xFFU,
/* NV_FPROT2: PROT=0xFF */
0xFFU,
/* NV_FPROT1: PROT=0xFF */
0xFFU,
/* NV_FPROT0: PROT=0xFF */
0xFFU,
/* NV_FSEC: KEYEN=1,MEEN=3,FSLACC=3,SEC=2 */
0x7EU,
/* NV_FOPT: FOPT[7:6] = 11b 表示從ROM啟動,其他數值表示從 Flash啟動 Flash */
0xFFU,
/* Reserved */
0xFFU,
/* Reserved */
0xFFU
};
#pragma section reserved_FCF end
審核編輯:劉清
-
壓縮機
+關注
關注
11文章
664瀏覽量
79254 -
OTG
+關注
關注
2文章
149瀏覽量
45393 -
dma
+關注
關注
3文章
559瀏覽量
100446 -
ECC
+關注
關注
0文章
97瀏覽量
20536 -
數字信號控制器
+關注
關注
0文章
68瀏覽量
13219
原文標題:MC56F83789 數字信號控制器
文章出處:【微信號:嵌入式 MCU,微信公眾號:嵌入式 MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論