Loading...
Searching...
No Matches
kw41zrf.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2017 SKF AB
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
19
20#include <stdint.h>
21
22#include "mutex.h"
23#include "board.h"
24#include "net/netdev.h"
26#include "net/gnrc/nettype.h"
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
35#define KW41ZRF_MAX_PKT_LENGTH (IEEE802154_FRAME_LEN_MAX)
36
45#ifndef KW41ZRF_DEFAULT_CHANNEL
46#define KW41ZRF_DEFAULT_CHANNEL (CONFIG_IEEE802154_DEFAULT_CHANNEL)
47#endif
48
52#ifndef KW41ZRF_DEFAULT_CCA_THRESHOLD
53#define KW41ZRF_DEFAULT_CCA_THRESHOLD (-60)
54#endif
55
59#ifndef KW41ZRF_DEFAULT_LQI_COMPENSATION
60#define KW41ZRF_DEFAULT_LQI_COMPENSATION (102)
61#endif
63
69#define KW41ZRF_MIN_CHANNEL (11U)
70#define KW41ZRF_MAX_CHANNEL (26U)
72
76#define KW41ZRF_DEFAULT_TX_POWER (CONFIG_IEEE802154_DEFAULT_TXPOWER)
77
81#define KW41ZRF_OUTPUT_POWER_MAX (4)
82
86#define KW41ZRF_OUTPUT_POWER_MIN (-19)
87
91typedef void (*kw41zrf_cb_t)(void *arg);
92
129
137void kw41zrf_setup(kw41zrf_t *dev, uint8_t index);
138
149
159
160#ifdef __cplusplus
161}
162#endif
163
Definitions for netdev common IEEE 802.15.4 code.
Definitions low-level network driver interface.
struct _thread thread_t
forward declaration for thread_t, defined in thread.h
Definition sched.h:150
int kw41zrf_reset(kw41zrf_t *dev)
Reset radio hardware and restore default settings.
int kw41zrf_init(kw41zrf_t *dev, kw41zrf_cb_t cb)
Initialize the given KW41ZRF device.
void kw41zrf_setup(kw41zrf_t *dev, uint8_t index)
Setup an KW41ZRF based device state.
void(* kw41zrf_cb_t)(void *arg)
ISR callback function type.
Definition kw41zrf.h:91
Mutex for thread synchronization.
Protocol type definitions.
Device descriptor for KW41ZRF radio devices.
Definition kw41zrf.h:98
uint8_t csma_max_be
Maximum backoff exponent (macMaxBe)
Definition kw41zrf.h:115
uint8_t recv_blocked
blocks moving to XCVSEQ_RECEIVE to prevent overwriting the RX buffer before the higher layers have co...
Definition kw41zrf.h:124
uint8_t csma_num_backoffs
Counter used internally by send implementation.
Definition kw41zrf.h:119
int16_t tx_power
The current tx-power setting of the device.
Definition kw41zrf.h:108
uint8_t csma_max_backoffs
Maximum number of CSMA backoffs when waiting for channel clear (macMaxCsmaBackoffs)
Definition kw41zrf.h:112
uint32_t rx_warmup_time
RX warmup time, in event timer ticks.
Definition kw41zrf.h:106
uint32_t backoff_delay
CSMA delay for the current TX operation.
Definition kw41zrf.h:121
uint8_t csma_min_be
Minimum backoff exponent (macMinBe)
Definition kw41zrf.h:114
uint8_t csma_be
Counter used internally by send implementation.
Definition kw41zrf.h:118
uint32_t rf_osc_en_idle
RF_OSC_EN bits setting when RF module is in standby.
Definition kw41zrf.h:107
uint32_t tx_timeout
Used to timeout waiting for ACK during TRX.
Definition kw41zrf.h:122
uint8_t cca_result
Used for passing CCA result from ISR to user.
Definition kw41zrf.h:117
uint8_t pm_blocked
true if we have blocked a low power mode in the CPU
Definition kw41zrf.h:123
uint8_t idle_seq
state to return to after sending
Definition kw41zrf.h:116
uint8_t num_retrans
Counter used internally by send implementation.
Definition kw41zrf.h:120
thread_t * thread
Network driver thread, for providing feedback from IRQ handler.
Definition kw41zrf.h:104
uint8_t flags
Internal driver option flags.
Definition kw41zrf.h:109
uint8_t max_retrans
Maximum number of frame retransmissions when no Ack frame is received (macMaxFrameRetries)
Definition kw41zrf.h:110
netdev_ieee802154_t netdev
netdev parent struct
Definition kw41zrf.h:99
uint32_t tx_warmup_time
TX warmup time, in event timer ticks.
Definition kw41zrf.h:105
Extended structure to hold IEEE 802.15.4 driver state.
Definition ieee802154.h:97