打印
[技术问答]

新唐NUC123的USB疑惑!???

[复制链接]
1782|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
caihong001|  楼主 | 2015-7-17 10:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,有人了家新唐NUC123的USB吗?
参与令牌包处理的不是只能是控制端点吗,而且控制端点不是只能是端点0吗?
为什么新唐的会有端点1参与
/* EP0 ==> control IN endpoint, address 0 */
    USBD_CONFIG_EP(EP0, USBD_CFG_CSTALL | USBD_CFG_EPMODE_IN | 0);
    /* Buffer range for EP0 */
    USBD_SET_EP_BUF_ADDR(EP0, EP0_BUF_BASE);

    /* EP1 ==> control OUT endpoint, address 0 */
    USBD_CONFIG_EP(EP1, USBD_CFG_CSTALL | USBD_CFG_EPMODE_OUT | 0);
    /* Buffer range for EP1 */
    USBD_SET_EP_BUF_ADDR(EP1, EP1_BUF_BASE);
沙发
john_lee| | 2015-7-17 11:01 | 只看该作者
彼端点 1 非此端点 1。
新唐的 EPx,只是硬件的寄存器数组,你认为的 EP1,只是数组中的 1 号(第 2 个)寄存器而已,而并不是 USB 规范中的端点号。
实际的端点号,是在寄存器中设置的,你看你写的:
USBD_CONFIG_EP(EP0, USBD_CFG_CSTALL | USBD_CFG_EPMODE_IN | 0);
USBD_CONFIG_EP(EP1, USBD_CFG_CSTALL | USBD_CFG_EPMODE_OUT | 0);

最后的那个 0,就是设置的端点号。
新唐 USB 外设模块的 EP 寄存器数组,每个 EP 是单向的,要使用双向的端点,就需要两个 EP 寄存器联合,一个设置为 OUT,一个设置为 IN。

使用特权

评论回复
板凳
caihong001|  楼主 | 2015-7-17 12:52 | 只看该作者
john_lee 发表于 2015-7-17 11:01
彼端点 1 非此端点 1。
新唐的 EPx,只是硬件的寄存器数组,你认为的 EP1,只是数组中的 1 号(第 2 个)寄 ...

非常感谢

使用特权

评论回复
地板
598330983| | 2015-7-17 15:14 | 只看该作者
USB是四根线还是无根啊。

使用特权

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

本版积分规则

46

主题

91

帖子

1

粉丝