全能電路設計實戰

2022年3月9日 星期三

[MCU單晶片 Q&A] I2C 操作


[I2C 操作]
Question : 在I2C的START function 裡要先檢查SDA 是否已經為0,來決定是否進行後面是否要將SCL=0和SDA=1的動作,這樣和範例是藉由Din 來判斷是一樣的嗎? 而 Din 是SDA接腳的接收輸入接腳,為什麼要定義這個接腳呢?而沒有SCL的輸入接腳的定義




Answer : 
確認SDA 是否真的在Low level的狀態, 實際的作法是去讀取PORT 暫存器, 而不是去讀取TRIS暫存器. 為何在I2C START時,要判斷SDA為LOW呢? 因為我們進行I2C START動作, 是將SDA=1 (而原本SCL若在High), 則會變成多產生一個I2C STOP的動作,才再產生I2C START的動作。






Each port has three registers for its operation. These registers are:
  • TRIS register (data direction register)
  • PORT register (reads the levels on the pins of the device)
  • LAT register (output latch)





沒有留言 :

張貼留言