Re: I2C的問題(1個傳送,3個接收)
|
||||
---|---|---|---|---|
新會員
|
請問一下
傳送位址與資料時的ACK訊號為一個1伏的方波 這算正常嗎? 如果不正常,原因出在哪呢?
發表於: 2006/5/11 21:44
|
|||
|
Re: I2C的問題(1個傳送,3個接收)
|
||||
---|---|---|---|---|
新會員
|
大家安安~
小弟想問一下: Master傳送一個byte時, 如果Slave因為資料遺失而沒收滿一個byte, 也就不會回傳確認訊號, 這時Master發個STOP, Slave可以繼續接收資料而不會有任何影響嗎? 如果START和STOP的訊號也接收失敗, 這樣會影響資料接收吧?!
發表於: 2006/5/10 17:36
|
|||
|
Re: I2C的問題(1個傳送,3個接收)
|
||||
---|---|---|---|---|
新會員
|
傳送端是根據PIC18f452寫的
接收端則是PIC18f4431 我看波形圖比較奇怪的是傳送位址跟資料的時候 ACK的波形都是1,照理說應該只有傳送資料時的ACK為1才對 不過我怎麼改都還是1.... 以下是傳送端與接收端的程式碼 ( 一傳一時可以持續接收, 一傳三就傳一段時間就掛掉了= = ) //====================傳送端 只作傳送===========
#include <p18f452.h>
發表於: 2006/5/4 20:55
|
|||
|
Re: I2C的問題(1個傳送,3個接收)
|
||||
---|---|---|---|---|
資深會員
|
把傳送跟接收部分丟上來吧
應該是某些位元沒判斷到的關係 仔細對照規格書中的時序圖 (很重要,我後來是看時序圖才發現問題點) 看看自己程式中有哪些位元沒弄好導致錯誤吧
發表於: 2006/5/4 17:54
|
|||
|
Re: I2C的問題(1個傳送,3個接收)
|
||||
---|---|---|---|---|
新會員
|
請問一下
我用led來顯示接收到的資料值 傳送端一直傳資料 接收端就不斷把資料值顯示在led上 傳送端每隔2.5ms傳送一次資料 大約過半分鐘後 接收端就停住而無法繼續接收了 請問有可能是某些暫存器溢位造成的嗎? 不過,會溢位的暫存器我程式方面已經做過處理 但是還是發生無法繼續接收的情況 這是哪種原因造成的呢??
發表於: 2006/5/4 13:58
|
|||
|
Re: I2C的問題(1個傳送,3個接收)
|
||||
---|---|---|---|---|
新會員
|
很抱歉 我沒遇過耶= =
應該丟什麼到SSPBUF,就傳什麼出來才對... 我只碰過傳資料時傳的位址被當成資料,傳的資料被當成位址,所以接收端一直收不到... 後來把接收端的SSPADD改成傳送端傳過來的資料時,SSPBUF就可以收到位址了(事實上是傳送端傳來的資料),但是第二筆資料還是收不到... 用示波器看波形後發現SCL有19個方波(中間SCL held low的地方,SDA跟SCL產生一個方波,我只傳送2個BYTES,所以理論上是18個才對),上述傳送端傳的位址跟資料才被當成位址來傳了,所以才會發生傳的資料被當成位址的情況= = 最後 在開始跟結束的位元後都用for迴圈DELAY一段時間,就正常工作了
發表於: 2006/5/2 17:22
|
|||
|
Re: I2C的問題(1個傳送,3個接收)
|
||||
---|---|---|---|---|
初級會員
|
請問一下喔!!你所傳出的資料會有一些是你不想要的ㄇ!!
譬如說你傳的是AA但是由時候會傳78...你有類似這樣的問題ㄇ ...........如果有你怎麼解決阿??
發表於: 2006/5/1 16:51
|
|||
|
Re: I2C的問題(1個傳送,3個接收)
|
||||
---|---|---|---|---|
新會員
|
我找到錯誤的來源了
因為接收端都沒加裝reset裝置 reset後就可以正常接收了= =
發表於: 2006/5/1 15:34
|
|||
|
I2C的問題(1個傳送,3個接收)
|
||||
---|---|---|---|---|
新會員
|
各位大大好~
小弟我有個問題 我在使用一對一時, 接收端都可以確實的接收到資料 在用一對三時, 傳送端是輪流傳送資料至三個接收端 假設分別為1,2,3號接收端 剛開始可能是只有1號可以收到資料 後來跳到2號, 1號又收不到了, 再後來又跳到3號, 其他的又收不到了 接收情況就像上述跳來跳去, 而不是輪流接收 看傳送的波形時, 的確是輪流傳送三筆資料給三個接收端 請問這情形要如何解決呢
發表於: 2006/5/1 12:00
|
|||
|