2014-03-27 11:26 PM
Hi All
I have kind of garbage with the uart bootloader. What I do: 1. I tie pins (BOOT0=vcc, BOOT1=gnd). Turn on power. 2. From PC sent 0x7F (57600, 8E1). 3. I get answer from STM32 - 0x79 - that means that everything is OK. 4. Send any other command (e.g. 0x00,0xFF = GET or 0x01, 0xFE). But I get no answer. What could it be? #stm32f407-uart-bootloader2014-03-31 03:05 AM
What I have digged. I debugged bootloader and noticed, that RX pin was pull-up. I made it float and everything started working.
Is it the miracle or the bug? Noone have met this problem? PS: Sorry, I have two accounts here. I deal with it later.2014-03-31 05:54 AM
Noone have met this problem?
Not one I've encountered. The USART technically isn't receiving the initial 0x7F, a timer is measuring the signal and computing a baud rate against the internal clock. If the value is wrong, all subsequent communications will be at the wrong baud rate, and you'll see corrupted characters or garbage.2014-03-31 06:23 AM
I would agreed with you.
But 1. It always respond at the known baud rate (0x7F). I changed from 9600 to 115200. 2. In debug mode I made Rx pin float.And it help. 3. I try with port B (USART3) and it works. 4. I hadn't see any garbage on TX. I need to be sure, that it's the bug or not. Anybody could test Bootloader with stm32f407ig USART1?2014-03-31 06:46 AM
What about an electrical issue ?
Are you using a well known HW or is this your design ? Is there any noticeable difference between USART1 and USART3 connection ? How are you connected to your host machine ? Normally Pull-up shall not hurt, unless the driver on TX side being weak (bad driver, or broken ground).2014-03-31 10:50 PM
This is my device.
I've found my ''bug''. USART1 RX line has serial resitor 10k (for future purpose). USART3 RX is connected directly to RS232-UART. When I'd replaced 10k by 0Ohm, bootloader started working. Now I need to understand why internal pull-up resistor leads to the malfunction.