UART2・GPS PPS・外部トリガー¶
対象:IMU600-V2/FW 0.11.2/GUI v1.6.1。
UART2第2出力¶
UART2は J1 pin 9 U2TXから出力し、出荷時は 460800 bps・binary・3個のRAW IMUです。UART1のGUIとUART2の航法計算機などを同時に使えます。pin 11 U2RXは現在コマンドを受信しません。
- UART2設定はUART1から行います。U2OUTで内容、U2MODEで形式、U2BAUDで速度を選び、最後にSAVEします。
- raw・fused・ahrs・baro・statを+で組み合わせ、none/allも選べます。statには1 Hz統計とPPS状態が含まれます。
- 内容選択とbinary seqは各ポート独立です。ACK/NAK/INFOはUART1のみへ返ります。バッファ満杯時はメッセージ単位で破棄され、SYS u2_dropまたはGUIのUART破棄(U2 n)で確認できます。
$SPNVCMD,U2OUT,raw+baro
$SPNVCMD,U2MODE,binary
$SPNVCMD,U2BAUD,921600
$SPNVCMD,SAVE,1
この例ではRATEは変更されません。帯域表を確認してください。3個のRAWは100 Hzで約22.5 kB/s、1000 Hzで約225 kB/sとなり、後者は対応するすべてのUART速度の容量を超えます。
GPS PPS配線と時刻整列¶
GPSまたは精密1 Hz基準のPPSを pin 13 GPS_PPS_INへ共通GNDで接続します。3.3 V立ち上がりエッジ、パルス幅1 µs以上を使用し、3.3 Vを超えないでください。初期値PPS = 1で、PPSが未接続の場合は内部クロックで出力を続けます。
| 項目 | 要件/動作 |
|---|---|
| 周期 | 連続する立ち上がり間隔999–1001 ms(1 s ±1000 ppm) |
| ロック | 連続2区間の適合でロック |
| ノイズ/欠落 | 短すぎる間隔は除外しcaptures − edgesで確認。1–9パルス欠落時はk = 2–10秒区間で位相維持が可能 |
| HOLDOVER | 1.5 s超のPPS喪失で最後の有効間隔から外挿 |
| 分解能 | 50 MHzエッジ取得は20 ns分解能、ts_usの単位は1 µsのままです。絶対時刻精度とは区別します |
ロック時はPPSの1秒にRATE個の出力区間があり、該当RAW status/合成flagsのbit7が立ちます。初回ロックでは最大1出力周期の位相調整が起き、dtが変化します。GPS時刻文字列は受信しないため、ts_usは起動後時刻のままで、ホストが印付きデータをGPS UTC整秒へ関連付けます。
PPS整列の例:RATE = 5 Hz
PPS状態確認¶
| state | Name | 意味 |
|---|---|---|
| 0 | OFF | PPS,0;自由走行 |
| 1 | NO_SIGNAL | 有効な基準なし |
| 2 | ACQUIRING | エッジあり、連続2区間条件未達 |
| 3 | LOCKED | 整列済み |
| 4 | HOLDOVER | 最後の間隔を継続;有効PPS復帰で回復 |
UART1はSTAT,1、UART2はU2OUTにstatを含めると、有効エッジや状態変化でSPNVPPSを受信できます。pps_cntが増えてもACQUIRINGが続く場合は実周期を測定します。ソフトウェア生成の「1 Hz」は±1000 ppmを満たさない場合があります。
EXT_TRIGGER外部入力¶
| TRIG | モード | 出力動作 |
|---|---|---|
| 0 | 連続(初期値) | RATEで自動出力;pin 15無視 |
| 1 | 外部トリガー | pin 15立ち上がり待ち;初回は基点のみ |
- プッシュプル3.3 V信号を pin 15 EXT_TRIGGERへ共通GNDで接続し、幅1 µs以上とします。入力にはプルダウンがあります。
- TRIG,1で有効化し、必要ならSAVEします。初回エッジでは出力せず、以後の有効エッジで直前エッジからの全積分を出力します。
-
CFGのtrig、SYSのtrig_cnt/trig_rej、GUI出力モードを確認し、不要時はTRIG,0へ戻します。
-
ts_usはトリガーエッジ時刻、dtは実際の標本積分時間です。標本単位で区切るため、正確なエッジ間隔との差は1標本未満(約0.68 ms)となり得ます。隣接Δθ/Δvに標本の重複・欠落はありません。出力は最大約0.7 msの標本待ちと処理・転送時間を要します。
- 推奨は1–1000 Hzです。0.5 ms未満のエッジ間隔は除外、約10秒無入力後の次エッジは基点を再設定します。1秒超の間隔ではAHRSを更新しません。
- このモードではRATEはIMU出力を決めず、PPS区間整列も無効です。気圧出力はBRATEに従います。OUT/AHRS/U2OUTは有効で、帯域はトリガー周波数で計算します。
仕様補足:トリガーとPPSの版差¶
高優先度のトリガー割り込みで50 MHzタイマーからエッジ時刻を取得しますが、積分は生標本単位です。trig_rejには0.5 ms未満ノイズだけでなく、主ループの処理が追いつかないときのイベントキューのオーバーフローも含みます。
HOLDOVERからPPSが復帰し、元の整秒基準に合えば即LOCKED、ずれていればACQUIRINGへ戻ります。不適合間隔では毎秒PPS通知が出るとは限らないため、生pps_cntも確認します。
fw ≤0.8.0では連続出力に最新値再送を追加する方式で、積分重複/欠落の可能性があり、現在は廃止されています。本ガイドはfw 0.11.2のトリガーモードです。コネクター名はユーザーマニュアルのJ1 24-pin図に統一し、開発ボードJ3/J4の番号と混同しないでください。
通信詳細はプロトコルv1.1、26–28ページにも基づきます。プロトコル概要を参照。
$SPNVPPS完全形式とフィールド¶
$SPNVPPS,<ts_us>,<edges>,<captures>,<state>,<err_ppm>,<age_ms>,<align>*XX
| # | フィールド | 単位/意味 |
|---|---|---|
| 1 | ts_us | µs。最近の有効PPS立ち上がり、IMUと同じ起動時計。 |
| 2 | edges | 条件を満たしたエッジ累計。 |
| 3 | captures | ノイズ込み生取得累計。captures − edgesは未採用数。 |
| 4 | state | 0 OFF / 1 NO_SIGNAL / 2 ACQUIRING / 3 LOCKED / 4 HOLDOVER |
| 5 | err_ppm | ppm。PPSに対する水晶偏差、正はローカルが速い。Binaryはerr_ppb = err_ppm × 1000。 |
| 6 | age_ms | 最近の有効エッジからのms。Binary u16上限65535 ms。 |
| 7 | align | 1は出力境界がPPSへ整列済み。 |
XXはチェックサムの説明用表記で、実際の行末はCRLFです。測定したPPS間隔をRATEで割り、次の1秒間の出力間隔を決めます。ts_usがUTCに変わるわけではありません。993.83 mHz(約6200 ppm)ではpps_cnt増加でもロックしません。
トリガーモードでもRATEを保持しTRIG,0復帰後に使用、統計は毎秒です。接続名に相違があり仕様§12はJ2、§13はJ3、ユーザーマニュアルのモジュール主コネクターはJ1です。J1 24-pin図の15と6/8/10/12を使い、開発基板J3/J4と区別してください。
原資料:IMU600-V2 User Manual v1.1 · PDFページ 28–31
