Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
初級會員
|
目前遇到的問題是如果寫入只設一個byte的addr的話i2c可以順利輸出波形
但是加個high byte之後卻無法輸出波行 因為我目前只設計一直寫入 所以在兩個寫入之間的delay設很短也會輸出 反而是改成兩個byte的addr就無法順利動作
發表於: 2010/2/4 15:07
|
|||
|
Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
資深會員
|
SSPBUF=0b00010000
這是你HI BYTE的ADDR吧 建議測試期HI BYTE都先寫入0吧 不然你位置會錯 後期再用定義成INT變數或者分HI LO BYTE解決 讀寫 ADDR都要設2個BYTE呀 STOP之後的延遲 放在副程式裡面吧 1.省的有地方忘了呼叫 2.節省程式空間 還有依照ATMEL的SPEC來看的話延遲間距5ms~20ms 不等這麼長 沒辦法再寫入讀出 除非用PAGE READ/WRITE 但是那是另一種做法 以下是他們的SPEC 參考看看,照圖施工,保證成功\r 24c32 spec 如果還不正常 上示波器或LA 抓抓看 波型對不對
發表於: 2010/2/4 11:18
|
|||
My name is jan,Jan是棒的
|
||||
|
Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
初級會員
|
後來我知道用24c32寫入要用兩個位址定位
但問題是我改寫成兩個位址之後i2c居然不傳了 我想是寫法出了問題 但又找不出那裡出問題 Attach file: (0.00 KB) Link only for registered users
發表於: 2010/2/4 10:40
|
|||
|
Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
資深會員
|
問題解決了嗎 說明一下吧
發表於: 2010/2/4 10:35
|
|||
My name is jan,Jan是棒的
|
||||
|
Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
初級會員
|
我設斷點看過
在debug model不會停在 while(BF==1)
發表於: 2010/2/4 10:30
|
|||
|
Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
中級會員
|
請愛用EEAckPolling();
很有個性的寫法:) 你在使用debugger模式不會停在 while(BF==1)嗎?
發表於: 2010/2/3 11:29
|
|||
|
Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
資深會員
|
參照:
分隔線好多 看了有點頭暈 1.addr 應為2個BYTE 2.delay跟BF判斷 建議用NOP就好 用while沒加其他判斷的話,壞了不就卡死在裡面 3.有下STOP 後面要跟長延遲 因為STOP 到START需要一段時間,而且每家的EEPROM的數值都不一樣,建議看一下SPEC 再加 4.I/0因該硬體處理了,不需要再設定 輸入輸出 還有常數部分 比如 1可用 用 SET_ON,o 用SET_OFF代替 這樣做 是為了在程式上 更加幫助了解 修改時 ,也不用找位置改 找常數名稱修改就行
發表於: 2010/2/3 11:06
|
|||
My name is jan,Jan是棒的
|
||||
|
Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
初級會員
|
我是全部都寫在一個c檔案裡面
使用函式呼叫EEPROM的寫入和讀出函數 請問我的ADDR 和I/O設定有什麼問題
發表於: 2010/2/3 10:48
|
|||
|
Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
資深會員
|
看起來 好累 建議數值用常數(有意義的英文名稱) 代替
還有 你說不能write 卻只來主程式 相關的副程式勒 看不到 我只能猜 addr 設定設定問題 io 設定問題.... 如果沒更詳細 就是這樣了
發表於: 2010/2/3 10:32
|
|||
My name is jan,Jan是棒的
|
||||
|