會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客



« 1 (2)


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
初級會員
註冊日期:
2004/05/19 15:30
所屬群組:
註冊會員
文章: 39
等級: 5; EXP: 2
HP : 0 / 100
MP : 13 / 4615
離線
在判斷是不是有ack訊號的時候,最好能設一個最大的時間!不然....當eeprom出問題的時候就等於當機了!對了忘記說了如果是我在寫的時候,我一定是把所以的中斷關掉,也就是那一個時間只寫入eeprom不做其它的事!我試起來感覺這會會比較穩定啦!當然這也還是小弟的拙見!如有謬誤尚請指正,謝謝

2004/05/25 16:23
轉換PDF檔 列印


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
新會員
註冊日期:
2004/05/17 09:57
所屬群組:
註冊會員
文章: 14
等級: 2; EXP: 50
HP : 0 / 37
MP : 4 / 1725
離線
請問我在傳完8個bit(start+slaveraddress)之後再check
ACK結果都處在1的狀態,試了很多次都是這樣子,請問婐的程式哪裡出錯ㄌㄋ?
;--------------------------
BSF PA,SDA
NOP
NOP
BSF PA,SCL
NOP
NOP
BCF PA,SCL
NOP
NOP
BCF PA,SDA ;START BIT
;---------------------------
MOVLW 07H
MOVWF N_DATA
RUN_LOOP
BTFSS TEMP_DATA,6
GOTO BITLOW
BSF PA,SDA
NOP
BSF PA,SCL
NOP
NOP
NOP
BCF PA,SCL
NOP
RLF TEMP_DATA,F
DECFSZ N_DATA,F
GOTO RUN_LOOP
RETLW 0

BITLOW
BCF PA,SDA
NOP
BSF PA,SCL
NOP
NOP
BCF PA,SCL
NOP
RLF TEMP_DATA,F
DECFSZ N_DATA,F
GOTO RUN_LOOP
RETLW 0
;----------------------------
ACK
MOVLW 0000B ;
TRIS PA
BSF PA,SDA
MOVLW 0001B ;
TRIS PA
NOP
NOP
NOP
BTFSC PA,SDA
GOTO ERROR_BIT
MOVLW 0000B ;
TRIS PA
RETLW 0
;*****************
ERROR_BIT ;CHECK PROGRAM ERROR BIT ********(NG)*********
NOP
NOP
NOP
GOTO ERROR_BIT
;----------------------------

2004/05/27 15:49
轉換PDF檔 列印


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14926
等級: 73; EXP: 71
HP : 1090 / 1817
MP : 4975 / 83610
離線
看別人的程式是一件很辛苦的事,尤其是組合語言。
可不可以請你用數位式波器量SDA & SCL 兩隻腳的波形
一定有錯不然ACK是會從Slave送出來的。

2004/05/31 17:55
轉換PDF檔 列印


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
新會員
註冊日期:
2004/05/25 11:35
來自 海王星
所屬群組:
註冊會員
文章: 6
等級: 1; EXP: 47
HP : 0 / 11
MP : 2 / 539
離線
;----------------------------
ACK
MOVLW 0000B ;
TRIS PA
BSF PA,SDA
^^^^^^^^^^^^^^^^
為什麼要把SDA先自己拉High哩
理論上I2C BUS只要DEVICE不為BUSY都會自動釋放
BUS成為HIGH , 當然有些周邊或IO要加提升電阻.

MOVLW 0001B ;
TRIS PA
NOP
NOP
NOP
^^^^^^^^^^^^
你等的時間會不會太短了啊@@
BTFSC PA,SDA
GOTO ERROR_BIT
MOVLW 0000B ;
TRIS PA
RETLW 0
;*****************

才三個NOP , 你的CPU RUN多少hz哩??
我建議要等久一點
而且最好是用LOOP來持續判斷比如

WAIT_ACK_CHKPOINT
BTFSS PA,SDA
GOTO GOT_ACK
NOP
DECFSZ WAIT_ACK,F
GOTO WAIT_ACK_CHKPOINT

當然 WAIT_ACK 要放多少自己調Timing吧~
只寫個大概其它自己看看吧~


2004/05/31 23:49
轉換PDF檔 列印



« 1 (2)



無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project