打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Cy7c68013 的win7 驱动和SlaveFifo例程
Cy7c68013 的win7 驱动和SlaveFifo例程 发布时间:2012-12-07 00:47:40
技术类别:CPLD/FPGA
之前用的是xp环境,用的红色飓风开发板,现在自己做的板子,改成了win7系统,可是原来的eZ-USB控制面板不能用了,搜了一下cypress的官方驱动,Cypress Suite USB 3.4.7,可以支持XP和win7系统。连上后,按照driver文件夹下面的CyUSB.pdf文件,修改Cypress Suite USB 3.4.7\Driver\bin\wlh\x64下面的cyusb.inf文件,用记事本打开,将里面VID_XXXX&PID_XXXX改成VID_04B4&PID_8613(在设备管理器中可以查看属性,看到这两个16进制数),注意别忘了把这几行前面的注释号“;”去掉,否则认为这一行被注释了哦。下面的文件是我的CY7C68013的inf文件。这样系统就可以识别到USB设备了。但是原来的例程SlaveFIFO不能用了,下载.hex文件之后,识别到SlaveFIFO设备,不能装驱动。
由于对这个USB芯片的固件不熟,研究固件编写短期内搞不定。于是在Cypress 官方网站上找到了例程AN63787,是关于8bit模式下的slavefifo例程,但是我的FPGA配置的是16位模式,明显看到例程中少了一半字节的数据。下面只能自己改例程了。
首先下载**版的keil uVision2,http://ishare.iask.sina.com.cn/f/12062296.html?from=like
更改C:\Cypress\Cypress Suite USB 3.4.7\Firmware\Bulkloop下面的keil工程,用原来红色飓风自带的固件源代码配置进行更改,将 bulkloop.c中TD_Init函数用红色飓风如下TD_Init函数替换,
void TD_Init( void )
{ // Called once at startup
//时钟设置
//CPUCS = 0x02;  //12MHZ CLKOUT ENALBE
//CPUCS = 0x0a;  //24MHZ CLKOUT ENALBE
CPUCS = 0x12;  //48MHZ CLKOUT ENALBE
IFCONFIG =0x43;//使用外部时钟,IFCLK输入不反向
SYNCDELAY;
EP2CFG=0xA0; //需要设定为四缓冲,每个缓冲区大小为512字节
SYNCDELAY;
EP4CFG=0x00;
SYNCDELAY;
EP6CFG=0xE0;
SYNCDELAY;
EP8CFG=0x00;
SYNCDELAY;
FIFORESET = 0x80;             // activate NAK-ALL to avoid race conditions
SYNCDELAY;                    // see TRM section 15.14
FIFORESET = 0x02;             // reset, FIFO 2
SYNCDELAY;                    //
FIFORESET = 0x06;             // reset, FIFO 6
SYNCDELAY;                    //
FIFORESET = 0x00;             // deactivate NAK-ALL
SYNCDELAY;
PINFLAGSAB = 0xE6;          // FLAGA - fixed EP6PF, FLAGB - fixed EP6FF
SYNCDELAY;
PINFLAGSCD = 0xf8;          // FLAGC - fixed EP2EF, FLAGD - reserved
SYNCDELAY;
PORTACFG |=  0x00;  //0x40;             // SLCS, set alt. func. of PA7 pin
SYNCDELAY;
FIFOPINPOLAR = 0x00;          // all signals active low,
SYNCDELAY;
OEA|=0x0F;
//小于64字节有效
//EP6FIFOPFH=0x00; //DEIS PKSTAT  PK2 PK1 PK0 0 PFC9 PFC8
//EP6FIFOPFL=0x40; //PFC7 PFC6 PFC5 PFC4 PFC3 PFC2 PFC1 PFC0
// handle the case where we were already in AUTO mode...
EP2FIFOCFG = 0x01;            // AUTOOUT=0, WORDWIDE=1
SYNCDELAY;
EP2FIFOCFG = 0x11;            // AUTOOUT=1, WORDWIDE=1
SYNCDELAY;
EP6FIFOCFG = 0x09;            // AUTOIN=1, ZEROLENIN=0, WORDWIDE=1
SYNCDELAY;
//IO设置
PORTCCFG=0x00;
PORTECFG=0x00;
OEC=0x00;
OEE=0xff;
//串口初始化
// PA3=0;
PA0=1;
enum_high_speed=FALSE;
}
编译生成.hex文件,用EZ-USB控制面板下载到USB芯片中,然后提示找到设备Bulkloop Device,自动安装驱动,点击get piples,
Pipe:  0  Type: BLK Endpoint:  2 OUT  MaxPktSize: 0x200
Pipe:  1  Type: BLK Endpoint:  4 OUT  MaxPktSize: 0x200
Pipe:  2  Type: BLK Endpoint:  6 IN   MaxPktSize: 0x200
Pipe:  3  Type: BLK Endpoint:  8 IN   MaxPktSize: 0x200
选择: BLK Endpoint:  6 IN  ,点击传输, 这是我用24bitAD芯片采集数据的结果,每采集两次,放入3个数据进FIFO,数据正确
但是现在传输速度测试的VC6.0程序还不能用,估计还是因为win7的某些不兼容吧,以后再试。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Linux设备驱动程序学习(18)-USB 驱动程序(三)
Linux USB驱动工作流程
[圈圈原创]如何修改STM32的USB例程为自己所用
STM32的USB例程修改步骤
USB开发步骤之标准篇
DriverStudio培训教程-10分钟完成一个USB驱动程序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服