XMC™使用Dave4快速開發(四)IIC實驗

        IIC(InterIntegrated Circuit)總線是一種由 PHILIPS 公司開發的兩線式串行總線,IIC是一種高效能且常見的串行總線,一般用於連接微控制器及其外圍設備。它是由數據線 SDA 和時鐘 SCL 構成的串行總線,可發送和接收數據。在 CPU 與被控 IC 之間、 IC IC 之間進行雙向傳送, 現在串行的8位雙向數據傳輸位速率在標準模式下可達100Kbit/s,快速模式下可達400Kbit/s,高速模式下可達3.4Mbit/s。
IIC總線協議非常簡單,熟悉時序後,可以使用任意兩個IO口,通過軟體模擬IIC時序來進行通信。而多數單片機都帶著硬體IIC功能,硬體IIC除了必須使用特定的引腳之外,相比起模擬IIC,使用硬體IIC用法簡單,速度快,使用穩定,而且不占用MCU時間,可以實現IIC中斷。在絕大多數的開發中,還是直接使用硬體IIC更好。
        在XMC系列單片機中,配置IIC需要使用USIC單元,通用串行接口通道模塊( USIC)是一個包括若干串行通信協議的靈活接口模塊。每個 USIC 模塊包含兩個名為 USICx_CH0 USICx_CH1 的獨立通信通道,其中 X 表示 USIC 模塊的編號(例如: USIC0_CH0 表示編號為 0 USIC 模塊中的通道 0)。用戶可以在工作期間配置每個信道處理的協議和被使用的引腳。每路 USIC 通道可被單獨配置以滿足應用的需要,比如可在運行期間選擇或修改協議類型、無需復位。USIC 支持以下協議:

1. UARTASC,異步串行通道)
- 模塊能力:接收器/發送器,最大波特率 fPB/4
- 更寬的波特率範圍,可以降至個位數字的波特率
- 每個數據幀包含的數據位個數: 1 – 63
MSB LSB 在先

2. 硬體支持的 LIN 協議(局域網際網路)
- 基於 ASC 協議的數據傳送
- 可由內置波特率發生器的捕獲事件實現波特率檢測
- 軟體控制校驗和產生,實現更高的靈活性

3.SSC/SPI(帶有/不帶從控選擇線的同步串行通道)
- 支持標準(即一路),兩路和四路 SPI 格式
- 模塊能力:最大波特率 fPB/2,受限於循環延遲
- 每幀數據包含 1 - 63 位數據,對於超過 63 位的數據幀,需明確定義數據幀的結束條件
- 支持生成校驗位
MSB LSB 在先

4. IIC(英特爾-IC 總線)

- 應用波特率範圍: 100 kb/s-400 kb/s
- 支持 7 位或 10 位尋址
- 具有完整的主機和從機的設備能力

5. IIS(信息娛樂音頻總線)
- 模塊能力:最大波特率 fPB / 2

本章介紹XMC單片機如何使用USIC單元中的IIC協議功能,如何使用Dave4開發軟體方便快捷的使用硬體IIC。

1. 第一步先在Dave4的Add New APP 中搜索I2C,添加I2C_MASTER,添加之後雙擊打開
2. 首先在General Setting中配置傳輸速率,速率配置主要看從機要求,XMC單片機最大支持400kb/s,



3.在Interrupt Settings中可以配置發送和接收中斷,這裡我們配置兩個中斷,分別更改名稱。



在這之後選擇我們要使用的引腳即可,點擊編譯生成代碼,然後我們添加兩個中斷函數EndOfTransmit(void){} EndOfReceive(void){}即可。在發生接收和發送事件時即會進入中斷,在IIC的通信中,IIC接收數據存到寄存器中,接收到數據之後給CPU中斷,在中斷服務程序給定一個標誌位,然後在主程序中通過標誌位去處理寄存器中的數據。
 
配置完成後,即可使用官方庫提供的發送接收函數進行通信
I2C_MASTER_Transmit(I2C_MASTER_t *handle, bool send_start, const uint32_t address,   uint8_t *data, const uint32_t size, bool send_stop);
I2C_MASTER_Receive(I2C_MASTER_t *handle, bool send_start, const uint32_t address,uint8_t * data, const uint32_t count, bool send_stop, bool send_nack);
其中send_start表示需要啟動發送,address即從設備地址,data表示接收或發送的數據,count和size表示數據大小,send_stop表示發送停止,send_nack表示從機是否響應,即NACK信號。

系列博文:

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

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

評論