阅读:1130回复:2
关于2131的两种传输模式的使用
AN2131QC的块模式如果只用自动指针进行快速传输只能在8051的内部RAM中进行,只有ISO模式才能把外部数据真正从外部FIFO中传入内部FIFO,那么,块传输还有什么意义呢?(在把外部数据传入内部端点缓存的时候,要求数度快)
高手指教 SUNKAI说他喜欢用块模式传输,那请问,不能用快速模式,是吗? |
|
沙发#
发布于:2003-05-12 03:49
AN2131QC的块模式如果只用自动指针进行快速传输只能在8051的内部RAM中进行,只有ISO模式才能把外部数据真正从外部FIFO中传入内部FIFO,那么,块传输还有什么意义呢?(在把外部数据传入内部端点缓存的时候,要求数度快) 自动指针和快速传输在你的项目中可以同时用(块传输模式下)。 当外部存储器是fifo时,利用数据总线传输, ; 设置#PA5为第二功能(Fast Read)作为读信号 ........ ; 触发时序可以参照下面这样控制 ; 【fast ISO transfers(bit 7),】fast BULK transfers(bit 6) ; 【Write strobe timing: WM1 WM0 = [00],WPOL=0.bit2 1 0】 ; Read strobe timing: RM1 RM0 = [01],RPOL=0.bit5 4 3 mov dptr,#FASTXFR mov a,#11010000b movx @dptr,a ;---------------------- 自动指针要初始化:以IN4BUF为例 ; Access IN4BUF as a FIFO mov dptr,#AUTOPTRH mov a,#HIGH(IN4BUF) movx @dptr,a mov dptr,#AUTOPTRL mov a,#LOW(IN4BUF) movx @dptr,a mov dptr,#AUTODATA 并且可以设置端点EP4IN双缓冲区,,#USBPAIR bit1=1 主程序: LoadData: mov dptr,#AUTOPTRL ; 复位IN4BUF FIFO的指针,高8位不会改变,只低8位复位 mov a,#LOW(IN4BUF) movx @dptr,a mov dptr,#AUTODATA ; 将bulk端点4的数据缓冲区当作FIFO访问 InLoop: movx @dptr,a ; 读数据总线到bulk端点FIFO ........ ........ movx @dptr,a djnz nTimes,InLoop ; 计数!=0,继续,==0,set busy mov dptr,#IN4BC ; 装字节计数寄存器IN4BC,设置busy=1 mov a,#0XXXXXXX movx @dptr,a [编辑 - 5/12/03 by dalaba] |
|
板凳#
发布于:2003-05-12 04:01
AN2131QC的块模式如果只用自动指针进行快速传输只能在8051的内部RAM中进行,只有ISO模式才能把外部数据真正从外部FIFO中传入内部FIFO,那么,块传输还有什么意义呢?(在把外部数据传入内部端点缓存的时候,要求数度快) 快速传输用于访问外部fifo,iso和bulk模式都可以用,只要设置对就行。 自动指针用于把内部ram当作fifo访问,把这两个操作结合起来使用就非常简单方便了。 上面还用了端点双buffer。有这3个东西,速度不成问题。 3个方面都要做好初始化设置,你自己看资料和例子应该可以搞定。 |
|