libjoybus
Joybus implementation for 32-bit MCUs
Loading...
Searching...
No Matches
Gecko Backend

Joybus backend for Silicon Labs EFM32/EFR32 MCUs using the Gecko SDK. More...

Data Structures

struct  joybus_gecko_data
struct  joybus_gecko
 A Gecko Joybus instance. More...

Macros

#define JOYBUS_GECKO(bus)
 Macro to cast a generic Joybus instance to a Gecko Joybus instance.
#define CHIPS_PER_BIT   4
#define EDGES_PER_BYTE   16

Functions

int joybus_gecko_init (struct joybus_gecko *gecko_bus, GPIO_Port_TypeDef port, uint8_t pin, TIMER_TypeDef *rx_timer, USART_TypeDef *tx_usart)
 Initialize a Gecko Joybus instance.

Detailed Description

Joybus backend for Silicon Labs EFM32/EFR32 MCUs using the Gecko SDK.

Configuration

The Gecko backend is made available by setting JOYBUS_BACKEND_GECKO=ON in your CMake configuration.

Usage

#include <joybus/joybus.h>
#include <joybus/backend/gecko.h>
struct joybus_gecko gecko_bus;
struct joybus *bus = JOYBUS(&gecko_bus);
void main() {
// Initialize and enable the bus using the Gecko backend
joybus_gecko_init(&gecko_bus, gpioPortD, 3, TIMER1, USART0);
// Use the bus...
}
int joybus_gecko_init(struct joybus_gecko *gecko_bus, GPIO_Port_TypeDef port, uint8_t pin, TIMER_TypeDef *rx_timer, USART_TypeDef *tx_usart)
Initialize a Gecko Joybus instance.
Definition joybus.c:790
static int joybus_enable(struct joybus *bus)
Enable the Joybus instance.
Definition bus.h:71
#define JOYBUS(bus)
Macro to cast a backend-specific Joybus instance to a generic Joybus instance.
Definition bus.h:35
A Gecko Joybus instance.
Definition gecko.h:108
A Joybus instance.
Definition bus.h:59

Macro Definition Documentation

◆ JOYBUS_GECKO

#define JOYBUS_GECKO ( bus)
Value:
((struct joybus_gecko *)(bus))

Macro to cast a generic Joybus instance to a Gecko Joybus instance.

Function Documentation

◆ joybus_gecko_init()

int joybus_gecko_init ( struct joybus_gecko * gecko_bus,
GPIO_Port_TypeDef port,
uint8_t pin,
TIMER_TypeDef * rx_timer,
USART_TypeDef * tx_usart )

Initialize a Gecko Joybus instance.

Note: Some peripherals cannot be used on certain ports, check the DBUS Routing Table in the reference manual for your MCU.

Parameters
gecko_busthe Gecko Joybus instance to initialize
portthe GPIO port to use for the Joybus data line
pinthe GPIO pin to use for the Joybus data line
rx_timerthe TIMER peripheral to use for receiving data
tx_usartthe USART peripheral to use for transmitting data
Returns
0 on success, negative error code on failure