Loading...
Searching...
No Matches
kw41zrf.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2017 SKF AB
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser
5 * General Public License v2.1. See the file LICENSE in the top level
6 * directory for more details.
7 */
8
9#pragma once
10
22
23#include <stdint.h>
24
25#include "mutex.h"
26#include "board.h"
27#include "net/netdev.h"
29#include "net/gnrc/nettype.h"
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
38#define KW41ZRF_MAX_PKT_LENGTH (IEEE802154_FRAME_LEN_MAX)
39
48#ifndef KW41ZRF_DEFAULT_CHANNEL
49#define KW41ZRF_DEFAULT_CHANNEL (CONFIG_IEEE802154_DEFAULT_CHANNEL)
50#endif
51
55#ifndef KW41ZRF_DEFAULT_CCA_THRESHOLD
56#define KW41ZRF_DEFAULT_CCA_THRESHOLD (-60)
57#endif
58
62#ifndef KW41ZRF_DEFAULT_LQI_COMPENSATION
63#define KW41ZRF_DEFAULT_LQI_COMPENSATION (102)
64#endif
66
72#define KW41ZRF_MIN_CHANNEL (11U)
73#define KW41ZRF_MAX_CHANNEL (26U)
75
79#define KW41ZRF_DEFAULT_TX_POWER (CONFIG_IEEE802154_DEFAULT_TXPOWER)
80
84#define KW41ZRF_OUTPUT_POWER_MAX (4)
85
89#define KW41ZRF_OUTPUT_POWER_MIN (-19)
90
94typedef void (*kw41zrf_cb_t)(void *arg);
95
132
140void kw41zrf_setup(kw41zrf_t *dev, uint8_t index);
141
152
162
163#ifdef __cplusplus
164}
165#endif
166
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:154
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:94
Mutex for thread synchronization.
Protocol type definitions.
Device descriptor for KW41ZRF radio devices.
Definition kw41zrf.h:101
uint8_t csma_max_be
Maximum backoff exponent (macMaxBe)
Definition kw41zrf.h:118
uint8_t recv_blocked
blocks moving to XCVSEQ_RECEIVE to prevent overwriting the RX buffer before the higher layers have co...
Definition kw41zrf.h:127
uint8_t csma_num_backoffs
Counter used internally by send implementation.
Definition kw41zrf.h:122
int16_t tx_power
The current tx-power setting of the device.
Definition kw41zrf.h:111
uint8_t csma_max_backoffs
Maximum number of CSMA backoffs when waiting for channel clear (macMaxCsmaBackoffs)
Definition kw41zrf.h:115
uint32_t rx_warmup_time
RX warmup time, in event timer ticks.
Definition kw41zrf.h:109
uint32_t backoff_delay
CSMA delay for the current TX operation.
Definition kw41zrf.h:124
uint8_t csma_min_be
Minimum backoff exponent (macMinBe)
Definition kw41zrf.h:117
uint8_t csma_be
Counter used internally by send implementation.
Definition kw41zrf.h:121
uint32_t rf_osc_en_idle
RF_OSC_EN bits setting when RF module is in standby.
Definition kw41zrf.h:110
uint32_t tx_timeout
Used to timeout waiting for ACK during TRX.
Definition kw41zrf.h:125
uint8_t cca_result
Used for passing CCA result from ISR to user.
Definition kw41zrf.h:120
uint8_t pm_blocked
true if we have blocked a low power mode in the CPU
Definition kw41zrf.h:126
uint8_t idle_seq
state to return to after sending
Definition kw41zrf.h:119
uint8_t num_retrans
Counter used internally by send implementation.
Definition kw41zrf.h:123
thread_t * thread
Network driver thread, for providing feedback from IRQ handler.
Definition kw41zrf.h:107
uint8_t flags
Internal driver option flags.
Definition kw41zrf.h:112
uint8_t max_retrans
Maximum number of frame retransmissions when no Ack frame is received (macMaxFrameRetries)
Definition kw41zrf.h:113
netdev_ieee802154_t netdev
netdev parent struct
Definition kw41zrf.h:102
uint32_t tx_warmup_time
TX warmup time, in event timer ticks.
Definition kw41zrf.h:108
Extended structure to hold IEEE 802.15.4 driver state.
Definition ieee802154.h:100