一、前言 S32K144 擁有一個LPI2C(Low Power Inter-Integrated Circuit)模塊,本文章將基於SDK LPI2C 例程在S32DS上介紹 LPI2C 模塊多從機的使用。 二、LPI2C 模塊介紹 LPI2C 支持以下 I2C 規範功能:
LPI2C 主機支持以下功能:
LPI2C 從機支持以下功能:
LPI2C 框圖: LPI2C 引腳說明: 在四線模式中,SCL、SDA 引腳作為輸入引腳,SCLS、SDAS 作為輸出引腳。傳統兩線式 I2C 中,只使用 SCL、SDA 作為時鐘線和數據線,SCLS、SDAS 未使用。本篇僅以兩線式 I2C 為例進行介紹。 如需了解更多,可查閱 S32K-Reference Manual 文檔。 本次將使用 S32K144EVB(LQFP-100) 評估板搭配 Mint Valley EVM Board 方案 Sensor 板進行演示,兩者通過 Arduino 接口連接。通過 LPI2C 接口驅動彩燈以及點亮 OLED。
彩燈使用 5V 供電,I2C 地址為 0x38。 OLED 使用 3V 供電,I2C 地址為 0x3D。
S32K144EVB(LQFP-100) 評估板上進行下圖所示引腳的連接。 選用 PTA2 、PTA3 引腳作為 I2C 引腳,需要注意的是,J2 處原理圖中有說明,此處默認 R539、R540 不接,故此處與晶片 PTA2、PTA3 引腳不連通,使用前需將此處電阻焊接上。 四、例程導入與工程配置
本文使用 S32DS 內的庫函數例程 lpi2c_master_s32k144 進行介紹,打開S32 Design Studio,點擊:“File”->“New”->“S32DS Project from Example”。 接著按照下圖所示選擇 lpi2c_master_s32k144,為了工程的區分,可修改工程名。
在 Components 窗口中選擇 pin_mux:PinSettings。 進行 SCL、SDA 引腳的配置,該例程中默認配置PTA3 、PTA2 引腳作為 I2C 的 SCL、SDA 引腳,保持默認即可。
在 Components 窗口中選擇 lpi2c1:lpi2c。 進行以下設置,S32K144 作為主機則設置對應多從機的地址及波特率速率,這裡不設置相關的回調函數。如下圖所示,進行 OLED、RGB 燈的設置。
點擊 “Components” 窗口右上角 “Generate Processor Expert Code” 按鈕,生成外設代碼。 ![]() 在 “Project Explorer” 中項目的 “Generated_Code” 文件夾下可以看到使用 PE 產生的代碼。 五、代碼編寫與演示 例程主函數中主要針對時鐘、Pin 腳以及 I2C 模塊進行了初始化。 接著進行收發測試,如下圖所示,此部分根據功能需求進行編寫。 下面進行代碼編寫。
S32K144EVB(LQFP-100) 評估板與Sensor 板通過 Arduino 接口連接後,使用USB–microUSB 連接板子和電腦,連接示意圖如下圖所示: 接著點擊小甲蟲的展開按鍵,選擇 Debug Configurations。 如下圖所示,選擇 OpenSDA 接口進行 Debug 設置,如下圖所示。 接著進入 Debug 界面,點擊 “Resume” 按鍵,進行 Debug。
效果如下圖所示: 六、總結 關於 LPI2C 使用部分,大家可根據需要調用 LPI2C 模塊相應的 API 實現相應的功能,以上就是本篇博文的全部內容,感謝閱讀。 七、參考資料 [1] S32K144 Reference Manual.pdf,NXP [2] S32K144EVB_Q100_RevB1_Schematic.pdf,NXP [3] S32K144-EVB_QSG_REV4.3.pdf,NXP [4] SCH - P15-094 OP-Aisa_V1.1 ( Mint Valley EVM Board 方案 Sensor 板)_Coco Ma_2016.04.19.pdf,NXP [5] 【S32K 進階之旅】從零開始搭建 S32K 開發環境 - 大大通(簡體站) (wpgdadatong.com.cn) |