前言
CW32 微控制器片上 FLASH 存儲器有一部分區(qū)域用于存儲 BootLoader 啟動程序,在芯片出廠時已編程,用戶可利用 BootLoader 啟動程序提供的 ISP 模式,通過 UART 串口方便地實現(xiàn)對 CW32 微控制器片上 FLASH 主存儲器的擦除和燒寫。本應(yīng)用筆記將介紹如何進入 CW32 微控制器 ISP 模式,以及所使用的 ISP 協(xié)議,并詳細介紹支持的每個命令。
01
目標芯片進入 ISP 模式的方法
▼ 芯片有 BOOT 腳的流程
- 使芯片處于 RESET 狀態(tài)
- 向芯片的 BOOT 引腳提供高電平
- 釋放芯片的 RESET 狀態(tài)
- 芯片進入 ISP 模式
▼ 芯片無 BOOT 腳的流程
- 使芯片處于 RESET 狀態(tài)
- 向芯片的 RXD(SWDIO)提供 50KHz 的方波
- 釋放芯片的 RESET 狀態(tài)并延時 5ms
- 芯片進入 ISP 模式
02
ISP 模式工作流程
▼ ISP 模式工作流程圖
當(dāng) CW32 微控制器進入 ISP 模式后,系統(tǒng)將等待串口接收命令。系統(tǒng)接收到命令后,將根據(jù)命令類型執(zhí)行相 應(yīng)的程序操作。
03
ISP 通信協(xié)議格式
▼ 數(shù)據(jù)傳輸要求
采用異步半雙工通信方式,8 個數(shù)據(jù)位、1 個停止位、無校驗位,初始速率為 115200BPS。
▼ 數(shù)據(jù)格式
協(xié)議以數(shù)據(jù)幀的形式進行交互,一個完整的數(shù)據(jù)幀由幀頭單元、數(shù)據(jù)長度單元、數(shù)據(jù)體單元、CRC 校驗單元 4 部分組成,如下圖所示:
▼ 數(shù)據(jù)幀格式
? 幀頭單元
1 字節(jié)長度,表示一個數(shù)據(jù)幀的開始,固定為 16 進制數(shù) 0x65。
? 數(shù)據(jù)長度單元
1 字節(jié)長度,表示數(shù)據(jù)體單元有多少個字節(jié),取值范圍為 0-255。
? 數(shù)據(jù)體單元
長度不固定,為實際的應(yīng)用層數(shù)據(jù) / 指令。
? 校驗單元
2 字節(jié)長度,為幀頭單元、數(shù)據(jù)長度單元及數(shù)據(jù)體單元所有數(shù)據(jù)的校驗值。采用 CCITT 推薦的 16 位的 CRC-16/X25 算法 x16+x12+x5+1(0x1021),生成 2 字節(jié)的 CRC 校驗和(低字節(jié)收發(fā)在前,高字節(jié)收發(fā)在后)。發(fā)送方必須根據(jù)要發(fā)送的數(shù)據(jù)生成 2 字節(jié)的 CRC 檢驗和,接收方收到完整的數(shù)據(jù)幀后,根據(jù)接收的數(shù) 據(jù)生成新的 CRC 檢驗和,如果新的 CRC 校驗和與收到的校驗和相等則表明該數(shù)據(jù)幀有效,否則向發(fā)送 方回送“校驗錯”的應(yīng)答。
▼ 應(yīng)答標志
本協(xié)議采用半雙工方式通訊,作為命令的主動發(fā)起方,需要收到被動接收方返回的應(yīng)答標志后,才可進行后 續(xù)的操作。接收方發(fā)送應(yīng)答的數(shù)據(jù)體單元的第一個字節(jié)為應(yīng)答標志。應(yīng)答標志編碼如下表所示:
▼ 應(yīng)答標志編碼定義
▼ 收發(fā)數(shù)據(jù)示例
收發(fā)數(shù)據(jù)示例:
04
ISP 模式命令集
下面的表 4-1 列出了支持的 ISP 命令:
▼ ISP 命令集
以上是武漢芯源CW32自舉程序中使用的ISP協(xié)議
-
微控制器
+關(guān)注
關(guān)注
48文章
7559瀏覽量
151487 -
單片機
+關(guān)注
關(guān)注
6037文章
44561瀏覽量
635667 -
mcu
+關(guān)注
關(guān)注
146文章
17162瀏覽量
351351 -
武漢芯源
+關(guān)注
關(guān)注
1文章
66瀏覽量
261
發(fā)布評論請先 登錄
相關(guān)推薦
評論