Re: PIC16F690 軟體模擬I2C read問題
|
||||
---|---|---|---|---|
中級會員
|
使用 PIC16F690 的 PORTB I/O 來操作啊!
那你要注意一下是否有使用到 RB4 或 RB5, 因為 RB4 / RB5 還具有 AN10 / AN11 的功能在. 需要將 ANSELH 的 Bit2(ANS10) / Bit3 (ANS11) 設為 0 時 digital 功能才會正常. -------------------------------------------------------------------- 另外, 一點點建議如下...
BITIN
Good luck !
發表於: 2008/5/10 23:00
|
|||
|
Re: PIC16F690 軟體模擬I2C read問題
|
||||
---|---|---|---|---|
版主
|
SCL & SDA 有接 Pull-Up 4.7K ohm 電阻嗎?
可以參考 AN536 & AN554 & AN982
發表於: 2008/5/9 17:54
|
|||
|
PIC16F690 軟體模擬I2C read問題
|
||||
---|---|---|---|---|
新會員
|
小弟最近用PIC16F690練習以I2c去讀寫eeprom
用的是microchip的application note 974當範例 原本此範例是供p16f54用,我改成用PIC16F690去實作 不論是read或是write,用示波器看都符合I2C規則 但是我發現read的時候 示波器波形雖然是對的 讀出的值也是對的 可是值卻未讀進register 該register完全沒變化 範例程式中有一段是根據PORTB的SDA位元來判斷每個讀進的位元是1或是0 如下 BITIN bcf STATUS,RP0 ; Bank 0 bcf PORTB,SCL ; Make sure SCL is low bsf STATUS,RP0 ;Bank 1 movlw SDA_IN ; Configure SDA to be an input movwf TRISB ; Copy value to TRISB register bcf STATUS,RP1 bcf STATUS,RP0 ; Bank 0 bsf buffer,DI ; Assume input bit is high bsf PORTB,SCL ; Bring SCL high to begin transfer TAA ; Output valid from clock delay btfss PORTB,SDA ; Check for state of SDA bit bcf buffer,DI ; If SDA is low, set bit low bcf PORTB,SCL ; Bring SCL low again retlw 0 ----------------------- 請問各位大大 有可能是哪邊出了問題導致PORTB的SDA完全無法觀察外部訊號 或是有那些register還要設定的嗎 謝謝~~
發表於: 2008/5/8 16:12
|
|||
|