【ATU Book-i.MX9系列】OP-Gyro ( NXP i.MX93 ) I2C / SPI / UART 功能驗證

一. 概述

世平集團 ATU 伊布小編 (一部) 團隊針對 i.MX 相關技術整理了一系列博文,本篇文章將會針對如何對 OP-Gyro ( NXP i.MX93 ) I2C / SPI / UART 功能如何驗證進行說明與介紹,希望能夠透過這些博文協助大家更了解 i.MX 的相關技術,未來 ATU 伊布小編 (一部) 團隊也會持續更新此系列的相關博文還懇請支持!

1.1 OP-Gyro 介紹

OP-Gyro 是世平集團使用 NXP i.MX93 為核心設計製作的 SBC 方案,其 SOC 規格包含了 Arm® Cortex®-A55 與 Arm® Cortex®-M33 兩種核心的處理器,這種多核心架構 Arm 處理器讓系統實現高效且即時的應用,如想了解更多關於 OP-Gyro 方案i.MX 的相關技術,可以透過 ATU 伊布小編 (一部) 團隊整理的系列博文索引來查找。

二. 環境建置

2.1 BSP 編譯

首先使用 Yocto Project 建立 BSP,更多詳細資訊請參考 Github【ATU Book-i.MX9系列】OP-Gyro ( NXP i.MX93 ) Linux 開發環境架設這篇博文:

$ mkdir <release> && cd <release>

$ repo init -u https://github.com/WPI-ATU-1/wpi-manifest.git -b imx-linux-mickledore -m imx-6.1.55-2.2.0.xml && repo sync

$ DISTRO=fsl-imx-xwayland MACHINE=opgyro source imx-setup-release.sh -b build

$ bitbake <image recipe>


2.2 燒錄

目前 NXP 所採用的映像檔格式為 wic 檔案,至開發環境中的 <Yocto Build>/tmp/deploy/images/<machine> 查看是否有 .wic 或 .wic.zst 檔案,在此以 SD Card 作為儲存裝置的燒錄方式為範例,想了解其他儲存裝置,請參考 【ATU Book-i.MX9系列】OP-Gyro ( NXP i.MX93 ) 系統燒錄介紹這篇文章。

$ sudo dd if=<.wic> of=</dev/sdx> bs=1M stutas=progress conv=sync


三. I2C 功能驗證

3.1 I2C 查詢

首先列出 I2C 所有資訊,並選擇要測試的 Device Address,在此我們選擇 I2C1 中的 0x0a 的 Device 進行測試。

$ i2cdect -l
i2c-0 i2c 44340000.i2c I2C adapter
i2c-1 i2c 44350000.i2c I2C adapter
i2c-2 i2c 42530000.i2c I2C adapter

$ i2cdetect -r -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- UU -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --


3.2 I2C 測試

在此使用示波器量測訊號進行測試,透過 i2cset Command 發送資料。

$ i2cset -y -f 0 0x0a 0x01 0x23


最後在示波器上可以看到類似下面的波形,確認資料正確就代表測試成功。


另外,如果用戶有 I2C 的分析儀,也可以一同搭配來進行測試,下圖是使用 TOTAL PHASE 的分析儀與 Data Center 所抓到的資料結果。


四. SPI 功能驗證

4.1 SPI 測試設定

測試 SPI 前我們需進入 U-Boot,將 Device Tree 切換成 op-gyro-lpspi.dtb。

u-boot=> setenv fdtfile op-gyro-lpspi.dtb
u-boot=> boot


4.2 SPI 測試

接著繼續開進系統後,查看是否有產生 SPI 的 Device。

$ ls /dev/spidev0.0
/dev/spidev0.0


在此我們也使用示波器進行量測,透過 spidev_test Command 輸出資料。

$ spidev_test -D /dev/spidev0.0 -v -p 12 -s 5000000
spi mode: 0x4
bits per word: 8
max speed: 5000000 Hz (5000 kHz)
TX | 31 32 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ |12|
RX | FF FF __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ |..|


同樣,最後有量到波形與資料正確及測試成功。



五. UART 功能驗證

5.1 UART7 測試設定

在此我們使用 EXP GPIO 上的 UART7 做自發自收的測試,將 RT / TX 對接。

在開機時,進入 U-boot 將 Device Tree 切換成 op-gyro-lpuart7.dtb。

$ setenv fdtfile op-gyro-lpuart7.dtb
$ saveenv
$ boot


5.2 UART 測試

開進系統後,先檢查 UART7 的 Note 是否有產生。

$ ls /dev/ttyLP*
/dev/ttyLP0 /dev/ttyLP5 /dev/ttyLP6


確認有認到後,我們就可以透過 Command 進行傳輸測試,最後有看到 echo 的訊息就表示測試成功了。

$ cat /dev/ttyLP6 &
$ echo "OP-Gyro UART Test" > /dev/ttyLP6

OP-Gyro UART Test


六、 結論

世平集團 ATU 伊布小編 (一部) 團隊針對 i.MX 相關技術整理了一系列博文,本篇文章將會針對如何對 OP-Gyro ( NXP i.MX93 ) I2C / SPI / UART 功能如何驗證進行說明與介紹,希望本篇文章的內容可以幫助到各位讀者更了解 OP-Gyro,後續也會有別篇文章繼續介紹如何在 OP-Gyro ( NXP i.MX93 ) 上使用周邊 IO相關驗證等做說明,懇請各位讀者多多支持 【ATU Book-i.MX9系列】OP-Gyro ( NXP i.MX93 ) 的系列博文。若未來讀者們有 i.MX 的相關問題歡迎隨時與世平集團做討論。


七、 參考文件

[1] https://www.totalphase.com/products/data-center/
[2] https://blog.csdn.net/qq_28877125/article/details/127274649
[3] https://blog.csdn.net/qq_28877125/article/details/127274649

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論