UART2、GPS PPS 與外部觸發

適用於 IMU600-V2/韌體 0.11.2/GUI v1.6.1。

UART2 第二輸出埠

UART2 由 J1 pin 9 U2TX 輸出,出廠為 460800 bps、binary、三顆 RAW。它可以與 UART1 同時使用:例如 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;請依實際輸出率查頻寬表。三顆 RAW 在 100 Hz 約 22.5 kB/s,1000 Hz 約 225 kB/s,後者超出所有支援 UART 鮑率的容量。

GPS PPS 接線與時間對齊

將 GPS 或精確 1 Hz 來源的 PPS 接到 pin 13 GPS_PPS_IN 並共地。輸入需為 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 上升緣之間會安排 RATE 個 IMU 輸出週期。與 PPS 對齊的那筆資料,其 RAW status/fused flags 的 bit7 = 1。首次鎖定會調整一次相位(最多一個輸出週期),因此該筆 dt 可較長或較短。模組沒有接收 GPS 時間字串,ts_us 仍是開機時間;若需要 UTC,主機必須另外取得 GPS 時間,將帶 PPS 標記的資料對應到正確的 UTC 整秒。

PPS 時間格對齊範例:RATE = 5 Hz

PPS 時間格對齊範例:RATE = 5 Hz

PPS 狀態檢查

state Name 意義
0 OFF PPS,0;依模組自己的時鐘輸出
1 NO_SIGNAL 尚無合格訊號
2 ACQUIRING 有邊緣,尚未達連續兩次合格
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 上升緣;第一個只建立起點
  1. 將推挽 3.3 V 訊號接到 pin 15 EXT_TRIGGER,共地,脈寬至少 1 µs;輸入已有下拉。
  2. 以 TRIG,1 啟用,視需要 SAVE。第一個上升緣只記錄起點,不輸出資料。之後每個符合條件的上升緣,會輸出上一個上升緣到這次上升緣之間的積分結果。
  3. 檢查 CFG 的 trig、SYS 的 trig_cnt/trig_rej 與 GUI 輸出模式。不使用時改 TRIG,0。

  4. ts_us 記錄觸發上升緣,dt 是實際取樣積分時間。積分依原始樣本切分,與精確觸發間隔可差不到 1 個樣本(約 0.68 ms);相鄰 Δθ/Δv 接續,不重複或漏掉樣本。觸發至輸出需等待至多約 0.7 ms 的原始樣本,再加處理及傳輸時間。

  5. 建議 1–1000 Hz。間隔 <0.5 ms 的邊緣丟棄;超過約 10 s 無觸發,下一個重新建立起點;間隔 >1 s 時 AHRS 不更新。
  6. 在外部觸發模式下,IMU 何時輸出由觸發訊號決定,RATE 不再控制輸出時機,也不再將輸出週期對齊 PPS。氣壓資料仍依 BRATE 輸出。OUT/AHRS/U2OUT 仍控制各埠內容,頻寬按觸發頻率估算。

協定補充:觸發與 PPS 版本差異

觸發中斷以較高優先權讀取 50 MHz 計時器,記錄邊緣時間;取樣積分本身仍以原始樣本為單位。trig_rej 除了短於 0.5 ms 的毛刺,也包含主迴圈忙碌造成的觸發事件佇列溢位。

PPS 從 HOLDOVER 恢復時,若新邊緣仍符合原整秒基準,可立即 LOCKED;若偏離整秒基準,需回 ACQUIRING。無合格間隔時不一定每秒看到 PPS 訊息,請同時觀察原始 pps_cnt。

fw ≤0.8.0 的舊觸發行為是持續輸出並額外重送最新資料,可能造成重複或漏積分;已在新版移除。本指南以 fw 0.11.2 的觸發行為為準,也就是由觸發訊號決定每筆積分資料的範圍。接頭命名依使用手冊的 J1 24-pin 圖;開發板 J3/J4 是另外的接頭,不可混用 pin 編號。

本章通訊細節另依通訊協定 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,作為下一秒各筆輸出之間的間距。這項同步只調整輸出時機,ts_us 仍維持開機起算的時間,不會變成 UTC。若訊號實際為 993.83 mHz(約 6200 ppm 偏差),pps_cnt 會增加但不會鎖定。

觸發模式仍保留 RATE,切回 TRIG,0 後使用;統計仍每秒一組。兩份文件的接頭代號有差異:通訊協定 §12 寫 J2、§13 寫 J3,但使用手冊的模組主接頭是 J1。請以模組 J1 24-pin 圖的 pin 15 與 pin 6/8/10/12 接線,勿與開發板 J3/J4 混用。


原始文件:IMU600-V2 User Manual v1.1 · PDF 頁 28–31

原文件逐頁閱讀 · 三份文件逐章對照與差異說明

回到本分類總覽 · 全部設定指南