NXP i.MX8M Mini在Linux上i2c除錯 (以NXP PCF85063TP RTC為例)

世平集團代理的NXP i.MX8M Mini多核心應用處理器包含了豐富周邊介面,我們今天來探討如何在Linux上做i2c的除錯。在恩智浦原生Linux BSP Build code完成後就有內建i2c工具,讓開發者可以簡單的利用指令存取i2c周邊裝置的暫存器以便確認CPU端對裝置端讀取是否正常,以便可以縮短整個開發時程。

以下我們使用NXP i.MX8M Mini的開發板及NXP PCF85063TP RTC實時時鐘為各位說明。

一、測試環境

硬體跳接:

i.MX 8M Mini EVK開發板的底版上有個I2C CN的Connector線路圖如下:

我們是使用i.MX8M Mini的I2C3來存取PCF85063TP



PCF85063TP公板 OM11059A 接腳圖如下:




將i.MX 8M Mini EVK開發板及PCF85063TP公板OM11059A的VDD、GND、SDA及SCL相互對接。

i.MX8M Mini 支援四組i2c channel,連接到底板我們是用I2C3跳線到NXPPCF85063TP公板OM11059A。



軟體版本:

使用NXP i.MX BSP Linux 4.19.35_1.1.0作為說明。

二、i2cdetec

1.i2cdetec查看系統上有幾組i2c bus, 輸入i2cdetect -l


由於在Linux 4.19.35_1.1.0版本的device tree只有設定三組i2c,所以系統用i2cdetec只看到三組。從硬體線路圖來說,第一組i2c是從I2C1開始計數。但是Linux系統上是從i2c-0開始計數,所以我們硬體跳接的I2C3對應到Linux系統為i2c-2。


2.用i2cdetect掃描i2c-2 Bus上的裝置,輸入i2cdetect -r -y 2


此命令的2代表i2c-2,執行後顯示i2c-2 Bus上有6個裝置,UU表示裝置有被系統偵測到並正在被Kernel佔住。51代表i2c-2上有掃到一個裝置,查看PCF85063TP的datasheet後得知i2c 7-bit address為51


此時我們利用坊間的i2c analyzer擷取Bus上面的波形,若是以8-bit (含read / write bit)顯示的對應關係如下:


實際波形如下:


三、i2cdump

利用i2cdump將裝置上的暫存器的值dump出來。

輸入i2cdump -y 2 0x51:



此命令的2代表i2c-2,0x51表示想要讀取的i2c address。

PCF85063TP 暫存器位址0x0的值為0x00


PCF85063TP 暫存器位址0x2的值為0x40

 

四、i2cset / i2cget

當要設定i2c裝置裡面的某一個暫存器則可以使用 i2cset指令。

參考PCF85063TP Datasheet得知暫存器位址05是設定分鐘的功能,若要設定為59分鐘的話則輸入i2cset -y 2 0x51 0x05 0x59


此命令的2代表i2c-2,0x51表示想要讀取的i2c address,0x5表示暫存器位址,0x59是要設定暫存器的值。

實際波形:


當要讀取i2c裝置裡面的某一個暫存器則可以使用 i2cget指令。

輸入i2cget -y 2 0x51 0x05

此命令的2代表i2c-2,0x51表示想要讀取的i2c address,0x5表示暫存器位址。返回值為0x59。
實際波形如下:



小結

i2c是一個常見的溝通介面,在Linux的環境下可以利用i2cdetec掃描Bus上的裝置,i2cdump將裝置上的暫存器dump出來,並用i2cset / i2cget對暫存器進行讀取。希望這篇文章能夠提供大家i2c除錯的方法,謝謝大家。


參考資訊:

  1. NXP官網 

https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/i-mx-applications-processors/i-mx-8-processors/i-mx-8m-mini-arm-cortex-a53-cortex-m4-audio-voice-video:i.MX8MMINI

https://www.nxp.com/part/PCF85063TP#/


      2.立你斯學習記錄
https://b8807053.pixnet.net/blog/post/347698301-linux-tool---%3A--i2c-tools-%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95%EF%BC%8C-i2cdetect-%E3%80%81-i

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

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

評論