TruConnect power management currently supports a number of power modes:
|awake||All functions available||3.5mA|
|low power advertising||Advertising as peripheral, UART disabled, responds to ||35µA|
|deep sleep||Minimal power state, UART disabled, responds to ||1.65µA|
|power off||Disable external power regulator||0A|
In the following discussion, sleep refers to deep sleep mode.
You can configure your ACKme BLE device to transition between power modes in a variety of ways, depending on the level of GPIOs, and on activity on the UART or wireless BLE interface.
GPIO functions are set with the gfu (GPIO function) command.
sleepwake function is an input:
sleepwakeassert: Wake the module from sleep
sleepwakede-assert: Put the module to sleep
shutdown function is an input. It has two modes:
activityfunction NOT assigned:
shutdownlevel change, module asleep: Wake the module from sleep
shutdownlevel change, module awake: Put the module to sleep
activityfunction IS assigned:
shutdownassert for >1 second: Force the
activity function is an output.
When there is activity on either the BLE interface or the UART, the
activity GPIO level goes high.
The system activity timeout (sy a t) variable determines the period of inactivity before the
activity GPIO goes low.
In low power advertising mode, the module advertises with regular beacons, but minimal other functions are available.
The module awakes from low power advertising mode on:
To set up low power advertising mode, set the system activity timeout (sy a t) variable to a non-zero value, and ensure advertising is on. For example:
adv set sy a t 120
To sleep or wake depending on a GPIO level, assign the GPIO function
sleepwake to a GPIO, using the gfu command:
> gfu <GPIO#> sleepwake
> gfu 8 sleepwake Success
To sleep or wake on a GPIO edge trigger, assign the GPIO function
shutdown to a GPIO, using the gfu command:
> gfu <GPIO#> shutdown
> gfu 8 shutdown Success
Note: In order to use the
shutdown function as a sleep wake toggle in this mode, the
activity function must NOT be assigned to any GPIO. If the
activity function is assigned, the
shutdown function works in a different mode. See Power Down on Inactivity with Manual Shutdown and Power Up below.
To enter sleep mode on timeout, set a non-zero value for the sy s t (system sleep timeout) variable.
When the module is in deep sleep mode, it wakes only on
reset. Advertising is disabled so no activity is possible on the BLE interface. This means that if you remotely set the sy s t variable to put the module to sleep, you should also set the sy w t variable to ensure it will wake up again.
To wake from sleep mode on timeout, set a non-zero value for the sy w t (system wakeup timeout) variable.
For example, to sleep after the minimum 10 seconds, and wake after 5 seconds:
set sy s t 10 set sy w t 5 save reset
set sy s t 0 save
To power down on inactivity, set the
activity GPIO, using the gfu command:
> gfu <GPIO#> activity
activity GPIO to the enable pin on a regulator controlling module power. The regulator may also control power to other devices.
This configuration allows you to power the module down automatically, but not to turn it back on. For a more practical configuration, see Power Down on Inactivity with Manual Shutdown and Power Up below.
activity function alone allows powering down, it can be used in conjunction with the
shutdown function to shut down either automatically or manually, and power up manually.
For this application, assign the
activity functions to two GPIOs, using the gfu command:
> gfu <GPIO-shutdown#> shutdown > gfu <GPIO-activity#> activity
With the circuit shown below, holding down the manual shutdown button for one second shuts down power before system activity timeout elapses. With the system powered down, pressing the manual shutdown button powers the module back up.
Reducing LED blink rate and duty cycle can result in an effective power savings in low power applications.
The sy i s (system indicator status blink behavior) variable allows control of the blink rate and duty cycle of the system indicator function LED.
Toggle sidebar with ctrl+left arrow.