リセット・FW更新・トラブル対処¶
対象:IMU600-V2/FW 0.11.2/GUI v1.6.1。
MCLR外部リセット¶
J1 pin 17をLowにして開放するとハードウェアリセットします。基板上10 kΩで3.3 Vへプルアップされているため、外部はLowにするだけです。5 VやプッシュプルでHighを駆動せず、未使用時は開放します。
| 方式 | 接続 |
|---|---|
| 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回路例
- Lowを10 µs以上、推奨1–10 ms保持します。Lowを維持するとリセット状態が続きます。MOSFET回路ではGPIO Highがリセット、Lowが通常動作です。
- 直列抵抗を残します。ノイズが多い場合は抵抗の外部側へ1–10 nFをGNDに追加し、MCLRへ大容量を直結しません。約30 cm超または外部露出配線では3.3 V TVSを検討します。
- 開放後bootloaderが約120 ms待ち、IMU初期化に約250 msかかります。保存設定を読み、ts_usは0、AHRSは再アラインメントするため約1秒静止します。INFOのSPNVRESETでEXTR(MCLR)を確認できます。
ソフトウェア再起動は$SPNVCMD,BOOT,1で、同様に保存設定を読み込みます。
通常のFW更新¶
SparkNavi提供の暗号化・署名済み.spfwをGUI/UART1で更新します。設定と6面校正は別flashにあり、資料では更新後も保持されます。機器のハードウェア・製造ロットに適合するファイルを使用します。
- 現在の速度・ASCIIまたはbinaryモードでGUI接続します。
- File → Firmware Updateで.spfwを選び、版、対象ハードウェア、作成時刻と装置の現在版を確認します。
- 更新を開始します。bootloaderへ入り、460800で転送・検証後に再接続します。更新中は電源と接続を維持します。
- 新FW版を表示で確認し、CFG/CALを読み出して設定と出力を確認します。
救援更新¶
更新が途中で止まった場合、bootloaderから抜けられない場合、またはデータが出力されない場合に使います。不明設定を回復する20秒のBoot Rescueとは別機能です。
- GUIを未接続状態にしてCOMを選択します。
- File → Firmware Update → .spfw選択 → Rescue Updateを実行します。
- 30秒以内に再通電またはMCLRリセットし、GUIが起動ウィンドウで更新を開始できるようにします。
| 更新エラー | 対処 |
|---|---|
| キー/ハードウェア不一致 | SparkNaviから適合.spfwを取得 |
| 検証失敗 | 元ファイルを再取得し救援更新で再試行 |
| PICkitのみ対応 | 開発用FWのためSparkNaviへ連絡 |
トラブル対処¶
| 症状 | 確認と対処 |
|---|---|
| 接続不可/データなし | +5 V、TX/RX交差、共通GND、COMを確認しGUI速度検出を使用 |
| 文字化け | 速度確認。binaryはGUIで解析、文字端末ならMODE,ascii |
| 再起動で設定が戻る | ApplyはRAMのみ。SAVE,1を実行 |
| 保存設定が不明 | GUI Parameters → 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、立ち上がり、GND、1 Hzを確認 |
| PPS ACQUIRING | 999–1001 ms間隔、GPS PPSとノイズを確認。STAT,1で状態取得 |
| 無反応が続く | MCLRがLow固定でないか確認。更新中断時は救援更新 |
| SPNVHALT | INFO応答を添えSparkNaviへ連絡 |
| トリガー出力なし | 初回エッジは基点のみ。pin 15/trig_cnt確認、不要時TRIG,0 |
| trig_rej ↑ | 0.5 ms未満のノイズ。短い配線、共通GND、プッシュプル3.3 V |
| PreArm: Gyro n rate … | このBlue2構成はRATE,1000とSAVE,1が必要 |
| IMU600未検出 | 専用FW、SPI,ardupilot、SPICK,3、pin 6/8/10/12とtxn増加を確認 |
| IMU600: SPI is in stream mode | SPI,ardupilotへ変更してSAVE |
| 高レート時GUI表示不正確 | UART帯域を確認しSPIは別評価。飛行制御接続時はOUT/AHRS/U2OUTを停止可能 |
SparkNaviへの連絡¶
INFO,1・CFG,1の全応答、FW/GUI版、配線・動作条件、GUI記録の生.binファイルを添えてethan@robotlab.com.twへ連絡してください。
更新通信とbootloader待機¶
仕様ではBOOT,1のACK後bootloaderへ再起動し、460800 bps・8N1でHELLOを約1.5秒待ち、通常文字は出しません。更新要求がなければアプリへ戻ります。MCLR通常起動や初期値と異なる通信設定から復旧するための500 msのFACTORY受付時間とは別です。
更新中断やアプリ異常ではbootloaderが救援待機を継続できます。更新用通信形式は本仕様では非公開のため、自作更新ツール統合はSparkNaviへ問い合わせてください。
通信詳細はプロトコルv1.1、19–26ページにも基づきます。プロトコル概要を参照。
原資料:IMU600-V2 User Manual v1.1 · PDFページ 35–40
