i2c簡單時序關係
平時clk sda都為高電平
當clk為高,sda發生一次下降沿,觸發開始訊號
然後由clk的高電平期間取樣 sda資料,在clk高時候需要保持sda
先傳送7位位址和一位讀寫標誌(所以i2c位址一般是7位的),然後接收端回乙個ack
然後傳送8位reg位址,回乙個ack
然後就是資料
都是8位一組傳送的
d a0 s3c24xx_i2c_init
c e1 s3c24xx_i2c_clockrate
6 e1 s3c24xx_i2c_enable_irq
50 d0 s3c24xx_i2c_message_start
7 e1 s3c24xx_i2c_message_start
51 f0 s3c24xx_i2c_message_start
9 e1 i2c_s3c_irq_nextbyte
50 90 s3c24xx_i2c_message_start
7 f1 s3c24xx_i2c_message_start
51 b0 s3c24xx_i2c_message_start
9 e1 i2c_s3c_irq_nextbyte
9 e1 i2c_s3c_irq_nextbyte
9 e1 i2c_s3c_irq_nextbyte
9 e1 i2c_s3c_irq_nextbyte
1 71 s3c24xx_i2c_disable_ack
9 61 i2c_s3c_irq_nextbyte
52 91 s3c24xx_i2c_stop
4 51 s3c24xx_i2c_disable_irq
9 41 i2c_s3c_irq_nextbyte
第二次6 41 s3c24xx_i2c_enable_irq
50 d0 s3c24xx_i2c_message_start
7 e1 s3c24xx_i2c_message_start
51 f0 s3c24xx_i2c_message_start
9 e1 i2c_s3c_irq_nextbyte
50 90 s3c24xx_i2c_message_start
7 f1 s3c24xx_i2c_message_start
51 b0 s3c24xx_i2c_message_start
9 e1 i2c_s3c_irq_nextbyte
9 e1 i2c_s3c_irq_nextbyte
9 e1 i2c_s3c_irq_nextbyte
9 e1 i2c_s3c_irq_nextbyte
1 71 s3c24xx_i2c_disable_ack
9 61 i2c_s3c_irq_nextbyte
52 91 s3c24xx_i2c_stop
4 51 s3c24xx_i2c_diable_irq
9 41 i2c_s3c_irq_nextbyte
第一次出錯
6 41 s3c24xx_i2c_enable_irq
50 d0 s3c24xx_i2c_message_start
7 e1 s3c24xx_i2c_message_start
51 f0 s3c24xx_i2c_message_start
1 61
52 d1 s3c24xx_i2c_stop
4 41 s3c24xx_i2c_diable_irq
最後重置下gpio口解決
感覺i2c在異常被下拉後,無法恢復
I2C學習記錄
i2c inter integrated circuit 匯流排是由philips公司開發的兩線式序列匯流排,用於連線微控制器及其外圍裝置。是微電子通訊控制領域廣泛採用的一種匯流排標準。通過序列資料 sda 線和序列時鐘 scl 線在連線到匯流排的器件間傳遞資訊。通過序列資料 sda 線和序列時鐘 ...
匯流排全記錄 I2C
i2c 是很常見的一種匯流排協議,i2c 是 nxp 公司設計的,i2c 使用兩條線在主控制器和從機之間進行資料通訊。一條是 scl 序列時鐘線 另外一條是 sda 序列資料線 這兩條資料線需要接上拉電阻,匯流排空閒的時候 scl 和 sda 處於高電平。i2c 匯流排標準模式下速度可以達到 100...
I2C裝置除錯及波形分析
最新在開發oled屏驅動,需要用到i2c匯流排,下面大體上講解一下i2c裝置的除錯及波形分析,為大家做一些參考,由於剛涉及這部分內容,因此有什麼錯誤的,還請賜教 一 概要 i2c匯流排只需要兩條線,一條sda資料線,一條scl時鐘線 根據這兩條線的高低電平 上公升沿 下降沿就可以實現主機與i2c裝置...