你好,我使用ch582做串口透傳,遇到一個問題,請幫忙解答一下,串口使用38400 57600 115200波特率,只要外部設(shè)備通過串口持續(xù)給ch582發(fā)數(shù)據(jù),ch582藍(lán)牙很快就會斷線,9600波特率沒有問題,是不是因?yàn)閏h582不停在串口中斷中接收數(shù)據(jù)導(dǎo)致協(xié)議棧不能正確處理導(dǎo)致的?如果是這個原因,有解決辦法嗎?我使用ble_uart例程修改串口引腳下載到我的板子上去跑也是一樣的現(xiàn)象。
?你好,使用BLE_UART例程,我們這里測試?yán)虥]有出現(xiàn)斷連的情況。需要注意的點(diǎn)是,串口發(fā)送的時長建議大于連接間隔,單次發(fā)包的數(shù)量建議小于MTU。如果數(shù)據(jù)量傳輸比較大,則可能出現(xiàn)丟包的情況。
可以查看藍(lán)牙的斷開原因是多少。
謝謝這么及時的回答,串口發(fā)送的時長建議大于連接間隔,這句話具體是什么意思呢?我又測試了一遍,發(fā)現(xiàn)同樣的代碼在開發(fā)板上確實(shí)不會斷線(ble_uart和我自己的代碼都不會斷),最多發(fā)的太快,數(shù)據(jù)太多,丟數(shù)據(jù)而已,但是在我的板子上發(fā)同樣多的數(shù)據(jù)就會斷線,是不是我的板子信號不太好(空間限制,用的陶瓷天線)導(dǎo)致的?
這樣的天線布局有沒有問題?
發(fā)現(xiàn)是另一個mcu的spi工作(讀取flash數(shù)據(jù)通過串口發(fā)給582)的時候影響了?天線信號,現(xiàn)在ch582串口不初始化,只要spi工作也是會斷線。
另一個芯片的SPI與582是否有連接,如果沒有連接,則其他芯片的SPI理論上是不會對582的無線部分產(chǎn)生影響的。
你可以測試另一顆MCU通過串口發(fā)送固定數(shù)據(jù)給582,且不操作SPI,判斷是否SPI影響的斷開。
如果確定SPI影響,可以發(fā)送郵件至lpc@wch.cn,描述一下數(shù)據(jù)收發(fā)邏輯和原理圖,我們查看一下。
哇,天線這么靠近天線沒問題么?天線也不規(guī)范啊信號都發(fā)不出去直接輻射到主芯片、晶振、spi芯片上咯。
信號是有點(diǎn)差(空間太緊湊了)
我再測試了一下,確認(rèn)不是spi影響的,是另一個mcu通過串口發(fā)數(shù)據(jù)影響的(串口與ch582連接),串口波特率越高越容易導(dǎo)致藍(lán)牙斷線(斷線原因是8),我是這么測試的,ch582不做任何事情(包括串口收發(fā)全部關(guān)閉),Main_Circulation()只運(yùn)行TMOS_SystemProcess(),還是一樣斷線,另一個mcu串口不發(fā)數(shù)據(jù)就不會導(dǎo)致藍(lán)牙斷線(spi可以一直讀flash數(shù)據(jù)不影響),另一個mcu在天線的背面(不知道是不是會影響天線)
另外我是不是可以考慮使用ch32f208一個芯片來替代這兩顆芯片的功能,看到說這個芯片flash又掉小,協(xié)議棧就要占用大部分快速flash,如果放到慢速flash是不是特別的慢,還有這個芯片是正常供貨嗎?感覺使用的不多。
1、BLE_UART例程,接上串口透傳數(shù)據(jù)后,串口的速度只會影響丟包,不會影響斷連。因?yàn)槎喑鰜淼陌潜粊G了;
2、如果判斷為串口數(shù)據(jù)收發(fā),則建議使用peripheral例程,然后外接CH340,查看是否會出現(xiàn)斷開。從理論上分析這也不會導(dǎo)致藍(lán)牙斷開;
3、根據(jù)上述提供的信息,串口走線走在了天線背面,這是不建議的走線方式。天線背面不要有任何走線。如果走串口線在數(shù)據(jù)收發(fā)的時候有高低電平,出現(xiàn)問題是不可預(yù)知的;
4、CH32F208/CH32V208是MCU+BLE的芯片,穩(wěn)定出貨,可以嘗試替代MCU,資源如圖。FLASH有480K,160K的快速FLASH+320K的慢速FLASH。藍(lán)牙協(xié)議棧占用的大部分是慢速FLASH,因此快速FLASH的100K+基本都是可以自行配置使用。
總結(jié):建議天線部分的走線重新繪制,芯片的背面/天線的背面/ANT饋線的背面不要有任何走線。天線繪制參考:CH57x/CH58x原理圖與PCB繪制 - SweetTea_lllpc - 博客園 (cnblogs.com)
感謝你的耐心解答,同樣的代碼在開發(fā)板上外接usb轉(zhuǎn)串口連接電腦是不會斷線的,最多發(fā)的太快丟數(shù)據(jù)而已,應(yīng)該是影響了天線導(dǎo)致斷線的,我們考慮一下是否使用CH32F208來替代,再一次感謝!