barton
驱动牛犊
驱动牛犊
  • 注册日期2003-06-10
  • 最后登录2008-12-18
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望52点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
阅读:1559回复:12

EZ-USB Control Panel 错误信息

楼主#
更多 发布于:2003-09-22 11:42
 :cool: :cool:当用IN命名从固件收数据上来时,给出这样的错误提示:数据错误(循环冗余检查)。这是个英文软件,怎么会给出中文提示啊?还有,这个CRC校验错误是不是指收到了从固件发送上来的数据,当时数据不正确?那数据错误可能又是如何产生的呢?

最新喜欢:

abei11abei11
清风拂柳
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-09-22 11:44
估计是打包是发生的错误!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-09-22 11:56
:cool: :cool:当用IN命名从固件收数据上来时,给出这样的错误提示:数据错误(循环冗余检查)。这是个英文软件,怎么会给出中文提示啊?还有,这个CRC校验错误是不是指收到了从固件发送上来的数据,当时数据不正确?那数据错误可能又是如何产生的呢?
 

那不是数据的错误,很可能是根本就没读到数据,或者是pending了,而且一般是在拔掉电缆的时候才出现的,英文软件有中文提示有什么可奇怪的?有可能这些提示信息不是他自己的呀。 :D
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-09-23 15:37
jinghuiren,你好,在你的贴子里有这样一段程序:
for(int i = 0; i < 32; i++)
{
if(GotSUD) // Wait for SUDAV
{
SetupCommand(); // Implement setup command
GotSUD = FALSE; // Clear SUDAV flag
}
Td_Poll();
}假如我要从设备端一次读入4K的数据,用了这段程序可以实现吗?另外,我在固件里设置了 2OUT,6IN作为批量端点,可是从主机向设备发送的只有几个短指令,只有几个字节,这样用BULK 2OUT是不是会有问题呢?是不是该采用别的传输方式来发送指令呢?例如采用 管道1作为OUT,类型为控制传输。如果是的话,端点就不是成对的使用了,不知是否可行。请多多指教


 
kilroy_guo
驱动大牛
驱动大牛
  • 注册日期2002-10-29
  • 最后登录2005-11-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-09-23 17:15
[quote] :cool: :cool:当用IN命名从固件收数据上来时,给出这样的错误提示:数据错误(循环冗余检查)。这是个英文软件,怎么会给出中文提示啊?还有,这个CRC校验错误是不是指收到了从固件发送上来的数据,当时数据不正确?那数据错误可能又是如何产生的呢?
 

那不是数据的错误,很可能是根本就没读到数据,或者是pending了,而且一般是在拔掉电缆的时候才出现的,英文软件有中文提示有什么可奇怪的?有可能这些提示信息不是他自己的呀。 :D [/quote]

还有一种可能,length小了 :D
二姑家的猫想......
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-09-23 23:19
jinghuiren,你好,在你的贴子里有这样一段程序:
for(int i = 0; i < 32; i++)
{
if(GotSUD) // Wait for SUDAV
{
SetupCommand(); // Implement setup command
GotSUD = FALSE; // Clear SUDAV flag
}
Td_Poll();
}假如我要从设备端一次读入4K的数据,用了这段程序可以实现吗?另外,我在固件里设置了 2OUT,6IN作为批量端点,可是从主机向设备发送的只有几个短指令,只有几个字节,这样用BULK 2OUT是不是会有问题呢?是不是该采用别的传输方式来发送指令呢?例如采用 管道1作为OUT,类型为控制传输。如果是的话,端点就不是成对的使用了,不知是否可行。请多多指教


  


可以呀,关键看你的td_poll函数里一次接收多少数据,要是一次接收4k,那就不用循环了,如果一次接收512,那就循环8次,要活学活用呀

你数据少的时候可以用vendor request,如果只有一连个字节,可以用setup包里的wValue传导设备即可,这样控制传输没有数据阶段,如果较多就在数据阶段传,control pannel上有一个VendReq按钮就是干这个的!
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-09-24 09:22
jinghuiren,你好。
   你说数据少的时候可以用vendor request,如果只有一连个字节,可以用setup包里的wValue传导设备即可,这样控制传输没有数据阶段,如果较多就在数据阶段传,control pannel上有一个VendReq按钮就是干这个的!

这一块的应用我不太清楚,你能给段例程吗?谢谢
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-09-24 11:05
你可以参考control panal源代码里ezmr.cpp里的case IDC_VEND_REQUEST:一段程序,也可以参考如下的代码:
VENDOR_REQUEST_IN MyRequest;
MyRequest.direction = 0x00;//方向,1为in,0为out
MyRequest.bRequest = 0xC7;//vendor 请求号,可以自定义
MyRequest.wLength = 0x00;//数据阶段数据的长度
MyRequest.wValue = 0x01;//可以通过这个参数以及wIndex参数把小量的数据传过去
bResult = DeviceIoControl (hDevice,
    IOCTL_Ezusb_VENDOR_REQUEST,
  &MyRequest,
  sizeof(VENDOR_REQUEST_IN),
  NULL,
  0,
  (unsigned long *)&nBytes,
  NULL);





[编辑 -  9/24/03 by  jinghuiren]
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-09-24 11:55
jinghuiren
还有个问题要问你:用gpif编辑的波形对我的数据读写过程中,我发现ctl0与ctl1始终为高电平,而我在波形的设置中将ctl0设置为地有效时进行写操作,可是我用示波器看不出它有什么变化啊,对ctl1也是如此,这是为什么呢?请指教
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-09-24 11:57
另外,还有对于设备请求符的设置应该是在固件里实现的吧,难道应用程序里也要?
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-09-24 11:58
另外,还有对于设备请求符的设置应该是在固件里实现的吧,难道应用程序里也要?


就是在固件中就可以了!
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-09-24 12:01
flytomoon

你好,请问一下,如果我要给设备端发送几个短指令,这段程序应该怎么写呢?给示范一下如何?
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-09-24 12:03
比如说要发一个80给设备,这条指令是让设备初始化,初始化完后设备给一个end信号,然后主机发a0读指令,该如何做呢?
游客

返回顶部