zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1096回复:5

控制传输方式给外设传指令问题求助

楼主#
更多 发布于:2003-10-02 09:31
我想采用控制传输的方式,经端点0给设备传输指令,就我的理解时,数据指令可以传到端点0的缓冲区,可是以后呢,它是怎么传到外设接受单元的呢?我的外部连接为一译码器。
free_man_free
驱动小牛
驱动小牛
  • 注册日期2003-08-19
  • 最后登录2005-04-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-10-05 14:24
你用的是什么芯片?里面含MCU的吗?
端点0一般是用来传输控制指令的,指令传输到端点0的BUFFER后,一般由单片机来控制执行指令! :D
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-10-07 16:24
我用的是fx2(68013)含mcu,我现在的问题就是不知道该如何用单片机来实现把buffer的数据传到外设的cpld中的译码单元,请多多指教,能写一下将指令0x80传到译码器的程序吗?
谢谢
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-10-07 19:00
译码器?什么译码器?
68013不是有很多io口吗,如果你的cpld的译码单元和某些io口连着,那就通过io口写到里面,如果是通过地址线和数据线,那就选中寄存器的地址,把数据写进去即可。

例如,你的译码器的地址是0x2000,那么代码如下:
xdata volatile BYTE reg1   _at_ 0x2000;//定义寄存器

reg1 = 0x80;//使用时直接赋值即可
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-10-07 21:31
是这样的,我的usb接口通过16根数据线,二个 CTL线,一个RDY线以及 一个接口时钟连接的,也就是说我采用的是GPIF方式。我想向 设备端写数据的时候通过端点0写入,然后通过EP6读入,我不知道 既然已采用GPIF方式。那么这种方法是否可行,因为16根数据线直接联到译码器的输入,而译码器没有地址线,所以我就不知道如何把数据传给译码器了
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-10-08 11:12
我不知道gpif是如何操作的,如果你的usb数据线和地址线(不是gpif或者slave fifo的)没有和cpld相连接,那么上面的方法就不可行,唯一的方法是你把数据放到和cpld相连接的那个端点里,但是对于slave fifo模式,固件是无法控制端点的,因此你相使用vendor request是不可能的,但是gpif我就不知道固件是否能控制端点了,如果你能把数据放到gpif的那个端点里,就可以传到cpld里了。不过你的cpld里面需要有判断逻辑。
游客

返回顶部