nrf5x/
constants.rs
1pub const RADIO_PCNF0_LFLEN_POS: u32 = 0;
7pub const RADIO_PCNF0_S0LEN_POS: u32 = 8;
8pub const RADIO_PCNF0_S1LEN_POS: u32 = 16;
9pub const RADIO_PCNF0_LFLEN_1BYTE: u32 = 8;
10pub const RADIO_PCNF0_S0_LEN_1BYTE: u32 = 1;
11pub const RADIO_PCNF0_S1_ZERO: u32 = 0;
12
13pub const RADIO_PCNF1_WHITEEN_DISABLED: u32 = 0;
15pub const RADIO_PCNF1_WHITEEN_ENABLED: u32 = 1;
16pub const RADIO_PCNF1_WHITEEN_POS: u32 = 25;
17pub const RADIO_PCNF1_BALEN_POS: u32 = 16;
18pub const RADIO_PCNF1_STATLEN_POS: u32 = 8;
19pub const RADIO_PCNF1_MAXLEN_POS: u32 = 0;
20pub const RADIO_PCNF1_ENDIAN_POS: u32 = 24;
21pub const RADIO_PCNF1_ENDIAN_BIG: u32 = 1;
22pub const RADIO_PCNF1_ENDIAN_LITTLE: u32 = 0;
23pub const RADIO_PCNF1_MAXLEN_37BYTES: u32 = 37;
24pub const RADIO_PCNF1_MAXLEN_255BYTES: u32 = 255;
25pub const RADIO_PCNF1_STATLEN_DONT_EXTEND: u32 = 0;
26pub const RADIO_PCNF1_BALEN_3BYTES: u32 = 3;
27
28pub const RADIO_CRCCNF_SKIPADDR_POS: u32 = 8;
30pub const RADIO_CRCCNF_SKIPADDR: u32 = 1;
31pub const RADIO_CRCCNF_LEN_3BYTES: u32 = 3;
32pub const RADIO_CRCINIT_BLE: u32 = 0x555555;
33pub const RADIO_CRCPOLY_BLE: u32 = 0x00065B;
34pub const RADIO_CRCINIT_IEEE802154: u32 = 0x0;
35pub const RADIO_CRCPOLY_IEEE802154: u32 = 0x11021;
36
37pub const IEEE802154_CCA_MODE: u32 = 0;
39pub const IEEE802154_CCA_ED_THRESH: u32 = 0x14;
40pub const IEEE802154_CCA_CORR_THRESH: u32 = 0x14;
41pub const IEEE802154_CCA_CORR_CNT: u32 = 0x02;
42
43pub const RADIO_MODE_BLE_1MBIT: u32 = 3;
45
46pub const RADIO_FREQ_CH_37: u32 = 2;
48pub const RADIO_FREQ_CH_39: u32 = 80;
49pub const RADIO_FREQ_CH_38: u32 = 26;
50
51pub const RADIO_INTENSET_READY: u32 = 1;
54pub const RADIO_INTENSET_ADDRESS: u32 = 1 << 1;
55pub const RADIO_INTENSET_PAYLOAD: u32 = 1 << 2;
56pub const RADIO_INTENSET_END: u32 = 1 << 3;
57pub const RADIO_INTENSET_DISABLED: u32 = 1 << 4;
58
59pub const RADIO_STATE_DISABLE: u32 = 0;
61pub const RADIO_STATE_RXRU: u32 = 1;
62pub const RADIO_STATE_RXIDLE: u32 = 2;
63pub const RADIO_STATE_RX: u32 = 3;
64pub const RADIO_STATE_RXDISABLE: u32 = 4;
65pub const RADIO_STATE_TXRU: u32 = 9;
66pub const RADIO_STATE_TXIDLE: u32 = 10;
67pub const RADIO_STATE_TX: u32 = 11;
68pub const RADIO_STATE_TXDISABLE: u32 = 12;
69
70pub const RADIO_PAYLOAD_LENGTH: usize = 255;
72
73pub enum RadioMode {
74 Nrf1Mbit = 0,
75 Nrf2Mbit = 1,
76 Nrt250Kbit = 2,
77 Ble1Mbit = 3,
78}
79
80#[derive(Debug, Copy, Clone)]
81pub enum TxPower {
82 Positive4dBM = 0x04,
83 Positive3dBM = 0x03,
84 ZerodBm = 0x00,
85 Negative4dBm = 0xFC,
86 Negative8dBm = 0xF8,
87 Negative12dBm = 0xF4,
88 Negative16dBm = 0xF0,
89 Negative20dBm = 0xEC,
90 Negative40dBm = 0xD8,
91}
92
93impl TryFrom<u8> for TxPower {
95 type Error = ();
96
97 fn try_from(val: u8) -> Result<TxPower, ()> {
98 match val {
99 4 => Ok(TxPower::Positive4dBM),
100 3 => Ok(TxPower::Positive3dBM),
101 0 => Ok(TxPower::ZerodBm),
102 0xFC => Ok(TxPower::Negative4dBm),
103 0xF8 => Ok(TxPower::Negative8dBm),
104 0xF4 => Ok(TxPower::Negative12dBm),
105 0xF0 => Ok(TxPower::Negative16dBm),
106 0xEC => Ok(TxPower::Negative20dBm),
107 0xD8 => Ok(TxPower::Negative40dBm),
108 _ => Err(()),
109 }
110 }
111}