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

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

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:45
  • 最近打卡:2025-04-28 09:23:48

3

主题

43

回帖

493

积分

中级会员

积分
493
发表于 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

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:116
  • 最近打卡:2025-03-09 18:14:54

3

主题

88

回帖

642

积分

荣誉版主

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

点评

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

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-30 14:38:57

25

主题

977

回帖

3599

积分

超级版主

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

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-30 14:38:57

25

主题

977

回帖

3599

积分

超级版主

积分
3599
发表于 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位进行设置
硬件确实就是这样设计的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:116
  • 最近打卡:2025-03-09 18:14:54

3

主题

88

回帖

642

积分

荣誉版主

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

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

点评

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

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-30 14:38:57

25

主题

977

回帖

3599

积分

超级版主

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

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

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:45
  • 最近打卡:2025-04-28 09:23:48

3

主题

43

回帖

493

积分

中级会员

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

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 14:57 , Processed in 0.116400 second(s), 95 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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