USB小白学习之路(11) Cy7c68013A驱动电路设计注意事项(转)
Cy7c68013A驱动电路设计注意事项
转自:http://group.chinaaet.com/116/79029#0-tsina-1-71467-397232819ff9a47a7b7e80a40613cfe1
CY7C68013的驱动电路非常简单,除了提供24MHz时钟源,设计好USB差分接口,做好电源滤波,其他信号均可由数字控制。这里简单的对Bingo设计CV7C68013A-56PVXC驱动电路进行介绍,如下所示:
(1)首先,USB差分电路设计的好坏,决定了实际能运行的速率。
采用USB-Mini接口进行68013的通信,同时完成板卡的供电功能。USB理论上能提供500mA的电流,2.5W的功率足够支撑板卡的工作。同时500mA自恢复保险丝的设计,有效的保护了PC USB接口的安全。
在Layout D+、D- USB差分信号线的时候,一定要特别注意走线。
此外,外壳通过1uF接地,简单而有效的进行了电路的ESD保护。
(2)通过FPGA输入24MHz有源时钟,如下:
实际上可以采用无源晶振,同时通过XTALOUT输出24MHz给FPGA作为全局时钟,进一步降低PCB设计的成本。
(3)CY7C68013A配置芯片24LC64 EEPROM,
注意上拉电阻!
另外:如果EEPROM非空,或者说当前固件本机未安装驱动,可以通过短接P3,来实现68013上电从内部启动。当然如果是全新的片子,一些无所谓了。
(4)复位引脚的配置
理论上68013的复位引脚直接高电平即可,但实际上经过多次的测试,发现RESET外接耦合电容,否则68013没有100%的成功率能完整正常启动,。这仅是经验总结,因此这一部分电路千万不要偷懒,如下所示:
(5)坑爹的RESERVED设置
此外,最坑爹的RESERVED虽说是预留引脚,但是却不能NC。手册明文规定必须拉低,否则PC无法识别68013!
(6)WAKEUP功能时钟上啦,我们不做产品,不许睡觉!
(7)同步时钟IFCLK由外部FPGA输入,如下(12MHz输出可用与验证IC是否正常工作):
(8)选择FIFO0,不允许数据输出,屏蔽数据读取,不进行包传输,EmptyY与Full功能暂时不用,片选始终有效,WR使能信号由外部FPGA输入,配置如下:
这样做完全是由于TQFP144的FPGA引脚资源有限,通过固定的配置,换来了功能的实现。如果FPGA有足够的IO,可以讲这些68013这些固定引脚较直接通过FPGA进行灵活的配置。
这里USB_WR作为同步FIFO数据写入使能信号,由FPGA控制。
此外,设计中没有引出FLAGB(FULL)、FLAGC(EMPTY)引脚,不仅仅由于FPGA引脚的有限,设计中可以直接忽略FLAGB、FLAGC的技巧,在于降低数据的写入速率。实际上经验告诉我们,写入30FPS的640*480的视频,即12MHz的速率进行写入,可以完全忽略FULL、EMPTY信号。因为68013完全有这个能力在这段时间处理好数据的缓存、发送,我们可以接受这个风险!!!
(当然这是迫不得已的……)
(9)这里FIFO选择了8Bit输出,如下所示:
(10)PA0中断输入CMOS帧信号,用来同步数据,如下:
(11)PD5作为触发写入的信号,连接至FPGA作为输出使能,如下所示:
这里PD3、PD4、PD6实际上没有使用到。PD3、PD4用于用户采用68013实现CMOS Sensor的初始化接口,此设计中这两个IO没有使用到,PD6为预留。
(12)PD5、PD6从FPGA全局时钟数据,这里主要使用了PD5-USB_Trigger写入触发使能信号,如下:
(13)PD3、PD4预留(暂时没用到)初始化接口直接输入FPGA;68013 同步时钟信号IFCLK、写入使能信号WR直接从FPGA IO输出,如下所示: