• slider image 293
  • slider image 289
  • slider image 291
  • slider image 288
  • slider image 290
  • slider image 294
:::


Browsing this Thread:   1 Anonymous Users






Re: I2C問題
#10
資深會員
資深會員


查看用戶資訊
喔,懂了,送完wirte command之後
如果要再讀出來,送control byte,沒有回ack
就再送一次control byte,再polling ack........LOOP
謝謝

發表於: 4/9 14:59
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: I2C問題
#9
版主
版主


查看用戶資訊
上一篇因是用手機回覆的無法做較詳細的回答。

請參考一下底下的 24LC16B 的 Data Sheet 裡的 Page12 有說明要寫入時須先檢查 Ack 的流程。

https://ww1.microchip.com/downloads/en ... rial-EEPROM-20001703N.pdf

Attach file:



jpg  擷取.JPG (46.96 KB)
16_606fcb3a2f54c.jpg 491X694 px

發表於: 4/9 11:34
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: I2C問題
#8
版主
版主


查看用戶資訊
EEPROM 寫入的命令完成,但 EEPROM 仍需約 4 ms 的動作時間來完成內部的寫入。所以,可以用 Delay 的方式或再送一次 Control Byte 時檢查 Ack 的回應是否為 Low 後方可做下一個動作。回 High 代表 EEPROM 還在忙碌中。

發表於: 4/8 11:02
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: I2C問題
#7
資深會員
資深會員


查看用戶資訊
write需要時間...

發表於: 4/8 2:13
程式是
依照寫出來(的code),跑出結果
不是依照你想出來的,得到結果

先有需求規格 後有解決方案
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: I2C問題
#6
資深會員
資深會員


查看用戶資訊
我好像找到問題了
因為單獨寫值和random read都可以動作
我把這兩段程式合在一起後,中間設個斷點
程式執行寫完值之後停下,我再按執行跑random read就可以正常動作了
所以我把程式寫完值會跑stop程序後,延長DELAY時間後接著跑start就沒問題了

比較奇怪的是,我翻了版大上上篇提供的ds
stop之後要等待多久才能接start訊號
Bus Free Time: The time
the bus must be free
before a new transmission
can start
ds寫的是最少需要4.7us
我實測的結果要延長到3.2ms以上
雖然我手上的這一顆eeprom是電子材料行買的,應該不會microchip系列
這兩個的數值也差了太多了,真奇怪

發表於: 4/7 16:33
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: I2C問題
#5
資深會員
資深會員


查看用戶資訊
版大可能誤會我的問題了
我的A段程式區塊是在某位置寫入資料
我的B段程式區塊是用random read 讀取我剛剛寫入位置的值
我的A段、B段單獨執行都可以動作
但是如果A段+B段一起全速執行,B段第一個Control Byte 就卡ACK了

發表於: 4/7 16:03
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: I2C問題
#4
版主
版主


查看用戶資訊
Random Read 下完要讀取資料的位址後要在下一個 Start Condition 的訊號出去後再下 read 的動作。參考貼圖一下去比對你所送出的訊號是否有差異?

第一個 Control Byte 是下 Write Address 動作,第二個 Control Byte 是下 Read Data from EEPROM 的動作。

Attach file:



jpg  擷取.JPG (47.88 KB)
16_606d4d6e75651.jpg 941X345 px

發表於: 4/7 14:13
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: I2C問題
#3
資深會員
資深會員


查看用戶資訊
是的,我就是用random read
目前卡在read的時後,要送第一個0xA0, ACK沒回

發表於: 4/7 8:33
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: I2C問題
#2
版主
版主


查看用戶資訊
I2C EEPROM 寫入資料是一個動作,讀取資料又是一個動作。這兩種動作是各自獨立的無法交互使用。但 I2C EEPROM 是可以連續讀取 (Page Read) 或做連續寫入(Page Write)。

有一個常用的命令是 Random Read,先 Write Address 後再後再下 Repeat Start Command 後再下 Address 後就可以連續讀取資料。參考一下 PAGE 16 的時序圖。

https://ww1.microchip.com/downloads/en ... rial-EEPROM-20001703N.pdf

發表於: 4/6 17:39
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


I2C問題
#1
資深會員
資深會員


查看用戶資訊
我使用EEPROM M24C16用軟體模擬寫了I2C程式出了點問題
請高手指點一下
我在0x01位置寫入0x11,然後要讀出來時卡在第一個ACK

後來我把程式分開
第一次,寫入資料的程式保留,讀出資料註解掉,執行完之後
再把寫入資料的程式註解,留下讀出資料程式,執行完後,讀出資料正確

我猜有可能是送完資料後送STOP和再送START的時後沒送好
請問有哪位知道我在送第二個0xA0的時後,ACK沒有回的原因嗎

Attach file:



jpg  2021-04-06_160951.jpg (120.27 KB)
13612_606c1eab965ea.jpg 943X546 px

發表於: 4/6 16:41
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
[ more... ]

Microchip CAE 空中教室

教育訓練中心

課程 - 台北教育訓練中心
課程 - 新竹教育訓練中心
課程 - 高雄教育訓練中心
教育訓練中心介紹
購買 - 實驗工具
臺灣實驗板介紹與資源