[問題] 如何讓Arduino在I2C連續送出Stop Signal?

看板ASM (組合語言)作者 (狗爺)時間6年前 (2018/04/20 17:58), 6年前編輯推噓3(3011)
留言14則, 6人參與, 6年前最新討論串1/2 (看更多)
大家好,小弟最近開始接觸Arduino nano,覺得非常好玩:P 最近遇到一個問題是在對一顆IC做I2C溝通 在使用該IC的某個功能時需要連續送出多組Stop訊號去觸發 Wire.endTransmission ()這個語法如果單獨使用- 會產生一個Start訊號跟9 bit(含Ack)的clock接著才會輸出Stop訊號 這邊想問的是有沒有什麼語法可以只輸出Stop訊號而不輸出其他訊號呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.149.73 ※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1524218328.A.E8F.html

04/20 18:01, 6年前 , 1F
我本身有嘗試過DigitalWrite(SDA,HIGH)但無效Orz
04/20 18:01, 1F

04/20 18:02, 6年前 , 2F
不知道是不是因為Wire.H裡將這兩根Pin鎖死...
04/20 18:02, 2F

04/20 18:19, 6年前 , 3F
為何要單獨的stop訊號? idle狀態是不可能傳"單獨的stop"
04/20 18:19, 3F

04/20 18:20, 6年前 , 4F
再讀一下I2C是怎運作的吧...感覺你有搞錯那顆IC的用法
04/20 18:20, 4F

04/20 18:23, 6年前 , 5F
idle狀態: SCL=H, SDA=H
04/20 18:23, 5F

04/20 18:23, 6年前 , 6F
stop: SCL=H, SDA=L >> H
04/20 18:23, 6F

04/20 18:23, 6年前 , 7F
start: SCL=H, SDA=H >> L
04/20 18:23, 7F

04/20 18:32, 6年前 , 8F
因為這顆IC要進Trim mode的方式是要連打10個stop並
04/20 18:32, 8F

04/20 18:32, 6年前 , 9F
給出start [id] [address] [data1] []data2] 對ic本
04/20 18:32, 9F

04/20 18:32, 6年前 , 10F
身的電壓基準值做調整 所以狀況看起來才會很怪
04/20 18:32, 10F

04/20 20:41, 6年前 , 11F
直接用io去模擬i2c stop?
04/20 20:41, 11F

04/21 05:17, 6年前 , 12F
同cs大的說法,無法連續打出stop 訊號
04/21 05:17, 12F

04/23 23:30, 6年前 , 13F
同cs大說法。不可能打出連續的stop
04/23 23:30, 13F

04/23 23:34, 6年前 , 14F
哪顆IC?
04/23 23:34, 14F
感謝大家的回應,目前的做法是用另外兩根IO作為SDA SCL並打出Stop訊號 1. digitalWrite(A3 , LOW); //SCL 2. digitalWrite(A2 , LOW); //SDA 3. digitalWrite(A3 , HIGH); 4. digitalWrite(A2 , HIGH);//stop 1 1 2 3 4 1 2 3 4 連續打出來應該會是這樣: (A3)SCL_______| ̄ ̄↓_____| ̄ ̄↓__ (A2)SDA__________| ̄ ̄↓_____| ̄ ̄↓__ ^ ^ Stop Stop ※ 編輯: woody5202001 (42.73.71.147), 04/30/2018 17:54:15 ※ 編輯: woody5202001 (42.73.71.147), 04/30/2018 17:56:31
文章代碼(AID): #1QsRdOwF (ASM)
文章代碼(AID): #1QsRdOwF (ASM)