转自
XXXXXXXXXXXXXXXXXXXXXX/~s57uuu/uuusb/XXXXXXXXm 有修改
USB2.0带宽有480M,而且传输稳定,误码率低。
这是一个最简单的驱动程序,配合CY7C68013芯片,可以大大简化USB操作
目前已经实现了在linux下,调用libusb,进行异步fifo方式传输,大约有12MB/s的带宽
接线:
68013连接USB、晶振,EEPROM不需要接,但是I2C两条线必须上拉。
SLWR(26脚)=时钟线,PB0-7 PD0-7(2-10,12-20脚)=数据线,接到单片机
FIFOADR0、FIFOADR1、SLOE(34,35,37)接3.3V,SLCS悬空
数据发送程序(51):
send_16_bits:
CLR P3.0 ;拉低SLWR
MOV R1,P1 ;送数据到PB0-7
MOV R2,P2 ;送数据到PD0-7
SETB P3.0 ;拉高SLWR
;此时已经发送了2个字节到68013,发送数据超过512字节之后,电脑就能读取到数据了
;68013内部有1024字节的缓存
;SLWR频率不要超过6MHz
RETI
PC端程序:
---windows下也可以调用libusb,记得去掉#define LINUX 和deatch_np函数
---同步模式能用到2.0的全部带宽,以后做了再传
200字以内,仅用于支线交流,主线讨论请采用回复功能。