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