現貨庫存,2小時發貨,提供寄樣和解決方案
熱搜關鍵詞:
前言
CW32 微控制器片上 FLASH 存儲器有一部分區域用于存儲 BootLoader 啟動程序,在芯片出廠時已編程,用戶可利用 BootLoader 啟動程序提供的 ISP 模式,通過 UART 串口方便地實現對 CW32 微控制器片上 FLASH主存儲器的擦除和燒寫。
本應用筆記將介紹如何進入 CW32 微控制器 ISP 模式,以及所使用的 ISP 協議,并詳細介紹支持的每個命令。
1、目標芯片進入 ISP 模式的方法
? 芯片有 BOOT 腳的流程
- 使芯片處于 RESET 狀態
- 向芯片的 BOOT 引腳提供高電平
- 釋放芯片的 RESET 狀態
- 芯片進入 ISP 模式
? 芯片無 BOOT 腳的流程
- 使芯片處于 RESET 狀態
- 向芯片的 RXD(SWDIO)提供 50KHz 的方波
- 釋放芯片的 RESET 狀態并延時 5ms
- 芯片進入 ISP 模式
2、 ISP 模式工作流程
當 CW32 微控制器進入 ISP 模式后,系統將等待串口接收命令。系統接收到命令后,將根據命令類型執行相應的程序操作。
3、ISP 通信協議格式
3.1 數據傳輸要求 采用異步半雙工通信方式,8 個數據位、1 個停止位、無校驗位,初始速率為 115200BPS。
3.2 數據格式 協議以數據幀的形式進行交互,一個完整的數據幀由幀頭單元、數據長度單元、數據體單元、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 校驗和與收到的校驗和相等則表明該數據幀有效,否則向發送 方回送“校驗錯”的應答。
3.3 應答標志 本協議采用半雙工方式通訊,作為命令的主動發起方,需要收到被動接收方返回的應答標志后,才可進行后 續的操作。接收方發送應答的數據體單元的第一個字節為應答標志。應答標志編碼如下表所示:
3.4 收發數據示例 收發數據示例: 發送方:0x65 0x01 0x10 0x65 0xF3 接收方:0x65 0x09 0x00 0x18 0x00 0x08 0x00 0x01 0x01 0x06 0x00 0xBA 0x2B 其中黃色為幀頭單元,藍色為數據長度單元,綠色為數據體單元,灰色為 CRC 校驗單元。接收方的數據體單 元的第一個字節為應答標志。
4、ISP 模式命令集
下面的表 4-1 列出了支持的 ISP 命令: