PIC18 MSSP I2C Slave 問題

作者 jaredchien 於 2019年06月20日 18:01:38
小弟我目前是當SLAVE與SMBUS的MASTER溝通,

但目前遇到問題如下.
1.正常SMBUS溝通流程為
START->WRITE_ADDRESS->ACK->WRITE_Reg->ACK->Repeat_START->WRITE_ADDRESS->ACK->要寫進去的資料-Value->NO_ACK->STOP

2.小弟的PIC18 SLAVE 目前只有
START->WRITE_ADDRESS->ACK->WRITE_Reg->NOACK

看DOC裡面所描述的
S+MATCH ADDRESS 會產生第一次INTERRUPT ->這邊有進
把BUF讀出來以後,原本BUF內數值ADDRESS就會被清除,並且RELOAD VALUE,然後將IF清除後會再進一次INTERRUPT ->這邊也有進

但第二次進INTERRUPT後,查看BUF竟然也是ADDRESS!?!?
而且這次硬體沒有回ACK,硬體判斷為沒有資料發STOP就結束了

不知道哪邊出了問題,又或是DOC哪邊沒有看到重要的資訊,跪求神人提點提點

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