在大约 90% 的情况下,由
ti 的降压稳压器 TPS62082 供电的定制板上的
STM32F746 不会启动。
我闪过(它总是工作正常)一个简单的测试程序,它交替闪烁两个 LED:
- int main(void)
- {
- HAL_Init();
- SystemClock_Config();
- MX_GPIO_Init();
- while (1) {
- LED1; // LED1 on, GPIOx->BSRR = ...;
- LED20; // LED2 off, GPIOx->BSRR = ...;
- HAL_Delay(1000);
- LED10; // LED1 off
- LED2; // LED2 on
- HAL_Delay(1000);
- }
- }
STM32 运行在 200 MHz,使用 HSI 和 LSI。在大约 10% 的情况下,打开
电源后,LED 会亮起。其他 90%,两个 LED 都保持黑暗。如果 LED 仍然不亮,通过将 NRST 拉低进行手动复位总是会启动 STM32。
第一个想法是存在电源问题,但我将选项字节中的掉电复位电平设置为 3V 左右。查看稳压器的 Vin (3) 和 Vout (1),电压似乎没问题。(2) 是 GPIO 输出的输出,它在 MX_GPIO_Init() 中被初始化为高电平——但它仍然是低电平,这意味着程序没有被执行。

电压上升到 3.3V 的持续时间超过 1ms,但根据数据表,上升时间并不重要(如果不是太短)。
查看 NRST 引脚(仅连接 10K 上拉电阻,但没有闪光装置),这是曲线 (3),而 (1) 是 Vout,即 STM32 的 Vdd。

增加的 BOD 水平似乎有效;电压稳定后STM32开始工作。
因此,电压似乎对STM32不启动没有影响。还有什么可以阻止创业?