第一次玩博客也不知道该写什么,正好这几天在折腾一块USB数据采集板的程序,那就写一下最近调试CY7C68013遇到的一些问题吧。
自己做了一块GPS中频数据采集板,CY7C68013的作用就是把AD采样后的GPS中频数据通过USB传给PC,大致结构是这样的:
MAX2769(GPS射频前端芯片,包括2bit的ADC) -> EP2C5T144(FPGA,外挂了一片512KBYTE的SRAM) -> CY7C68013
由于是第一次用CY7C68013,调试花了很长的时间(尽管代码很少),每当芯片工作不正常时,只能通过极少的信息去猜测问题原因。
在这个设计中,我最初采用了SLAVE FIFO模式下同步写的方式传输数据(AUTOIN),由FPGA提供时钟IFCLK,BULK传输,
我第一个遇到的问题是AUTOIN模式没有开启,现象是当FIFO FULL信号(FLAGB拉低)有效后除非我复位FIFO,不然FIFO一直保持FULL状态,上位机程序读不到任何数据,因此我认为芯片在FIFO写满后没有打包发送出去,这也说明AUTOIN没有启动。由于AUTOIN是通过EPXFIFOCFG设置的,EP2FIFOCFG = EP2FIFOCFG | 0x08 (在这里我用的是端点2),为了进一步验证我的猜测,我在BOOL DR_VendorCmnd(void)函数里里加了一个寄存器读写的Vendor Request,代码如下:
1 switch(SETUPDAT[1]){ 2 case ...: 3 ...; break; 4 5 case