2016年10月23日 星期日

DIY - Robot 機器人 - PIC24FJ64GA008 I2C 模組介紹(十二)

DIY - Robot 機器人 - PIC24FJ64GA008 I2C 模組介紹(十二): 

Microchip PIC24FJ64GA008 處理器內置兩個 I2CI2C1I2C2)的模組,I2CI²CInter-Integrated Circuit)模組是一種串列通訊匯流排,由飛利浦公司在 1980年代為了讓主機板、嵌入式系統或其他設備以連接低速週邊裝置而發展的串列通訊介面。I2C 只需要使用兩條雙向漏極開路(Open DrainSDA(串列資料)及 SDL(串列時脈SCL),並利用電阻將電位上拉。

Microchip PIC24FJ64GA008 處理器的 I2C 匯流排
I2C 允許相當大的工作電壓範圍,典型的電壓準位為 +3.3V +5VI2C 匯流排依傳輸速率的不同,而有不同的模式:低速模式(10 Kbit/s)、標準模式(100 Kbit/s)、快速模式(400 Kbit/s)、高速模式(3.4 Mbit/s)。匯流排最多可和 112 個節點通訊。節點的最大數量受限於位址空間以及 400pF 的總的匯流排電容,400pF 總電容也限制了實際通訊距離只有幾米。

Microchip PIC24FJ64GA008 處理器的 I2C 匯流排傳輸速率
I2C 模組的主要特性如下:
• 主器件和從器件邏輯相互獨立
• 支援多主機系統,可以防止在仲裁時丟失報文
• 在從模式下可檢測 7 位和 10 位器件位址,並可配置位址遮罩• 檢測 I2C 協議中定義的廣播呼叫地址
• 具有匯流排轉發器模式(Bus Repeater Mode),允許模組作為從器件接收所有報文,而不論地址如何
• 具有自動 SCLx 時鐘延長功能,為處理器提供延時以回應從器件的資料請求• 支援 100kHz 400kHz 匯流排規範
• 支援智慧外設管理介面(Intelligent Peripheral Management Interface IPMI)標準

I2C 匯流排的時序(Timing Diagram
主機在單主機環境中通信過程如下: 
1. SDAx SCLx 上發起一個啟動條件。 
2. 發送一個 I2C 器件位址位元組到從器件,表明將要進行寫(Write Operation)操作。 
3. 等待並驗證來自從器件的應答。 
4. 將第一個資料位元組(有時是命令)發送到從器件。 
5. 等待並驗證來自從器件的應答。 
6. 將串列記憶體位址的低位元組發送到從器件。 
7. 重複步驟 4 和步驟 5 直到資料位元組發送完畢。
8. SDAx SCLx 上發起一個重複啟動條件。 
9. 將器件位址位元組發送給從器件,表明將要進行讀(Read Operation)操作。 
10. 等待並驗證來自從器件的應答。 
11. 使能主控接收模式來接收串列記憶體資料。 
12. 在資料位元組接收完畢時產生 ACK NACK 條件。 
13. SDAx SCLx 上產生停止條件。

主機在 I2C 匯流排的傳送資料 (Write Operation) 

主機在 I2C 匯流排的接收資料 (Read Operation)
I2C 匯流排完整的資料交換時序
2016年 10月 23日 天氣報告
氣溫:27.3@ 19:30
相對濕度:百分之 88%
天氣:多雲

沒有留言:

張貼留言