Snippet - Cerb40 RTC standby (deep sleep) demo program

Cerb40 RTC standby (deep sleep) demo program

Program that cycles the Cerb40 into Standby mode and auto wakes up.
When device is in standby mode it wakes up when:

  • AutoWakeUp Timer reaches 0. Wakeup time set in wakeup_time variable
  • pulling the NRST pin low (‘REST’ pin on Cerb40 board)
  • cycling power supply Cerb40 board
  • pulling WKUP pin high (‘PA0’ pin on Cerb40 board)

The program detects when the device is woken up from the AutoWakeUp timer reaching 0, WKUP pin pulled high, NRST pin pulled low or power cycle event.
Periodic wakeup flag is routed to the RTC_ALARM output (pin 2 on the STM32F407(!)).
Pin 2 on the STM32F407 is low when device is active, high when device is in standby mode.

What do you see in the pictures?
The first picture gives an overview of the setup. Below the 3V RTC backup batteries. The black button is connected to the 3V RTC batteries and pin PA0. Pressing the button wakes up the Cerb40 when in standby. The orange wire soldered to the processor is connected to the routed RTC_ALARM output. Top right corner the 3.3V Cerb40 power supply.
The second picture is a detailed picture of the Cerb40. On this picture you can see the two added SMD 8.2 pF capacitors (order number 7512052 RS Online) and the 32.768KHz crystal (order number 6727584 RS Online).
The third picture is a screen shot of the MFDeploy tool when the Cerb40 is started from different wakeup events.

Notes:

  • make sure Cerb40 RTC is functional and an external 3.3V battery is connected to VBAT pin of the Cerb40 board
  • use GHI NETMF v4.2 and .NET Gadgeteer Package Q1 (2-1-2013)
    GHI OSHW NETMF Library v4.2.3.1
    NET Micro Framework 4.2 SDK
    TinyBooter_4_2_3_3.dfu

Used documentation:
[1] : RM0090 Doc ID 018909 Rev 3 November 2012
[2] : PM0214 Doc ID 022708 Rev 3 September 2012

Date : 03-02-2013
Copyright : www.ardea.nl

3 Likes

Very good example

Excellent!