[riot-commits] [RIOT-OS/RIOT] 611f41: drivers/at86rf215: fix reset after deep sleep

Francisco noreply at github.com
Fri Apr 3 09:04:54 CEST 2020


  Branch: refs/heads/master
  Home:   https://github.com/RIOT-OS/RIOT
  Commit: 611f4161d6ee78e9de1d0207dd3b78a9df721bce
      https://github.com/RIOT-OS/RIOT/commit/611f4161d6ee78e9de1d0207dd3b78a9df721bce
  Author: Benjamin Valentin <benpicco at googlemail.com>
  Date:   2020-03-29 (Sun, 29 Mar 2020)

  Changed paths:
    M drivers/at86rf215/at86rf215_internal.c

  Log Message:
  -----------
  drivers/at86rf215: fix reset after deep sleep

When the radio is in DEEP SLEEP, reading the state register will return 0.
This makes the reset routine abort early even though the device is connected
and still waking up.

Instead, just add a timeout to the polling of the WAKEUP IRQ bit.
In practise it has shown that the loop will be taken two times on 'normal'
reset and four times when the radio was in DEEP SLEEP.

Polling 255 times sure does not hurt.

To reproduce the issue, put both interfaces into SLEEP mode,
then reboot the module:

    ifconfig 7 set state sleep
    ifconfig 8 set state sleep
    reboot


  Commit: d4580b4c36c00d6a06963ec9ca73d7c8048cf76e
      https://github.com/RIOT-OS/RIOT/commit/d4580b4c36c00d6a06963ec9ca73d7c8048cf76e
  Author: Francisco <femolina at uc.cl>
  Date:   2020-04-03 (Fri, 03 Apr 2020)

  Changed paths:
    M drivers/at86rf215/at86rf215_internal.c

  Log Message:
  -----------
  Merge pull request #13750 from benpicco/drivers/at86rf215_fix_wakeup

drivers/at86rf215: fix reset after deep sleep


Compare: https://github.com/RIOT-OS/RIOT/compare/fdaf1ac6fe35...d4580b4c36c0


More information about the commits mailing list