RSL10 weird wake-up behaviour

Dear

We want to use the RSL10 wake-up (on both rising and falling edge in a battery powered solution to wake- up the IC).

We are using standard RSL10 evaluation board (RSL10-001GEVB) and see that the wake-up behavior is acting strange, below a more detailed description of our problem.

We use:

  • ON Semiconductor IDE [2019-06(4.12.0)]
  • RSL10-001GEVB
  • standby_power_mode example

We disable the RTC by changing following line:
ACS->RTC_CTRL = RTC_ALARM_DURATION | RTC_CLK_SRC_XTAL32K; → ACS->RTC_CTRL = RTC_ALARM_DISABLE;

And change following configuration:

    /* Update wake-up configuration and control registers */
    ACS->WAKEUP_CFG = WAKEUP_DELAY_32     |
    				  WAKEUP_WAKEUP_PAD_RISING  |
                      WAKEUP_DIO3_DISABLE |
                      WAKEUP_DIO2_DISABLE |
                      WAKEUP_DIO1_DISABLE |
					  WAKEUP_DIO0_FALLING |
                      WAKEUP_DIO0_ENABLE;

→ we want to test wake-ups on falling and rising edges, what input to use (DIO0/1/2/3 or WAKEUP pin) doesn’t matter since we see the same behaviour below on all pins.

What we see when doing the falling edge is 2 wake-ups: 1 when putting GND to the pin and 1 when pulling
What we see when doing the rising edge is unstable wake-up behaviour (when pushting E.G 10 times it only comes throught 1 or 2 times).

Greetings
Thomas

1 Like

@thomas

Would you please to clarify how are you generating the rising edge for you testing?

Dear,

Tried standard jumper wire and switch.

@thomas
I have tested this on DIO0 with an external push button SW100.

tempsnip


 sleep_mode_flash_env->wakeup_cfg = WAKEUP_DELAY_32          |
                                       WAKEUP_WAKEUP_PAD_FALLING |
                                       WAKEUP_DIO3_DISABLE      |
                                       WAKEUP_DIO2_DISABLE      |
                                       WAKEUP_DIO1_ENABLE      |
                                       WAKEUP_DIO0_ENABLE;


/* The duration LED is on [s] */
#define LED_ON_DURATION                 0.1


/* Enable/disable wake-up by RTC
 * Options are:
 *     - 0: enabled
 *     - 1: disabled */
#define WAKEUP_RTC_ENABLE               0


image


Blue Trace : DIO0
Yellow Trace: Anode LED1


As you can see in sleep _RAM_retention example push button signal triggers LED DIO6 on RSL10 board for 100 ms. (yellow trace) . Please try to simulate this setting on your board and let me know your result.

I tested cfg WAKEUP_DIO0 _ FALLING edge:

 sleep_mode_flash_env->wakeup_cfg = WAKEUP_DELAY_16          |
                                       WAKEUP_WAKEUP_PAD_RISING |
                                       WAKEUP_DIO3_DISABLE      |
                                       WAKEUP_DIO2_DISABLE      |
                                       WAKEUP_DIO1_ENABLE       |
									   WAKEUP_DIO0_FALLING      |
                                       WAKEUP_DIO0_ENABLE;

Power consumption from Sleep to WAKEUP :

Hi Martin,

I use the sleep _RAM_retention example, i’m using the RSL10-002GEVB board, when trying to wake up the RSL10 from DIO0,DIO1, DIO2 and DIO3, only the falling edge is working.

  • The pad input is tied to VDDO for rising edge, a wake up is triggered: KO
  • The pad input is tied to GND for falling edge, a wake up is triggered: OK
    When visualizing this DIOs with oscilloscope , they have a voltage of 2.7V.
    do you have an idea about this issue ?

Best regards,

Had same, add the series resistor and damping cap for sure!

1 Like

Dear Martin

What device you used for the current measurement? Since we think we have a bug for some reason but need to verify.

Greetings
Thomas Van Aken

@thomas

You can use any power profiler that is capable of uA resolution, that would be fine.
We will have our own of solution to provide these kind of measurements soon.

Thank you for using our community forum .

1 Like

@Embed Please try : The pad input is tied to GND (not VDDO ) for rising edge, a wake up is triggered: ?

In addition change this in the code :

sleep_mode_flash_env->wakeup_cfg = WAKEUP_DELAY_16          |
                                       WAKEUP_WAKEUP_PAD_RISING |
                                       WAKEUP_DIO3_DISABLE      |
                                       WAKEUP_DIO2_DISABLE      |
                                       WAKEUP_DIO1_ENABLE  

Hi Martin,

Please try : The pad input is tied to GND ( not VDDO ) for rising edge, a wake up is triggered: ?

In fact, the wake up PAD works either in falling edge or rising edge.

I wanted to say that the problem comes from waking up using DIO0,DIO1, DIO2 and DIO3. Only the falling edge works.

When it’s configured in rising edge, the wake up is triggered too when tied to GND.

Best regards,

@Embed Yes you are correct with configuration of DIO pins to GND as well.

I have tested DIO0 enabled , triggered on RISING edge. - YELLOW trace

You can see 100ms LED_ON_DURATION ( DIO6 GREEN LED) - BLUE trace

.

Please try to change in your main.c file like I did, save and rebuild.

    sleep_mode_flash_env->wakeup_cfg = WAKEUP_DELAY_32          |
                                       WAKEUP_WAKEUP_PAD_RISING |
                                       WAKEUP_DIO3_DISABLE      |
                                       WAKEUP_DIO2_DISABLE      |
                                       WAKEUP_DIO1_DISABLE 		|
									   WAKEUP_DIO0_RISING		|
                                       WAKEUP_DIO0_ENABLE;

Thank you Martin for your help and proposition.

For me, rising edge wake up doesn’t work using DIO pin.

I tired many things but impossible to have this working.

Best regards,

@Embed Would it be possible to use another RSL10 board and test ? Maybe you can attach your project file so I can try it on my RSL10 board.

Hi Martin,

I generated a square signal to the input of the DIO0 and it works fine when configured to rising or falling edge. Below an exemple with rising edge

  • Red signal : The waveform input
  • Blue signal : a GPIO goes to high when RSL10 wakes up.

Best regards,

@Embed Hello, so as I understood this hes been solved , correct?

Sorry, yes, the problem is solved.

Best regards,