打印
[应用相关]

关于 USB 中增加 端点的问题

[复制链接]
3215|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangwenjia|  楼主 | 2008-10-16 11:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要在 Mass Storage 例子的基础上增加一个 IN 类型 的端点 ENP3
修改并编译通过后 ,调试软件中已经能查看到新加的端点。
可在 上位机监听的时候确收不到其反送的数据

于是仿真
发现在上位机监听次端口的时候,根本就不会进入中断函数 CTR_LP()

请问这是为什么 ?   哪里还能设置好么 ?
沙发
wangwenjia|  楼主 | 2008-10-16 11:18 | 只看该作者

其它端点都能正常工作

闷了很长时间也没能找到问题所在
故  请教 坛 里的 高人

使用特权

评论回复
板凳
wangwenjia|  楼主 | 2008-10-17 08:15 | 只看该作者

来人帮帮忙啊

实在是找不到哪里还不对

使用特权

评论回复
地板
香水城| | 2008-10-17 10:29 | 只看该作者

USB传输是主从方式,只有在主机发送IN Token后设备才能发送数

请问你的主机端是否发出了IN Token?

使用特权

评论回复
5
wangwenjia|  楼主 | 2008-10-17 13:33 | 只看该作者

关于主机

调试是用 windriver 调试的
比如我对 0x81 监听,windriver 就会一直向端点0发送IN Token,并能够正确的接收的 ST MCU 上传来的数据
可对 0x83 监听则没有反应,仿真时看到根本就不会进入中断函数 CTR_LP()
<其它端点正常>
好像端点3在STMCU端没有被启用一样

使用特权

评论回复
6
香水城| | 2008-10-18 15:28 | 只看该作者

初始化时不要设置EP_TX_VALID

初始化时应该设置EP_TX_NAK:
  SetEPType(ENDP3, EP_BULK);  
  SetEPTxAddr(ENDP3, ENDP3_TXADDR);
  SetEPTxStatus(ENDP3, EP_TX_NAK);

要发送时再置EP_TX_VALID:
  UserToPMABufferCopy(&Mybuffer, ENDP3_TXADDR, size);
  SetEPTxCount(ENDP3, size); //设置发送缓冲区大小为 size
  SetEPTxValid(ENDP3); 或 SetEPTxStatus(ENDP3, EP_TX_VALID);

注意回调函数EP3_IN_Callback(void)是在发送结束后才被调用,进入这个函数表示上次发送成功,所以应该在主程序中拷贝要发送的数据并SetEPTxValid(ENDP3)。

使用特权

评论回复
7
cpufan| | 2008-10-20 16:39 | 只看该作者

我也遇到过楼主同样的问题

项目要求做一个复合设备。
我发现使用3以上的endpoint都不行。
驱动需要4个endpoint,
后来使用了81,01,82,02这四个endpoint完事。
至于为什么不能用83,03 ....这些端点,也不知道答案

使用特权

评论回复
8
香水城| | 2008-10-20 17:54 | 只看该作者

8楼是怎么做的?

使用特权

评论回复
9
cpufan| | 2008-10-21 11:22 | 只看该作者

re

我就是在工程文件中把ENDP1_TXADDR,ENDP1改成:
ENDP3_TXADDR,ENDP3
对应的ENDP2_TXADDR,ENDP2改成ENDP4_TXADDR,ENDP4
不行。

不是不buffer的地址也要改啊。应该不影响啊

使用特权

评论回复
10
香水城| | 2008-10-21 18:34 | 只看该作者

你的描述符改了吗?

使用特权

评论回复
11
cpufan| | 2008-10-22 09:32 | 只看该作者

描述符改了

使用特权

评论回复
12
wangwenjia|  楼主 | 2008-11-1 16:03 | 只看该作者

至今未有解决。。。

使用特权

评论回复
13
香水城| | 2008-11-1 17:36 | 只看该作者

是否按照7楼的设置改了?

使用特权

评论回复
14
wangwenjia|  楼主 | 2008-11-1 22:24 | 只看该作者

已经按照您的方法试过了

因为加端点1是可以的
但增加端点3,也就是增加到断点数量为5个的时候就不行了
不会应答主机
(上个礼拜忙别的事情,就没折腾这个usb)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

79

帖子

0

粉丝