Hardware (hardware)

The commands and events in this class can be used to access and configure the system hardware and peripherals.

hardware commands

hardware_enable_dcdc

Deprecated. This command can be used to enable or disable DC/DC.

Command

Byte Type Name Description
0 0x20 hilen Message type: Command
1 0x01 lolen Minimum payload length
2 0x0c class Message class:Hardware
3 0x0d method Message ID
4 uint8 enable Set DC/DC as enabled or disabled.
  • 0: disabled
  • 1: enabled

Response

Byte Type Name Description
0 0x20 hilen Message type: Response
1 0x02 lolen Minimum payload length
2 0x0c class Message class:Hardware
3 0x0d method Message ID
4-5 uint16 result Result code
  • 0: success
  • Non-zero: an error occurred
For other values refer to the Error codes

API

/* Function */
struct gecko_msg_hardware_enable_dcdc_rsp_t *gecko_cmd_hardware_enable_dcdc(uint8 enable);

/* Response id */
gecko_rsp_hardware_enable_dcdc_id

/* Response structure */
struct gecko_msg_hardware_enable_dcdc_rsp_t
{
  uint16 result
}

hardware_get_time

Deprecated. Get elapsed time since last reset of RTCC

Command

Byte Type Name Description
0 0x20 hilen Message type: Command
1 0x00 lolen Minimum payload length
2 0x0c class Message class:Hardware
3 0x0b method Message ID

Response

Byte Type Name Description
0 0x20 hilen Message type: Response
1 0x06 lolen Minimum payload length
2 0x0c class Message class:Hardware
3 0x0b method Message ID
4-7 uint32 seconds seconds since last reset
8-9 uint16 ticks Subsecond ticks of hardware clock, range 0-32767

API

/* Function */
struct gecko_msg_hardware_get_time_rsp_t *gecko_cmd_hardware_get_time();

/* Response id */
gecko_rsp_hardware_get_time_id

/* Response structure */
struct gecko_msg_hardware_get_time_rsp_t
{
  uint32 seconds,
  uint16 ticks
}

hardware_set_lazy_soft_timer

This command can be used to start a software timer with some slack. Slack parameter allows stack to optimize wake ups and save power. Timer event is triggered between time and time + slack. See also description of hardware_set_soft_timer command.

Command

Byte Type Name Description
0 0x20 hilen Message type: Command
1 0x0a lolen Minimum payload length
2 0x0c class Message class:Hardware
3 0x0c method Message ID
4-7 uint32 time Interval between how often to send events, in hardware clock ticks (1 second is equal to 32768 ticks).

The smallest interval value supported is 328 which is around 10 milliseconds, any parameters between 0 and 328 will be rounded up to 328. The maximum value is 2147483647, which corresponds to about 18.2 hours.

If time is 0, removes the scheduled timer with the same handle.
8-11 uint32 slack Slack time in hardware clock ticks
12 uint8 handle Timer handle to use, is returned in timeout event
13 uint8 single_shot Timer mode. Values:
  • 0: false (timer is repeating)
  • 1: true (timer runs only once)

Response

Byte Type Name Description
0 0x20 hilen Message type: Response
1 0x02 lolen Minimum payload length
2 0x0c class Message class:Hardware
3 0x0c method Message ID
4-5 uint16 result

API

/* Function */
struct gecko_msg_hardware_set_lazy_soft_timer_rsp_t *gecko_cmd_hardware_set_lazy_soft_timer(uint32 time, uint32 slack, uint8 handle, uint8 single_shot);

/* Response id */
gecko_rsp_hardware_set_lazy_soft_timer_id

/* Response structure */
struct gecko_msg_hardware_set_lazy_soft_timer_rsp_t
{
  uint16 result
}

Events generated

Event Description
hardware_soft_timer Sent after specified interval

hardware_set_soft_timer

This command can be used to start a software timer. Multiple concurrent timers can be running simultaneously. There are 256 unique timer IDs available. The maximum number of concurrent timers is configurable at device initialization. Up to 16 concurrent timers can be configured. The default configuration is 4. As the RAM for storing timer data is pre-allocated at initialization, an application should not configure the amount more than it needs for minimizing RAM usage.

Command

Byte Type Name Description
0 0x20 hilen Message type: Command
1 0x06 lolen Minimum payload length
2 0x0c class Message class:Hardware
3 0x00 method Message ID
4-7 uint32 time Interval between how often to send events, in hardware clock ticks (1 second is equal to 32768 ticks).

The smallest interval value supported is 328 which is around 10 milliseconds, any parameters between 0 and 328 will be rounded up to 328. The maximum value is 2147483647, which corresponds to about 18.2 hours.

If time is 0, removes the scheduled timer with the same handle.
8 uint8 handle Timer handle to use, is returned in timeout event
9 uint8 single_shot Timer mode. Values:
  • 0: false (timer is repeating)
  • 1: true (timer runs only once)

Response

Byte Type Name Description
0 0x20 hilen Message type: Response
1 0x02 lolen Minimum payload length
2 0x0c class Message class:Hardware
3 0x00 method Message ID
4-5 uint16 result

API

/* Function */
struct gecko_msg_hardware_set_soft_timer_rsp_t *gecko_cmd_hardware_set_soft_timer(uint32 time, uint8 handle, uint8 single_shot);

/* Response id */
gecko_rsp_hardware_set_soft_timer_id

/* Response structure */
struct gecko_msg_hardware_set_soft_timer_rsp_t
{
  uint16 result
}

Events generated

Event Description
hardware_soft_timer Sent after specified interval

hardware events

hardware_soft_timer

This event indicates that the soft timer has lapsed.

Event

Byte Type Name Description
0 0xa0 hilen Message type: Event
1 0x01 lolen Minimum payload length
2 0x0c class Message class:Hardware
3 0x00 method Message ID
4 uint8 handle Timer Handle

API

/* event id*/
gecko_evt_hardware_soft_timer_id

/* event structure*/
struct gecko_msg_hardware_soft_timer_evt_t
{
  uint8 handle
}