[原創(chuàng)]應用CH340的心得

  由于串口傳輸?shù)乃俣葍H及并口的1/10,所以在前應用單片機編程的時候,特別是需要與微機接口的情況,通常是采取排斥的態(tài)度。你很容易想象得出在微機串口速度最高只有9600那個年代,每秒鐘只有1K字節(jié)的速度真的是什么事情也干不了的,而使用打印口來傳遞信息卻能夠很輕易地做到幾百K的傳輸,就不難理解我為什么要這樣做的了。

  遺憾的是蓋茈的微軟公司偏偏把硬件借口與軟件隔離開來!在98以前還允許與DOS系統(tǒng)并存,雖然不夠方便卻還勉強能用;從2000到XP就完全截斷了這種聯(lián)系,對本人造成的結果是十年不去碰微機與單片機的聯(lián)絡這個題目!即使偶然必須用到,也因只能讓用戶選擇使用WIN98操作系統(tǒng),根本就找不到市場前景。

  還好柳暗花明現(xiàn)在又有了被操作系統(tǒng)支持的USB接口,重新給予微機與外設聯(lián)系的通路,我也恰好因接到相關的任務開始了USB接口的應用。當然還是從傳輸速度更理想的并行口開始,同時因為搜索到CH341的相關信息找到了這里。

  因為當時那個任務要求的傳輸速率至少在1M以上,所以只好另外選擇直接利用U盤存貯的CH375(恰好因要求1M的存貯量而放棄直接使用RAM芯片組合的方案)。遺憾的是因為需要600字節(jié)以上的RAM配合,所以改選比較靈活的CH374。結果是包括CH372和CH340,手中的樣品幾乎函蓋了公司所有USB產(chǎn)品的類型。

  那個任務太專業(yè)其實根本不會存在廣泛的市場,但其作用卻非常重要,用戶在找到我之前曾花費2800元的天價買來一臺周立功公司的邏輯分析儀,試圖自行解決問題,可見即使為這一套設備專門制版加工PCB板也在所不惜的哈。

  其實,我之所以肯接這“燙手的山芋”,目的不僅僅在于那點微薄的直接報酬,而在于正好完成一直想做而沒列入議事日程的利用USB接口傳輸數(shù)據(jù)的課題。我需要的傳輸速度大約在每秒100K那個檔次。


  因為自己是那種典型的“土八路”,自然提問題的方式與正宗流派的專業(yè)人士有不同,所以在許多時候得不到預期的技術幫助,這也難怪公司的技術人員,如果大家都象我這樣什么問題都要得到圓滿的答復,恐怕公司真的要為此配備更多的技術人員來專職做此類工作了哈。

  許多事情本來是被逼出來的,因為需要而又沒有捷徑可找就只好自己多學習一點。具體的轉(zhuǎn)變過程就不多羅嗦了,反正出于成本和足夠應用的角度考慮,最終選擇了價格更低廉的CH340,這就又回到本來極為排斥的串口通訊,當然與這種芯片竟然可以達到2M這樣的高速是有著直接關系的。


  角度不同,思維的方式當然會有所不同。公司的技術人員因為要面面俱到地考慮各種環(huán)境,有時候?qū)Ξa(chǎn)品性能的宣傳反倒不是很到位,去年曾經(jīng)看到技術人員回復一個有關串口速度疑問的帖子,就對數(shù)據(jù)傳輸?shù)倪B貫性做出了對我應用范圍不夠有利的解釋,所以直到通過對樣片直接測試得出結論之后才正式確定了自己的選擇。

  其實許多應用是可以在獨占USB接口的環(huán)境下進行的,所以傳輸被隔斷1mS的情況實際不會發(fā)生,雖然公司人員出于對用戶認真負責的角度考慮,寧肯客氣一點地介紹“只是模擬而非完全相同”這樣的答復,事實上在許多應用范圍完全不必考慮這種差異。我所做的第一個實驗竟然就是應用STC單片機提供的編程工具,直接使用自己組織的簡單電路寫入芯片,結果完全成功且“百試百靈”(當然不過借用成語而非真正去做百次無用功哈)。

  雖然在半年前就有下載,卻在一個月前才從技術人員回復別人疑問的帖子中看到,原來那個圖標上標明是CH375的串口測試工具竟然也通用!這不得不說是公司技術人員的疏漏。不管怎么樣反正對我可是派上了大用場,直接用來幫朋友破解了一套應用軟件的軟件狗。

  既然知道芯片可以達到2M的速率,工具卻偏偏只有921K左右的上限!雖然當時正好夠用且也能滿足我已經(jīng)定型了的產(chǎn)品需求,仍然希望能夠得到全速的應用。所以當時曾提出過修改工具的建議,當然從自己應用的需求也是想自己省點事,在今后可能需要時直接提供用戶配套使用就是。


  修改工具當然需要一些時間,但卻對自己要求提供直接調(diào)用API函數(shù)的程序沒有得到支持,至少在當時感覺非常失望,雖然也理解技術人員堅持只提供直接針對芯片的技術服務這個原則。沒有捷徑就只好自己去開路,其實現(xiàn)在想來雖然不得不去重新學習一些知識,但因此把借用工具的辦法變成程序的內(nèi)涵,對將來提供給用戶的產(chǎn)品當然更為有利。

  如果僅僅如此,還不至于勞心費神打字發(fā)表這個心得,關鍵在于通過這個被逼出來的簡單交換,就有意外的收獲:曾經(jīng)看到一個問題和回復中提到要得到高速和非常規(guī)的波特率,必須在300這個低速下直接對芯片發(fā)出指令來改變,當時的原因在于測試工具中不包含我的需求,所以改變之后就無法實現(xiàn)我的實際需求,但開始進行的初步實驗恰好落入工具提供的范圍,這就導致我在改變波特率后轉(zhuǎn)入正常選擇,和直接在低速下傳輸兩種情況下實現(xiàn)這種轉(zhuǎn)換,結果是同樣的效果。這就說明了一個問題:可能公司提供的API能夠直接被操作系統(tǒng)執(zhí)行轉(zhuǎn)變的指令而不必自己去輸入改變。當然這種想法最終得到證實是在我學會使用那個MSComm控件之后。

  其實說起來這個結論非常簡單:你只要在控件直接的屬性設計中修改為自己的需求就好,完全不必自己去勞神對芯片發(fā)出相關的指令。至少在VB下直接改變?yōu)?.5M和750000這兩個非標準速率,是真正的“百試百靈”而非前所述那樣借用成語的。


  發(fā)這篇心得的意義,在于起到一個“拋磚引玉”的效果,期望大家在這里踴躍提供自己在芯片應用過程中的實踐經(jīng)驗,大家互相學習一下……


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

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