【NXP MCX 技術手冊】- MCXA153 在 I3C Bus 運行 I2C 協議實作說明

一. 說明

MCXA153 是恩智浦半導體旗下新款 Cortex M33 微控制器(MCU),屬於 MCX 系列,該系列 MCU 的設計旨在提供高效能、低功耗和多樣化的連接性選項,特別適合於工業、消費電子應用。

如下為 NXP MCXA153 規格 :


在 I3C 的介面是向下兼容 I2C,所以今天來實作一個例子,就是在 I3C Bus 上建立一個 I2C 裝置進行通信,透過實作方式也讓我們了解功能的引用原來是這麼容易~

二. 硬體架設和軟體版本

1. 硬體材料的準備
    1-1. MCXA153 EVB x 1
    1-2. OLED 為 I2C 規格 x 1
    1-3. USB Type C 線材x 1

2. 線路接線與實體架設說明
    2-1.線路接線說明
    NXP MCXA153 ( MCU Host ) 的 I3C 引腳上 ( P1_11 , P0_16 , P0_17 ) 可以將 I2C 裝置接在 ① ( J20 : I3C_SDA, J21 : I3C_SCL ) 進行通信

    

    2-2.實體架設說明
           OLED - I2C Slave 裝置接到主版的引腳 :
           (A.) J3-8 ( 3V3 )
           (B.) J6-8 ( GND )
           (C.) J21 ( I3C_SCL )
           (D.) J20 ( I3C_SDA )

           

           OLED - I2C Slave 裝置實體接線完成

           

3. 開發工具、軟體版本與 SDK 範例
    軟體開發需要的準備有 :
    3-1. MCUXpresso IDE 版本 : v11.9.1_2170
    3-2. MCXA153 SDK 版本 : DK_2_14_2_FRDM-MCXA153
    3-3. MCXA153 SDK 範例 : frdmmcxa153_i3c_polling_b2b_transfer_master (圖一)

    (圖一)
    今天的目標是架設 MCXA153 - I3C Master 和 OLED - I2C Slave 進行通信,我們先使用 i3c_polling_b2b_transfer_master SDK 範例進行修改,
    或者也可以參考其它 I3C Master 功能開始進行

    

三. 軟體修改與驗證

1. 確認軟體引腳的設定
    1-1. 在IDE 中點選 打開引腳 (圖一)
    1-2. NXP MCXA153 ( MCU Host ) 的 I3C 配置 (圖二)
            P1_11 ( P5 : I3C0_PUR )
            P0_16 ( P54 : I3C0_SDA )
            P0_17 ( P55 : I3C0_SCL )

    (圖一)
    IDE 點選打開引腳有 2 種方式

    
   
    或點選 IDE 最右上角 Icon 

    (圖二)   
    NXP MCXA153 ( MCU Host ) 的 I3C 引腳設定

    

2. 軟體功能確認與修改
    確認 I3C 初始化設定和建立 OLED I2C-Slave 控制
    檔案路徑 : I3c_polling_b2b_transfer_master.c ( Project/source)

    2.1 定義 I3C BAUDRATE、CLOCK_FREQUENCY 設定與修改 I3C 控制 OLED I2C-Slave 的Address


    

    2.2 說明 init main (void) 功能與修改
    ① 設定 I3C Clock 為 24MHz
    ② I3C_MasterInit 為初始化 I3C 的配置
    ③ 關閉所有不需要引用的 Code 內容

    

    2.3 建立一個 OLED_DataWrite 函式,函式中引用 I3C_MasterTransferBlocking 控制
    ① g_master_txBuff 陣列參數內容為控制 OLED
    ② 修改 masterXfer 相關 Struct 參數 :
        .direction                → 修改為 kI3C_Write 功能
        .busType                 → 修改為 kI3C_TypeI2C 功能
        .subaddress            → 修改為 0 即不引用
        .subaddressSize     → 修改為 0 即不引用
        .data                        → 修改為 g_master_txBuff 內容
        .dataSize                 → 修改為 g_master_txBuff 資料長度
        .flags                       → 修改為 kI3C_TransferDefaultFlag 功能
    ③ 將 masterXfer 資料透過 I3C_MasterTransferBlocking 功能進行通信與控制
    ④ I3C_MasterTransferBlocking 回傳通信的結果,判斷信息控制是否正常

    

    2.4 建立一個 OLED_Show_Str 函式引用 OLED_DataWrite 控制 OLED 顯示的內容
    ① 函式中引用 OLED_DataWrite 控制和規劃點陣字位置、內容等顯示…

    

    2.5 init main (void) 在 while(1) 功能內,建立 OLED 基本顯示
    ① 依序建立 OLED 初始化功能
    ② 設定字串內容在 OLED 上顯示

    

3. 軟體驗證
    按照前面的軟體修改,我們開始進行驗證
    透過 IDE 更新軟體,重新上電或者是按 SW1 (Reset) 按鍵,確認 WPI 增加字串的內容
    都有在 OLED 面板上顯示

    

    以上,如果有需要參考此範例的修改可以和我們聯絡哦 ~

四. 參考文件

1. SPF-90829_A1.pdf

2. UM12012_FRDM-MCXA153 Board User Manual.pdf

3. MCXAP64M96FS3RM.pdf

★博文內容參考自 網站,與平台無關,如有違法或侵權,請與網站管理員聯繫。

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

參考來源

NXP: https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/mcx-arm-cortex-m:MCX-MCUS

評論