使用STM32G030C8T6过程中,发现给单片机供电的上电启动时间会影响单片机HSE的工作,上电时间长,HSE不工作,上电时间短时则HSE可以工作。 我的问题: 1、给STM32G030C8T6供电的上电启动时间会影响STM32G030C8T6的什么地方从而使HSE不能正常工作?真正的原因是什么? 2、有没有什么方法可以实现电路板的小改动来解决目前的问题? 3、如果STM32G030的HSE工作真的会受启动时间影响,在选择供电芯片时应该注意哪些参数? 4、有没有什么其他影响HSE工作的因素? 具体描述如下: 1、我的原理图: GND与DGND通过一个0R电阻连接 2、程序 程序用STM32CubeMX配置生成。 3、现象 当使用CUBE将PLL配置为HSI时,程序可以正常运行,但是将PLL配置为HSE时,程序会在执行SystemClock_Config();函数过程中卡在下图的223行。 进一步查看,程序卡在stm32g0xx_hal_rcc.c的第356行,如下图。 用示波器查看外部的有源晶振波形,显示波形正常。 将与单片机有连接的其他芯片全部拆除,只保留单片机最小系统,经过多次试验,发现与TPS5410的上电时间长有关系,将TPS5410替换为TPS54332之后,在仿真时SystemClock_Config();函数可正常运行,TPS54332的电路图如下图,在试验时,已经将TPS54332的输出电压根据试验需要改为5.2V或6V。 原电路图TPS5410上电启动波形如下图: 原电路图LM1117 3.3V上电启动波形如下图: TPS54332上电启动波形(图中黄色波形): 将TPS5410替换成TPS54332后,LM1117 3.3V的上电启动波形: 4、进一步的试验: 为了排除LM1117 LDO的影响因素,将LM1117替换为同封装不同型号的其他3.3V固定输出芯片,共替换了5片,现场均与上述描述一致,HSE不工作。 为了排除LP38692 LDO的影响因素,将TPS5410电路更改为输出5.2V,直接用TPS5410给LM1117供电,现象与上述描述一致,HSE不工作。 用TPS54332给TPS73701供电,再用TPS73701给STM32G030供电,HSE可正常工作。 …………类似试验得出的结论是:只要用到TPS5410 HSE就不能正常工作,猜测与上电启动时间长有关。 为了验证是否真的与上电时长有关,用TPS54332直接给LM1117供电来试验。通过更改TPS54332的4脚SS处连接的电容容值来更改TPS54332启动时长。原来的原理图中用的电容是8.2nF,根据下图公式得出启动时间是3.28ms,实际测得的约4ms。 电容值为8.2nF时(HSE工作正常): TPS54332启动波形(图中黄色线): LM1117启动波形(图中黄色线): 将电容改为22nf(HSE工作不正常): TPS54332启动波形(图中黄色线): LM1117启动波形(图中黄色线): 将电容改为6.8nf(HSE工作正常): TPS54332启动波形(图中黄色线): LM1117启动波形(图中黄色线): 此外,还将容值改为了15nf(HSE工作不正常)、10nf(HSE工作不正常)、5.6nf(HSE工作正常)、3.3nf(HSE工作正常),还试验了其他LDO,结论:LDO的上电启动时间小于2ms时,STM32G030的HSE可正常配置,可正常工作。 |
STM32G030F6 ADC+DMA多通道非连续采样无法正常工作?
STM32G0B1VE的CAN过滤器个数问题
STM32G0B1adc+dma采样数据错位
有没有stm32g071 Discovery kit的micropython的固件
STM32G0B1CBT6 Flash 不能写擦除,更不要说写入?fal库示例代码哪里有,分享一下,谢谢
STM32G031G6U6 PA8无法输出高低电平
STM32G071CBT6技术支持
基于GCC编译器的initcall在STM32如何实现?
stm32cubeide新用户无法注册
关于stm32g系列usart5的问题