cancel
Showing results for 
Search instead for 
Did you mean: 

STM32 SPI FRAM FM25V05 EXTERNAL LOADER ?

JHERI
Senior

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 

3 REPLIES 3

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.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

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

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.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..