logo资料库

USB_SlaveFIFO开发记录.docx

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
基于 Cypress 公司 USB2.0 芯片 CY7C68013A 的速传接口开发(供开发人员参考) 配置模式:SLAVE-FIFO 开发环境搭建:安装 cy3681_ez_usb_fx2_development_kit_15 开发包, 或者 cy3684_ez_usb_fx2lp_development_kit_15 开发包 cy3681_ez_usb_f x2_development_kit_15.zip cy3684_ez_usb_f x2lp_development_kit_15开发包.zip 一、硬件电路 USB_CY7C68013 A.SchDoc CY7C68013A 芯片的 PA0~PA7 这 8 个 IO 脚为开漏配置,最好在使用时接上 10K 电阻 关键注意点: 1. 上拉; 2. CY7C68013A 芯片系统时钟为外接 24MHz 时钟,也可以由 FPGA 提供,片上 51 内核 内置 PLL 倍频,此时的系统内部工作时钟为 48MHz; 3. 芯片通信时钟 IFCLK 可选择由内部自身提供,也可外部提供,一般选择 48MHz,突 出 USB2.0 的高速通信速率,最好选择外部提供,保证与外部控制器 FPGA 的时序同步; 4. 芯片内部没有存储 RAM,需要外接一片 EPPROM 与芯片的 IIC 接口进行 Programme, 此时固件也必须生成 .iic 的文件;(具体见附件) 二、电脑 USB 驱动文件 .SYS \.INF 开发 Drivers.rar 当连接好的硬件电路首次接入电脑,会出现未识别硬件的提示,解决识别问题操作步骤 如下: 1. 通过右键“我的电脑”进入设备管理器,查看通用串行总线控制器找到带有感叹号 的未识别硬件; 2. 右键未识别硬件,选择属性,再进入属性中的详细信息,在属性选择栏中选择“硬 件 ID”,则会弹出类似如下图:
将硬件 ID 的 VID 号和 PID 号记录下来; 3. 找到已安装的 USB 开发包中的 Driver 中的.INF 文件,可以直接打开修改里面对应的 VID 与 PID 号即可; 4. 修改完后,更新硬件驱动则能被识别。 三、CY7C68013A 固件配置 usb_wr_firmware .rar ------------------------------------- 固件配置 -*重要*↓ ------------------------------------------ 1.配置固件 ID ,在 dscr.a51 文件中 2.配置 USB 识别字符,即 USB 接入电脑后识别的名称,在 dscr.a51 文件中:
3.关于固件具体功能配置,很重要说明:很重要说明:很重要说明: USB 芯片 CY7C68013A 固件配置说明: 配置模式:SLAVE FIFO 模式 功能参数配置: CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1); //CPU Clock Speed=48MHz、CLKOUT 不输 出 SYNCDELAY; IFCONFIG =0x43; Synchronously //设置为 SLAVE FIFO 模式、内部 FIFO 时钟为 48MHz、同步通信模式 SYNCDELAY; EP2CFG=0xA0;//将 EP2 寄存器设置为输出缓存 OUT、BULK 模式、4 倍缓存、512Bytes SYNCDELAY; EP4CFG=0;//未用 SYNCDELAY; EP6CFG=0xE0;//将 EP6 寄存器设置为输入缓存 IN、BULK 模式、4 倍缓存、512Bytes SYNCDELAY; EP8CFG=0; SYNCDELAY; FIFORESET = 0x80;//类似刷新配置功能,使其有效 - start SYNCDELAY; FIFORESET = 0x02; SYNCDELAY; FIFORESET = 0x04; SYNCDELAY; FIFORESET = 0x06;
SYNCDELAY; FIFORESET = 0x08; SYNCDELAY; FIFORESET = 0x00;// - end SYNCDELAY; PINFLAGSAB = 0x8C;//将 FLAGB 脚设置为 EP2EF(EP2 寄存器空标志 - OUT -非空即读)、 FLAGA 为 EP2FF(EP2 满标志) SYNCDELAY; PINFLAGSCD = 0xFE;//将 FLAGD 脚设置为 EP8FF(EP8 满标志)、FLAGC 为 EP6FF(EP6 满 标志 - IN -非满即写) = 0x0;//未使用 FLAGD(SLCS)引脚功能 SYNCDELAY; PORTACFG SYNCDELAY; FIFOPINPOLAR = 0x00;//默认选定所有引脚为低电平有效 SYNCDELAY; EP2FIFOCFG = 0x11;//设置为自动输出模式 AUTOOUT - 16 位数据接口 SYNCDELAY; EP6FIFOCFG = 0x09;//设置为自动输入模式 AUTOIN - 16 位数据接口 SYNCDELAY; : FIFOADR0 - FIFOADR1 00 01 10 11 EP2 EP4 EP6 EP8 : : : : ------------------------------------------------固件配置 ↑------------------------------------------------------------- 四、外部控制器设计 FPGA EZ-USB-TRM2.p df 时序参考文档: USB_YJ_TestSucc ess.rar --------------------------------------------------------------------------------------------------------------------------------- 在配置 FPGA 自带的 FIFO 时,注意:
!!! 否则在读出 FIFO 时在首位会出现两个空字节。 使用 show-ahead 模式,即读端的 rdreq 信号作为读取 FIFO 的确认信号(ACK),读取数据在 rdreq 置位后立即有效,不要额外的读取周期。 如果使用的是 Normal(Legacy),读端的 rdreq 信号作为读取 FIFO 的请求信号 REQ,读取数据在 rdreq 置位后的第二个时间周期有效,则会出现首两位空字节现象。 如果使用的是 ACTEL 的 FPGA 芯片: 但是在调用该 FIFO 的时候,需要 ---------------------------------------------------------------------------------------------------------------------------------
分享到:
收藏