STM32
直播中

王英

8年用户 1396经验值
私信 关注
[问答]

STM32F411 USB全速设备AHB频率30MHz才能正常使用,为什么?

最近正在做使用STM32F411实现USB  U盘功能,发现仅仅满足USB的48MHz频率, USB FS外设不一定能够正常工作。

在411的参考手册中,有备注USB OTG FS外设要想正常工作,AHB频率必须高于14.2MHz。我尝试过24MHz、25MHz,结果USB OTG FS都不能正常工作,至少要30MHz才行。这就非常才怪了,不知道大家有没有遇到类似的情况,因为30MHz这个条件是用于USB OTG HS外设的,而411只支持全速 USB外设。

回帖(2)

马龙

2024-4-30 14:24:11
你可以看下芯片手册的clock tree  有些芯片PLL是已经默认先2分频,再到AHB的。你可以用示波器验证下时钟输出是不是有那么高频率。
举报

可口可甜

2024-4-30 16:58:40
STM32F411是一款基于ARM Cortex-M4处理器的微控制器,具有USB全速设备功能。在设计USB全速设备时,确实需要考虑AHB总线频率对USB外设的影响。根据STM32F411的参考手册,USB OTG FS外设要想正常工作,AHB频率必须高于14.2MHz。然而,在实际应用中,可能需要更高的AHB频率才能保证USB外设的稳定运行。

以下是一些可能导致需要更高AHB频率的原因:

1. 时钟分配:在STM32F411中,系统时钟(SYSCLK)需要分配给不同的外设,包括AHB、APB1和APB2。如果其他外设占用了较多的时钟资源,可能导致USB外设的时钟频率降低,从而影响其正常工作。

2. 时钟稳定性:在某些情况下,系统时钟的稳定性可能受到其他因素的影响,如电源电压波动、温度变化等。这可能导致实际的AHB频率低于预期值,从而影响USB外设的性能。

3. 外设负载:在STM32F411中,除了USB外设之外,还可能存在其他外设,如ADC、定时器等。这些外设的运行可能会对AHB总线产生额外的负载,导致USB外设的时钟频率降低。

4. 软件配置:在实际应用中,软件配置也可能影响USB外设的性能。例如,如果中断服务程序(ISR)的执行时间过长,可能导致USB外设的数据处理延迟,从而影响其正常工作。

5. 硬件设计:在硬件设计过程中,可能存在一些不规范的操作,如时钟树的配置错误、时钟信号的布线不合理等。这些问题可能导致实际的AHB频率低于预期值,从而影响USB外设的性能。

为了解决这个问题,可以尝试以下方法:

1. 优化时钟分配:合理分配系统时钟资源,确保USB外设能够获得足够的时钟频率。

2. 检查时钟稳定性:确保电源电压稳定,避免温度变化对时钟稳定性的影响。

3. 减少外设负载:尽量减少其他外设对AHB总线的负载,以提高USB外设的时钟频率。

4. 优化软件配置:优化中断服务程序的执行时间,避免数据处理延迟。

5. 检查硬件设计:确保时钟树的配置正确,时钟信号的布线合理。

总之,虽然STM32F411的参考手册中提到USB OTG FS外设的AHB频率要求为高于14.2MHz,但在实际应用中,可能需要更高的AHB频率才能保证USB外设的稳定运行。通过优化时钟分配、检查时钟稳定性、减少外设负载、优化软件配置和检查硬件设计,可以提高USB外设的性能,使其在较低的AHB频率下也能正常工作。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分