nRF7002 OTP Programming

I'm using the nrf7002 on a custom PCB, so its a brand new chip. I haven't done any OTP programming for the mac address and instead it's just a hardcoded mac address that's used at run time. Since I'm using a custom linux driver and not the standard nrf SDK, I was hoping to get some guidance on how to program the mac address. I've read this document, which goes over commissioning and it looks like I need to add some way to write to region protect (0x40), and Mac address 0 (0x48). It also states that it needs to reset after setting the unlock command. So from this I just want to confirm that this is the order of operations:

  1. Use Radio test firmware for nRF7002
  2. Write to protect address (0x40) the unlock sequence (0x50FA50FA)
  3. Reset chip (or power cycle PCB)
  4. Write to mac address 0 (0x48) the mac address for vif0
  5. (optional) Write to mac address 1 (0x4A) the mac address for vif1
  6. Write to protect address (0x40) the protected sequence (0x00000000)

I'll be using ficr_prog functions from nrfxlib to write to OTP, so I assume I don't need to update any mask values. Is this correct?

  • Hi

    I can't vouch for the custom hard coding you're doing, as I don't have a way to verify everything will be set correctly since I'm not familiar with this way of doing thing, so take my reply with a grain of salt. But I assume you are if you've opted custom drivers instead of our SDK and solution.

    But yes, from the radio test sample, you can:

    • Set the protection registers to enable R/W accress, (params being 0x100 0x50FA50FA)
    • Reboot (power cycle) the device. 
    • Update the OTP memory registers
    • Set the OTP memory to a protected state with the params 0x100 0x00000000.

    So yes, the description and order of operations you describe seems correct.

    Best regards,

    Simon

Related