* 需要設計參考資料(光盤(pán)資料可以參考FILELIST.TXT文檔,網(wǎng)上資料更新) 1、如果是在沒(méi)有單片機的情況下,進(jìn)行簡(jiǎn)單的I/O輸入輸出,那么可以參考CH341的資料,CH341不需要 單片機就能獨立工作,可以提供串口、并口、兼容IIC或I2C的2線(xiàn)接口、兼容SPI及JTAG的4線(xiàn)接口、 5線(xiàn)接口等,可以提供多個(gè)GPIO通用I/O,可以用于控制低速模數轉換AD、DA、數字I/O、I/O擴展等。 2、如果是單片機/DSP等與計算機相連接,也就是USB設備方式的應用,那么參考CH372的資料??梢韵? 載CH372+CH451評估板/演示板的資料CH372EVT.ZIP,有PDF文檔和例子程序,例如,評估板說(shuō)明及USB 設備應用參考CH375451,參考電路和PCB,小數據量交互傳輸/應用層中斷演示的例子DEMO,含MCS51 單片機C程序和匯編程序,批量數據傳輸的例子BULK測試速度,USB外置固件的C和匯編例子X(jué)FIRM, VC/VB/BC/DELPHI的例子等。另外,可以下載CH37X在計算機WINDOWS下的簡(jiǎn)單調試工具CH372DBG.ZIP, 其中有MCS51單片機上位機與下位機的C源程序,PC機程序可以通過(guò)USB對MCS51進(jìn)行簡(jiǎn)單仿真和控制, 其中的C程序稍作修改就可以用于其它單片機。調試工具DEBUG372可以用于調試和檢查下位機的程序。 3、如果是單片機/DSP等控制其它USB設備,也就是USB主機方式的應用,那么可以參考CH375的資料。 如果是讀寫(xiě)U盤(pán)并且用量較少或者是系統集成,關(guān)心快速入門(mén)并且簡(jiǎn)單易用,那么可以參考半成品U盤(pán) 文件讀寫(xiě)模塊的說(shuō)明CH375HM.ZIP;如果是做原始產(chǎn)品設計,關(guān)心成本,那么可以參考CH375評估板資 料CH375EVT.ZIP,其中有單片機讀寫(xiě)U盤(pán)的例子和U盤(pán)文件級子程序庫的API說(shuō)明;如果是單片機控制 USB打印機等,或者CH375與CH372等其它USB產(chǎn)品通訊,可以參考USB主機方式應用參考CH375HST.ZIP。 在設計USB-HOST電路和PCB之前,強烈建議參考CH375的設計注意事項README.PDF。 * 關(guān)于電源 優(yōu)先使用5V電源,CH37X在5V電源時(shí)的性能高于3.3V,可以作為工業(yè)級使用。 對于USB-HOST應用,建議參考CH375的設計注意事項README.PDF,要考慮USB帶電插拔的實(shí)際情況。 我們的樣板中的電阻R1(串在USB電源與本板電源之間)是為了便于雙電源供電,防止兩個(gè)電源電壓不同 沖突。如果儀器本身有電源,或者不需要計算機雙電源供電,那么可以去掉該電阻。 * 單片機無(wú)法與CH372或者CH375進(jìn)行通訊,例如CMD_CHECK_EXIST不成功或者CMD_SET_USB_MODE返回錯誤 通常是硬件問(wèn)題,例如: 1、CH375沒(méi)有時(shí)鐘,可能是晶體不良未振蕩,電容或者晶體漏電,CH375的時(shí)鐘必須是12MHz。 2、CH375沒(méi)有成功復位,可能是RSTI引腳沒(méi)有0.47uF上拉電容,也可以用單片機I/O口或者uP監控電路為 其提供復位,注意CH375的RSTI引腳內部有下拉電阻。對于CH372應該確保電源完全放電后再通電。 3、CH375的片選地址譯碼錯誤,例如,與RAM地址范圍沖突 4、數據總線(xiàn)或者讀寫(xiě)線(xiàn)連接錯誤等 5、用CMD_CHECK_EXIST命令測試硬件問(wèn)題,該命令必然返回數據,如果返回數據不是0FFH,那么通常是 數據總線(xiàn)連接錯誤,這種問(wèn)題容易處理,可以根據返回的值分析是哪個(gè)數據線(xiàn)有誤。 如果返回數據是0FFH,那么可能CH375不正常,例如,無(wú)時(shí)鐘、未復位、讀寫(xiě)片選線(xiàn)有誤、工作于串 口方式等,如果復位期間CH375的TXD引腳是高電平,那么CH375工作于串口方式,當然并口操作無(wú)效 * 測量CH375的晶體振蕩時(shí)好象不振蕩 為了降低EMI,CH375的振蕩為接近正弦波,所以振蕩相對較弱,而一般單片機的振蕩接近方波,振蕩較 強但是電磁輻射大很多。當測量?jì)x器接入CH375的引腳時(shí),由于引入電容,在3.3V電源電壓時(shí)容易導致 CH375停振,當去掉測量?jì)x器時(shí)通常會(huì )恢復。如果是在3.3V電源電壓下,建議使用有源晶振或者外部振 蕩,或者將XI引腳的電容換為10pF。振蕩后XO引腳的電壓在一半電源電壓附近。 * 連接到計算機沒(méi)有反應 當單片機控制CH37X執行CMD_SET_USB_MODE命令,選擇模式2后,首次連接計算機,計算機就應該提示找 到新硬件,否則應該檢查CH37X是否正常工作(看前面的問(wèn)題)。如果確認單片機端沒(méi)問(wèn)題,那么可以 用萬(wàn)用表測量CH37X的UD+和UD-引腳,也就是USB信號線(xiàn),應該UD+為3V以上,UD-為0.4V以下,否則說(shuō)明 CH375未工作或者未收到CMD_SET_USB_MODE命令,只有模式1和2會(huì )導致UD+上拉到3V電壓以上。 * 連接到計算機,無(wú)法安裝驅動(dòng),提示未知設備 1、CH375的GND以及單片機的GND必須與USB的GND可靠地連接,USB的VBUS/+5V可以不連接。 2、USB的D+和D-信號線(xiàn)接反,導致通訊失敗,USB線(xiàn)4個(gè),分別是+5V,D-,D+,GND,順序不能錯。 3、USB信號線(xiàn)必須用標準的USB線(xiàn),不能用普通排線(xiàn)等代替,D+和D-布線(xiàn)要平行,附近鋪地減少干擾。 4、由于CH37X內置了USB電阻,所以外部電路中D+和D-不需要串電阻,如果一定要串也不能大于5歐姆。 5、如果是5V工作電壓,CH37X的V3引腳必須與VCC斷開(kāi),如果是3.3V工作電壓,那么V3應該連接VCC。 6、建議調試初期不要設置USB-ID,也就是單片機不要執行CMD_SET_USB_ID命令,等調通后再?lài)L試修改。 如果單片機執行CMD_SET_USB_ID命令,那么必須在CMD_SET_USB_MODE之前執行。如果單片機執行 CMD_SET_USB_ID命令修改了USB-ID,那么必須同步修改驅動(dòng)程序INF中的ID才能安裝驅動(dòng)。 * 計算機成功安裝驅動(dòng)程序,但是無(wú)法進(jìn)行任何USB通訊 通常是單片機未收到或者未處理USB中斷,驅動(dòng)的安裝與初始化是由CH372和CH375內置USB固件實(shí)現的, 不需要單片機的任何干預,而USB數據通訊需要由單片機收到USB中斷并由程序實(shí)現 * 在與計算機連接時(shí),為什么不能對單片機進(jìn)行程序單步調試 標準的USB傳輸都是時(shí)間限制,單步調試容易導致USB超時(shí),尤其在外置固件模式下,更容易超時(shí)。 解決方法是,用CH375作為USB-HOST,代替計算機單步調試您的USB設備,CH375可以不超時(shí)。 * 如何用一個(gè)CH375實(shí)現USB-HOST和USB-DEVICE CH375的串口連接只支持USB-HOST,所以必須通過(guò)8位并口與單片機連接。由于CH375自身沒(méi)有主導權, 只能在單片機的控制下,切換為主機或者設備模式,所以單片機應該決定是主機還是設備,具體可以參 考USB電路及PCB設計注意事項README中的說(shuō)明,在CH375評估板資料中,EXAM0是主從切換應用的例子。 * 關(guān)于應用層USB中斷服務(wù)的特點(diǎn) CH372的動(dòng)態(tài)錠接庫DLL提供了偽中斷服務(wù),實(shí)際的中斷服務(wù)仍然是在驅動(dòng)程序庫完成的,只是在完成后 向DLL發(fā)了個(gè)通知,由DLL再調用偽中斷服務(wù)子程序。由于涉及到系統層與應用層切換以及線(xiàn)程切換, 所以中斷頻率不能太高,如果太高,雖然驅動(dòng)程序能夠收到中斷,但是等到通知到應用層,再調用客戶(hù) 的偽中斷服務(wù)程序,最慢可能需要10毫秒,從而在應用層丟失中斷。自己寫(xiě)驅動(dòng)可以提高響應速度。 * 關(guān)于USB傳輸速度 CH372/CH375與計算機通訊時(shí),默認的CH37X驅動(dòng)程序和DLL提供的API是同步I/O而非異步I/O,所以API 返回就說(shuō)明該API執行完成,由于WINDOWS要提前安排USB幀調度,所以?xún)纱蜺SB傳輸之間的間隔總是會(huì )大 于1mS,例如傳兩個(gè)64字節的包可能需要2mS,而傳一個(gè)256字節的包可能只需要1mS。這種情況可以通過(guò) 修改驅動(dòng)程序在驅動(dòng)程序層傳輸數據或者用異步I/O解決,注意異步I/O在A(yíng)PI返回時(shí)不代表該API完成。 計算機單次收發(fā)的數據塊越大平均速度越快(單次最大4KB),CH372/CH375實(shí)測傳輸速度最高為400K字 節每秒(在10秒內連續測試的平均值),但是實(shí)際應用考慮到留些余量,考慮到應用程序在收發(fā)數據之 外還要分析處理數據,通常應該按200K計算。USB作為串行總線(xiàn),采用包傳輸的方法,實(shí)時(shí)性不如PCI總 線(xiàn),PCI能達到微秒級,而USB的響應時(shí)間只有幾百微秒到幾毫秒,在驅動(dòng)程序中實(shí)現的性能要好些。 * 如何做WINDOWS驅動(dòng)程序,WINDOWS DDK如何獲得 我們的驅動(dòng)程序全部使用WINDOWS 98/2000/XP DDK編譯,同時(shí)支持WINDOWS 98/ME/2000/XP。DDK可以從 微軟官方網(wǎng)站免費下載(訂購芯片時(shí)如果需要我們也可以提供刻錄光盤(pán)),除此之外,只需VC 5.0或者 VC 6.0編譯器,完全不需要額外軟件支持。這樣做出的驅動(dòng)程序代碼效率高并且文件短小,通常我們用 INF安裝信息文件而不是SETUP可執行程序,可以算是綠色軟件。用戶(hù)如果希望有更友好或者更簡(jiǎn)單的編 譯方法,那么可以使用第三方的驅動(dòng)程序生成工具,當然,那些軟件通常都不便宜。 對于非WINDOWS驅動(dòng)程序,可以參考其它USB設備的驅動(dòng)源碼修改,大多數USB設備的枚舉、初始化過(guò)程都 是一樣的,區別僅在于端點(diǎn)/管道:CH372/CH375除端點(diǎn)0外有三個(gè)端點(diǎn),地址分別是02H、82H、81H,依 次為主輸出BULK-OUT/64字節,主輸入BULK-IN/64字節,輔輸入INTERRUPT-IN/8字節/1mS,通常只用前兩 個(gè)主端點(diǎn),一個(gè)從計算機輸出到CH375,一個(gè)從CH375輸入到計算機。 * 數據采集中,單片機如何設計USB程序 簡(jiǎn)單的做法是,單片機開(kāi)兩個(gè)64字節的緩沖區,主程序定時(shí)采集數據,累加到第一個(gè)64字節緩沖區中, 當第一個(gè)緩沖區滿(mǎn)時(shí),使用CMD_WR_USB_DATA7命令上傳64字節,然后主程序切換到第二個(gè)緩沖區繼續采 集數據,當第二個(gè)緩沖區滿(mǎn)時(shí),首先檢查上次的上傳是否成功(上傳成功會(huì )收到CH37X的中斷),如果成 功則繼續上傳64字節,如果不成功,說(shuō)明計算機應用程序沒(méi)有來(lái)取走數據(正忙或者未執行采集程序), 那么可以忽略或者另行處理(提示計算機未連接)。該方法不使用中斷,但是需要計算機不斷地來(lái)讀取 數據,實(shí)際的計算機程序可以設置USB讀取超時(shí),防止在單片機不上傳數據時(shí)計算機一直等待。 [color=Red]* 設計的計算機端應用程序在讀寫(xiě)USB時(shí)有時(shí)會(huì )死
我用CH375當372來(lái)用. 可是剛插上USB線(xiàn)時(shí),設備是正常的. 但過(guò)了一段時(shí)間就不正常了.我的系統是XP. 不正常時(shí),計算機根本發(fā)現不了375,有時(shí)竟是其它設備,或未知設備, 請問(wèn),這是什么原因呢? 想作控制和采集用,有點(diǎn)怕. 謝謝. 個(gè)人信息保護,已隱藏
檢查CH37X的時(shí)鐘XI/XO和復位RSTI,必須是穩定的。如果硬件檢查無(wú)誤,可以貼出你的程序來(lái)檢查。 實(shí)在不行,上位機和下位機可以先試用我們的DEMO或者BULK測試程序,連續24小時(shí)測試看是否有問(wèn)題。 如果有問(wèn)題,那么硬件問(wèn)題,否則是軟件問(wèn)題。
謝謝, 硬件方面應該沒(méi)問(wèn)題. 軟件方面現在還不確定. 但在不同的PC上,表現好像是不同的, 有時(shí)還要求重裝USB驅動(dòng). 我再試試.
新來(lái)的,報個(gè)到。
把USB口與計算機連接后,計算機有時(shí)提示找到新硬件,有時(shí)就沒(méi)有那個(gè)發(fā)現硬件的標志,沒(méi)標志時(shí),用萬(wàn)用表測UD+和UD-十無(wú)電壓,出現標志時(shí),裝不上驅動(dòng)程序,
怎么就沒(méi)人說(shuō)一下呢? 郁悶.
請您詳細檢查您的電路確認無(wú)誤(最好對照我們給的原理圖檢查),因為這更象是硬件問(wèn)題. 然后在檢查是否在CH375/CH372復位后正確啟動(dòng)模式.
斑竹及各位大家好: 請問(wèn)用三用表如何才能判斷372是否起振?電源是5伏。我實(shí)測晶振一端到地電壓是4.76v(DT830 20vDC檔),晶振另一端到地電壓是5.16伏,實(shí)測電源電壓是5.16伏(來(lái)自USB口),用示波器測量無(wú)信號。不知道372的晶振工作了沒(méi)有?
如果正常起振波形為正玄波,萬(wàn)用表測試電壓應為平均電壓,大概在兩伏左右.
收藏??!
我做一個(gè)數據采集系統,需要把A/D轉換器,單片機還有USB芯片連接起來(lái),有沒(méi)有只有CH372和單片機連接的板塊?
單片機只連CH372的板子沒(méi)有,你可以拿CH372DEMO板作實(shí)驗.
我想用PIC單片機控制CH375讀寫(xiě)U盤(pán),不只能否用文件方式?怎用建立后查找文件?清個(gè)位高手指教!
請問(wèn): 從貴公司的網(wǎng)站上下載的CH372DGB,編譯后配合PC機端(win XP)的VB6.0運行,讀取單片機的RAM、SFR等,有時(shí)正常、有時(shí)沒(méi)有反應,就像程序死了一樣,但是拔掉USB的接頭,卻有正常了,是何原因?
下位機程序需要單片機執行,當然用到相關(guān)的SFR和RAM,這個(gè)工具寫(xiě)的不是很?chē)乐?,而且讀寫(xiě)SFR和RAM要注意副作用,說(shuō)不定被你從PC機上人為修改的RAM正是當前USB緩沖區,外部RAM不要讀寫(xiě)到CH375的端口地址中,那也會(huì )導致CH375誤認為是數據或者命令