rainbowll
驱动牛犊
驱动牛犊
  • 注册日期2005-11-01
  • 最后登录2007-09-18
  • 粉丝0
  • 关注0
  • 积分170分
  • 威望18点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
阅读:1071回复:2

1581发送所有描述符时的问题(16位数据线)

楼主#
更多 发布于:2007-09-10 22:12



请教做过1581GENERIC16位数据总线的朋友:
    在发送所有配置,接口,端点描述符时,因为配置和接口描述符都是9个byte,也就是奇数个时,16位数据总线每次发送两个,所以就会多出一个错误的“第10个byte”,又由于是三个描述符连续发送,中间好像是没有间隔的,那么下一次发接口描述符之前也就有1个byte是错误的,这样发送过去应给会出错。查了1581寄存器没有把16位数据总线配置成8位的。
    想请教下做过的朋友,有没有好的方法解决,谢谢。
rainbowll
驱动牛犊
驱动牛犊
  • 注册日期2005-11-01
  • 最后登录2007-09-18
  • 粉丝0
  • 关注0
  • 积分170分
  • 威望18点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-09-12 17:33
谢谢jinghuiren
这个办法我也考虑过,但是每个描述符都是一个单独的结构体,依次发送描述符的话(指针递加)没法跳到下一个的描述符首字节去。无奈之下,我只有把这几个描述符定义成一个大的描述符,问题解决。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-09-11 17:22
把前一个9字节的最后那个byte和下一个描述符的第一个byte拼起来组成一个16位,一次类推
如果总的数据量是奇数,就现在datacount寄存器里写入这个数在按上述方法操作,最后一个字节系统会自动被截掉
游客

返回顶部