[技术问答]

HC32F460芯片的USB疑问

[复制链接]
1708|7
手机看帖
扫描二维码
随时随地手机跟帖
Alf76|  楼主 | 2025-4-4 12:20 | 显示全部楼层 |阅读模式
本帖最后由 Alf76 于 2025-4-4 12:22 编辑

在开发USB设备应用时,有以下疑问:

1. 设备的VBUS检测功能在程式库中是用VBUS_SENSING_ENABLED来打开的,但就只有VBUS上升中断,没有VBUS下降或是电平检测的代码。那么在VBUS拔掉后是怎么处理的?在参考手册中找相于VBUS电平的寄存器只有GVBUSCFG.VBUSVAL,但这个看来只是用来覆盖内部检测到的电平,并不反映VBUS电平。那么电平会反映到跟VBUS同一出脚的GPIO中吗?还是要用另外的GPIO来看或者是干脆不用这功能?

2. 程式库把GUSBCFG的TRDT都设定为15,而不是按手册描述的公式设定,TOCAL就完全没碰过。有没有什么情况要调整这两个数值?

3. (不太技术的问题)ST的芯片可以问ST授权USB的VID和PID,小华有这方面的服务吗?

使用特权

评论回复
caigang13| | 2025-4-5 11:06 | 显示全部楼层
国产芯片在开发难度上确实要大些。

使用特权

评论回复
chenjun89| | 2025-4-5 16:46 | 显示全部楼层
MCU内部的ADC输入都可以直接与VCC相连用于检测电压。

使用特权

评论回复
丙丁先生| | 2025-4-6 04:57 | 显示全部楼层
以下是针对你的问题的解答:


1.VBUS检测及处理

• VBUS下降检测:VBUS下降检测通常需要额外的硬件支持或软件实现。在一些STM32芯片中,VBUS检测功能可能仅支持上升沿中断。如果需要检测VBUS下降,可以通过以下方式实现:

• 使用GPIO检测:将VBUS信号连接到一个GPIO引脚,并通过软件轮询或配置GPIO中断来检测VBUS电平的变化。

• 外部电路检测:设计一个外部电路,如电压比较器,将VBUS电平变化转换为数字信号,再通过GPIO输入到芯片。

• VBUS电平反映:VBUS电平不会直接反映到与VBUS同脚的GPIO中,而是通过内部检测电路来判断VBUS状态。如果需要获取VBUS电平,可以使用上述方法通过GPIO或其他方式检测。


2.GUSBCFG寄存器中的TRDT和TOCAL

• TRDT:TRDT是USB总线的回转时间(Turn-Around Time),它定义了USB设备在检测到总线空闲后,需要等待的时间才能开始发送数据。在某些情况下,可能需要根据实际的硬件环境和传输速率调整TRDT值,例如在高速或低速传输时,可能需要调整TRDT以优化性能。

• TOCAL:TOCAL是USB总线的超时计数器,用于检测总线是否空闲。在某些特定的应用场景中,如果需要调整总线超时时间,可以修改TOCAL的值。


3.ST芯片的USB授权
ST公司提供USB的VID(Vendor ID)和PID(Product ID)授权服务。小华半导体也有类似的服务,可以向其申请授权。

使用特权

评论回复
丙丁先生| | 2025-4-6 04:57 | 显示全部楼层
以下是针对你的问题的解答:


1.VBUS检测及处理

• VBUS下降检测:VBUS下降检测通常需要额外的硬件支持或软件实现。在一些STM32芯片中,VBUS检测功能可能仅支持上升沿中断。如果需要检测VBUS下降,可以通过以下方式实现:

• 使用GPIO检测:将VBUS信号连接到一个GPIO引脚,并通过软件轮询或配置GPIO中断来检测VBUS电平的变化。

• 外部电路检测:设计一个外部电路,如电压比较器,将VBUS电平变化转换为数字信号,再通过GPIO输入到芯片。

• VBUS电平反映:VBUS电平不会直接反映到与VBUS同脚的GPIO中,而是通过内部检测电路来判断VBUS状态。如果需要获取VBUS电平,可以使用上述方法通过GPIO或其他方式检测。


2.GUSBCFG寄存器中的TRDT和TOCAL

• TRDT:TRDT是USB总线的回转时间(Turn-Around Time),它定义了USB设备在检测到总线空闲后,需要等待的时间才能开始发送数据。在某些情况下,可能需要根据实际的硬件环境和传输速率调整TRDT值,例如在高速或低速传输时,可能需要调整TRDT以优化性能。

• TOCAL:TOCAL是USB总线的超时计数器,用于检测总线是否空闲。在某些特定的应用场景中,如果需要调整总线超时时间,可以修改TOCAL的值。


3.ST芯片的USB授权
ST公司提供USB的VID(Vendor ID)和PID(Product ID)授权服务。小华半导体也有类似的服务,可以向其申请授权。

使用特权

评论回复
丙丁先生| | 2025-4-6 04:57 | 显示全部楼层
以下是针对你的问题的解答:


1.VBUS检测及处理

• VBUS下降检测:VBUS下降检测通常需要额外的硬件支持或软件实现。在一些STM32芯片中,VBUS检测功能可能仅支持上升沿中断。如果需要检测VBUS下降,可以通过以下方式实现:

• 使用GPIO检测:将VBUS信号连接到一个GPIO引脚,并通过软件轮询或配置GPIO中断来检测VBUS电平的变化。

• 外部电路检测:设计一个外部电路,如电压比较器,将VBUS电平变化转换为数字信号,再通过GPIO输入到芯片。

• VBUS电平反映:VBUS电平不会直接反映到与VBUS同脚的GPIO中,而是通过内部检测电路来判断VBUS状态。如果需要获取VBUS电平,可以使用上述方法通过GPIO或其他方式检测。


2.GUSBCFG寄存器中的TRDT和TOCAL

• TRDT:TRDT是USB总线的回转时间(Turn-Around Time),它定义了USB设备在检测到总线空闲后,需要等待的时间才能开始发送数据。在某些情况下,可能需要根据实际的硬件环境和传输速率调整TRDT值,例如在高速或低速传输时,可能需要调整TRDT以优化性能。

• TOCAL:TOCAL是USB总线的超时计数器,用于检测总线是否空闲。在某些特定的应用场景中,如果需要调整总线超时时间,可以修改TOCAL的值。


3.ST芯片的USB授权
ST公司提供USB的VID(Vendor ID)和PID(Product ID)授权服务。小华半导体也有类似的服务,可以向其申请授权。

使用特权

评论回复
发顺丰更大nc| | 2025-4-23 10:43 | 显示全部楼层
有没有什么情况要调整这两个数值?

使用特权

评论回复
Amazingxixixi| | 2025-4-24 15:03 | 显示全部楼层
学习一下啊!感觉有点知识慌了

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝