0

Short version:

I have a MRF24J40MD on a PCB which could require resets every 20 seconds. Is it fine to reinitialize peripherals very often (trigger reset pin then registers initialization)? What could be long-term consequences?

Long version:

I'm using a MRF24J40MD (an IEEE802.15.4 2.4GHz radio module) on a PCB. Since a few months, we're getting radio communications issues. It only affects like 0.01% of our PCB on some specific sites. It never occurred before. Some affected sites were in use since years, some were just installed a few weeks ago. The hardware is the same.

Triggering the hardware RESET pin and then initializing the registers again works to fix the issue.

I've tried to modify the firmware to make it check some of the registers values of the radio module and if they are in their default state again, we perform the reset. Sadly, I've seen on an affected site that the radio module stops communicating but its registers are still correctly configured.

So I'm now thinking of resetting the radio module every 20 seconds without checking anything.

This is certainly EMC related issues but that's not something we could (re)produce in a lab environment during testing. My devices are used in a household environment.

What could be the long-term consequences on the radio module to proceed so? Does it wear out much quicker? It's like ~4320 reset a day. Or maybe a more clever fix?

Carton_
  • 135
  • 7
  • 1
    it's impossible to tell what a reset does to your module. For example, if it writes something to flash memory, that will take a toll on the flash memory; even reading takes a toll, but much less. Other than that, I don't see what would cause problems, other than you congesting your wireless networks with registration traffic. – Marcus Müller Sep 07 '22 at 09:35
  • The reset procedure is exactly this one : https://github.com/RIOT-OS/RIOT/blob/82056d8d2f71845300cd82834955a1f8dcc67fa4/drivers/mrf24j40/mrf24j40_internal.c#L102 So it's only triggering reset pin + writing to registers. The mrf24j40 has no flash memory as far as I know. – Carton_ Sep 07 '22 at 09:42
  • 3
    What I meant is that whatever part of the MRF24j40 bootloader/wifi firmware does at reset, it's hard to know. You have to realize that doing "wifi with a serial interface" means that there's a whole wifi stack, some kind of RTOS, and a serial interface handler running inside the module. It's probably a lot more complex than a whole lot of microcontrollers and their firmware that you find else where in your system. – Marcus Müller Sep 07 '22 at 09:47

0 Answers0