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