Skip to main content
Visitor II
July 12, 2019
Solved

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

  • July 12, 2019
  • 2 replies
  • 3913 views

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?

    This topic has been closed for replies.
    Best answer by PatrickF

    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.

    2 replies

    PatrickFAnswer
    Technical Moderator
    July 12, 2019

    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.

    Visitor II
    July 12, 2019

    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.

    Technical Moderator
    July 12, 2019

    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).

    Visitor II
    July 12, 2019

    Thank you very much, Patrick!