|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
急,通信問(wèn)題 |
| 作者:冷若寒 欄目:單片機(jī) |
大家好! 我用兩片16877A進(jìn)行I2C雙機(jī)通信, 不論從機(jī)發(fā)送什么數(shù)據(jù),主機(jī)讀從機(jī)的數(shù)據(jù)總是0xff; 想了好久,沒(méi)辦法了! 從機(jī)總是處于被動(dòng)狀態(tài),也看不到其中的情況; 測(cè)量I2C的波形,確實(shí)總線上是0XFF 的信號(hào), 但是為何我要發(fā)的數(shù)據(jù)發(fā)不出來(lái)了; 請(qǐng)大家?guī)鸵幌旅Π。?br> |
| 2樓: | >>參與討論 |
| 作者: coldra 于 2006/12/1 19:25:00 發(fā)布:
時(shí)序不對(duì)吧,繼續(xù)研究協(xié)議 |
|
| 3樓: | >>參與討論 |
| 作者: 冷若寒 于 2006/12/1 19:30:00 發(fā)布:
續(xù) 協(xié)議已對(duì)過(guò)了,實(shí)在是找不出問(wèn)題所在; 不知大家有沒(méi)有遇到過(guò)類似的問(wèn)題? 提示一下該檢查什么地方? 我的時(shí)序是按照PIC 網(wǎng)站的程式改寫(xiě)的; 反復(fù)對(duì)過(guò)了; 不知斑竹有何建議? |
|
| 4樓: | >>參與討論 |
| 作者: 冷若寒 于 2006/12/1 19:38:00 發(fā)布:
還有一點(diǎn) 還有一點(diǎn),就是 : 主機(jī)寫(xiě)從機(jī)數(shù)據(jù)都是正確的; 主機(jī)讀從機(jī)數(shù)據(jù)就不對(duì)了; |
|
| 5樓: | >>參與討論 |
| 作者: 冷若寒 于 2006/12/1 19:39:00 發(fā)布:
加上 我是采用主從機(jī)都是硬件I2C ; 并采用中斷方式 |
|
| 6樓: | >>參與討論 |
| 作者: 冷若寒 于 2006/12/1 19:41:00 發(fā)布:
加上 采用的是MICROCHIP 網(wǎng)站上的AN734,AN735 的例子程序改寫(xiě)的 |
|
| 7樓: | >>參與討論 |
| 作者: 冷若寒 于 2006/12/1 19:47:00 發(fā)布:
加上 這是我的從機(jī)向主機(jī)寫(xiě)數(shù)據(jù)的程式: void sWriteI2c(INT8U bI2cTxData) { do { ; } while(STAT_BF); // STAT_BF Wait for busy flag do { WCOL=0; //clear the WCOL flag SSPBUF=bI2cTxData; } while(WCOL); CKP=1; //Release the clock } |
|
| 8樓: | >>參與討論 |
| 作者: 冷若寒 于 2006/12/1 19:59:00 發(fā)布:
接上 主機(jī)先寫(xiě)從機(jī)一串?dāng)?shù)據(jù),然后就是再讀從機(jī)一串?dāng)?shù)據(jù) |
|
| 9樓: | >>參與討論 |
| 作者: wangyibo 于 2006/12/1 20:28:00 發(fā)布:
那你主機(jī)讀從機(jī),從機(jī)可以進(jìn)中斷嗎 |
|
| 10樓: | >>參與討論 |
| 作者: 冷若寒 于 2006/12/1 21:09:00 發(fā)布:
接上 可以進(jìn)入中斷 |
|
| 11樓: | >>參與討論 |
| 作者: yewuyi 于 2006/12/2 8:39:00 發(fā)布:
是不是寫(xiě)完就立即讀了? 要考慮到寫(xiě)入需要時(shí)間,延遲20MS后再讀,看看能否讀出來(lái),另外也可以單獨(dú)讀讀看看是否可以讀出了 |
|
| 12樓: | >>參與討論 |
| 作者: xieyuanbin 于 2006/12/2 10:29:00 發(fā)布:
在主從模式中,主機(jī)不管讀寫(xiě)都要發(fā)送時(shí)鐘信號(hào). 看看波形對(duì)不對(duì)? |
|
| 13樓: | >>參與討論 |
| 作者: 冷若寒 于 2006/12/3 9:21:00 發(fā)布:
續(xù) to yewuyi 斑竹: 我是兩片877 進(jìn)行I2C雙機(jī)通信啊,也要時(shí)間延遲嗎? to xieyuanbin 斑竹:波形是對(duì)的,主機(jī)讀從機(jī)時(shí),測(cè)量數(shù)據(jù)波形,就是 0XFF,但是從機(jī)不是發(fā)送的這個(gè)數(shù)啊,無(wú)論我發(fā)送 什么數(shù)據(jù)都是0Xff的波形在數(shù)據(jù)線啊; 我反復(fù)對(duì)了時(shí)序都是對(duì)的啊 |
|
| 14樓: | >>參與討論 |
| 作者: xieyuanbin 于 2006/12/3 9:48:00 發(fā)布:
這就清楚了. IIC的數(shù)據(jù)線在空閑時(shí)應(yīng)為浮動(dòng)高電平,主機(jī)發(fā)送完讀命令后需要將數(shù)據(jù)線FREE,也就是將數(shù)據(jù)口設(shè)置為輸入,此時(shí)數(shù)據(jù)線上的高電平依靠上拉電子提供.我不知道你有沒(méi)有這樣的設(shè)置?應(yīng)答信號(hào)收到?jīng)]有?我猜你連應(yīng)答信號(hào)都沒(méi)收到. IIC通訊不是寫(xiě)EEPROM,不需要延時(shí)的. |
|
| 15樓: | >>參與討論 |
| 作者: 蘭天白云 于 2006/12/3 15:13:00 發(fā)布:
懷疑你的從機(jī)根本就沒(méi)有發(fā)數(shù)據(jù) 斷開(kāi)主機(jī),用從機(jī)做主機(jī),只發(fā)數(shù)據(jù)試試,看波型對(duì)不對(duì)? |
|
| 16樓: | >>參與討論 |
| 作者: yewuyi 于 2006/12/4 11:51:00 發(fā)布:
有示波器否? 自己看看信號(hào)就全知道了…… 你的問(wèn)題中不需要延遲時(shí)間。 |
|
| 17樓: | >>參與討論 |
| 作者: zhaoyu2005 于 2006/12/12 11:08:00 發(fā)布:
自己還是檢查一下協(xié)議吧 我用12F675模擬從機(jī)與16F77主機(jī)進(jìn)行I2C通信,主機(jī)只讀從機(jī)的數(shù)據(jù),和24C02的當(dāng)前地址讀協(xié)議一樣,很正常 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |