Re: 關於使用PIC18F4431於APP001實驗板 --> I2C功能
|
||||
---|---|---|---|---|
新會員
|
以上問題都解決了
請問一下 我觀測波形後發現 有些資料會遺失 請問有那些方法可以增加傳送時的穩定性呢?
發表於: 2006/4/24 19:49
|
|||
|
Re: 關於使用PIC18F4431於APP001實驗板 --> I2C功能
|
||||
---|---|---|---|---|
版主
|
送出control Byte時,還要等第九個位元ACK後再檢查SSPIF位元以判斷資料是否正確地被Slave收到,
你的程式是先判斷再送ACK的clock,請修改一下: int F_I2C_Send_Address(int UC_Address) { SSPBUF = UC_Address; while(F_I2C_WAIT()==0); //與下一行對調 if ( SSPCON2bits.ACKSTAT ) // return 0; else return 1; }
發表於: 2006/4/14 20:12
|
|||
|
Re: 關於使用PIC18F4431於APP001實驗板 --> I2C功能
|
||||
---|---|---|---|---|
新會員
|
版主及各位大大好
以下是用PIC18F452寫的 I2C 程式 Master程式只做傳送 Slave程式只做接收 我測程式時碰到問題 在Master傳送位址時無法完全傳送完成 導致確認信號接收不到 跑程式時傳送端的SSPBUF為0x42 接收端的SSPBUF為0x7F 似乎只傳了一個low bit就結束位址傳送 請問一下問題出在哪裡?? 感激不盡
//============Master start==============
發表於: 2006/4/14 18:46
|
|||
|
Re: 關於使用PIC18F4431於APP001實驗板 --> I2C功能
|
||||
---|---|---|---|---|
版主
|
I2C 的應用範例在W401 C18 workshop 裡第六章裡有用 C 寫的範例,那裡有詳細的說明。
發表於: 2006/4/8 11:34
|
|||
|
Re: 關於使用PIC18F4431於APP001實驗板 --> I2C功能
|
||||
---|---|---|---|---|
資深會員
|
有IIC功能的都有這些暫存器
而且位元的定義都一樣 只是名稱不一定相同 翻一下規格書吧 規格書裡都會把這個功能所需要用到的暫存器列出來 有用到的旗標是白色的 用不到的是灰色的 我剛剛有翻到 看看220頁的表18-3吧
發表於: 2006/4/8 8:36
|
|||
|
Re: 關於使用PIC18F4431於APP001實驗板 --> I2C功能
|
||||
---|---|---|---|---|
新會員
|
恩~
感謝版主的回答!! 我又要問一個問題= = 我發現用18f452時,有個SSPCON2暫存器可以產生開始跟結束位元 但是 用18f4431時並沒有這個暫存器 這樣我需要如何產生開始與結束位元?? 還是直接利用輸出的方式來產生這些位元呢?!
發表於: 2006/4/7 19:03
|
|||
|
Re: 關於使用PIC18F4431於APP001實驗板 --> I2C功能
|
||||
---|---|---|---|---|
版主
|
APP001 的 SCL,SDA 已經接了提升電阻在連接到 24LC02 及 TC74 兩顆IC,注意位址不可以重複,或著可以撥DIP SW 將 SCL, SDA 兩線斷開這樣就可以自行運用,提升電阻就另外再加。
發表於: 2006/4/7 18:28
|
|||
|
關於使用PIC18F4431於APP001實驗板 --> I2C功能
|
||||
---|---|---|---|---|
新會員
|
請問一下
我要用4431的I2C的功能 看了一下4431的datasheet時, 發現需要在SCL及SDA腳位接上提升電阻 如果使用APP001實驗板 還需要外接提升電阻嗎? 有經驗的版主或大大幫忙解答一下吧~感謝~
發表於: 2006/4/7 15:24
|
|||
|