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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11797|回復: 10
打印 上一主題 下一主題
收起左側

STC單片機串口多片并聯的嘗試與難題

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

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

1. 五個前端單片機的地端大面積敷銅是5個一整片好,還是每個單獨敷銅再小線聯通或者一點接地好呢?

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

3.當五個藍牙放在同一個盒子而且彼此很接近時是否會出現無法預測的干擾?有沒有這方面的經驗?

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

打樣板:

新設計:



評分

參與人數 2黑幣 +55 收起 理由
lch62221 + 5
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

評分

參與人數 1黑幣 +70 收起 理由
admin + 70 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

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

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:297353 發表于 2018-3-26 16:35 | 只看該作者
1、單獨鋪最好。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

5#
ID:297518 發表于 2018-3-26 21:11 | 只看該作者
多個之間會有干擾的

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

6#
ID:283954 發表于 2018-3-27 01:13 | 只看該作者
各位好!謝謝各位的回應。
xzh5508: 每個前端單片機在發出訊號前都會先檢查是否允許,所以不會接收不過來。程序如下:
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單片機的串口在空閑的時候是高電位的,應該是弱上拉雙向輸出入口,可能設定為其他IO口模式
會改善,但不確定那些IO口模式設定是否也對串口有效。有待實驗,我分析了輸出的MIDI碼,都是在同一行出錯,這是否意味著硬件干擾的可能性比較低,因為干擾應該隨機發生的,但我在設計新打樣板時一定要把可能出現的干擾降低,所以加了很多0.1u電容哈。
使用多選一芯片應該是好辦法,但是我很想知道究竟STC多串口并聯的方式是否確實可用,而且最多能并上幾個而不出錯。
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個前端機        
000C15C0   1   1     90    3C    10    1  C  4 Note On     ;第2個前端機     
000C15C2   1   1     90    3C    10    1  C  4 Note On     ;第3個前端機
000C15C8   1   1     90    3C    10    1  C  4 Note On     ;第4個前端機
000C161A   1   1     90    3C    10    1  C  4 Note On     ;第5個前端機
000C1662   1   1     90    40    30    1  E  4 Note On      ;第1個前端機   
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   開始出錯            
000C2142   1   1     90    00    40    1  C -1 Note On               
000C2143   1   1     90    00    00    1  C -1 Note Off              

評分

參與人數 1黑幣 +70 收起 理由
admin + 70 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

7#
ID:283954 發表于 2018-3-30 00:53 | 只看該作者
經過幾天調試,結果是,5片STC12的RX并聯輸出到一片STC12的TX是可行的,不必經過什么晶體管隔離,亂碼問題是由于單片機的軟件還有些問題,前端單片機輸出時除了必須等待允許輸出的腳的高電位,在輸出完畢后還必須檢測允許輸出的腳回到低電位才可以離開,否則在剩余時間里若緩沖里還有數據要輸出就會再輸出而因為時間不夠而產生亂碼,程序更正如下:
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

評分

參與人數 1黑幣 +80 收起 理由
admin + 80 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

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

使用道具 舉報

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

這個項目我已經完成但不必再用,5個副機的確可以直接接在一起,沒什么二極管,實際測試過可以用。
回復

使用道具 舉報

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

原來當年寫錯了RX和TX, 是“5片STC12的TX并聯輸出到一片STC12的RX是可行的”,我那時常把TX和RX對調,MCU端的TX來到藍牙接口就稱為RX,MCU端的RX來到藍牙接口就稱為TX,結果常常混淆了。
回復

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 97久久精品 | 国产一级电影网 | 91精品国产综合久久久久 | 国产a区 | 精品久久久久久久久久 | 九七午夜剧场福利写真 | 国产精品一区二区三区在线 | 日韩高清成人 | 欧洲精品久久久久毛片完整版 | 欧美13videosex性极品 | 国产一区二区视频在线观看 | 91精品久久久久久久久 | 中文字幕一区二区三区四区五区 | 午夜极品 | 国产欧美精品一区二区色综合朱莉 | av男人的天堂av | 亚洲高清免费 | 精品一区视频 | 亚洲在线一区 | 中国大陆高清aⅴ毛片 | 欧美一级特黄aaa大片在线观看 | 久草免费在线视频 | 99久久婷婷 | 欧美极品在线观看 | 欧美日韩精品区 | 欧洲高清转码区一二区 | 国产精品久久久久久久久久 | 丁香色婷婷 | 欧美成人a∨高清免费观看 欧美日韩中 | 国产视频二区在线观看 | 伊人天堂网 | 天天综合干 | 午夜av在线| 毛片网在线观看 | 在线观看成人小视频 | www.狠狠操 | 国产精品久久久久久中文字 | 久久宗合色 | 国产精品久久久久av | 亚洲成av | 亚洲一二三区在线观看 |