求助沁恒工程師:CH341T模擬串口發(fā)送溢出?。?!

CH341T模擬串口發(fā)送溢出: 我用DSP通過串轉向CH341T發(fā)送數(shù)據(jù),波特率2M,發(fā)送不間斷。發(fā)現(xiàn)溢出燈點亮。 分析上位機由接收數(shù)據(jù)而繪制的圖形,發(fā)現(xiàn)每2163個數(shù)據(jù)(一楨圖形為2163個數(shù)據(jù))就會有一小段圖形錯誤。

分析可得:發(fā)生溢出錯誤時,發(fā)送的數(shù)據(jù)個數(shù)沒有少(如果數(shù)據(jù)少了,不夠一楨,就不會繪制圖形),只是數(shù)據(jù)值被改變了。

因為布線路圖時沒進行RDY#(接收就緒)信號采集,現(xiàn)在已不可能進行該針腳判斷,故求助沁恒工程師關于CH341T的詳細工作原理:

1。CH341T串口接收有一個還是兩個緩沖區(qū)(僅串口接收,不包括USB接收)??    如果是兩個,是不是接滿一個緩沖區(qū)后,再接收數(shù)據(jù)轉放另外一個緩沖區(qū),而接滿的   進行數(shù)據(jù)打包發(fā)送。如此輪流執(zhí)行。    如果是一個,那么數(shù)據(jù)緩沖區(qū)是多大,以便我發(fā)這么多個數(shù)據(jù)后進行延時,讓CH3   41T把緩沖區(qū)數(shù)據(jù)發(fā)送出去,之后再繼續(xù)發(fā)送。

2。溢出是怎么回事,為什么溢出后只是數(shù)據(jù)值被改變了,發(fā)送的數(shù)據(jù)個數(shù)沒有少????

溢出時,一般是丟數(shù)據(jù),只不過串口丟了數(shù)據(jù),后面的數(shù)據(jù)當前前面的補到你的前一幀圖形中,CH341內部是雙緩沖區(qū),計算機必須在一個緩沖區(qū)中滿之前將另一個緩沖區(qū)中的數(shù)據(jù)取走,如果計算機的USB很忙,或者串口速度太快,就可能溢出,防止溢出,一是用RDY#引腳判斷(可解決所有原因),二是盡量用8位數(shù)據(jù)不帶校驗的速度快些,或者適當降低波特率為1.5Mbps,或者增加些延時(不如降低波特率),三是考慮計算機USB是否很忙,是否在同一個USB控制器下接了低速USB設備例如鍵盤mouse等占了USB帶寬,以及畫圖軟件是否占用太多的CPU時間


店小二你好,謝謝你的回復!

你在回復中說:“CH341內部是雙緩沖區(qū),計算機必須在一個緩沖區(qū)裝滿之前將另一個緩沖區(qū)中的數(shù)據(jù)取走” 這里您提到緩沖區(qū)滿之前,計算機必須把另一個緩沖區(qū)的數(shù)據(jù)取走,否則溢出。

請問: 您說的緩沖區(qū)是CH341T芯片上的硬件緩沖區(qū)還是驅動在上位機上開辟的緩沖區(qū)? 1。如果是上位機上的緩沖區(qū),是不是說CH341T芯片硬件速度足夠快,即使串口接收2Mbps也不可能發(fā)送不完??而CH341T芯片顯示溢出是因為上位機應用程序未及時從驅動程序中讀取數(shù)據(jù),驅動程序緩沖區(qū)滿后發(fā)消息給CH341T芯片告之已滿或已溢出,待緩沖區(qū)空時再發(fā)消息告之已空。請問是不是這樣???

2。如果是CH341T芯片上的緩沖區(qū),那么該緩沖區(qū)有多大???以便我發(fā)夠數(shù)據(jù)后延時。


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

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