cancel
Showing results for 
Search instead for 
Did you mean: 

Doesn't the MCU coprocessor have non-volatile memory?

Bumsik Kim
Senior

Hi, it looks like the Cortex M4 core in SMP32MP1 doesn't have flash memory or something like eeprom that can be used as non-volatile memory. Is there any "best practices" to give non-volatile data to the Cortex M4?

1 ACCEPTED SOLUTION

Accepted Solutions
PatrickF
ST Employee

RETRAM could be retained in all modes using VBAT in absence of VDD supply.

Note that the Cortex-M4 is seen as a Cortex-A7/Linux coprocessor and cannot boot itself after a reset, SRAMx/RETRAM memories must be loaded by Cortex-A7/Linux side after cold boot.

RETRAM could be used to store code required upon Cortex-M4 wakeup from STANDBY, as it is possible to configure the system to wake-up only M4 (which can than wake up Cortex-A7/Linux later if needed, or go back to STANDBY).

https://wiki.st.com/stm32mpu/wiki/Coprocessor_power_management could give you mode information.

If you want dedicated non-volatile memory for Cortex-M4, depending on your application, external memories could be added using I2C, SPI or QUADSPI peripherals, but still no Cortex-M4 direct boot from it.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

View solution in original post

5 REPLIES 5
PatrickF
ST Employee

RETRAM could be retained in all modes using VBAT in absence of VDD supply.

Note that the Cortex-M4 is seen as a Cortex-A7/Linux coprocessor and cannot boot itself after a reset, SRAMx/RETRAM memories must be loaded by Cortex-A7/Linux side after cold boot.

RETRAM could be used to store code required upon Cortex-M4 wakeup from STANDBY, as it is possible to configure the system to wake-up only M4 (which can than wake up Cortex-A7/Linux later if needed, or go back to STANDBY).

https://wiki.st.com/stm32mpu/wiki/Coprocessor_power_management could give you mode information.

If you want dedicated non-volatile memory for Cortex-M4, depending on your application, external memories could be added using I2C, SPI or QUADSPI peripherals, but still no Cortex-M4 direct boot from it.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

Thank you for the explanation. It helps my understanding about the power mode.

It's a bit shame that the current STM32MP157x Discovery kits and evaluation boards do not seem to have a VBAT pin​ though.

Oh nevermind. I found CN3 which is connected to VBAT in the Discovery Kit. I figured it out while looking at the schematics. It is so weird there is no mention at all about CN3 in the user manual (UM2534).

PatrickF
ST Employee

STM32MP157x EVAL boards have a populated coin cell holder on the bottom of the MB1263 board, should be connected to VBAT using JP3 jumper setting (see schematics).

STM32MP157x Discovery kits have a small connector (CN3) to plug an external CR2032 (or similar) 3V lithium battery wired on a Molex Picoblade 2 circuits pitch 1.25mm type: 51021-0200 (1=VBAT, 2=GND). Compatible type are easy to find, look at "Thinkpad 02K6541" (or 02K6572 / 02K7075 / 02K7087 / 08K8050 / 92P0986 / 92P0991).

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

Thank you very much, Patrick!