|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
兩個問題,麻煩各位了 |
| 作者:499767 欄目:單片機 |
各位晚上好,小弟這有兩個問題想請教下,麻煩大家了 1.關于串行異步通信的問題,即兩單片機通信.但工作電壓不同是否可以正常通信A系統(tǒng)CPU為16F877A工作電壓為3.6V,B為16F688工作電壓5V,這個系統(tǒng)通信正常。沒有一點問題(剛剛完成的一個項目)。這個問題曾經(jīng)向xieyuanbin求教過,他說IO口為施密特觸發(fā),高電平要達到電源電壓的4/5,也就是說,5V的電源要達到4V即可認為是高電平。那么說3.6V應該是臨界狀態(tài),也就是可被認為高底電平的邊界,我覺得如果是這樣的話,通信就不會很正常,呵呵,希望xieyuanbin大蝦哥幫忙詳細解釋下。嘿嘿! 2關于串行異步通信接收中斷的問題我的程序流程為: A發(fā)送握手信號00,關接收中斷使能,然后不斷查詢接收寄存器(rcreg),判斷返回為F0后,開接收中斷使能位,發(fā)送8字節(jié)命令,延時1S,等待接收數(shù)據(jù),關使能位。此時由于B采用模擬通信方式偶爾會通信失敗,也就是接收不到正確數(shù)據(jù),此處打斷點,我發(fā)現(xiàn)個奇怪的問題,當接收數(shù)據(jù)失敗的時候,會接收到F0,記得在張明峰的書中談到清空接收寄存器的方法,即讀2次接收寄存器即可,我實驗了下,好象沒什么作用啊。。。。不知道為什么。我覺得在這樣的流程下,不應該接收到F0才對呀。 以上兩個問題麻煩各位老大幫忙解釋下,謝謝拉 |
| 2樓: | >>參與討論 |
| 作者: 499767 于 2006/9/20 18:31:00 發(fā)布:
找人幫忙呀.. 要是說的不清楚,我在解釋哈..表達能力有限,呵呵 |
|
| 3樓: | >>參與討論 |
| 作者: anzhongxin 于 2006/9/21 10:50:00 發(fā)布:
回復!愚見! 呵呵,PIC異步串口通信! 1。施密特的是4/5,但是也不是那么嚴格,它的動態(tài)范圍比較寬,也就是說根據(jù)片子的不同變化也比較大!如果用TTL的就沒有這個問題了 (2V即認為是高) 2。USART通信的話,不見議采用接受中斷!可以用掃描的方法去接收,如果串行通信速率不是很高的話,(如4800,接收一個字節(jié)大約需要1MS),會有足夠的時間去接收數(shù)據(jù)!當接收一連串數(shù)據(jù)時,用中斷接收成功率很低,我不知道是為什么,還是我做的程序有問題!反正現(xiàn)在做通信我采用查詢來接收,成功率100% |
|
| 4樓: | >>參與討論 |
| 作者: 499767 于 2006/9/21 19:33:00 發(fā)布:
謝謝 首先感謝anzhongxin,對于第一個問題.我還想問,那對與3V系統(tǒng),通信的時候IO口電壓為5V,這個沒什么影響么? 第二個問題關于用什么方式去通信只是習慣問題,這個先不討論.先說說我上面的那個不是失敗的問題,而是失敗后會接到未開中斷前在接收寄存器中的數(shù)據(jù),這個是主要問題,還有就是清空寄存器的方法,以上我說的,呵呵,謝謝了.,xie大蝦呢,來幫忙哈... |
|
| 5樓: | >>參與討論 |
| 作者: xieyuanbin 于 2006/9/24 7:07:00 發(fā)布:
答復 對于3V系統(tǒng),必須在兩個系統(tǒng)IO口之間串電阻才能對3V系統(tǒng)無影響,具體的電阻值需要看你的整個系統(tǒng)如何,在不影響3V穩(wěn)壓,5V系統(tǒng)IO口電流能夠承受的情況下電阻值盡量取小一點,這樣有利通訊信號順利傳播,不易受干擾. 具體的原理:因PIC單片機基本上每個IO口都有鉗位二極管,所以有比電源電壓高的電壓輸入到IO口時會通過鉗位二極管對電源泄放,但當泄放電流大于低壓系統(tǒng)能夠承受的電流時就會影響到低壓系統(tǒng)的電源穩(wěn)定,所以兩個系統(tǒng)連接時一定要加電阻以限制電流. 施蜜特觸發(fā)對電平的要求就是這樣的,3.6V對于5V系統(tǒng)來說的確是處于臨界狀態(tài),是不穩(wěn)定的. 關于第二個問題,接收數(shù)據(jù)失敗時,是那個系統(tǒng)接收到F0?可以先這樣試一下:握手信號多發(fā)幾次,直到收到應答信號為止. |
|
| 6樓: | >>參與討論 |
| 作者: 499767 于 2006/9/25 20:23:00 發(fā)布:
謝謝xieyuanbin 學習中要多多麻煩拉 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |