基于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端点写入数据。
评论