2021-09-27 06:21 AM
Hi,
I have a very specific question regaridng the functionalities of the STM32L4's internal bootloader. We are using its functionality to flash and validate our targets according to AN3155 and AN2606. This operates quite well. But now we came into the situation where we need to get the identifying information from the STM32L43xx from which we are using two different variants (STM32L431CB and STM32L431CC). Both distinguish only in their flash sizes (128kB vs. 256kB).
We tried to get this flash size information via the bootloader protocol. The GetID command only seems to provide an identifier for the STM32L43xx family (0x491). But it is not specific for the flash size of the device.
We also tried to read the Device electronic signature registers which hold these flash size information (according to RM0394, ch 47). But the internal bootloader does not seem to have access to these registers. Entering the address 0x1fff75e0 (Flash size data register) results in a NACK. Also entering the addresses in a 256 alignment to reach this register (0x1fff7500) is not successful.
We also dived into other stm32 flasher projects, like this: https://github.com/florisla/stm32loader. There we tried to find out how other STM32 families device ID info, and especially their flash sizes, are retrieved via internal bootloader. But it seems that the STM32L43xx has no option to get the flash size via internal bootloader protocol.
So, now I landed here and hope that someone of you has an idea how to get the flash size via internal STM32 bootloader protocol. Is there anyone who had the same issue and found a soultion for it?
Thank you very much in advance!
2021-09-27 06:30 AM
Perhaps you can upload a small applet into SRAM and GO to that?
The chips you mention have the same die, the 128KB part has half the memory tested.
I haven't disassembled the ROM on these, so not looked at specific limitations in the memory read functionality.