Что это за пин и для чего он нужен?
Все, кто работал с микроконтроллерами STM32 встречали BOOT0 пин, который почти всегда подтянут к земле. Иногда напрямую, иногда через резистор.
Но даже опытные инженеры не всегда знают какую функцию он выполняет.
В чем предназначение микроконтроллера? В том, чтобы выполнять написанный код.
А где этот код взять?
Когда на микроконтроллер подается питание, он запускает boot программу (или bootloader).
Это так сказать "предпрограмма", которая подготавливает микроконтроллер к выполнению вашего кода.
Одна из функций bootloader - определить из какого источника нужно взять прошивку для работы.
Это может быть внутренняя FLASH память микроконтроллера, может быть внешняя память или он может ждать, когда ему придет прошивка по какому-то интерфейсу (типа USB, UART, I2C и т.п.).
Источник прошивки задаётся на hardware уровне. У микроконтроллера есть специально выделенные пины, на которые можно подтянуть 0 или 1. Во время включения контроллера, бутлоадер считает напряжение на этих пинах и таким образом определит откуда ему брать прошивку.
Нулевой уровень на пине BOOT0 у микроконтроллеров STM32 означает, что загружать код нужно из внутренней памяти контроллера. Именно той, куда мы ее зашиваем через программатор.
Но разновидностей STM32 так много, что конфигурации могу отличаться, поэтому проверяйте на всякий случай даташиты.
Post #272
384
- 👍 7
- 🤩 2
- 🫡 2
- 🤷♂ 1