基于CY7C68013的高速數據傳輸系統的設計
CKCON=(CKCON(~bmSTRETCH)) | FW_STRETCH_
VALUE;//設為0值
Sleep=FALSE;//清除sleep標志
while(TRUE)//主循環
{
if(GotSUD)//等待SETUP令牌數據的到來
{
ParseControlTransfer();//處理SETUP令牌數據
GotSUD=FALSE;//清除SUDAV標志
}
if (Sleep)
{
Sleep=FALSE;//清除sleep標志
do
{
EZUSB_Susp();//置8051為空閑
}
while(!RwuenEZUSB_EXTWAKEUP());
EZUSB_Resume();//從空閑狀態恢復
}
TD_Poll();//完成用戶任務
}
……
需要強調的是:固件程序設計完成后需要進行調試,確保系統硬件正常工作。
(1)工作時鐘頻率的確定:晶振兩引腳對地電壓均為1.6 V左右,此時CLKOUT引腳默認輸出為24 MHz,當輸出48 MHz時,電壓為2.5 V。
(2)電平觸發中斷方式:中斷后一定要讀上次傳輸狀態寄存器(命令40 H~45 H),以清除中斷寄存器中的中斷標志,這樣中斷輸出才能變回高電平。
(3)使能端口:接收到Setup包后,必須用ACKsetup命令重新使能端口為低電平。
(4)緩沖區數據標志:在向IN端點寫完數據后,必須設置EP2BCH:L,指明緩沖區中的數據有效,示意可以發送到主機。當IN端點的數據被外設讀走后,一定要調用OUTPKTEND來清除緩沖區數據,否則無法向IN端點寫入數據。
評論