找回密码
 立即注册
查看: 455|回复: 6

关于USB寄存器的使用问题1

[复制链接]
  • TA的每日心情
    开心
    2024-3-25 08:57
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    1

    主题

    5

    回帖

    49

    积分

    新手上路

    积分
    49
    发表于 2023-7-27 16:10:30 | 显示全部楼层 |阅读模式
    本帖最后由 rm543 于 2023-7-27 16:10 编辑

    在STC官方USB双串口例程里, SET_CONFIGURATION() 的过程中有如下代码:


    usb_write_reg(INDEX, 1);
    usb_write_reg(INCSR2, INMODEIN);
    usb_write_reg(INMAXP, EP1IN_SIZE / 8);


    当中第二句,对 INCSR2 寄存器的 MODE 位进行了写 IN 模式的操作,不知道此操作的具体作用是什么?
    下一句为设置 IN 端点最大数据包大小 INMAX ,此寄存器并无描述需要先设置 INCSR2 的 MODE 位才能进行操作。
    且在设置 OUT 端点的过程中亦是先往 INCSR2 中写入了 MODE 位,所以不明白此操作的用意。
    望能有解答。

    (同时提及一下 INCSR2 寄存器的 DMA 控制位应标记为无效?)
    关于USB寄存器的使用问题-1.png

    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 79 天

    [LV.6]常住居民II

    3

    主题

    60

    回帖

    518

    积分

    荣誉版主

    积分
    518
    发表于 2023-11-23 16:57:50 | 显示全部楼层
    同样存在疑惑,希望技术人员能解答下,既然INCSR2是IN端点状态,为何MODE指示位还有2种可能值呢,不理解
    截图202311231656443102.jpg

    点评

    zhp
    这个问题在芯片刚出来时我也问过芯片设计工程师 他给我的答复是: 我们的USB端点都是双向的 IN端点和OUT端点的使能都是通过INCSR2中的MODE位进行设置的  详情 回复 发表于 2023-11-23 17:30
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    4 天前
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    16

    主题

    711

    回帖

    2528

    积分

    超级版主

    积分
    2528
    发表于 2023-11-23 17:30:12 | 显示全部楼层
    yefeng 发表于 2023-11-23 16:57
    同样存在疑惑,希望技术人员能解答下,既然INCSR2是IN端点状态,为何MODE指示位还有2种可能值呢,不理解
    这个问题在芯片刚出来时我也问过内部 R&D
    他们给我的答复是:
    我们的USB端点都是双向的
    IN端点和OUT端点的使能都是通过INCSR2中的MODE位进行设置的
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    4 天前
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    16

    主题

    711

    回帖

    2528

    积分

    超级版主

    积分
    2528
    发表于 2023-11-23 17:33:49 | 显示全部楼层
    usb_write_reg(INCSR2, INMODEIN);
    这句的作用是告诉USB模块,使能的是EP1的IN端点还是OUT端点

    usb_write_reg(INMAXP, EP1IN_SIZE / 8);
    这句是设置IN端点的大小

    IN和OUT端点的使能都通过寄存器INCSR2中的MODE位进行设置
    硬件确实就是这样设计的
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 79 天

    [LV.6]常住居民II

    3

    主题

    60

    回帖

    518

    积分

    荣誉版主

    积分
    518
    发表于 2023-11-23 17:37:16 | 显示全部楼层
    zhp 发表于 2023-11-23 17:30
    这个问题在芯片刚出来时我也问过内部 R&D
    他们给我的答复是:
    我们的USB端点都是双向的

    意思就是说,我可以把IN端点当OUT端点用,反过来把OUT当IN使用,还有个问题:既然INCSR2是状态寄存器,那么它应该是只读的,怎么可以写这个寄存器MODE位来设置IN/OUT模式呢?

    点评

    zhp
    文档里面没有说过INCSR2是只读的状态寄存器 INCSR2是IN endpoint Control Status Register 2 是可读可写的  详情 回复 发表于 2023-11-23 17:41
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    4 天前
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    16

    主题

    711

    回帖

    2528

    积分

    超级版主

    积分
    2528
    发表于 2023-11-23 17:41:42 | 显示全部楼层
    yefeng 发表于 2023-11-23 17:37
    意思就是说,我可以把IN端点当OUT端点用,反过来把OUT当IN使用,还有个问题:既然INCSR2是状态寄存器,那 ...

    文档里面没有说过INCSR2是只读的状态寄存器
    INCSR2是IN endpoint Control Status Register 2
    是可读可写的
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-25 08:57
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    1

    主题

    5

    回帖

    49

    积分

    新手上路

    积分
    49
     楼主| 发表于 2024-3-5 11:14:18 | 显示全部楼层
    zhp 发表于 2023-11-23 17:30
    这个问题在芯片刚出来时我也问过内部 R&D
    他们给我的答复是:
    我们的USB端点都是双向的

    那大致了解了,只是这个控制位放在这个名称的寄存器里面有点让人迷惑。
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-3 21:51 , Processed in 0.080307 second(s), 60 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表