除錯內建 ELRS:TFC1 上的封包 CRC 錯誤

除錯內建 ELRS:TFC1 上的封包 CRC 錯誤

深入調查 ExpressLRS SPI 接收器在 RP2354B 上的整合 — 從頻率規劃到封包 CRC 失敗

計劃與問題

TFC1 設計時整合了 SX1281 LoRa 收發器用於 ExpressLRS(ELRS)— 消除了對獨立接收器模組的需求。這與 BetaFPV 和其他緊湊型飛行控制器使用的方法相同。理論很直接:透過 SPI 將 SX1281 連接到 RP2354B,配置 BetaFlight 的 ELRS 驅動程式,然後飛行。

實際上,配對過程總是因封包 CRC 錯誤而失敗。TX15 發射器和 TFC1 接收器似乎在相同的頻率上,但接收封包上的 CRC 校驗和從未匹配。

調查

除錯過程遵循系統性的方法:

1. 頻率驗證

透過除錯 UART,我們確認 TFC1 的頻率設定正確。一個 BetaFlight 拉取請求(#15014)關閉了 SX127X 支援,在 ELRS 共用程式碼中引入了陣列索引偏移錯誤 — 當 BetaFlight 中移除 ELRS 2.x 支援時,RP2350 平台的計時器實作缺失,導致頻率配置錯誤。這是透過將 alarm-api 拉取請求的早期合併到我們的韌體分支(基於 2026-03-15 BetaFlight fork)來修復的。

修復後,初始化序列顯示:

domain from eeprom = 0 (ISM2400)
enumRate = 9 (LORA 500Hz)
UID = 0000D6028D94 (bind phrase)
switchMode = 0 (Wide)
tlmInterval = 2 (1 telemetry packet per 128)

這些與 TX15 設定完全匹配。

2. 封包結構分析

ELRS OTA 封包固定為 8 個位元組,結構類似於 CAN 匯流排幀。第一個位元組同時包含封包類型(2 位元)和高 CRC 位元組(6 位元):

  • 封包類型:0x000x010x020x03(有時 0x04 當 crcHigh = 1 時)
  • 每個封包:8 個位元組總共,CRC 在第一個和最後一個位元組

每次測試會話都顯示第一個位元組總是正確的 — 0x00 到 0x03 中的一個。如果 RF 頻率錯誤,我們會看到所有位元組的隨機亂碼,而不僅僅是 CRC 失敗。這意味著頻率規劃是正確的,問題特別在於封包完整性。

3. 電感假設

關鍵線索來自檢查 RF 前端電路。ZeroDrag Nexus1 ELRS 接收器的參考設計指定了一個 3nH 電感:muRata LQW15AN3N0B00D。然而,JLCPCB 組裝使用了 Sunlord SDCL1005C3N0STDF — 一個具有不同響應頻率和 Q 因數特性的不同零件。

這兩個電感,儘管具有相同的名稱電感值,在 2.4 GHz 時表現不同。Q 因數和自諧振頻率直接影響阻抗匹配網路的效能,進而影響信號完整性和 CRC 準確性。

Inductor comparison

測試程序很明確:從正常運作的 ELRS 接收器模組(SX1281 電路)上拆卸電感,並將其焊接到 TFC1 上作為受控實驗。如果更換正確電感後 CRC 錯誤消失,則假設得到確認。

4. 協議層級除錯

透過序列記錄揭示的 ELRS 封包結構:

[16:46:28.919] INFO: ttyUSB0: ./src/main/rx/expresslrs.c:935: 
(0x2) 02.B0.2E.18.C8.5F.A0 (<SYNC>) inCRC: 0x3A59, calculatedCRC: 0x1B0D, nonceValidator: 0)

inCRCcalculatedCRC 不匹配確認封包以正確的頻率和正確的 SPI/DMA 緩衝接收,但實際負載資料已損壞 — 與 RF 前端阻抗失配一致。

更宏觀的圖景

並行調查顯示,BetaFlight 中的 ELRS SPI 接收器支援實際上已被棄用。官方的 ELRS 參考實作位於專屬的 ELRS 儲存庫中(不在 BetaFlight 中),而 BetaFlight 社群認為 ELRS 協議細節是飛行控制器韌體之外的事情。

生態系中的大多數飛行控制器現在使用透過 UART 連接的外部 ESP32 基 ELRS 接收器模組,而不是整合的 SPI 接收器。唯一的例外是超緊湊板如 BetaFPV 型號,它們維護自己的 ELRS SPI 實作。

決定

由於 CRC 問題未完全解決,且外部 ELRS 接收器模組容易取得,決定暫時使用外部接收器模組。這是業界標準方法,避免了飛行控制器板上整合 RF 設計的複雜性。

除錯筆記、封包捕捉和電感比較資料被保留,作為未來任何直接在 RP2354B 平台上整合 ELRS 嘗試的參考。這次練習提供了對甚至「簡單」無線電接收器電路中的 RF 設計考量的有價值見解。

轉移焦點

ELRS 被擱置後,開發焦點轉向同伴電腦介面和電腦視覺流程。Raspberry Pi + 光學流的組合提供了向自主懸停能力邁進的更立即可產出的路徑。

有任何問題?需求?建議?

我們期待聽到您的聲音!

您正在尋找