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