UART Bootloader returning wrong Device ID
Hi
i have a product which is using an stm32f070c6 as a co-processor, next to the main processor running linux.
For field updates of the co-processor we are using boot0 and reset pins to get the stm32f07 into the uart bootloader, and then we load the new hex file using the stm32flash tool.
Initially we had an issue with the stm32f07 devices we had, since they were an older date code, and had an issue in the bootloader code, making UART bootloader unusable.
The devices with date codes newer than 818 has been working for us with no problem.
AND HERE IS MY ISSUE. Now i have gotten a shipment of devices with a datecode of 013 (made week 13, 2020), and they are acting up. The stm32flash tool gets the "Device IP" from the bootloader, and uses that to determine flash addresses and such. Well these 013 chips i have return device id 0x0445 (STM32F042xx), which then fails during the flashing process, since the address ranges are different on the two cpus.
stm32flash -w firmware.hex -v -g 0x0 /dev/ttyS0
stm32flash 0.4
http://stm32flash.googlecode.com/
Using Parser : Intel HEX
Interface serial_posix: 57600 8E1
Version : 0x31
Option 1 : 0x00
Option 2 : 0x00
Device ID : 0x0445 (STM32F042xx)
- RAM : 6KiB (6144b reserved by bootloader)
- Flash : 32KiB (sector size: 4x1024)
- Option RAM : 16b
- System RAM : 13KiB
Write to memory
Erasing memory
Wrote and verified address 0x08008000 (40.50%) Done.
Starting execution at address 0x08000000... Failed to read ACK byte
failed.Flashing with an external debugger (ST link), works fine.
Nothing has changed in the system og the application hex file.
Any ideas, og have anyone experienced this?
