C8051F340 外接 FM24C04 時的端口配置問題


原來是想利用單片機自帶的 SMBus 端口, 但是官方自帶的例程用了好幾個定時器, 而我的這個小項目也需要很多定

時器資源, 不夠用了. 擦.........所以乾脆用 IO 口模擬 I2C 時序來操作 FM24C04 得了, 項目對時間要求也不苛

刻. 


所以, 就出現了文章要介紹的問題:

由於繪製原理圖時, 已經將 SMBus 的端口 SDA/SCL(對應 P0_0/P0_1) 連接到了 FM24C04 的 SDA 和 SCL 上.

所以按照一般操作, 我把 XBR0  的 SMB0E 使能並連接到端口. 然後將對應的 IO 口 P0_0 和 P0_1 設置成漏極開

路, 按說這樣就可以了是不是? 其實不是, 操作的時候讀上來的數據一直是 0xFF, 可能就是高阻態.


我檢查了下讀寫操作代碼, 沒有任何問題, 增減延時改變時序也是不行. 所以, 我懷疑在交叉開關這出了問題. 

想了想覺得, 既然我都用模擬的時序了. 幹嗎還用設置成開漏呢? 幹嗎還用將端口配置給 SMBus 呢? 推輓不也

是可以的嗎?  所以如下圖, 將 SMB0E 置零. 燒寫調試運行, 讀和寫都行了. 另外對應的 IO 口設置

成開漏或者推輓都是可以正常進行操作的.  


發佈了163 篇原創文章 · 獲贊 47 · 訪問量 89萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章