|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
《AVR單片機(jī)GCC程序設(shè)計》-芯藝 |
| 作者:BitFu 欄目:單片機(jī) |
原貼名:“winavr中文資料" 已更新 日期:2004-12-31 下載地址: http://www.chip-art.net或 http://chipart.17kl.net 多處錯別字改正 多處錯誤更正 多處內(nèi)容更新 舊版本: http://bitfu.zj.com/winavr/avrandgccv11.pdf |
| 2樓: | >>參與討論 |
| 作者: hotpower 于 2005/1/2 20:29:00 發(fā)布:
非常好的教材!!!并請教I2C通信問題 請教樓主有關(guān)I2C一主多從總線的沖突問題...謝謝!!! 注: 主從機(jī)全為MCU,且從機(jī)地址不定. 從機(jī)都各自自帶序列碼(16位)但不能重碼.主機(jī)只有一個,在某個時間里可以上線的從機(jī)<=127個. 我主要是想請教: 1.主機(jī)發(fā)送START信號,產(chǎn)生TW_START事件. 由于是單主機(jī)系統(tǒng),應(yīng)該順利通過. 2.主機(jī)發(fā)送SLA+W信號,所有子機(jī)(假定同地址,比較好管理)被喚醒并發(fā)回應(yīng)答信號ACK. 只要有一個子機(jī)應(yīng)答,肯定會產(chǎn)生TW_MT_SLA_ACK信號.因為最多SDA上多子機(jī)產(chǎn)生"線與" 3.主機(jī)發(fā)送DATA信號(命令所有從機(jī)發(fā)回自己的16位序列碼),所有子機(jī)同上應(yīng)該發(fā)回應(yīng)答信號ACK. 故也會產(chǎn)生TW_MT_DATA_ACK信號. 4.主機(jī)發(fā)送START信號,產(chǎn)生TW_REP_START事件. 由于是單主機(jī)系統(tǒng),應(yīng)該順利通過. 5.主機(jī)發(fā)送SLA+R信號,所有子機(jī)(假定同地址,比較好管理)被喚醒并發(fā)回應(yīng)答信號ACK. 只要有一個子機(jī)應(yīng)答,肯定會產(chǎn)生TW_MR_SLA_ACK信號.因為最多SDA上多子機(jī)產(chǎn)生"線與" 關(guān)鍵就是以下步驟不太清楚(假定序列碼16位): 6.主機(jī)接收DATA信號(從機(jī)序列碼高8位),所有子機(jī)應(yīng)該發(fā)回各自序列碼高8位(可能沖突). 主機(jī)又不知數(shù)據(jù)正確與否,應(yīng)該產(chǎn)生TW_MR_DATA_ACK信號. 有疑問處1: 難道從機(jī)會順利通過TW_ST_DATA_ACK事件嗎??? 難道從機(jī)不會產(chǎn)生TW_ST_ARB_LOST_ACK事件嗎???(可惜沒有此事件) 7.主機(jī)接收DATA信號(從機(jī)序列碼低8位),所有子機(jī)應(yīng)該發(fā)回各自序列碼低8位(可能沖突). 主機(jī)又不知數(shù)據(jù)正確與否,應(yīng)該產(chǎn)生TW_MR_DATA_NACK信號. 有疑問處2: 難道從機(jī)會順利通過TW_ST_DATA_ACK事件嗎??? 難道從機(jī)不會產(chǎn)生TW_ST_ARB_LOST_ACK事件嗎???(可惜沒有此事件) 8.主機(jī)發(fā)送STOP信號.(郁悶為何不產(chǎn)生任何事件) 謝謝... * - 本貼最后修改時間:2005-1-2 20:31:16 修改者:hotpower |
|
| 3樓: | >>參與討論 |
| 作者: hotpower 于 2005/1/2 21:43:00 發(fā)布:
求教 請問在從機(jī)發(fā)送模式下是否遵守: 總線競爭的仲裁 總線上可能掛接有多個器件,有時會發(fā)生兩個或多個主器件同時想占用總線的情況。例如,多單片機(jī)系統(tǒng)中,可能在某一時刻有兩個單片機(jī)要同時向總線發(fā)送數(shù)據(jù),這種情況叫做總線競爭。I2C總線具有多主控能力,可以對發(fā)生在SDA線上的總線競爭進(jìn)行仲裁,其仲裁原則是這樣的:當(dāng)多個主器件同時想占用總線時,如果某個主器件發(fā)送高電平,而另一個主器件發(fā)送低電平,則發(fā)送電平與此時SDA總線電平不符的那個器件將自動關(guān)閉其輸出級?偩競爭的仲裁是在兩個層次上進(jìn)行的。首先是地址位的比較,如果主器件尋址同一個從器件,則進(jìn)入數(shù)據(jù)位的比較,從而確保了競爭仲裁的可靠性。由于是利用I2C總線上的信息進(jìn)行仲裁,因此不會造成信息的丟失。 |
|
| 4樓: | >>參與討論 |
| 作者: hotpower 于 2005/1/2 22:55:00 發(fā)布:
這種說法對否??? 由于I2C 總線的控制只由地址或主機(jī)碼以及競爭主機(jī)發(fā)送的數(shù)據(jù)決定沒有中央主機(jī)總線也沒有任 何定制的優(yōu)先權(quán) 必須特別注意的是在串行傳輸時當(dāng)重復(fù)起始條件或停止條件發(fā)送到I2C 總線的時侯仲裁過程仍 在進(jìn)行如果可能產(chǎn)生這樣的情況有關(guān)的主機(jī)必須在幀格式相同位置發(fā)送這個重復(fù)起始條件或停止條件 也就是說仲裁在不能下面情況之間進(jìn)行 • 重復(fù)起始條件和數(shù)據(jù)位 • 停止條件和數(shù)據(jù)位 • 重復(fù)起始條件和停止條件 從機(jī)不被卷入仲裁過程. |
|
| 5樓: | >>參與討論 |
| 作者: abc2001 于 2005/1/3 8:07:00 發(fā)布:
真是2005新年的一份好禮物呀,謝謝! |
|
| 6樓: | >>參與討論 |
| 作者: 宇宙飛船 于 2005/1/3 13:57:00 發(fā)布:
真的是好東東! |
|
| 7樓: | >>參與討論 |
| 作者: 宇宙飛船 于 2005/1/3 14:00:00 發(fā)布:
什么時候能印成書呀,看電子文擋真累! |
|
| 8樓: | >>參與討論 |
| 作者: 真水無香 于 2005/1/4 15:23:00 發(fā)布:
謝謝,樓主哦 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |