【NXP MCX 技術手冊】- MCXA153 建立 I3C 通訊範例實作說明

一. 說明

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

如下為 NXP MCXA153 規格 :


本文說明 I3C(Improved Inter-Integrated Circuit)是 MIPI Alliance 開發的串行通信總線標準,與 I2C 相比,I3C 支持更高的數據速率 (最高可達 33.4 Mbps),接來下我們使用 MCXA153 EVB 實作 I3C 通訊讀取溫度資訊,透過實作方式也讓我們了解 I3C 功能的引用是原來是這麼容易~

二. 硬體架設和軟體版本

1. 硬體材料的準備
    1-1. MCXA153 EVB(NXP P3T1755DP Temperature Sensor為I3C規格)x 1
    1-2. USB Type C 線材x 1

2. 線路接線與實體架設說明
    2-1. 線路接線說明
            NXP P3T1755DP Temperature Sensor 的裝置引腳 I3C_SDA 與 I3C_SCL 接至 NXP MCXA153 P0_16 ( I3C0_SDA ) , P0_17 ( I3C0_SCL ) , P1_11 ( I3C0_PUR )
            進行通訊
           
    2-2. 實體上件位置
           
3. 開發工具、軟體版本與 SDK 範例
    軟體開發需要的準備有 :
    3-1. MCUXpresso IDE 版本 : v11.9.1_2170
    3-2. MCXA153 SDK 版本 : SDK_2_14_2_FRDM-MCXA153
    3-3. MCXA153 SDK 範例 : frdmmcxa153_i3c_master_read_sensor_p3t1755 (圖一)

    (圖一)
    我們的目標是架設 MCXA153 - I3C 和 P3T1755PD 進行通訊,我們使用現有 frdmmcxa153_i3c_master_read_sensor_p3t1755 SDK 範例來進行修改與驗證

   

三. 軟體修改與驗證

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 初始化設定和建立 Temperature Sensor I3C-Slave 控制
    檔案路徑 : I3c_master_read_sensor_p3t1755.c ( Project/source)



    2.1 定義 I3C BAUDRATE、CLOCK_FREQUENCY 設定與 I3C 控制 Temperature SensorI3C-Slave 的 Address

    

    2.2 說明 init main (void) 內 I3C 初始功能配置與增加 Temperature Sensor 資訊打印
    ① 設定 I3C Clock 為 24MHz
    ② I3C_MasterInit 為初始化 I3C 的配置與 Handle 建立

    

    ③ 透過 I3C_MasterTransferBlocking 功能設置 p3t1755 初始化、建立 I3C_ReadSensor 與 I3C_WriteSensor Handle

    

    ④ I3C_ReadSensor 函式中,注意 masterXfer 相關 Struct 參數配置 :
    .slaveAddress           → 修改為 deviceAddress 內容
    .direction                  → 修改為 kI3C_Read 功能
    .busType                   → 修改為 kI3C_TypeI3CSdr 功能
    .subaddress              → 修改為 regAddress 內容
    .subaddressSize       → 修改為 regAddress Size
    .data                          → 修改為 regData 內容
    .dataSize                   → 修改為 regData 資料長度
    .flags                          → 修改為 kI3C_TransferDefaultFlag 功能

    

    ⑤ 在 P3T1755_ReadTemperature ( Fsl_p3t1755.c ) 函式內增加打印訊息 I3C Master ( Host ) 每隔一段時間讀取 I3C Slave 的溫度資訊並在 Uart 中
    打印取得溫度數據

    

3. 軟體驗證
    按照前面的軟體確認與修改,我們開始進行驗證透過 IDE 工具依序完成燒錄動作,重新上電或者是按 SW1 (Reset) 按鍵,打開 Console log
    可以觀查到溫度數值 ①,也可以在 Temperature Sensor 上進行加溫,再觀查數值變化 ②,代表 I3C 通訊是正常運作唷 ~ 

    

四. 參考文件

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

評論