nrf52810_pac/
radio.rs

1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4    #[doc = "0x00 - Enable RADIO in TX mode"]
5    pub tasks_txen: TASKS_TXEN,
6    #[doc = "0x04 - Enable RADIO in RX mode"]
7    pub tasks_rxen: TASKS_RXEN,
8    #[doc = "0x08 - Start RADIO"]
9    pub tasks_start: TASKS_START,
10    #[doc = "0x0c - Stop RADIO"]
11    pub tasks_stop: TASKS_STOP,
12    #[doc = "0x10 - Disable RADIO"]
13    pub tasks_disable: TASKS_DISABLE,
14    #[doc = "0x14 - Start the RSSI and take one single sample of the receive signal strength."]
15    pub tasks_rssistart: TASKS_RSSISTART,
16    #[doc = "0x18 - Stop the RSSI measurement"]
17    pub tasks_rssistop: TASKS_RSSISTOP,
18    #[doc = "0x1c - Start the bit counter"]
19    pub tasks_bcstart: TASKS_BCSTART,
20    #[doc = "0x20 - Stop the bit counter"]
21    pub tasks_bcstop: TASKS_BCSTOP,
22    _reserved9: [u8; 0xdc],
23    #[doc = "0x100 - RADIO has ramped up and is ready to be started"]
24    pub events_ready: EVENTS_READY,
25    #[doc = "0x104 - Address sent or received"]
26    pub events_address: EVENTS_ADDRESS,
27    #[doc = "0x108 - Packet payload sent or received"]
28    pub events_payload: EVENTS_PAYLOAD,
29    #[doc = "0x10c - Packet sent or received"]
30    pub events_end: EVENTS_END,
31    #[doc = "0x110 - RADIO has been disabled"]
32    pub events_disabled: EVENTS_DISABLED,
33    #[doc = "0x114 - A device address match occurred on the last received packet"]
34    pub events_devmatch: EVENTS_DEVMATCH,
35    #[doc = "0x118 - No device address match occurred on the last received packet"]
36    pub events_devmiss: EVENTS_DEVMISS,
37    #[doc = "0x11c - Sampling of receive signal strength complete."]
38    pub events_rssiend: EVENTS_RSSIEND,
39    _reserved17: [u8; 0x08],
40    #[doc = "0x128 - Bit counter reached bit count value."]
41    pub events_bcmatch: EVENTS_BCMATCH,
42    _reserved18: [u8; 0x04],
43    #[doc = "0x130 - Packet received with CRC ok"]
44    pub events_crcok: EVENTS_CRCOK,
45    #[doc = "0x134 - Packet received with CRC error"]
46    pub events_crcerror: EVENTS_CRCERROR,
47    _reserved20: [u8; 0xc8],
48    #[doc = "0x200 - Shortcuts between local events and tasks"]
49    pub shorts: SHORTS,
50    _reserved21: [u8; 0x0100],
51    #[doc = "0x304 - Enable interrupt"]
52    pub intenset: INTENSET,
53    #[doc = "0x308 - Disable interrupt"]
54    pub intenclr: INTENCLR,
55    _reserved23: [u8; 0xf4],
56    #[doc = "0x400 - CRC status"]
57    pub crcstatus: CRCSTATUS,
58    _reserved24: [u8; 0x04],
59    #[doc = "0x408 - Received address"]
60    pub rxmatch: RXMATCH,
61    #[doc = "0x40c - CRC field of previously received packet"]
62    pub rxcrc: RXCRC,
63    #[doc = "0x410 - Device address match index"]
64    pub dai: DAI,
65    _reserved27: [u8; 0xf0],
66    #[doc = "0x504 - Packet pointer"]
67    pub packetptr: PACKETPTR,
68    #[doc = "0x508 - Frequency"]
69    pub frequency: FREQUENCY,
70    #[doc = "0x50c - Output power"]
71    pub txpower: TXPOWER,
72    #[doc = "0x510 - Data rate and modulation"]
73    pub mode: MODE,
74    #[doc = "0x514 - Packet configuration register 0"]
75    pub pcnf0: PCNF0,
76    #[doc = "0x518 - Packet configuration register 1"]
77    pub pcnf1: PCNF1,
78    #[doc = "0x51c - Base address 0"]
79    pub base0: BASE0,
80    #[doc = "0x520 - Base address 1"]
81    pub base1: BASE1,
82    #[doc = "0x524 - Prefixes bytes for logical addresses 0-3"]
83    pub prefix0: PREFIX0,
84    #[doc = "0x528 - Prefixes bytes for logical addresses 4-7"]
85    pub prefix1: PREFIX1,
86    #[doc = "0x52c - Transmit address select"]
87    pub txaddress: TXADDRESS,
88    #[doc = "0x530 - Receive address select"]
89    pub rxaddresses: RXADDRESSES,
90    #[doc = "0x534 - CRC configuration"]
91    pub crccnf: CRCCNF,
92    #[doc = "0x538 - CRC polynomial"]
93    pub crcpoly: CRCPOLY,
94    #[doc = "0x53c - CRC initial value"]
95    pub crcinit: CRCINIT,
96    _reserved42: [u8; 0x04],
97    #[doc = "0x544 - Inter Frame Spacing in us"]
98    pub tifs: TIFS,
99    #[doc = "0x548 - RSSI sample"]
100    pub rssisample: RSSISAMPLE,
101    _reserved44: [u8; 0x04],
102    #[doc = "0x550 - Current radio state"]
103    pub state: STATE,
104    #[doc = "0x554 - Data whitening initial value"]
105    pub datawhiteiv: DATAWHITEIV,
106    _reserved46: [u8; 0x08],
107    #[doc = "0x560 - Bit counter compare"]
108    pub bcc: BCC,
109    _reserved47: [u8; 0x9c],
110    #[doc = "0x600..0x620 - Description collection: Device address base segment n"]
111    pub dab: [DAB; 8],
112    #[doc = "0x620..0x640 - Description collection: Device address prefix n"]
113    pub dap: [DAP; 8],
114    #[doc = "0x640 - Device address match configuration"]
115    pub dacnf: DACNF,
116    _reserved50: [u8; 0x0c],
117    #[doc = "0x650 - Radio mode configuration register 0"]
118    pub modecnf0: MODECNF0,
119    _reserved51: [u8; 0x09a8],
120    #[doc = "0xffc - Peripheral power control"]
121    pub power: POWER,
122}
123#[doc = "TASKS_TXEN (w) register accessor: an alias for `Reg<TASKS_TXEN_SPEC>`"]
124pub type TASKS_TXEN = crate::Reg<tasks_txen::TASKS_TXEN_SPEC>;
125#[doc = "Enable RADIO in TX mode"]
126pub mod tasks_txen;
127#[doc = "TASKS_RXEN (w) register accessor: an alias for `Reg<TASKS_RXEN_SPEC>`"]
128pub type TASKS_RXEN = crate::Reg<tasks_rxen::TASKS_RXEN_SPEC>;
129#[doc = "Enable RADIO in RX mode"]
130pub mod tasks_rxen;
131#[doc = "TASKS_START (w) register accessor: an alias for `Reg<TASKS_START_SPEC>`"]
132pub type TASKS_START = crate::Reg<tasks_start::TASKS_START_SPEC>;
133#[doc = "Start RADIO"]
134pub mod tasks_start;
135#[doc = "TASKS_STOP (w) register accessor: an alias for `Reg<TASKS_STOP_SPEC>`"]
136pub type TASKS_STOP = crate::Reg<tasks_stop::TASKS_STOP_SPEC>;
137#[doc = "Stop RADIO"]
138pub mod tasks_stop;
139#[doc = "TASKS_DISABLE (w) register accessor: an alias for `Reg<TASKS_DISABLE_SPEC>`"]
140pub type TASKS_DISABLE = crate::Reg<tasks_disable::TASKS_DISABLE_SPEC>;
141#[doc = "Disable RADIO"]
142pub mod tasks_disable;
143#[doc = "TASKS_RSSISTART (w) register accessor: an alias for `Reg<TASKS_RSSISTART_SPEC>`"]
144pub type TASKS_RSSISTART = crate::Reg<tasks_rssistart::TASKS_RSSISTART_SPEC>;
145#[doc = "Start the RSSI and take one single sample of the receive signal strength."]
146pub mod tasks_rssistart;
147#[doc = "TASKS_RSSISTOP (w) register accessor: an alias for `Reg<TASKS_RSSISTOP_SPEC>`"]
148pub type TASKS_RSSISTOP = crate::Reg<tasks_rssistop::TASKS_RSSISTOP_SPEC>;
149#[doc = "Stop the RSSI measurement"]
150pub mod tasks_rssistop;
151#[doc = "TASKS_BCSTART (w) register accessor: an alias for `Reg<TASKS_BCSTART_SPEC>`"]
152pub type TASKS_BCSTART = crate::Reg<tasks_bcstart::TASKS_BCSTART_SPEC>;
153#[doc = "Start the bit counter"]
154pub mod tasks_bcstart;
155#[doc = "TASKS_BCSTOP (w) register accessor: an alias for `Reg<TASKS_BCSTOP_SPEC>`"]
156pub type TASKS_BCSTOP = crate::Reg<tasks_bcstop::TASKS_BCSTOP_SPEC>;
157#[doc = "Stop the bit counter"]
158pub mod tasks_bcstop;
159#[doc = "EVENTS_READY (rw) register accessor: an alias for `Reg<EVENTS_READY_SPEC>`"]
160pub type EVENTS_READY = crate::Reg<events_ready::EVENTS_READY_SPEC>;
161#[doc = "RADIO has ramped up and is ready to be started"]
162pub mod events_ready;
163#[doc = "EVENTS_ADDRESS (rw) register accessor: an alias for `Reg<EVENTS_ADDRESS_SPEC>`"]
164pub type EVENTS_ADDRESS = crate::Reg<events_address::EVENTS_ADDRESS_SPEC>;
165#[doc = "Address sent or received"]
166pub mod events_address;
167#[doc = "EVENTS_PAYLOAD (rw) register accessor: an alias for `Reg<EVENTS_PAYLOAD_SPEC>`"]
168pub type EVENTS_PAYLOAD = crate::Reg<events_payload::EVENTS_PAYLOAD_SPEC>;
169#[doc = "Packet payload sent or received"]
170pub mod events_payload;
171#[doc = "EVENTS_END (rw) register accessor: an alias for `Reg<EVENTS_END_SPEC>`"]
172pub type EVENTS_END = crate::Reg<events_end::EVENTS_END_SPEC>;
173#[doc = "Packet sent or received"]
174pub mod events_end;
175#[doc = "EVENTS_DISABLED (rw) register accessor: an alias for `Reg<EVENTS_DISABLED_SPEC>`"]
176pub type EVENTS_DISABLED = crate::Reg<events_disabled::EVENTS_DISABLED_SPEC>;
177#[doc = "RADIO has been disabled"]
178pub mod events_disabled;
179#[doc = "EVENTS_DEVMATCH (rw) register accessor: an alias for `Reg<EVENTS_DEVMATCH_SPEC>`"]
180pub type EVENTS_DEVMATCH = crate::Reg<events_devmatch::EVENTS_DEVMATCH_SPEC>;
181#[doc = "A device address match occurred on the last received packet"]
182pub mod events_devmatch;
183#[doc = "EVENTS_DEVMISS (rw) register accessor: an alias for `Reg<EVENTS_DEVMISS_SPEC>`"]
184pub type EVENTS_DEVMISS = crate::Reg<events_devmiss::EVENTS_DEVMISS_SPEC>;
185#[doc = "No device address match occurred on the last received packet"]
186pub mod events_devmiss;
187#[doc = "EVENTS_RSSIEND (rw) register accessor: an alias for `Reg<EVENTS_RSSIEND_SPEC>`"]
188pub type EVENTS_RSSIEND = crate::Reg<events_rssiend::EVENTS_RSSIEND_SPEC>;
189#[doc = "Sampling of receive signal strength complete."]
190pub mod events_rssiend;
191#[doc = "EVENTS_BCMATCH (rw) register accessor: an alias for `Reg<EVENTS_BCMATCH_SPEC>`"]
192pub type EVENTS_BCMATCH = crate::Reg<events_bcmatch::EVENTS_BCMATCH_SPEC>;
193#[doc = "Bit counter reached bit count value."]
194pub mod events_bcmatch;
195#[doc = "EVENTS_CRCOK (rw) register accessor: an alias for `Reg<EVENTS_CRCOK_SPEC>`"]
196pub type EVENTS_CRCOK = crate::Reg<events_crcok::EVENTS_CRCOK_SPEC>;
197#[doc = "Packet received with CRC ok"]
198pub mod events_crcok;
199#[doc = "EVENTS_CRCERROR (rw) register accessor: an alias for `Reg<EVENTS_CRCERROR_SPEC>`"]
200pub type EVENTS_CRCERROR = crate::Reg<events_crcerror::EVENTS_CRCERROR_SPEC>;
201#[doc = "Packet received with CRC error"]
202pub mod events_crcerror;
203#[doc = "SHORTS (rw) register accessor: an alias for `Reg<SHORTS_SPEC>`"]
204pub type SHORTS = crate::Reg<shorts::SHORTS_SPEC>;
205#[doc = "Shortcuts between local events and tasks"]
206pub mod shorts;
207#[doc = "INTENSET (rw) register accessor: an alias for `Reg<INTENSET_SPEC>`"]
208pub type INTENSET = crate::Reg<intenset::INTENSET_SPEC>;
209#[doc = "Enable interrupt"]
210pub mod intenset;
211#[doc = "INTENCLR (rw) register accessor: an alias for `Reg<INTENCLR_SPEC>`"]
212pub type INTENCLR = crate::Reg<intenclr::INTENCLR_SPEC>;
213#[doc = "Disable interrupt"]
214pub mod intenclr;
215#[doc = "CRCSTATUS (r) register accessor: an alias for `Reg<CRCSTATUS_SPEC>`"]
216pub type CRCSTATUS = crate::Reg<crcstatus::CRCSTATUS_SPEC>;
217#[doc = "CRC status"]
218pub mod crcstatus;
219#[doc = "RXMATCH (r) register accessor: an alias for `Reg<RXMATCH_SPEC>`"]
220pub type RXMATCH = crate::Reg<rxmatch::RXMATCH_SPEC>;
221#[doc = "Received address"]
222pub mod rxmatch;
223#[doc = "RXCRC (r) register accessor: an alias for `Reg<RXCRC_SPEC>`"]
224pub type RXCRC = crate::Reg<rxcrc::RXCRC_SPEC>;
225#[doc = "CRC field of previously received packet"]
226pub mod rxcrc;
227#[doc = "DAI (r) register accessor: an alias for `Reg<DAI_SPEC>`"]
228pub type DAI = crate::Reg<dai::DAI_SPEC>;
229#[doc = "Device address match index"]
230pub mod dai;
231#[doc = "PACKETPTR (rw) register accessor: an alias for `Reg<PACKETPTR_SPEC>`"]
232pub type PACKETPTR = crate::Reg<packetptr::PACKETPTR_SPEC>;
233#[doc = "Packet pointer"]
234pub mod packetptr;
235#[doc = "FREQUENCY (rw) register accessor: an alias for `Reg<FREQUENCY_SPEC>`"]
236pub type FREQUENCY = crate::Reg<frequency::FREQUENCY_SPEC>;
237#[doc = "Frequency"]
238pub mod frequency;
239#[doc = "TXPOWER (rw) register accessor: an alias for `Reg<TXPOWER_SPEC>`"]
240pub type TXPOWER = crate::Reg<txpower::TXPOWER_SPEC>;
241#[doc = "Output power"]
242pub mod txpower;
243#[doc = "MODE (rw) register accessor: an alias for `Reg<MODE_SPEC>`"]
244pub type MODE = crate::Reg<mode::MODE_SPEC>;
245#[doc = "Data rate and modulation"]
246pub mod mode;
247#[doc = "PCNF0 (rw) register accessor: an alias for `Reg<PCNF0_SPEC>`"]
248pub type PCNF0 = crate::Reg<pcnf0::PCNF0_SPEC>;
249#[doc = "Packet configuration register 0"]
250pub mod pcnf0;
251#[doc = "PCNF1 (rw) register accessor: an alias for `Reg<PCNF1_SPEC>`"]
252pub type PCNF1 = crate::Reg<pcnf1::PCNF1_SPEC>;
253#[doc = "Packet configuration register 1"]
254pub mod pcnf1;
255#[doc = "BASE0 (rw) register accessor: an alias for `Reg<BASE0_SPEC>`"]
256pub type BASE0 = crate::Reg<base0::BASE0_SPEC>;
257#[doc = "Base address 0"]
258pub mod base0;
259#[doc = "BASE1 (rw) register accessor: an alias for `Reg<BASE1_SPEC>`"]
260pub type BASE1 = crate::Reg<base1::BASE1_SPEC>;
261#[doc = "Base address 1"]
262pub mod base1;
263#[doc = "PREFIX0 (rw) register accessor: an alias for `Reg<PREFIX0_SPEC>`"]
264pub type PREFIX0 = crate::Reg<prefix0::PREFIX0_SPEC>;
265#[doc = "Prefixes bytes for logical addresses 0-3"]
266pub mod prefix0;
267#[doc = "PREFIX1 (rw) register accessor: an alias for `Reg<PREFIX1_SPEC>`"]
268pub type PREFIX1 = crate::Reg<prefix1::PREFIX1_SPEC>;
269#[doc = "Prefixes bytes for logical addresses 4-7"]
270pub mod prefix1;
271#[doc = "TXADDRESS (rw) register accessor: an alias for `Reg<TXADDRESS_SPEC>`"]
272pub type TXADDRESS = crate::Reg<txaddress::TXADDRESS_SPEC>;
273#[doc = "Transmit address select"]
274pub mod txaddress;
275#[doc = "RXADDRESSES (rw) register accessor: an alias for `Reg<RXADDRESSES_SPEC>`"]
276pub type RXADDRESSES = crate::Reg<rxaddresses::RXADDRESSES_SPEC>;
277#[doc = "Receive address select"]
278pub mod rxaddresses;
279#[doc = "CRCCNF (rw) register accessor: an alias for `Reg<CRCCNF_SPEC>`"]
280pub type CRCCNF = crate::Reg<crccnf::CRCCNF_SPEC>;
281#[doc = "CRC configuration"]
282pub mod crccnf;
283#[doc = "CRCPOLY (rw) register accessor: an alias for `Reg<CRCPOLY_SPEC>`"]
284pub type CRCPOLY = crate::Reg<crcpoly::CRCPOLY_SPEC>;
285#[doc = "CRC polynomial"]
286pub mod crcpoly;
287#[doc = "CRCINIT (rw) register accessor: an alias for `Reg<CRCINIT_SPEC>`"]
288pub type CRCINIT = crate::Reg<crcinit::CRCINIT_SPEC>;
289#[doc = "CRC initial value"]
290pub mod crcinit;
291#[doc = "TIFS (rw) register accessor: an alias for `Reg<TIFS_SPEC>`"]
292pub type TIFS = crate::Reg<tifs::TIFS_SPEC>;
293#[doc = "Inter Frame Spacing in us"]
294pub mod tifs;
295#[doc = "RSSISAMPLE (r) register accessor: an alias for `Reg<RSSISAMPLE_SPEC>`"]
296pub type RSSISAMPLE = crate::Reg<rssisample::RSSISAMPLE_SPEC>;
297#[doc = "RSSI sample"]
298pub mod rssisample;
299#[doc = "STATE (r) register accessor: an alias for `Reg<STATE_SPEC>`"]
300pub type STATE = crate::Reg<state::STATE_SPEC>;
301#[doc = "Current radio state"]
302pub mod state;
303#[doc = "DATAWHITEIV (rw) register accessor: an alias for `Reg<DATAWHITEIV_SPEC>`"]
304pub type DATAWHITEIV = crate::Reg<datawhiteiv::DATAWHITEIV_SPEC>;
305#[doc = "Data whitening initial value"]
306pub mod datawhiteiv;
307#[doc = "BCC (rw) register accessor: an alias for `Reg<BCC_SPEC>`"]
308pub type BCC = crate::Reg<bcc::BCC_SPEC>;
309#[doc = "Bit counter compare"]
310pub mod bcc;
311#[doc = "DAB (rw) register accessor: an alias for `Reg<DAB_SPEC>`"]
312pub type DAB = crate::Reg<dab::DAB_SPEC>;
313#[doc = "Description collection: Device address base segment n"]
314pub mod dab;
315#[doc = "DAP (rw) register accessor: an alias for `Reg<DAP_SPEC>`"]
316pub type DAP = crate::Reg<dap::DAP_SPEC>;
317#[doc = "Description collection: Device address prefix n"]
318pub mod dap;
319#[doc = "DACNF (rw) register accessor: an alias for `Reg<DACNF_SPEC>`"]
320pub type DACNF = crate::Reg<dacnf::DACNF_SPEC>;
321#[doc = "Device address match configuration"]
322pub mod dacnf;
323#[doc = "MODECNF0 (rw) register accessor: an alias for `Reg<MODECNF0_SPEC>`"]
324pub type MODECNF0 = crate::Reg<modecnf0::MODECNF0_SPEC>;
325#[doc = "Radio mode configuration register 0"]
326pub mod modecnf0;
327#[doc = "POWER (rw) register accessor: an alias for `Reg<POWER_SPEC>`"]
328pub type POWER = crate::Reg<power::POWER_SPEC>;
329#[doc = "Peripheral power control"]
330pub mod power;