久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11720|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

STC單片機(jī)串口多片并聯(lián)的嘗試與難題

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:283954 發(fā)表于 2018-3-25 20:59 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
     這是我最近嘗試制作的無線MIDI訊號合并器(merger), 目的是要讓多個(gè)(五個(gè))音樂鍵盤同時(shí)彈奏時(shí)可以輸入到一個(gè)音源,前端的藍(lán)牙接收器已經(jīng)測試過可用,現(xiàn)在是要把五個(gè)接收器做在同意個(gè)盒子里,將輸出合并到第六個(gè)單片機(jī)再輸出到MIDI插座,MIDI訊號的合并相當(dāng)麻煩,時(shí)序非常重要,一個(gè)完整的MIDI訊號有3個(gè)或2個(gè)字節(jié),必須接收到一個(gè)通道的完整訊號后才能夠再接收另一個(gè)通道的訊號,否則會(huì)出錯(cuò)。具體辦法是,前端的單片機(jī)在發(fā)出訊號前先檢查某一個(gè)接腳是否為高電位,若不是就等待,是則一次過發(fā)出一整個(gè)MIDI訊號(需時(shí)32X10=320US X 3(BYTES)=960US ), 第6個(gè)單片機(jī)用T0定時(shí)順序給前端的單片機(jī)發(fā)出高電位允許傳送,5個(gè)前端單片機(jī)的TX口直接連在一起再聯(lián)到第6個(gè)單片機(jī)的RX口。

    這個(gè)辦法已經(jīng)用打樣板測試過能行,問題在于偶爾會(huì)出現(xiàn)誤碼,我查了好幾天都無法完全消除誤碼,懷疑是干擾所致,因此打算調(diào)整底板另外打樣再測試,由于我畫線路板的經(jīng)驗(yàn)很少,只到了“布通”的水平,對什么么EMC干擾一無所知,所以上載給各位前輩幫忙看看,看犯了什么低級錯(cuò)誤,并問幾個(gè)問題,希望各位前輩指點(diǎn)一下:

1. 五個(gè)前端單片機(jī)的地端大面積敷銅是5個(gè)一整片好,還是每個(gè)單獨(dú)敷銅再小線聯(lián)通或者一點(diǎn)接地好呢?

2. 如何加強(qiáng)多串口連接的抗干擾能力呢?我嘗試用470歐姆電阻上拉也沒有什么效果,后來嘗試用一粒PNP晶體管作第12345單片機(jī)RX與第6單片機(jī)TX之間的隔離(晶體管E接6TX,C接地,B通過2.2K接5RX)好像也沒有什么改進(jìn),不過卻意外得到一個(gè)好處,原本第6個(gè)單片機(jī)燒錄程序時(shí)必須斷開TX與前端單片機(jī)RX的連接,否者無法燒錄,用了這個(gè)晶體管后燒錄就不成問題了。

3.當(dāng)五個(gè)藍(lán)牙放在同一個(gè)盒子而且彼此很接近時(shí)是否會(huì)出現(xiàn)無法預(yù)測的干擾?有沒有這方面的經(jīng)驗(yàn)?

4.如何加裝更多0.1u電容一抗擊干擾?貼片的0.1u電容是否比多層電容抗干擾差?

打樣板:

新設(shè)計(jì):



評分

參與人數(shù) 2黑幣 +55 收起 理由
lch62221 + 5
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

來自 2#
ID:52382 發(fā)表于 2018-3-26 17:26 | 只看該作者
建議使用多選一芯片連接,由第六片單片機(jī)控制選擇端口,收到可以接受數(shù)據(jù)時(shí)選通相應(yīng)通道進(jìn)行接收,你的誤碼我從你描述來看主要來自一個(gè)地方,串口空閑狀態(tài)Tx是保持低位輸出的,如果單片機(jī)驅(qū)動(dòng)不強(qiáng)那發(fā)送數(shù)據(jù)的單片機(jī)沒法拉高Tx,那你的數(shù)據(jù)肯定會(huì)出錯(cuò),除非你空閑狀態(tài)將串口引腳重新初始化為浮置,這顯然不符合軟件設(shè)計(jì)思路,通訊效率會(huì)低很多,所以使用多選一芯片肯定更適合你的使用場合。當(dāng)然也有可能你自己已經(jīng)規(guī)避了這個(gè)問題,只是我沒理解到,希望我的想法能幫到你。

評分

參與人數(shù) 1黑幣 +70 收起 理由
admin + 70 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

板凳
ID:294886 發(fā)表于 2018-3-26 16:32 | 只看該作者
多片連接一個(gè)串口,如果同時(shí)發(fā)送過來的話,你一個(gè)串口是接收不過來的吧!

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

地板
ID:297353 發(fā)表于 2018-3-26 16:35 | 只看該作者
1、單獨(dú)鋪?zhàn)詈谩?/td>

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

5#
ID:297518 發(fā)表于 2018-3-26 21:11 | 只看該作者
多個(gè)之間會(huì)有干擾的

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

6#
ID:283954 發(fā)表于 2018-3-27 01:13 | 只看該作者
各位好!謝謝各位的回應(yīng)。
xzh5508: 每個(gè)前端單片機(jī)在發(fā)出訊號前都會(huì)先檢查是否允許,所以不會(huì)接收不過來。程序如下:
SENTOUTWAIT:                   ;THIS IS FOR MERGE WAIT ;CHECK INPUT STATUS BEFORE SENT
JNB P1.5,SENTOUTWAIT     ;P1.5 NOT YET HIGH SO WAIT
SETB P1.7
MOV R4, 31H                        ;STORE DATA FOR CLOCK OUT IN R4
LCALL SENTONEBYTE2
MOV R4, 32H                        ;STORE DATA FOR CLOCK OUT IN R4
LCALL SENTONEBYTE2
JB 38H, SENTOUTWAITEXIT  ;ONLY 2 VALID BYTES SO JUMP
MOV R4, 33H                        ;STORE DATA FOR CLOCK OUT IN R4
LCALL SENTONEBYTE2
SENTOUTWAITEXIT:
CLR 38H
RET

鷹狐: STC單片機(jī)的串口在空閑的時(shí)候是高電位的,應(yīng)該是弱上拉雙向輸出入口,可能設(shè)定為其他IO口模式
會(huì)改善,但不確定那些IO口模式設(shè)定是否也對串口有效。有待實(shí)驗(yàn),我分析了輸出的MIDI碼,都是在同一行出錯(cuò),這是否意味著硬件干擾的可能性比較低,因?yàn)楦蓴_應(yīng)該隨機(jī)發(fā)生的,但我在設(shè)計(jì)新打樣板時(shí)一定要把可能出現(xiàn)的干擾降低,所以加了很多0.1u電容哈。
使用多選一芯片應(yīng)該是好辦法,但是我很想知道究竟STC多串口并聯(lián)的方式是否確實(shí)可用,而且最多能并上幾個(gè)而不出錯(cuò)。
TIMESTAMP IN PORT STATUS DATA1 DATA2 CHAN NOTE EVENT               
000C1573   1   1     C0    00    --    1  ---  PC: Acc. Grand Piano  
000C15BB   1   1     90    3C    10    1  C  4 Note On     ;第1個(gè)前端機(jī)        
000C15C0   1   1     90    3C    10    1  C  4 Note On     ;第2個(gè)前端機(jī)     
000C15C2   1   1     90    3C    10    1  C  4 Note On     ;第3個(gè)前端機(jī)
000C15C8   1   1     90    3C    10    1  C  4 Note On     ;第4個(gè)前端機(jī)
000C161A   1   1     90    3C    10    1  C  4 Note On     ;第5個(gè)前端機(jī)
000C1662   1   1     90    40    30    1  E  4 Note On      ;第1個(gè)前端機(jī)   
000C1667   1   1     90    40    30    1  E  4 Note On               
000C1669   1   1     90    40    30    1  E  4 Note On               
000C166C   1   1     90    40    30    1  E  4 Note On               
000C16C1   1   1     90    40    30    1  E  4 Note On               
000C17A9   1   1     90    43    40    1  G  4 Note On               
000C17AE   1   1     90    43    40    1  G  4 Note On               
000C17AF   1   1     90    43    40    1  G  4 Note On               
000C17B3   1   1     90    43    40    1  G  4 Note On               
000C1808   1   1     90    43    40    1  G  4 Note On               
000C1993   1   1     90    48    60    1  C  5 Note On               
000C1998   1   1     90    48    60    1  C  5 Note On               
000C199A   1   1     90    48    60    1  C  5 Note On               
000C199C   1   1     90    48    60    1  C  5 Note On               
000C19F2   1   1     90    48    60    1  C  5 Note On               
000C213B   1   1     80    3C    00    1  C  4 Note Off              
000C213C   1   1     80    40    00    1  E  4 Note Off              
000C213E   1   1     80    3C    00    1  C  4 Note Off              
000C213F   1   1     80    40    00    1  E  4 Note Off              
000C2141   1   1     90    00    00    1  C -1 Note Off   開始出錯(cuò)            
000C2142   1   1     90    00    40    1  C -1 Note On               
000C2143   1   1     90    00    00    1  C -1 Note Off              

評分

參與人數(shù) 1黑幣 +70 收起 理由
admin + 70 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

7#
ID:283954 發(fā)表于 2018-3-30 00:53 | 只看該作者
經(jīng)過幾天調(diào)試,結(jié)果是,5片STC12的RX并聯(lián)輸出到一片STC12的TX是可行的,不必經(jīng)過什么晶體管隔離,亂碼問題是由于單片機(jī)的軟件還有些問題,前端單片機(jī)輸出時(shí)除了必須等待允許輸出的腳的高電位,在輸出完畢后還必須檢測允許輸出的腳回到低電位才可以離開,否則在剩余時(shí)間里若緩沖里還有數(shù)據(jù)要輸出就會(huì)再輸出而因?yàn)闀r(shí)間不夠而產(chǎn)生亂碼,程序更正如下:
SENTOUTWAIT:            ;THIS IS FOR MERGE WAIT ;CHECK INPUT STATUS BEFORE SENT
JNB P1.5,SENTOUTWAIT
SETB P1.7
MOV R4, 31H             ;STORE DATA FOR CLOCK OUT IN R4
LCALL SENTONEBYTE2
MOV R4, 32H             ;STORE DATA FOR CLOCK OUT IN R4
LCALL SENTONEBYTE2
JB 38H, SENTOUTWAITEXIT  ;ONLY 2 VALID BYTES
MOV R4, 33H                         ;STORE DATA FOR CLOCK OUT IN R4
LCALL SENTONEBYTE2
SENTOUTWAITEXIT:
JB P1.5, SENTOUTWAITEXIT  ;WAIT FOR LOW
CLR 38H
RET

評分

參與人數(shù) 1黑幣 +80 收起 理由
admin + 80 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

8#
ID:653286 發(fā)表于 2024-3-23 15:50 | 只看該作者
請問一下樓主,這5個(gè)MCU的輸出TX是并聯(lián)一起接到主MCU的RX嗎?不是加了二極管?
回復(fù)

使用道具 舉報(bào)

9#
ID:283954 發(fā)表于 2024-3-23 22:40 | 只看該作者
tianxiongweitxw 發(fā)表于 2024-3-23 15:50
請問一下樓主,這5個(gè)MCU的輸出TX是并聯(lián)一起接到主MCU的RX嗎?不是加了二極管?

這個(gè)項(xiàng)目我已經(jīng)完成但不必再用,5個(gè)副機(jī)的確可以直接接在一起,沒什么二極管,實(shí)際測試過可以用。
回復(fù)

使用道具 舉報(bào)

10#
ID:283954 發(fā)表于 2024-3-23 22:50 | 只看該作者
tianxiongweitxw 發(fā)表于 2024-3-23 15:50
請問一下樓主,這5個(gè)MCU的輸出TX是并聯(lián)一起接到主MCU的RX嗎?不是加了二極管?

原來當(dāng)年寫錯(cuò)了RX和TX, 是“5片STC12的TX并聯(lián)輸出到一片STC12的RX是可行的”,我那時(shí)常把TX和RX對調(diào),MCU端的TX來到藍(lán)牙接口就稱為RX,MCU端的RX來到藍(lán)牙接口就稱為TX,結(jié)果常常混淆了。
回復(fù)

使用道具 舉報(bào)

11#
ID:420836 發(fā)表于 2024-3-24 02:04 | 只看該作者
感謝與我們分享設(shè)計(jì)和問題。 這真的很有幫助。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩在线视频免费观看 | 成人午夜精品一区二区三区 | 97国产精品视频 | 91社区在线观看 | 亚洲电影一区 | 91精品久久久久久久久久入口 | 美女一区| 91精品一区二区 | 亚洲综合在线视频 | 日韩欧美在线观看视频 | 国产一级在线 | 精品欧美一区二区久久久伦 | 欧美在线二区 | 国产精品久久久久久久久久三级 | 久久精品国产久精国产 | 久久一区视频 | 亚洲国产欧美在线 | 99re视频这里只有精品 | 精品成人佐山爱一区二区 | 狠狠爱网址 | 欧美一区视频 | 黄色骚片 | 国产午夜精品视频 | 国产农村妇女毛片精品久久麻豆 | 精品视频一区二区三区在线观看 | 日韩欧美在线视频 | 国产精品视频免费看 | 久久精品久久久 | 久草热在线| 色精品 | av资源中文在线天堂 | 青青久草 | 四虎最新视频 | 日韩在线中文字幕 | 欧美日韩在线观看一区二区三区 | 国产成人精品一区二区三区视频 | 91在线观| 日韩在线精品视频 | 成人在线精品视频 | 依人成人 | 91视频日本|