cancel
Showing results for 
Search instead for 
Did you mean: 

Location of MAC address storage in stm32h7 memory

emcewees
Associate

When configuring a network interface, there is usually a hard coded MAC address somewhere in a config file, which is used to setup the interface.

In production this address needs to be unique (purchased). For example in some stm32f4 mcus, there is a small OTP memory which can be used to program/store this unique MAC address and distinguish between them.

In stm32h743 there is no such OTP memory. Is there a recommended location in the internal memory to store this individual address? The regular flash interface/flash memory seems inappropriate, since the whole target sector (128kb) needs to be erased before writing to the sector.

3 REPLIES 3
Peter BENSCH
ST Employee

Welcome, @emcewees​, to the community!

depending in the STM32H7 derivative you have either e.g.:

  • 2KB flash of user option bytes for user configuration
  • 1KB OTP (one-time programmable) containing option bytes for user configuration

Regards

/Peter

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.
TDK
Guru

@Peter BENSCH​ On the STM32H743, how is the 2kB of user option bytes accessed? It is not memory mapped and there isn't an interface defined in the reference manual that I can locate. This is a continual source of confusion here.

If you feel a post has answered your question, please click "Accept as Solution".

Thanks Peter,

I have a STM32H743ZIT. So the way I see it, there is no OTP available in this version. I saw the non-memory mapped 2KB of user option bytes.

From the reference manual (RM0433):

>>> The embedded Flash memory includes a set of non-volatile option bytes. They are loaded at power-on reset and can be read and modified only through configuration registers.

...

Table 21 lists all the user option bytes managed through the embedded Flash memory registers, as well as their default values before the first option byte change (default factory value).

The table lists several bytes (apparently 32 bytes total), which are used for various purposes:

  • Watchdog Management
  • Reset Management
  • Bank Swapping
  • Device options (I/O speed related to low-voltage)
  • Data Protection
  • Boot address

How to access the other 1992B of option bytes you mentioned?

As @TDK​  said, I can't find a way to access these remaining bytes.

It sounds like these 2KB of bytes can be used for arbitrary data.

There seems to be a simmilar post without a solution: How to write non-reserved option bytes on STM32H750xx MCU?