Z8再來一次!F0830 和 Z8 再來一次!F083A 微控制器沒有支持 I2C 的硬件外設,但該協議很容易在軟件中實現。
圖 1 Z8 再來一次!具有從屬功能
PC0 和 PC1 引腳配置為開漏,因此它們不提供任何電流源。所有源電流都由外部上拉提供,這允許從設備將 SCL 保持為低以進行時鐘延長。不需要將端口從輸入配置切換到輸出配置,因為端口輸入寄存器 PxIN 始終返回輸入引腳的狀態。一旦主機釋放引腳高電平,從機可以將引腳拉低或保持高電平,而主機不必將引腳從輸出切換到輸入。
測試 I2C 主/從:所需設備
測試所需的設備包括:
Z8再來一次!F083A 28 引腳開發套件
4.7K 電阻
Slave 是通過對 Slave 執行寫入來測量的,同時使用示波器監視 SCL 線并測量總寫入時間。寫入的總時間為 150 μs,9 位/150 μs = 60 kbps。
主機通過對連接到 I2C 總線的外部 400 kHz EEPROM 執行串行讀取來測量。執行串行讀取所需的時間是使用示波器來測量的,以監測 SCL 線上的活動。使用 Clock () 中的最小延遲,20 個字節的完整串行讀取時間為 923 μs。接收的字節數為 23 x 9 位,總共傳輸 180 位,即 180 位/92 μs = 194 kbps。
圖 2 I2C 主/從的測試設置
Slave 軟件源自Using the Z8 Encore!和 Z8 再來一次!XP MCU 作為 I2C 從設備應用筆記。作為 Z8 安可!F083A 運行在 20 MHz,可以使用內部振蕩器,不需要將 Slave 的時鐘源切換到外部諧振器。此外,Slave 的地址也發生了變化。Slave 地址位于 DEVICE_ADDRESS 定義的頭文件 scl_interrupt_XP.h 中。必須更改地址,使其與 EEPROM 的地址不同。唯一的其他修改是包含一個 IF 語句以在接收到數據包時切換 LED D3。這是在 scl_interrupt_XP.c 文件的主循環中完成的。如果接收到數據包,從設備開發板上的 LED D3 將切換狀態為 ON 或 OFF。
當按下 SW2 時,主機軟件向從機發送一個數據包。如果 Slave 收到數據包,Slave 會切換 Slave 開發板上 LED D3 的狀態。如果沒有收到數據包,主機將點亮其 LED D3。
上電時,主機將 SDA 和 SCL 引腳配置為開漏輸出。也就是說,Master 不會將 SDA 和 SCL 拉高,而是通過上拉電阻將它們拉高。這允許從設備將 SDA 和 SCL 拉低。也就是說,主機不需要重新配置從輸出到輸入的 I/O 引腳,以稍微提高代碼大小速度。LED 引腳也啟用并配置為 13 mA 驅動。
本應用說明介紹了一種在 Z8 Encore 上實現主/從功能的方法!MCU 使用 GPIO 引腳模擬 SCL 和 SDA 線。該軟件支持 I2C 總線上的事務,從設備的數據傳輸速率高達 60 kbps,主設備的數據傳輸速率高達 194 kbps。
編輯:hfy
-
微控制器
+關注
關注
48文章
7596瀏覽量
151742 -
mcu
+關注
關注
146文章
17227瀏覽量
351948 -
寄存器
+關注
關注
31文章
5359瀏覽量
120808 -
I2C
+關注
關注
28文章
1494瀏覽量
124115
發布評論請先 登錄
相關推薦
一種基于FPGA的UART實現方法設計
基于Z8 Encore F0830系列微控制器
一種在片上系統中實現Nand Flash控制器的方法
![<b class='flag-5'>一種</b><b class='flag-5'>在</b>片<b class='flag-5'>上</b>系統中<b class='flag-5'>實現</b>Nand Flash控制器的<b class='flag-5'>方法</b>](https://file1.elecfans.com//web2/M00/A5/70/wKgZomUMOG6AVRnRAACv4KZ353w940.jpg)
霸菱科技智能防盜門鎖Z8簡介
基于 XP? 的 SLA 電池充電器
![基于 XP? 的 SLA 電池充電器](https://file.elecfans.com/web2/M00/02/AC/poYBAGDRsrqAfUnXAACi6ZoSgTw443.png)
評論