STM32 晶振不起振,180Hmz跑飞解决办法

在调试STM32F429IGT6核心板时,发现使用25M晶振无法稳定起振,更换为8M晶振后问题解决。进一步排查发现VCAP1和VCAP2引脚上的对地电容过小导致内部主调压器工作不稳定。官方推荐电容值为2.2uF,调整后系统运行正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天在调试自己做的STM32F429IGT6核心板的时候,发现使用外部25M晶振时一直不能起振,或者所有时起振但是不稳地,程序中非常容易跑飞,换了一个8M的晶振,发现没有问题。调了一下午,最后发现是因为VCAP1,VCAP2两个引脚接的对地电容太小了,这两个管脚接电容是为了保证内部的主调压器工作稳定,如果太小会导致内部工作不稳定,程序容易跑飞等问题。我焊接的是1uF的,官方推荐是2.2uF,换上后一切都正常了。如图

STM32系列微控制器的外时钟(通常用于提高系统频率)配置为72MHz,需要完成以下几个步骤: 1. **时钟源选择**:首先,你需要确定使用哪种时钟源。对于STM32F4/F7等基于HCLK的处理器,一般可以选择HSI、HSE、PLL(如果可用的话)作为主时钟源。72MHz通常是指内部高速振荡器HSI(High Speed Internal Oscillator),默认频率大约在8MHz~16MHz。 2. **HSI启动和等待稳定**:如果你选择HSI作为时钟源,需要确保它已经启动并且足够稳定。这通常涉及设置相关的寄存器(如RCC_CR、RCC_HSE_BYPASS、RCC_HSION等)并等待一定时间让HSI自稳。 3. **HSI分频**:由于HSI初始频率低于目标值,所以需要对HSI进行分频。例如,对于STM32F4,可以通过设置PLLI2SCK Prescaler(如RCC_PLLCFGR2.PLLI2SCK)来将HSI频率提升到更高值。 4. ** PLL配置**:如果目标频率超过HSI的最大频率,可以启用PLL(如果支持)。配置好PLL的输入源(比如HSI),倍数以及分频因子,使之生成72MHz。在RCC_PLLCR寄存器中设置相应的参数,并开启PLL(RCC_PLLON)。 5. **系统时钟设置**:配置完PLL后,通过RCC_CFGR寄存器设置系统的预分频器(PCLK1)和APB时钟预分频器(PCLK2)为整数倍于72MHz,以得到所需的系统工作频率。 6. **确认和验证**:在应用前,务必使用STM32的调试工具或通过代码检查实际的时钟频率是否达到72MHz,确保配置无误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值