50#include <ti/devices/DeviceFamily.h>
51#include DeviceFamily_constructPath(driverlib/rf_mailbox.h)
57#define DOT_15_4G_FREQ_BAND_169 0
58#define DOT_15_4G_FREQ_BAND_450 1
59#define DOT_15_4G_FREQ_BAND_470 2
60#define DOT_15_4G_FREQ_BAND_780 3
61#define DOT_15_4G_FREQ_BAND_863 4
62#define DOT_15_4G_FREQ_BAND_896 5
63#define DOT_15_4G_FREQ_BAND_901 6
64#define DOT_15_4G_FREQ_BAND_915 7
65#define DOT_15_4G_FREQ_BAND_917 8
66#define DOT_15_4G_FREQ_BAND_920 9
67#define DOT_15_4G_FREQ_BAND_928 10
68#define DOT_15_4G_FREQ_BAND_950 11
69#define DOT_15_4G_FREQ_BAND_1427 12
70#define DOT_15_4G_FREQ_BAND_2450 13
73#ifdef DOT_15_4G_CONF_FREQ_BAND_ID
74#define DOT_15_4G_FREQ_BAND_ID DOT_15_4G_CONF_FREQ_BAND_ID
76#define DOT_15_4G_FREQ_BAND_ID DOT_15_4G_FREQ_BAND_863
86#if (DOT_15_4G_FREQ_BAND_ID == DOT_15_4G_FREQ_BAND_470)
87#define DOT_15_4G_CHAN_MIN 0
88#define DOT_15_4G_CHAN_MAX 198
89#define DOT_15_4G_FREQ_SPACING 200
90#define DOT_15_4G_CHAN0_FREQ 470200
92#define PROP_MODE_CONF_CENTER_FREQ 0x01EA
93#define PROP_MODE_CONF_LO_DIVIDER 0x0A
95#elif (DOT_15_4G_FREQ_BAND_ID == DOT_15_4G_FREQ_BAND_780)
96#define DOT_15_4G_CHAN_MIN 0
97#define DOT_15_4G_CHAN_MAX 38
98#define DOT_15_4G_FREQ_SPACING 200
99#define DOT_15_4G_CHAN0_FREQ 779200
101#define PROP_MODE_CONF_CENTER_FREQ 0x030F
102#define PROP_MODE_CONF_LO_DIVIDER 0x06
104#elif (DOT_15_4G_FREQ_BAND_ID == DOT_15_4G_FREQ_BAND_863)
105#define DOT_15_4G_CHAN_MIN 0
106#define DOT_15_4G_CHAN_MAX 33
107#define DOT_15_4G_FREQ_SPACING 200
108#define DOT_15_4G_CHAN0_FREQ 863125
110#define PROP_MODE_CONF_CENTER_FREQ 0x0362
111#define PROP_MODE_CONF_LO_DIVIDER 0x05
113#elif (DOT_15_4G_FREQ_BAND_ID == DOT_15_4G_FREQ_BAND_915)
114#define DOT_15_4G_CHAN_MIN 0
115#define DOT_15_4G_CHAN_MAX 128
116#define DOT_15_4G_FREQ_SPACING 200
117#define DOT_15_4G_CHAN0_FREQ 902200
119#define PROP_MODE_CONF_CENTER_FREQ 0x0393
120#define PROP_MODE_CONF_LO_DIVIDER 0x05
122#elif (DOT_15_4G_FREQ_BAND_ID == DOT_15_4G_FREQ_BAND_920)
123#define DOT_15_4G_CHAN_MIN 0
124#define DOT_15_4G_CHAN_MAX 37
125#define DOT_15_4G_FREQ_SPACING 200
126#define DOT_15_4G_CHAN0_FREQ 920600
128#define PROP_MODE_CONF_CENTER_FREQ 0x039C
129#define PROP_MODE_CONF_LO_DIVIDER 0x05
131#elif (DOT_15_4G_FREQ_BAND_ID == DOT_15_4G_FREQ_BAND_950)
132#define DOT_15_4G_CHAN_MIN 0
133#define DOT_15_4G_CHAN_MAX 32
134#define DOT_15_4G_FREQ_SPACING 200
135#define DOT_15_4G_CHAN0_FREQ 951000
137#define PROP_MODE_CONF_CENTER_FREQ 0x03BA
138#define PROP_MODE_CONF_LO_DIVIDER 0x05
140#elif (DOT_15_4G_FREQ_BAND_ID == DOT_15_4G_FREQ_BAND_2450)
141#define DOT_15_4G_CHAN_MIN 11
142#define DOT_15_4G_CHAN_MAX 26
143#define DOT_15_4G_FREQ_SPACING 5000
144#define DOT_15_4G_CHAN0_FREQ 2405000
147#error "The selected IEEE 802.15.4g frequency band is not supported"
150static inline uint32_t
151dot_15_4g_freq(
const uint16_t chan)
153 const uint32_t chan0 = DOT_15_4G_CHAN0_FREQ;
154 const uint32_t spacing = DOT_15_4G_FREQ_SPACING;
155 const uint32_t chan_min = DOT_15_4G_CHAN_MIN;
156 return chan0 + spacing * ((uint32_t)chan - chan_min);
160dot_15_4g_chan_in_range(
const uint16_t chan)
162 const uint16_t chan_min = DOT_15_4G_CHAN_MIN;
163 const uint16_t chan_max = DOT_15_4G_CHAN_MAX;
164 return (chan >= chan_min) &&
168#define DOT_15_4G_DEFAULT_CHAN IEEE802154_DEFAULT_CHANNEL