Re: PIC18 MSSP I2C Slave 問題

作者 jaredchien 於 2019年06月24日 18:19:27
Hi Ryang
感謝你的回覆
不過我目前是將PIC18這顆當作SLAVE,並非當MASTER
目前是想利用MSSP controller去實作SLAVE
根據PIC18F97此顆IC的DOC內MSSP看起來,他會在Start_condition後將SSPBUF內的數值與SSPADD內的數值做比較,如果符合就會將IF立起來並進入中斷,這時候要將SSPBUF內數值讀出來(讀取後BF自動清0)清除BF過後清除IF,接著會再進一次中斷且SSPBUF會更新成位置後的資料,讀取過後自動將BF清0,BF無法被清0所以SSPOV會=1,接著controller會發STOP_condition

但正常流程只有進入中斷2次
1.BUF數值為符合SLAVE Address的位置
2.BUF數值為位置後的數值
假設我MASTER發 0xcc(address),0x02(offset),0x05(data)
第一次中斷,BUF數值為0xcc
第二次中斷BUF數值為0x02

但是我需要與特定MASTER溝通,須將序列調整為三次我已經將中斷進入調整成3次,但我BUF的數值停留在0x02這個地方,無法更新成0x05,

我想請問有沒有人知道,有沒有辦法將SSPBUF這個暫存器強制清除,或是強制更新數值的方法

來自: http://www.microchip.com.tw/newbb/viewtopic.php?forum=1&topic_id=22681&post_id=79777