Re: PIC18F452 I2C slave mode相關設定
|
||||
---|---|---|---|---|
版主
|
Slew Rate 不是指速度,而是指上昇、下降緣的斜率控制。
發表於: 2008/2/12 11:55
|
|||
|
Re: PIC18F452 I2C slave mode相關設定
|
||||
---|---|---|---|---|
高級會員
|
請問版主:
雖然i2c的clock都是由master負責,但是在datasheet(PIC16F886) 中關於SSPSTAT暫存器的BIT7(SMP)描述如下: SMP: Sample bit SPI Master mode: 1 = Input data sampled at end of data output time 0 = Input data sampled at middle of data output time SPI Slave mode: SMP must be cleared when SPI is used in Slave mode In I2 C Master or Slave mode: 1 = Slew rate control disabled for standard speed mode (100 kHz and 1 MHz) 0 = Slew rate control enabled for high speed mode (400 kHz) In I2 C Master or Slave mode,這段話為什麼說I2C SLAVE也要設速率呢? Thanks very much.
發表於: 2008/2/4 9:26
|
|||
|
Re: PIC18F452 I2C slave mode相關設定
|
||||
---|---|---|---|---|
版主
|
(1)clock rate需設定???還是自動偵測???
若非100k,400k,如何設定??? 使用SSPADD?? Ans : I2C 的速度由 Master 決定,Slave 只管接收來自 SCK 的 Clock,速度與 Slave 無關。在 I2C Slave SSPADD 是用來設定 Slave 的 Device Address,其中只有 b0~b7 會與 I2C Command 裡的 Address 去比較,b0 不使用。SSPADD 在 I2C Master 是當作 Boud Rate 的除法器使用。 (2)收到master資料後,如何回ACK/NACK??自動回??? slave收到master資料是否可設中斷??? Ans: Slave 接收到一個完整的 Byte 資料後後自動回 ACK, Master 會自東發出第九個 Clock 將ACK獨回去。一般 I2C Slave 端都會使用中斷方式去接收,而且透過 SSPSTAT< D/A> bit 來判斷資資料或是 Command。 (3)送資料給master後,如何判斷收到ACK or NACK??? Ans: Master 要檢查 SSPCON2<ACKSTAT> 位元。 (4)有相關範例(C語言)??? http://www.microchip.com.tw/modules/wfdownloads/viewcat.php?cid=12 第三項。
發表於: 2008/2/1 15:27
|
|||
|
Re: PIC18F452 I2C slave mode相關設定
|
||||
---|---|---|---|---|
高級會員
|
(1).還是要設定,設一下SSPSTAT Register的SAMPLE BIT看看你是要STANDARD 或HIGH SPEED MODE。
(2).slave mcu的ACK會自動產生不用回!! 中斷是一定要的,只要是通訊的接收幾乎都要用中斷去實現,不然你根本不知何時資料會進來,只能苦苦的polling。 (3).這時侯的ACK是由MASTER產生,也決定的MASTER是不是已收完資料了。至於SLAVE有沒有辦法硬體偵測這MASTER發出的ACK就不清楚了(再麻煩版主了)。
發表於: 2008/1/30 20:45
|
|||
|
訪客
|
PIC18F452 I2C slave mode相關設定
|
|||
---|---|---|---|---|
目前欲使用PIC18F452當 I2C slave,請問
(1)clock rate需設定???還是自動偵測??? 若非100k,400k,如何設定??? 使用SSPADD?? (2)收到master資料後,如何回ACK/NACK??自動回??? slave收到master資料是否可設中斷??? (3)送資料給master後,如何判斷收到ACK or NACK??? (4)有相關範例(C語言)??? 產品技術支援專線好像沒人接???? 謝謝!!!!! |
||||
|