4.5 KiB
4.5 KiB
KL520 IP Verification Auto-Test Suite
本專案提供了一套自動化測試流程,用於驗證 Kneron KL520 晶片上的主要周邊 IP (GPIO, SPI, I2C, PWM, ADC) 功能是否正常。測試程式透過 UART Console 介面進行互動。
1. 硬體準備與接線 (Hardware Setup)
在執行測試之前,請務必按照以下列表連接開發板上的腳位。錯誤的接線可能導致測試失敗。
1.1 GPIO Loopback (迴路測試)
請使用跳線帽 (Jumper) 或杜邦線連接以下腳位對:
- P37 <--> P36
- P34 <--> P32
- P27 <--> P26
- P35 <--> P38
1.2 SPI Loopback (SPI0)
測試 SPI0 的傳輸與接收功能:
- 連接 SPI0_MOSI (LC_DATA_6) <--> SPI0_MISO (LC_DATA_7)
1.3 PWM-ADC Loopback
測試 PWM 輸出電壓是否能被 ADC 正確讀取。為了將 PWM 的數位訊號轉換為類比電壓供 ADC 讀取,建議在 PWM 輸出與 ADC 輸入之間加入一組 RC 低通濾波器 (RC Low-pass Filter)。
-
接線圖 (Wiring Diagram):
KL520 Board +-----------+ | | R (e.g., 1k~10k) | PWM Out |-----/\/\/\-----+------- ADC Input | (P29) | | (ADC Ch3) | | --- C (e.g., 1uF~10uF) | GND |---------------+------- GND +-----------+ | GND -
連接說明:
- 串聯電阻 (R) 於 PWM Output (P29) 與 ADC Input (ADC Ch3) 之間。
- 並聯電容 (C) 於 ADC Input 與 GND 之間。
1.4 I2C Sensor
測試 I2C 通訊功能:
- 請確保 OV5647 Camera Module 已正確連接至開發板的 CSI/I2C 介面。
2. 軟體操作流程 (Operation)
-
編譯與燒錄:
- 編譯
solution_kdp2_test專案。 - 將韌體燒錄至 KL520 開發板。
- 編譯
-
啟動 Console:
- 使用終端機軟體 (如 MobaXterm, Tera Term) 連接開發板的 UART Debug Port。
- Baud Rate:
115200
-
主選單: 系統啟動後會自動執行一次完整測試,隨後進入主選單:
-------------------------------- IP Verification Menu -------------------------------- [1] GPIO Test [2] SPI Test [3] I2C Test [4] PWM-ADC Test [5] Run All Auto-Test Again -------------------------------- Select test: -
執行測試:
- 輸入對應的數字 (1-5) 並按下 Enter (視 Console 設定而定,部分設定可直接輸入數字)。
- 觀察螢幕輸出的
PASS或FAIL結果。
3. 測試項目說明 (Test Details)
[1] GPIO Test
- 原理:將一組 GPIO 設定為 Output,另一組設定為 Input。Output 輸出 High/Low 訊號,檢查 Input 是否讀取到正確數值。隨後交換角色再次測試。
- 判定標準:所有定義的腳位對在 High 與 Low 狀態下讀值皆正確。
[2] SPI Test
- 原理:使用 SPI0 Master 模式發送一組測試資料 (0xA0 ~ 0xAF)。由於 MOSI 與 MISO 短路,資料應原封不動地被接收回 FIFO。
- 判定標準:接收到的資料 (RX) 與發送的資料 (TX) 完全一致。
[3] I2C Test
- 原理:
- 掃描 I2C Bus (0x01 - 0x7F) 尋找所有掛載的裝置。
- 針對位址
0x36(OV5647) 讀取 Chip ID 暫存器。 - 執行軟體重置 (Software Reset) 並確認裝置是否存活。
- 判定標準:成功讀取到 OV5647 的 Chip ID (
0x5647)。
[4] PWM-ADC Test
- 原理:
- PWM 輸出不同佔空比 (Duty Cycle: 10%, 40%, 70%, 90%) 的訊號。
- 該訊號經由 RC 濾波 (若板上有) 或直接輸入至 ADC。
- ADC 讀取電壓值。
- 判定標準:ADC 讀取到的數值與預期的 PWM 電壓值誤差在容許範圍內 (Tolerance: 50)。
4. 常見問題排除 (Troubleshooting)
-
Console 無法輸入:
- 請檢查終端機軟體的換行設定 (New-line setting),嘗試設定為
CR+LF。 - 確認是否已套用
kmdw_console.c的非阻塞 (Non-blocking) 修正。
- 請檢查終端機軟體的換行設定 (New-line setting),嘗試設定為
-
SPI Test FAIL:
- 檢查 MOSI 與 MISO 的跳線是否鬆脫。
- 確認 Pinmux 設定是否正確指向 SPI0 功能。
-
I2C Test FAIL:
- 確認 OV5647 模組排線 (FPC) 方向是否正確且已扣緊。
-
PWM-ADC Test FAIL:
- 確認 P29 與 ADC3 之間的連接。
- 若使用三用電表量測 P29 電壓正常但 ADC 讀值錯誤,可能是 ADC 通道設定不匹配。