Skip to main content
Visitor II
July 28, 2025
Question

STM32 SPI FRAM FM25V05 EXTERNAL LOADER ?

  • July 28, 2025
  • 2 replies
  • 627 views

Hello 

 

hope some one can shed some light please,

I have a STM32F446RE board with SPI1 setup for 8pin SPI FRAM memory

I have written my own firmware using DMA / SPI1 to read and write to this FRAM IC

This is a very fast no volatile memory IC that does not have the limitations of standard FLASH memory

Reading and Writing continuously SPI1 40MHz speed

It does not require or use Block / Page / Sector , polling, time delays for write etc.

Its just continually allows write at very high speed, so eliminates all the pain of poor endurance, latency of normal serial flash memory.

 

Can I find an external flash loader routine for this type of memory so I can use STcube programmer to load the FRAM with my custom data, of course not ????

 

Could someone please advise in very basic steps how to create a flash loader for my ST32446

 

I have tried looking at various flash files / github etc. but there is so much code relative to page size, block size, sector size etc. None of that is applicable for me

 

Just need to be able to read and write to the SPI, from cube programmer

 

please can someone advise how to make a simple external loader

 

Thank you 

    This topic has been closed for replies.

    2 replies

    Graduate II
    July 28, 2025

    Just create as a SPI_FLASH or I2C_EEPROM type loader, at a pseudo-address you want it the live in within STM32 Cube Programmers interface.

    Implement Init(), Write() and Read() functions using your BSP/CSP code, you can use whatever UART/Serial interface you want for diagnosis/telemetry like output to understand how it is interacting.

    SectorErase() and MassErase() can basically just return SUCCESS immediately, not sure if I2C_EEPROM model would call or not, easy enough to check / observe, or just succeed.

    Mask the address passed into Read/Write however is appropriate for your memory device, it's just not that complicated.

    Create your input linker script so linker builds the content for your chosen pseudo-address, or go to the programming tab/pane and plug in this address for the .BIN you want to push in.

    JHERIAuthor
    Visitor II
    July 28, 2025

    Thank you for the reply

     

    but as a newbe to this, I have limited knowledge on what you are suggesting, I guess everything is easy when you know how,

     

    But really need much more basic steps

     

    Thank you

    Graduate II
    July 28, 2025

    I'm saying to look at the other External Loader examples and tutorials, and stop focusing on the specifics of FRAM vs others. The memories in most of these instances are just perceived as large linear regions. If they are 256MB or less than can appear to live in an 0x70000000 or 0x90000000 type address space for the purpose of programming.

    Super User
    July 29, 2025

     surley I can not access my FRAM memory by ST programming softwre directly on the SPI1 bus ?

    SPI or Quad-SPI? Please get this straight first. Only QSPI can be memory mapped.

    Just wondered if I can still use the J-Link probes with Cube Programmer 

    Yes, CubeProgrammer should work with J-Link. But J-Link has its own (Segger's) system of external loaders. Not sure how CubeProgrammer copes with this. Thus my advice: avoid any "external loaders" and move to your own software ASAP.

     

     

    JHERIAuthor
    Visitor II
    July 29, 2025

    Thank you for the reply appreciated,

    Thus my advice: avoid any "external loaders" and move to your own software ASAP.

    I guess this will avoid any memory re-mapping and simply work forever as the processor stays in it current working configuration and I am in control of the programming code.

    would you suggest using uart peripheral as the preferred method of sending a hex file to the FRAM, it seems the simplest method to me, but always open for suggestions.

     

    I take onboard your advice and will steer away from external loaders

     

    Thank you 

     

    Super User
    July 29, 2025

    I guess this will avoid any memory re-mapping and simply work forever as the processor stays in it current working configuration and I am in control of the programming code.

    QSPI interface on STM32F4 cannot write in memory-mapped mode. Otherwise you are free to do whatever you need.