Hi,
I'm using nRF5340 + nRF7002 for project that use wifi but I have issue while reading the default MAC before recording a new one.
The products are tested inside a testbench (each test is the exact same sequence) and for the first test of each PCBA, the MAC readed is as below (MAC0.ADDRESS = 00:00:00:00:00:00):
TX: wifi_radio_ficr_prog otp_write_params 0x100 0x50FA50FA RX: wifi_radio_ficr_prog otp_write_params 0x100 0x50FA50FA RX: OTP Region is unprogrammed - program to enable R/W RX: RX: Finished Writing OTP params RX: uart:~$ [m[8D[J[00:00:42.561,462] [0m<inf> otp_prog: Written REGION_PROTECT0 (0x100) : 0x50fa50fa TX: wifi_radio_ficr_prog otp_read_params RX: wifi_radio_ficr_prog otp_read_params RX: OTP Region is open for R/W RX: RX: PRODTEST.FT.PROGVERSION = 0xff0700ff RX: RX: PRODTEST.TRIM0 = 0x00090406 RX: PRODTEST.TRIM1 = 0x0009d407 RX: PRODTEST.TRIM2 = 0x0009d807 RX: PRODTEST.TRIM3 = 0x000f040b RX: PRODTEST.TRIM4 = 0x000fd407 RX: PRODTEST.TRIM5 = 0x000fd807 RX: PRODTEST.TRIM6 = 0xffffffff RX: PRODTEST.TRIM7 = 0xffffffff RX: PRODTEST.TRIM8 = 0xffffffff RX: PRODTEST.TRIM9 = 0xffffffff RX: PRODTEST.TRIM10 = 0xffffffff RX: PRODTEST.TRIM11 = 0xffffffff RX: PRODTEST.TRIM12 = 0xffffffff RX: PRODTEST.TRIM13 = 0xffffffff RX: PRODTEST.TRIM14 = 0xffffffff RX: RX: INFO.PART = 0x00007002 RX: INFO.VARIANT = 0x00423030 RX: RX: INFO.UUID0 = 0xd083f37a RX: INFO.UUID1 = 0x11ee6f8d RX: INFO.UUID2 = 0xcd5103cc RX: INFO.UUID3 = 0x6f83c0a1 RX: RX: REGION.PROTECT0 = 0x50fa50fa RX: REGION.PROTECT1 = 0x50fa50fa RX: REGION.PROTECT2 = 0x50fa50fa RX: REGION.PROTECT3 = 0x50fa50fa RX: RX: MAC0.ADDRESS0 = 0x00000000 RX: MAC0.ADDRESS1 = 0x00000000 RX: MAC0.ADDRESS = 00:00:00:00:00:00 RX: RX: MAC1.ADDRESS0 = 0x00000000 RX: MAC1.ADDRESS1 = 0x00000000 RX: MAC1.ADDRESS = 00:00:00:00:00:00 RX: RX: CALIB.XO = 0x00 RX: REGION_DEFAULTS = 0x00000000 RX: RX: uart:~$ [m
While a second test for the same PCBA will show the correct default MAC (MAC0.ADDRESS = ff:ff:ff:ff:ff:ff):
TX: wifi_radio_ficr_prog otp_write_params 0x100 0x50FA50FA RX: wifi_radio_ficr_prog otp_write_params 0x100 0x50FA50FA RX: OTP Region is open for R/W RX: RX: Finished Writing OTP params RX: uart:~$ [m[8D[J[00:00:42.548,858] [0m<inf> otp_prog: Written REGION_PROTECT0 (0x100) : 0x50fa50fa[0m TX: wifi_radio_ficr_prog otp_read_params RX: wifi_radio_ficr_prog otp_read_params RX: OTP Region is open for R/W RX: RX: PRODTEST.FT.PROGVERSION = 0xff0700ff RX: RX: PRODTEST.TRIM0 = 0x00090406 RX: PRODTEST.TRIM1 = 0x0009d407 RX: PRODTEST.TRIM2 = 0x0009d807 RX: PRODTEST.TRIM3 = 0x000f040b RX: PRODTEST.TRIM4 = 0x000fd407 RX: PRODTEST.TRIM5 = 0x000fd807 RX: PRODTEST.TRIM6 = 0xffffffff RX: PRODTEST.TRIM7 = 0xffffffff RX: PRODTEST.TRIM8 = 0xffffffff RX: PRODTEST.TRIM9 = 0xffffffff RX: PRODTEST.TRIM10 = 0xffffffff RX: PRODTEST.TRIM11 = 0xffffffff RX: PRODTEST.TRIM12 = 0xffffffff RX: PRODTEST.TRIM13 = 0xffffffff RX: PRODTEST.TRIM14 = 0xffffffff RX: RX: INFO.PART = 0x00007002 RX: INFO.VARIANT = 0x00423030 RX: RX: INFO.UUID0 = 0xd083f37a RX: INFO.UUID1 = 0x11ee6f8d RX: INFO.UUID2 = 0xcd5103cc RX: INFO.UUID3 = 0x6f83c0a1 RX: RX: REGION.PROTECT0 = 0x50fa50fa RX: REGION.PROTECT1 = 0x50fa50fa RX: REGION.PROTECT2 = 0x50fa50fa RX: REGION.PROTECT3 = 0x50fa50fa RX: RX: MAC0.ADDRESS0 = 0xffffffff RX: MAC0.ADDRESS1 = 0xffffffff RX: MAC0.ADDRESS = ff:ff:ff:ff:ff:ff RX: RX: MAC1.ADDRESS0 = 0xffffffff RX: MAC1.ADDRESS1 = 0xffffffff RX: MAC1.ADDRESS = ff:ff:ff:ff:ff:ff RX: RX: CALIB.XO = 0xff RX: REGION_DEFAULTS = 0xffffffff RX: RX: uart:~$ [m
The MAC cannot be written when it's at 00:00:00:00:00:00. The readback will show the correct default MAC.
What can cause the first read to not display ff:ff:ff:ff:ff:ff ?
Note:
- We already run production with the product and we didn't get this issue.
- I use TLL-RS232 USB/serial converter with python to automatize the testbench sequence and communicate with the target
Best regards,
Antoine