Re: IIC的附屬端模式
|
||||
---|---|---|---|---|
資深會員
|
可是這兩顆都是SMD的 ^^"
實驗時是可以用啦 不過如果要生產時就很不方便 不好黏 ="= 找很久才找到MAXIM有DIP的 其他廠商都是SMD的 ~"~
發表於: 2004/9/9 17:32
|
|||
|
Re: IIC的附屬端模式
|
||||
---|---|---|---|---|
版主
|
Microchip有TC1320,TC1321。合用嗎?
發表於: 2004/9/9 14:25
|
|||
|
Re: IIC的附屬端模式
|
||||
---|---|---|---|---|
資深會員
|
謝謝各位的幫忙
接下來只剩下找尋IIC介面的DAC了 在MAXIM有找到 但代理商說沒樣品 線上跟美國申請好幾天了 不知道何時才會收到 /_\
發表於: 2004/9/9 10:50
|
|||
|
Re: IIC的附屬端模式
|
||||
---|---|---|---|---|
資深會員
|
我一直不想拿EEPROM來實驗
因為是從實驗板上拔下來唯一的一顆 以後還必須用到 要是實驗時不小心程式寫錯 瞬間讀寫個幾千幾萬次 這顆就毀了 這個問題昨晚發現出在哪了 問題不在主控端而是在slave的PIC位址定義 所以MASTER端還是正確的沒錯... 我原本以為7位元位址slave模式時 PIC自定位址SSPADD是向右靠齊的SSPADD<6,0> 結果昨晚再仔細看規格書時才發現 7位元時他是向左靠齊 SSPADD<7,1> 所以錯的是我SLAVE端的自訂位址 而不是MASTER端的呼叫位址
發表於: 2004/9/9 8:46
|
|||
|
Re: IIC的附屬端模式
|
||||
---|---|---|---|---|
版主
|
參照:
看來,您以為對的,其實是錯的;您以為錯的,其實是對的。 就好像您如果對I2C的EEPROM來存取的話,SSPBUF應該是填B'10100000'以送出位址,而不是B'01010000'。 這也就是為什我說,先對EEPROM作存取實驗,以確保MASTER端正確無誤,才不會弄不清楚問題出在那裏的緣故。
發表於: 2004/9/8 20:55
|
|||
|
Re: IIC的附屬端模式
|
||||
---|---|---|---|---|
資深會員
|
謝謝板主的回答
每一個階段都要靠中斷判別來執行嗎? 我是打算一接到呼叫之後就停止其他工作 把資料全部收完直到停止條件出來 再離開中斷 不過這麼做接到的資料都有問題 我試試分段好了... 剛剛發現一個怪問題 MASTER發出的位址不對但SLAVE卻有回應 MOVLW B'01001100' ;送出接收端位址碼+R/W MOVWF SSPBUF ; 照理說SLAVE的位址應該設定為 MOVLW B'00100110' ;設定接收端位址 MOVWF SSPADD ; 可是這麼一來SLAVE都不會回應ACK 必須設定為 SSPADD = B'01001100' 才有回應給MASTER 這是什麼情形 = =?
發表於: 2004/9/8 16:17
|
|||
|
Re: IIC的附屬端模式
|
||||
---|---|---|---|---|
版主
|
不是沒人理你,實在是事情很多....
1. 在I2C的規範理,並不是所有的Slave都要回Ack(因為位址不一樣所以也就收不到),只要位址相符的那個Slave回Ack(low)就可以了。 2. 一般我都是使用中斷的方式接收資料,所以我是檢查SSPIF的旗號離開中斷前再將其清除,I2C的中斷要去check到底是Address或Data的接收中斷 (可檢查 D/A bit at SSPSTA Register),如果是D/A=0(中斷時)就代表此 Slave的Address Match SSPBUF內的資料可不用理它,只要將SPPIF清除並將 CKT Set to Hi將 SCL 放開讓 MASTER 可以傳送下一你資料近來。 3. Master 與 Slave的 HAndshake 是透過 SCL 能否便 Hi來決定的,而slave的CKP位元就是來控制 SCL的Hi或Low 4. 圖17-8,你可能看錯了Master是發出READ的Command,所以後面的data是從Slave端送給Master的信號,此時的ACK是由MAster傳回給Slave,第一個ACK代表 Master還要再讀取資料(ACK=0), 第二個ACK代表Master即將完成讀取動作ACK=1,緊接著發出STOP。 5. PIC18Fxxxx的Slave回ACK都是硬體自動的回應ACK
發表於: 2004/9/8 15:12
|
|||
|
Re: IIC的附屬端模式
|
||||
---|---|---|---|---|
資深會員
|
我已經可以正確控制iic的dac了
所以問題應該不在MASTER那裡 /_\
發表於: 2004/9/8 14:39
|
|||
|
Re: IIC的附屬端模式
|
||||
---|---|---|---|---|
版主
|
建議先以I2C的EEPROM,如24LC02B,為SLAVE端;以一顆PIC為MASTER端:先能夠正確存取再說。然後再把SLAVE端,用一顆PIC取代。
不然,問題到底出在MASTER或SLAVE端會弄不清楚。
發表於: 2004/9/8 13:30
|
|||
|