2017-09-07 09:25 PM
Hello ,
In this picture Bootloader of stm32f446X tries to read 0x7f from the usart without initializing the usart. how that is possible ? it configures the USART later. am i missing something ?
also why 0x7f is chosen ? any reason behind this ?
I am guessing bootloader does not read 0x7f from the USART data register, please clarify .. Thank you
#stm32 #stm32-bootloader
2017-09-08 01:40 AM
Hi
n.serina
,In this picture Bootloader of stm32f446X tries to read 0x7f from the usart without initializingthe usart. how that is possible ? it configures the USART later. am i missing something ?
also why 0x7f is chosen ? any reason behind this ?
Once the system memory boot mode is entered and the STM32 microcontroller has been configured the bootloader code begins to scan the USARTx_RX line pin (used as GPIO to detect the edge: USART not yet configured) , waiting to receive the 0x7F data frame: one start bit, 0x7F data bits, even parity bit and one stop bit.
The duration of this data frame is measured using the Systick timer. The count value of the timer is then used to calculate the corresponding baud rate factor with respect to the current system clock.
I recommend you to refer to
(Software automatic baud rate detection) and applications note.-Nesrine-
2017-09-08 04:56 AM
Seem to recall them using the pin as a TIM input, SysTick not really having sufficient granularity.