ch32v30x系列串口接收 不穩(wěn)定。

ch32v30x 串口接收重同步機(jī)制有 BUG,? 不穩(wěn)定。? 高波特率下特別嚴(yán)重。? 主機(jī)為 stm32h7,? ?都是兩個停止位, 兩邊都是DMA發(fā)送與接收。? ? 當(dāng)波特率在200K以下時, 基本無錯誤。? ? 當(dāng)波特率到達(dá)1M以上時,? 隔幾百ms就會出現(xiàn) ch32v30x接收不到數(shù)據(jù)。? ch32v30x系列的串口接收不是很穩(wěn)定, 準(zhǔn)備更換MCU了。


串口通信中,一個重要的參數(shù)是停止位,它代表了數(shù)據(jù)包的終止信號。常見的停止位數(shù)值有1位、1.5位和2位。在串行數(shù)據(jù)傳輸過程中,由于各個設(shè)備可能擁有獨(dú)立的時鐘,這可能導(dǎo)致通信過程中出現(xiàn)微小的時鐘不一致。因此,停止位的功能并不僅僅是簡單地指示傳輸?shù)慕Y(jié)束,它還為設(shè)備間提供了一個校正時鐘同步的機(jī)會。


停止位的長度選擇直接影響了系統(tǒng)的同步精度和數(shù)據(jù)傳輸速度。通常,停止位越多,設(shè)備對時鐘同步誤差的容限就越大,但這也意味著數(shù)據(jù)傳輸?shù)乃俾蕰鄳?yīng)降低。例如,一個完整的停止位(通常是2位)會提供更高的同步可靠性,但會犧牲一部分傳輸效率。因此,根據(jù)實(shí)際需求和系統(tǒng)性能,選擇適當(dāng)?shù)耐V刮婚L度是非常關(guān)鍵的。



什么時候可以提供芯片的 errata, 一直遮著掩著,? 別跟大伙說 你的MCU一點(diǎn)bug都沒有。

目前已經(jīng)測試,波特率在115200且正常通訊的情況下,? 在ch32v30x 或者 ch32v20x的芯片的接收腳RX上耦合一個50ns的脈沖, gd32v系列接收的數(shù)據(jù)就會有錯誤, 115200的每一位大約9us左右, 理論上 50ns脈沖不應(yīng)該被115200檢測到, 實(shí)際上ch32v系列的串口接收 就會有錯誤。


本次測試一直處于1M以上的波特率進(jìn)行, 且以DMA方式接收(最高優(yōu)先級)。實(shí)際發(fā)現(xiàn)在通訊正常10來秒后, 就會出現(xiàn)DMA接收 丟失數(shù)據(jù)。然后又正常工作幾秒, 接著又丟數(shù)據(jù)。還沒有特別的規(guī)律,如果CPU密集訪問內(nèi)存,情況更嚴(yán)重。同樣的程序我寫到GD32F470系列中測試, 可以正常工作,沒有丟數(shù)據(jù)。本次測試均在沒有任何干擾的實(shí)驗(yàn)室環(huán)境下進(jìn)行。


查看芯片手冊,? 發(fā)現(xiàn)CH32V30X 系列的DMA與總線的接法很古怪,與STM32和 GD32都有很大的不同。目前的情況時CPU密集訪問SRAM, CH32 的DMA丟串口數(shù)據(jù)很嚴(yán)重。如果CPU不是密集地訪問SRAM, CH32V的DMA也丟串口的數(shù)據(jù), 但好一些。現(xiàn)在也不知到到底時 DMA的問題,? 還是 串口的問題。廠家還是好好測試一下 DMA與 串口吧。特別是高波特率下的表現(xiàn)吧


您好,CH32V30x系列的串口波特率最大可以支持到9M,1M以上應(yīng)該不會有問題的。此外,主機(jī)和從機(jī)都可以換成我們的芯片試一下?;蚩梢脏]箱(lzs@wch.cn)說一下你對串口的要求配置,這邊提供一個串口通過DMA收發(fā)的例程給你參考一下。后續(xù)若有問題,可以郵箱溝通。


我發(fā)現(xiàn)在Linux下使用LinkE的串口到CH32V203,在115200bps下丟數(shù)據(jù)也嚴(yán)重。換CH340就一切正常了。


現(xiàn)在對CH32Vxxx系列沒有信心了,? 可能用ch32vxxx做主機(jī)還好一些,? 用ch32vxxx做從機(jī)絕對讓你 吃不了兜著走。? ?可是大部分應(yīng)用 都是從機(jī)。? ?目前測試了GD32F425系列的串口,? 比 ch32vxxx的串口穩(wěn)定多了。? ? ?本來沒準(zhǔn)備用 ch32v系列的, 只是因?yàn)?ch32v2xxx很便宜,? 所以試了一下。? ? ?一開始測試沒有那么密集,? 還沒有發(fā)現(xiàn)問題。? ?后來測試的多了,發(fā)現(xiàn)ch32v真的不行。? ? ?也采用了ch32v307做了以太網(wǎng)轉(zhuǎn)串口的主機(jī),? ?這兩個芯片總共也 用了 500-1000個之間了, 平時用用還行, 真要是高波特率 通訊, ch32v 系列就有問題,? 丟包還是小事。? ?DMA與 串口的配合? 還出問題。? 廠家再不出 errata,? 以后再也不用? ch32xxx系列了。??


好像是有問題, 我之前在GD32E230 上跑千萬個包都不出錯的FreeModbus代碼,在CH32V230上出現(xiàn)有錯包的情況,有收不全以及Checksum 出錯兩種情況,還在研究原因中


您好,程序中做好數(shù)據(jù)的處理正常應(yīng)該不會出現(xiàn)丟數(shù)據(jù)的情況的,程序中注意設(shè)置合適的緩沖區(qū)大小,設(shè)置合適中斷優(yōu)先級,確保數(shù)據(jù)能夠及時處理,此外可以通過流控控制高波特率下的數(shù)據(jù)收發(fā)。硬件上也可以提高晶振精度試一下。后續(xù)若有問題可具體通過郵箱(lzs@wch.cn)和我溝通。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频