我用CH374T做的USB通信,實現(xiàn)單片機與PC的通信,在網(wǎng)上沒有找到CH374T的參考電路,自己根據(jù)CH374S的電路,繪制的,不知道是否正確,現(xiàn)在傳上來,請教各位高手予以指正。
CH374T與CH374的工作電路是一樣的,這個電路是正確的
謝謝SCM { M } 我還有問題請教您: (1)、資料里說,在SPI通信方式下,管腳按上圖連接,其他腳懸空,問題是:其他不用的腳接地可以嗎?比如第4腳A0接地,可以嗎? (2)、我用上面的電路,對其40H-7FH寄存器進行讀寫測試,按照論壇里的方法,直接調(diào)用讀寫寄存器的函數(shù):Write374Byte、Read374Byte,只對40H進行讀寫,但不是對40H-7FH寄存器連續(xù)寫,再連續(xù)讀,結(jié)果讀寫不成功,請問必須連續(xù)讀,再連續(xù)寫嗎?為什么?
干嗎非要接地呢?按照說明書上說的,懸空,都接地可能會有問題的.最起碼會有電流的. 可以用Write374Block,Read374Block這兩個函數(shù)進行連續(xù)的讀寫測試.如果連續(xù)不成功的話,可能是SPI速度過快導(dǎo)致的,字節(jié)之間的延時多少?
字節(jié)之間的延時,是指在Write374Block中每Write374Byte寫一個字節(jié)后,加延時嗎? 哪么,字節(jié)之間應(yīng)該延時多長時間? 我是直接移植DEVICE.C,只修改了接口,其他什么都沒改,我采用是單片機集成的SPI通信模塊,4MHz通信速率,采用通信時序如圖:
(1)通常不需要加延時,CH374 SPI要求2次操作時間間隔不小于80nS (2)對于硬件SPI 接口,建議SPI 設(shè)置是CPOL=CPHA=0或者CPOL=CPHA=1,并且數(shù)據(jù)位順序是高位在前MSB first
謝謝兩位,可以讀寫寄存器了,原來是上電復(fù)位延時太短,CH374T沒有復(fù)位成功,mDelaymS(50)移植后,時間不夠長,增長延時后就好, 現(xiàn)在問題是;(1)采用中斷函數(shù)方式,等待一會兒,電腦顯示“無法識別”,而設(shè)置的中斷標志LED燈,不亮,說明沒有進中斷; (2)然后,我改用查詢CH374T內(nèi)部中斷寄存器REG_INTER_FLAG的方式,發(fā)現(xiàn)內(nèi)部值不為0,但是此時并沒有與電腦 相連,是不是初始化沒有成功,REG_INTER_FLAG寫1清0后,其內(nèi)部值應(yīng)該是0吧? 請問出現(xiàn)“無法識別”這種情況,可能的原因是什么?
(1)“無法識別”是因為描述符信息沒能成功傳給PC,導(dǎo)致PC不認識該設(shè)備,描述符通過USB_DeviceInterrupt傳給PC (2)無法進入中斷,檢查中斷配置是否正確,連接PC后測量INT腳電平 (3)REG_INTER_FLAG不為0,那么中斷寄存器具體是產(chǎn)生了什么中斷,寫1即內(nèi)部清0,設(shè)置模式應(yīng)該成功了,否則PC不會發(fā)現(xiàn)設(shè)備
請問09H中斷標志寄存器,寫1清0后,其內(nèi)部值是0,還是不為0;寫1后,是不是要延時等待其完成清0動作,如果是,需要延時多長時間。
無法識別是374設(shè)備模式已經(jīng)啟用了,但是由于沒有上傳描述符導(dǎo)致主機識別不了設(shè)備. 你可以測試一下中斷腳是否有低電平出現(xiàn)了.
不需要延時,寫1就清除為0了.
謝謝各位,現(xiàn)在已經(jīng)實現(xiàn)USB通信了,不過,是采用的查詢的方式實現(xiàn)的,中斷方式還是不行,可能是單片機中斷沒設(shè)置好。