Re: 請教 AN734 有關 I2C 的問題..
|
||||
---|---|---|---|---|
高級會員
|
參照:
謝謝板大... 因為Master端是用 89S52 的 IO 去寫的..然後Slave端要用PIC的SSP模組..還要實現1對多的通訊...所以必須搞清楚一些信號.. 如果都可以用PIC的話,就不用這麼麻煩了..無奈~ 再請教板大... Master 寫入資料到 Slave 時,Data 是從Master 送出的, 則該筆的ACK/NAK會是由Slave回應的..由Master產生第9個Pulse讀入ACK/NAK...這樣想正確吧? 那Master 在讀取 Slave 資料時, Data 不是從 Slave 送出的嗎? 然後ACK/NAK變成由Master告知Slave是否還要繼續讀取資料...感覺這樣想還滿合理的..我再想辦法Try看看..
發表於: 2009/8/19 1:01
|
|||
|
Re: 請教 AN734 有關 I2C 的問題..
|
||||
---|---|---|---|---|
版主
|
參照:
On the ninth clock pulse, the slave latches the value of the ACK bit received from the master. 錯。 若 Data 是從 Master 送出的,則該筆的 ACN/NAK 會是由 Slave 回傳的。I2C 的 SDA 是雙向的,且有Handshake 的協定。
發表於: 2009/8/18 15:59
|
|||
|
Re: 請教 AN734 有關 I2C 的問題..
|
||||
---|---|---|---|---|
版主
|
問題: 若我要寫一個 Slave 端的程式,Slave 如何 holding SCL line?
Ans: PIC 的 I2C slave module 每當收完一個 Byte 的資料後會自動回 ACK 並把 SCL 載回完 ACK 後拉成 Low Level 已通知 Master 暫停,Slave 通常會進入中斷來優先處理接收,待處理完畢將 SSPCON1<CKP> 設為1 以放開 SCL。 bit 4 CKP: SCK Release Control bit In Slave mode: 1 = Release clock 0 = Holds clock low (clock stretch). (Used to ensure data setup time.) 而且 Master 要讀幾個byte就產生幾個 Clock,Master 要如何知道 Slave release SCL.. ans: Timming 有規格的,要自行看I2C Specification SCL 被放開後就會變High,這樣Master 就知道放開了。
發表於: 2009/8/18 15:49
|
|||
|
請教 AN734 有關 I2C 的問題..
|
||||
---|---|---|---|---|
高級會員
|
AN734 - page 2
After the address byte is received, the slave device sends an ACK pulse and holds the SCL line low (clock stretching).By holding the SCL line, the slave can take as much time as needed to prepare the data to be sent back to the master. When the slave is ready, it releases SCL and the master device clocks the data from the slave buffer. 問題: 若我要寫一個 Slave 端的程式,Slave 如何 holding SCL line? 而且 Master 要讀幾個byte就產生幾個 Clock,Master 要如何知道 Slave release SCL.. 不然 Slave holding SCL, 然後 Master 一直在產生 Clock..這樣會造成資料錯亂吧? On the ninth clock pulse, the slave latches the value of the ACK bit received from the master. 問題: 在讀取資料時,第9個Clock Pulse,SDA腳上的 ACK 或 NACK 信號是 MASTER 控制,Slave 若接收為ACK時,則必須再準備下一筆資料傳送..我的想法對嗎? 謝謝~~
發表於: 2009/8/18 12:23
|
|||
|