重置、韌體更新與疑難排解¶
適用於 IMU600-V2/韌體 0.11.2/GUI v1.6.1。
MCLR 外部重置¶
將 J1 pin 17 拉低再放開,即可觸發硬體重置。板上已有 10 kΩ 上拉至 3.3 V;外部電路只負責拉低,不可用 5 V 或 push-pull 主動拉高。未使用可留空。
| 方式 | 接法 |
|---|---|
| A. 常開按鈕 | MCLR → 470 Ω → switch → GND |
| B. N-MOSFET 開汲極 | MCLR → 100–470 Ω → drain;source → GND。GPIO → 100 Ω → gate,gate 加 100 kΩ 下拉;可用 2N7002 等,主機 GPIO 3.3/5 V 皆可 |
| C. 3.3 V 開汲極 GPIO | MCLR → 470 Ω → open-drain GPIO |
MCLR 按鈕/MOSFET 參考電路
- 拉低至少 10 µs,建議 1–10 ms;長時間保持低態會讓模組一直停在重置。MOSFET 方案中,GPIO 高=重置,低=正常執行。
- 串聯電阻需保留。雜訊較大時,可在串聯電阻靠近外部控制電路的那一側加 1–10 nF 對地電容;不要在 MCLR 直接接大電容。超過約 30 cm 或外露連線,可評估 3.3 V TVS。
- 放開 MCLR 後,bootloader 先等待約 120 ms,再花約 250 ms 初始化 IMU。模組會載入已用 SAVE 儲存的設定,將 ts_us 歸零,並重新進行 AHRS 對準。此時請保持靜止約 1 秒。INFO 的 SPNVRESET 應顯示 EXTR(MCLR)。
軟體重開機可使用 $SPNVCMD,BOOT,1,同樣載入已儲存設定。
一般韌體更新¶
韌體由 SparkNavi 提供加密簽章 .spfw,透過 GUI/UART1 更新。設定與六面校正存於獨立 flash 區,依手冊更新不會清除。請使用與裝置硬體及批次相符的檔案。
- 以 GUI 連線,原本使用的鮑率/ASCII 或 binary 皆可。
- 檔案 → 韌體更新,選取 .spfw,核對檔案版本、適用硬體、打包時間及目前裝置版本。
- 按開始更新;模組進入 bootloader,GUI 以 460800 傳送,驗證成功後重新連線。更新期間保持供電及連線。
- 確認狀態列/裝置資訊顯示新韌體,再讀回 CFG/CAL,確認設定符合預期,且資料正常輸出。
救援更新¶
若更新中斷、裝置停在 bootloader,或已無法正常輸出資料,可使用救援更新。它與用來恢復未知通訊設定的 Boot Rescue(20 秒)是不同功能。
- GUI 保持中斷連線,選好 COM 埠。
- 檔案 → 韌體更新 → 選 .spfw → 救援更新。
- 30 秒內斷電再上電,或以 MCLR 重置,讓 GUI 在開機時連上 bootloader,開始更新。
| 更新錯誤 | 處理 |
|---|---|
| 金鑰/硬體不符 | 向 SparkNavi 索取正確 .spfw |
| 驗證失敗 | 重新取得原始檔案,以救援更新重試 |
| 只能用 PICkit 燒錄 | 開發版韌體,請聯絡 SparkNavi |
疑難排解¶
| 現象 | 檢查與處理 |
|---|---|
| 連不上/無資料 | 檢查 +5 V、TX/RX 交叉、共地與 COM;使用 GUI 自動鮑率偵測 |
| 亂碼 | 確認鮑率;binary 應用 GUI 解碼,文字終端需 MODE,ascii |
| 重開機後設定還原 | Apply 只改 RAM;用 SAVE,1 保存 |
| 未知已儲存設定 | GUI 參數頁 Boot Rescue,20 秒內重新上電 |
| uart_drop / u2_drop ↑ | 降低 RATE/輸出項目,改 binary 或提高對應鮑率;參見頻寬表 |
| status 16 / SATURATED | 量程飽和;檢查劇烈運動、撞擊與振動 |
| status 32 / 44 | 開機數筆為初始化;運作中持續出現則檢查掉壓 |
| status 8 / 12 | REINIT,1;持續則聯絡 SparkNavi |
| status 128 | PPS 標記;品質檢查用 status & 0x7F |
| Yaw 漂移 | 無絕對航向來源;HDG 手動指定或主機融合外部航向 |
| AHRS flags bit4 | 對準時移動;靜置後 AHRS,reset |
| PPS NO_SIGNAL | 確認 pin 13、3.3 V、上升緣、共地與 1 Hz 訊號 |
| PPS ACQUIRING | 量測 999–1001 ms 間隔;檢查 GPS PPS 狀態與雜訊,STAT,1 看 PPS 回報 |
| 持續無反應 | 檢查 MCLR 是否被拉低;更新中斷則進行救援更新 |
| SPNVHALT | 附 INFO 回覆聯絡 SparkNavi |
| 觸發模式無輸出 | 第一個邊緣只建立起點;檢查 pin 15 及 trig_cnt,不使用時 TRIG,0 |
| trig_rej ↑ | 小於 0.5 ms 的毛刺;縮短配線、共地、使用推挽 3.3 V |
| PreArm: Gyro n rate … | 此 Blue2 整合需 RATE,1000 並 SAVE,1 |
| 找不到 IMU600 | 核對自訂韌體、SPI,ardupilot、SPICK,3、接腳 6/8/10/12 與 txn 是否增加 |
| IMU600: SPI is in stream mode | 改 SPI,ardupilot 並 SAVE |
| 高頻時 GUI 速率不準 | 先排除 UART 頻寬不足;SPI 與 UART 分開確認。接飛控時可關 OUT/AHRS/U2OUT |
向 SparkNavi 回報¶
請附上 INFO,1、CFG,1 的完整回覆、韌體/GUI 版本、接線及操作條件,以及 GUI 錄製的原始 .bin 檔,寄至 ethan@robotlab.com.tw。
更新通訊與 bootloader 等待¶
依通訊協定,BOOT,1 回覆 ACK 後重啟進 bootloader,以 460800 bps、8N1 等待更新工具 HELLO 約 1.5 s,不輸出一般文字;沒有更新要求時回原應用韌體。這段等待是供韌體更新使用,與 MCLR 正常重置的啟動等待不同,也不同於非預設通訊設定下的 500 ms FACTORY 救援時段。
更新中斷或應用韌體異常時,bootloader 可留在救援等待狀態。更新格式未公開於本協定;若要整合自有更新工具,請聯繫 SparkNavi 取得支援。
本章通訊細節另依通訊協定 v1.1,第 19–26 頁整理;通訊協定總覽。
原始文件:IMU600-V2 User Manual v1.1 · PDF 頁 35–40
