class WakeUp - Wake-Up Interrupt

The ordinary GPIOs of the EC600/EC800E series do not support double-edge trigger interrupts, and do not support interrupts to wake up the module during sleep. WakeUp has no pull-up/pull-down restrictions, supports double-edge trigger interrupts and waking up the module during sleep by default. The usage is as follows:

Constructor

class pm.WakeUp(WakeupID, pull)

Parameter:

  • WakeupID - The wakeup number to control, described as follows:
    EC800E:
    WAKEUP2 - Pin 79
    WAKEUP3 - Pin 109 (unavailable for EC800ECN_LE&LQ&LC)
    WAKEUP4 - Pin 108 (unavailable for EC800ECN_LE&LQ&LC)
    WAKEUP5 - Pin 19

    EC600E:
    WAKEUP2 - Pin 9
    WAKEUP3 - Pin 51
    WAKEUP4 - Pin 50
    WAKEUP5 - Pin 39

  • pull - Pull-up/pull-down mode, int type, described as follows:
    PULL_DISABLE – Floating mode 0
    PULL_PU – Pull-up mode 1
    PULL_PD – Pull-down mode 2

Example:

from pm import WakeUp  
def fun(level):
    print(str(level))

wake=WakeUp(WakeUp.WAKEUP5,WakeUp.PULL_PD) 
wake.set_callback(fun)# Set callback, callback only returns level  
wake.enable()# Enable interrupt  

wake.read() #Read pin level

Methods

wake.enable

wake.enable() 

This method is used to enable the WakeUp interrupt. When a rising or falling edge is detected on the WakeUp pin, the callback will be executed.

Return Value:

Returns integer value 0 for success, -1 for failure.

wake.disable

wake.disable()

This method is used to disable the interrupt and disable the interrupt associated with the WakeUp object.

Return Value:

Returns integer value 0 for success, -1 for failure.

wake.read

wake.read()  

This method is used to read the current pin level.

Return Value:

Returns pin level, 0 means low pin level, 1 means high pin level.

wake.deinit

wake.deinit()

Disable WakeUp function.

Return Value:

Returns integer value 0 for success, -1 for failure.

wake.set_callback

Note:

The EG800Z series supports a "deeper sleep" state, which is at a higher sleep level than autosleep. When the module enters this state, the RAM loses power. In this case, although WakeUp can wake up the module through an interrupt, the Python callback cannot be triggered during the wake-up process. After WakeUp wakes up the module through the interrupt and the Python virtual machine restarts, the callback can be triggered normally as long as the module does not enter the deeper sleep state again.

wake.set_callback(fun)

This method is used to set the callback. After the interrupt is triggered, this callback will be executed and return the level.

Parameter:

  • fun - Callback function with prototype:

    fun(level)
    

    Callback function parameter description:

    • level: 0 : low level, 1 : high level.
Module WakeUp Pin Description
EC800E WAKEUP2 - Pin 79
WAKEUP3 - Pin 109 (unavailable for EC800ECN_LE&LQ&LC)
WAKEUP4 - Pin 108 (unavailable for EC800ECN_LE&LQ&LC)
WAKEUP5 - Pin 19
EC600E WAKEUP2 - Pin 9
WAKEUP3 - Pin 51
WAKEUP4 - Pin 50
WAKEUP5 - Pin 39
EC800Z WAKEUP0 - Pin 87(The low-voltage module is pin 107)
WAKEUP2 - Pin 79
WAKEUP3 - Pin 109
WAKEUP4 - Pin 108
WAKEUP5 - Pin 19
EG800Z WAKEUP0 - Pin 87
WAKEUP2 - Pin 79
WAKEUP3 - Pin 5
WAKEUP4 - Pin 6
WAKEUP5 - Pin 19