Microchip ATA8520E transceiver¶
Device driver for Microchip ATA8520E transceiver (Sigfox)
For more information, please refer to the datasheet http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-9409-Smart-RF-ATA8520E_Datasheet.pdf
-
SIGFOX_PAC_LENGTH
¶ Length of Sigfox PAC.
1
(16U)
-
SIGFOX_ID_LENGTH
¶ Length of Sigfox ID.
1
(8U)
-
SIGFOX_MAX_TX_LENGTH
¶ Maximum length of a TX payload.
1
(12U)
-
SIGFOX_RX_LENGTH
¶ RX payload length is always 8.
1
(8U)
-
enum
@110
¶ - ATA8520E_OK
= 0
- Everything is fine.
- ATA8520E_ERR_SPI
- An error occurred with SPI.
- ATA8520E_ERR_GPIO_INT
- An error occurred with interrupt pin.
- ATA8520E_ERR_GPIO_RESET
- An error occurred with reset pin.
- ATA8520E_ERR_GPIO_POWER
- An error occurred with power pin.
- ATA8520E_ERR_EVENT_TIMEOUT
- An expected event never happened.
- ATA8520E_OK
-
enum
@111
¶ - ATA8520E_STATE_IDLE
- Device is in idle state.
- ATA8520E_STATE_INIT
- Device is in initialization phase.
- ATA8520E_STATE_TX
- Device is in TX mode.
- ATA8520E_STATE_RX
- Device is in RX mode, just after TX.
-
enum
ata8520e_status_type_t
¶ - ATA8520E_SSM
- SoC System Management status.
- ATA8520E_ATMEL
- Atmel status.
- ATA8520E_SIGFOX
- Sigfox status.
-
enum
ata8520e_atmel_status_t
¶ - ATA8520E_ATMEL_OK
- No error.
- ATA8520E_ATMEL_COMMAND_ERROR
- Command error / not supported.
- ATA8520E_ATMEL_GENERIC_ERROR
- Generic error.
- ATA8520E_ATMEL_FREQUENCY_ERROR
- Frequency error.
- ATA8520E_ATMEL_USAGE_ERROR
- Usage error.
- ATA8520E_ATMEL_OPENING_ERROR
- Opening error.
- ATA8520E_ATMEL_CLOSING_ERROR
- Closing error.
- ATA8520E_ATMEL_SEND_ERROR
- Send error.
-
enum
ata8520e_sigfox_status_t
¶ - ATA8520E_SIGFOX_OK
- No error.
- ATA8520E_SIGFOX_MANUFACTURER_ERROR
- Manufacturer error.
- ATA8520E_SIGFOX_ID_OR_KEY_ERROR
- ID or key error.
- ATA8520E_SIGFOX_STATE_MACHINE_ERROR
- State machine error.
- ATA8520E_SIGFOX_FRAME_SIZE_ERROR
- Frame size error.
- ATA8520E_SIGFOX_MANUFACTURER_SEND_ERROR
- Manufacturer send error.
- ATA8520E_SIGFOX_GET_VOLTAGE_TEMP_ERROR
- Get voltage/temperature error.
- ATA8520E_SIGFOX_CLOSE_ERROR
- Close issues encountered.
- ATA8520E_SIGFOX_API_ERROR
- API error indication.
- ATA8520E_SIGFOX_GET_PN9_ERROR
- Error getting PN9.
- ATA8520E_SIGFOX_GET_FREQUENCY_ERROR
- Error getting frequency.
- ATA8520E_SIGFOX_BUILDING_FRAME_ERROR
- Error building frame.
- ATA8520E_SIGFOX_DELAY_ROUTINE_ERROR
- Error in delay routine.
- ATA8520E_SIGFOX_CALLBACK_ERROR
- Callback causes error.
- ATA8520E_SIGFOX_TIMING_ERROR
- Timing error.
- ATA8520E_SIGFOX_FREQUENCY_ERROR
- Frequency error.
-
int
ata8520e_init
(ata8520e_t * dev, const ata8520e_params_t * params)¶ Initialize the device.
This will also initialize the CS pin as a GPIO output, without pull resistors and the interrupt pin handler to manage events.
Parameters
dev: Pointer to device descriptor params: Pointer to SPI settings Return values
- ATA8520E_OK on success
- -ATA8520E_ERR_SPI on SPI initialization error
- -ATA8520E_ERR_GPIO_INT on interrupt pin initialization error
- -ATA8520E_ERR_GPIO_RESET on reset pin initialization error
- -ATA8520E_ERR_GPIO_POWER on power pin initialization error
-
void
ata8520e_system_reset
(const ata8520e_t * dev)¶ Perform a complete reset of the device.
Parameters
dev: Pointer to device descriptor
-
void
ata8520e_read_atmel_version
(const ata8520e_t * dev, uint8_t * version)¶ Return the Atmel version of the device.
Parameters
dev: Pointer to device descriptor version: Pointer to the string containing the version, must be able to hold 2 characters
-
void
ata8520e_read_sigfox_version
(const ata8520e_t * dev, char * version)¶ Return the Atmel version of the device.
Parameters
dev: Pointer to device descriptor version: String containing the version, must be able to hold 11 characters
-
void
ata8520e_read_pac
(const ata8520e_t * dev, char * pac)¶ Return the porting authorization code (PAC) available in the device.
Parameters
dev: Pointer to device descriptor pac: String containing the pac, must be able to hold 17 characters
-
void
ata8520e_read_id
(const ata8520e_t * dev, char * id)¶ Return the ID of the device.
Parameters
dev: Pointer to device descriptor id: String containing the ID, must be able to hold 9 characters
-
int
ata8520e_send_frame
(ata8520e_t * dev, uint8_t * payload, uint8_t payload_len)¶ Send a frame.
Parameters
dev: Pointer to device descriptor payload: The payload to send payload_len: The length of the payload to send Return values
- ATA8520E_OK if the send was successful
- -ATA8520E_ERR_EVENT_TIMEOUT if the send failed
-
int
ata8520e_send_receive_frame
(ata8520e_t * dev, uint8_t * payload, uint8_t payload_len, uint8_t * rx_payload)¶ Send a frame and wait for a RX packet.
Parameters
dev: Pointer to device descriptor payload: The payload to send payload_len: The length of the payload to send rx_payload: The payload received Return values
- ATA8520E_OK if the send was successful
- -ATA8520E_ERR_EVENT_TIMEOUT if the send failed
-
int
ata8520e_send_bit
(ata8520e_t * dev, bool bit)¶ Send a bit.
Parameters
dev: Pointer to device descriptor bit: The bit to send Return values
- ATA8520E_OK if the send was successful
- -ATA8520E_ERR_EVENT_TIMEOUT if the send failed
-
struct
ata8520e_params_t
¶ Initialization parameters.
-
spi.h::spi_t
spi
¶ SPI device.
-
atmega_common/include/periph_cpu_common.h::spi_clk_t
spi_clk
¶ SPI clock speed.
-
gpio.h::gpio_t
cs_pin
¶ Chip select pin.
-
gpio.h::gpio_t
int_pin
¶ IRQ pin.
-
gpio.h::gpio_t
power_pin
¶ Power pin.
-
gpio.h::gpio_t
reset_pin
¶ Reset pin.
-