Crypress68013开发笔记
1. Win7 64下开发
需下载 CySuiteUSB_3_4_7_B204 http://www.cypress.com/?rID=34870
使用C:\Cypress\Cypress Suite USB 3.4.7\Driver\bin\wlh\x64下的驱动,并修改inf文件,如下:
1 ;for x64 platforms 2 [Device.NTamd64] 3 ;%VID_04B4&PID_8613.DeviceDesc%=CyUsb, USB\VID_04B4&PID_8613 4 5 TO: 6 7 ;for x64 platforms 8 [Device.NTamd64] 9 %VID_04B4&PID_8613.DeviceDesc%=CyUsb, USB\VID_04B4&PID_8613
2. 固件编写,需注意修改VID和PID,修改位置为dscr.a51文件中的DeviceDescr字段,下图加粗部分:VID = 04B4 PID = 8613
DeviceDscr: db DSCR_DEVICE_LEN ;; Descriptor length db DSCR_DEVICE ;; Decriptor type dw 0002H ;; Specification Version (BCD) db 00H ;; Device class db 00H ;; Device sub-class db 00H ;; Device sub-sub-class db 64 ;; Maximum packet size ;dw 0B404H ;; Vendor ID ;dw 0410H ;; Product ID (Sample Device) dw 0B404H ;; Vendor ID dw 1386H ;; Product ID (Sample Device) dw 0000H ;; Product version ID db 1 ;; Manufacturer string index db 2 ;; Product string index db 0 ;; Serial number string index db 1 ;; Number of configurations
3. Slave FIFO同步异步选择
IFCONFIG寄存器b3 ASYNC 0为同步,1为异步
Name | Description | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | Default | Access |
IFCONFIG | Interface Configuration | IFCLKSRC | 3048MHZ | IFCLKOE | IFCLKPOL | ASYNC | GSTATE | IFCFG1 | IFCFG0 | 10000000 | RW |
4. Slave fifo 方式中,FLAGA-FLAGD用于定义端点FIFO状态
下表第一行中,FLAGB应等于FF
5. PKTEND is an input used to commit the FIFO packet data to the endpoint
6. 重要经验
我也做过类似的东西,给点我的教训给你吧。同样的方案,但是没有遇到你这样的问题,如果确定是fifo空标的问题,你可以检查一下是不是固件原因,另外,最好把out端点空标编固定为flagX,如果不这样的话,非得用a0a1选通端点,才能对应的表示端点满空信号,有可能你看到的是端点切换所对应的空标变化.同步信号我们是从ifclk引出到fpga的,另外发一个字节的数下来也不保险,如果你拿这个字去表示地址或者做控制用,万一丢了或者读错了怎么办?可以充满了,读出来比较了再丢.还有,数发下来后,空标变化之后再计数几个时钟周期以后去取数.
http://wenku.baidu.com/view/a58e456925c52cc58bd6bef1
http://bbs3.driverdevelop.com/simple/?t100075.html