nrf52833_pac/
nfct.rs

1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4    #[doc = "0x00 - Activate NFCT peripheral for incoming and outgoing frames, change state to activated"]
5    pub tasks_activate: TASKS_ACTIVATE,
6    #[doc = "0x04 - Disable NFCT peripheral"]
7    pub tasks_disable: TASKS_DISABLE,
8    #[doc = "0x08 - Enable NFC sense field mode, change state to sense mode"]
9    pub tasks_sense: TASKS_SENSE,
10    #[doc = "0x0c - Start transmission of an outgoing frame, change state to transmit"]
11    pub tasks_starttx: TASKS_STARTTX,
12    _reserved4: [u8; 0x0c],
13    #[doc = "0x1c - Initializes the EasyDMA for receive."]
14    pub tasks_enablerxdata: TASKS_ENABLERXDATA,
15    _reserved5: [u8; 0x04],
16    #[doc = "0x24 - Force state machine to IDLE state"]
17    pub tasks_goidle: TASKS_GOIDLE,
18    #[doc = "0x28 - Force state machine to SLEEP_A state"]
19    pub tasks_gosleep: TASKS_GOSLEEP,
20    _reserved7: [u8; 0xd4],
21    #[doc = "0x100 - The NFCT peripheral is ready to receive and send frames"]
22    pub events_ready: EVENTS_READY,
23    #[doc = "0x104 - Remote NFC field detected"]
24    pub events_fielddetected: EVENTS_FIELDDETECTED,
25    #[doc = "0x108 - Remote NFC field lost"]
26    pub events_fieldlost: EVENTS_FIELDLOST,
27    #[doc = "0x10c - Marks the start of the first symbol of a transmitted frame"]
28    pub events_txframestart: EVENTS_TXFRAMESTART,
29    #[doc = "0x110 - Marks the end of the last transmitted on-air symbol of a frame"]
30    pub events_txframeend: EVENTS_TXFRAMEEND,
31    #[doc = "0x114 - Marks the end of the first symbol of a received frame"]
32    pub events_rxframestart: EVENTS_RXFRAMESTART,
33    #[doc = "0x118 - Received data has been checked (CRC, parity) and transferred to RAM, and EasyDMA has ended accessing the RX buffer"]
34    pub events_rxframeend: EVENTS_RXFRAMEEND,
35    #[doc = "0x11c - NFC error reported. The ERRORSTATUS register contains details on the source of the error."]
36    pub events_error: EVENTS_ERROR,
37    _reserved15: [u8; 0x08],
38    #[doc = "0x128 - NFC RX frame error reported. The FRAMESTATUS.RX register contains details on the source of the error."]
39    pub events_rxerror: EVENTS_RXERROR,
40    #[doc = "0x12c - RX buffer (as defined by PACKETPTR and MAXLEN) in Data RAM full."]
41    pub events_endrx: EVENTS_ENDRX,
42    #[doc = "0x130 - Transmission of data in RAM has ended, and EasyDMA has ended accessing the TX buffer"]
43    pub events_endtx: EVENTS_ENDTX,
44    _reserved18: [u8; 0x04],
45    #[doc = "0x138 - Auto collision resolution process has started"]
46    pub events_autocolresstarted: EVENTS_AUTOCOLRESSTARTED,
47    _reserved19: [u8; 0x0c],
48    #[doc = "0x148 - NFC auto collision resolution error reported."]
49    pub events_collision: EVENTS_COLLISION,
50    #[doc = "0x14c - NFC auto collision resolution successfully completed"]
51    pub events_selected: EVENTS_SELECTED,
52    #[doc = "0x150 - EasyDMA is ready to receive or send frames."]
53    pub events_started: EVENTS_STARTED,
54    _reserved22: [u8; 0xac],
55    #[doc = "0x200 - Shortcuts between local events and tasks"]
56    pub shorts: SHORTS,
57    _reserved23: [u8; 0xfc],
58    #[doc = "0x300 - Enable or disable interrupt"]
59    pub inten: INTEN,
60    #[doc = "0x304 - Enable interrupt"]
61    pub intenset: INTENSET,
62    #[doc = "0x308 - Disable interrupt"]
63    pub intenclr: INTENCLR,
64    _reserved26: [u8; 0xf8],
65    #[doc = "0x404 - NFC Error Status register"]
66    pub errorstatus: ERRORSTATUS,
67    _reserved27: [u8; 0x04],
68    #[doc = "0x40c - Unspecified"]
69    pub framestatus: FRAMESTATUS,
70    #[doc = "0x410 - NfcTag state register"]
71    pub nfctagstate: NFCTAGSTATE,
72    _reserved29: [u8; 0x0c],
73    #[doc = "0x420 - Sleep state during automatic collision resolution"]
74    pub sleepstate: SLEEPSTATE,
75    _reserved30: [u8; 0x18],
76    #[doc = "0x43c - Indicates the presence or not of a valid field"]
77    pub fieldpresent: FIELDPRESENT,
78    _reserved31: [u8; 0xc4],
79    #[doc = "0x504 - Minimum frame delay"]
80    pub framedelaymin: FRAMEDELAYMIN,
81    #[doc = "0x508 - Maximum frame delay"]
82    pub framedelaymax: FRAMEDELAYMAX,
83    #[doc = "0x50c - Configuration register for the Frame Delay Timer"]
84    pub framedelaymode: FRAMEDELAYMODE,
85    #[doc = "0x510 - Packet pointer for TXD and RXD data storage in Data RAM"]
86    pub packetptr: PACKETPTR,
87    #[doc = "0x514 - Size of the RAM buffer allocated to TXD and RXD data storage each"]
88    pub maxlen: MAXLEN,
89    #[doc = "0x518..0x520 - Unspecified"]
90    pub txd: TXD,
91    #[doc = "0x520..0x528 - Unspecified"]
92    pub rxd: RXD,
93    _reserved38: [u8; 0x04],
94    #[doc = "0x52c - Enables the modulation output to a GPIO pin which can be connected to a second external antenna."]
95    pub modulationctrl: MODULATIONCTRL,
96    _reserved39: [u8; 0x08],
97    #[doc = "0x538 - Pin select for Modulation control."]
98    pub modulationpsel: MODULATIONPSEL,
99    _reserved40: [u8; 0x54],
100    #[doc = "0x590 - Last NFCID1 part (4, 7 or 10 bytes ID)"]
101    pub nfcid1_last: NFCID1_LAST,
102    #[doc = "0x594 - Second last NFCID1 part (7 or 10 bytes ID)"]
103    pub nfcid1_2nd_last: NFCID1_2ND_LAST,
104    #[doc = "0x598 - Third last NFCID1 part (10 bytes ID)"]
105    pub nfcid1_3rd_last: NFCID1_3RD_LAST,
106    #[doc = "0x59c - Controls the auto collision resolution function. This setting must be done before the NFCT peripheral is activated."]
107    pub autocolresconfig: AUTOCOLRESCONFIG,
108    #[doc = "0x5a0 - NFC-A SENS_RES auto-response settings"]
109    pub sensres: SENSRES,
110    #[doc = "0x5a4 - NFC-A SEL_RES auto-response settings"]
111    pub selres: SELRES,
112}
113#[doc = "TASKS_ACTIVATE (w) register accessor: an alias for `Reg<TASKS_ACTIVATE_SPEC>`"]
114pub type TASKS_ACTIVATE = crate::Reg<tasks_activate::TASKS_ACTIVATE_SPEC>;
115#[doc = "Activate NFCT peripheral for incoming and outgoing frames, change state to activated"]
116pub mod tasks_activate;
117#[doc = "TASKS_DISABLE (w) register accessor: an alias for `Reg<TASKS_DISABLE_SPEC>`"]
118pub type TASKS_DISABLE = crate::Reg<tasks_disable::TASKS_DISABLE_SPEC>;
119#[doc = "Disable NFCT peripheral"]
120pub mod tasks_disable;
121#[doc = "TASKS_SENSE (w) register accessor: an alias for `Reg<TASKS_SENSE_SPEC>`"]
122pub type TASKS_SENSE = crate::Reg<tasks_sense::TASKS_SENSE_SPEC>;
123#[doc = "Enable NFC sense field mode, change state to sense mode"]
124pub mod tasks_sense;
125#[doc = "TASKS_STARTTX (w) register accessor: an alias for `Reg<TASKS_STARTTX_SPEC>`"]
126pub type TASKS_STARTTX = crate::Reg<tasks_starttx::TASKS_STARTTX_SPEC>;
127#[doc = "Start transmission of an outgoing frame, change state to transmit"]
128pub mod tasks_starttx;
129#[doc = "TASKS_ENABLERXDATA (w) register accessor: an alias for `Reg<TASKS_ENABLERXDATA_SPEC>`"]
130pub type TASKS_ENABLERXDATA = crate::Reg<tasks_enablerxdata::TASKS_ENABLERXDATA_SPEC>;
131#[doc = "Initializes the EasyDMA for receive."]
132pub mod tasks_enablerxdata;
133#[doc = "TASKS_GOIDLE (w) register accessor: an alias for `Reg<TASKS_GOIDLE_SPEC>`"]
134pub type TASKS_GOIDLE = crate::Reg<tasks_goidle::TASKS_GOIDLE_SPEC>;
135#[doc = "Force state machine to IDLE state"]
136pub mod tasks_goidle;
137#[doc = "TASKS_GOSLEEP (w) register accessor: an alias for `Reg<TASKS_GOSLEEP_SPEC>`"]
138pub type TASKS_GOSLEEP = crate::Reg<tasks_gosleep::TASKS_GOSLEEP_SPEC>;
139#[doc = "Force state machine to SLEEP_A state"]
140pub mod tasks_gosleep;
141#[doc = "EVENTS_READY (rw) register accessor: an alias for `Reg<EVENTS_READY_SPEC>`"]
142pub type EVENTS_READY = crate::Reg<events_ready::EVENTS_READY_SPEC>;
143#[doc = "The NFCT peripheral is ready to receive and send frames"]
144pub mod events_ready;
145#[doc = "EVENTS_FIELDDETECTED (rw) register accessor: an alias for `Reg<EVENTS_FIELDDETECTED_SPEC>`"]
146pub type EVENTS_FIELDDETECTED = crate::Reg<events_fielddetected::EVENTS_FIELDDETECTED_SPEC>;
147#[doc = "Remote NFC field detected"]
148pub mod events_fielddetected;
149#[doc = "EVENTS_FIELDLOST (rw) register accessor: an alias for `Reg<EVENTS_FIELDLOST_SPEC>`"]
150pub type EVENTS_FIELDLOST = crate::Reg<events_fieldlost::EVENTS_FIELDLOST_SPEC>;
151#[doc = "Remote NFC field lost"]
152pub mod events_fieldlost;
153#[doc = "EVENTS_TXFRAMESTART (rw) register accessor: an alias for `Reg<EVENTS_TXFRAMESTART_SPEC>`"]
154pub type EVENTS_TXFRAMESTART = crate::Reg<events_txframestart::EVENTS_TXFRAMESTART_SPEC>;
155#[doc = "Marks the start of the first symbol of a transmitted frame"]
156pub mod events_txframestart;
157#[doc = "EVENTS_TXFRAMEEND (rw) register accessor: an alias for `Reg<EVENTS_TXFRAMEEND_SPEC>`"]
158pub type EVENTS_TXFRAMEEND = crate::Reg<events_txframeend::EVENTS_TXFRAMEEND_SPEC>;
159#[doc = "Marks the end of the last transmitted on-air symbol of a frame"]
160pub mod events_txframeend;
161#[doc = "EVENTS_RXFRAMESTART (rw) register accessor: an alias for `Reg<EVENTS_RXFRAMESTART_SPEC>`"]
162pub type EVENTS_RXFRAMESTART = crate::Reg<events_rxframestart::EVENTS_RXFRAMESTART_SPEC>;
163#[doc = "Marks the end of the first symbol of a received frame"]
164pub mod events_rxframestart;
165#[doc = "EVENTS_RXFRAMEEND (rw) register accessor: an alias for `Reg<EVENTS_RXFRAMEEND_SPEC>`"]
166pub type EVENTS_RXFRAMEEND = crate::Reg<events_rxframeend::EVENTS_RXFRAMEEND_SPEC>;
167#[doc = "Received data has been checked (CRC, parity) and transferred to RAM, and EasyDMA has ended accessing the RX buffer"]
168pub mod events_rxframeend;
169#[doc = "EVENTS_ERROR (rw) register accessor: an alias for `Reg<EVENTS_ERROR_SPEC>`"]
170pub type EVENTS_ERROR = crate::Reg<events_error::EVENTS_ERROR_SPEC>;
171#[doc = "NFC error reported. The ERRORSTATUS register contains details on the source of the error."]
172pub mod events_error;
173#[doc = "EVENTS_RXERROR (rw) register accessor: an alias for `Reg<EVENTS_RXERROR_SPEC>`"]
174pub type EVENTS_RXERROR = crate::Reg<events_rxerror::EVENTS_RXERROR_SPEC>;
175#[doc = "NFC RX frame error reported. The FRAMESTATUS.RX register contains details on the source of the error."]
176pub mod events_rxerror;
177#[doc = "EVENTS_ENDRX (rw) register accessor: an alias for `Reg<EVENTS_ENDRX_SPEC>`"]
178pub type EVENTS_ENDRX = crate::Reg<events_endrx::EVENTS_ENDRX_SPEC>;
179#[doc = "RX buffer (as defined by PACKETPTR and MAXLEN) in Data RAM full."]
180pub mod events_endrx;
181#[doc = "EVENTS_ENDTX (rw) register accessor: an alias for `Reg<EVENTS_ENDTX_SPEC>`"]
182pub type EVENTS_ENDTX = crate::Reg<events_endtx::EVENTS_ENDTX_SPEC>;
183#[doc = "Transmission of data in RAM has ended, and EasyDMA has ended accessing the TX buffer"]
184pub mod events_endtx;
185#[doc = "EVENTS_AUTOCOLRESSTARTED (rw) register accessor: an alias for `Reg<EVENTS_AUTOCOLRESSTARTED_SPEC>`"]
186pub type EVENTS_AUTOCOLRESSTARTED =
187    crate::Reg<events_autocolresstarted::EVENTS_AUTOCOLRESSTARTED_SPEC>;
188#[doc = "Auto collision resolution process has started"]
189pub mod events_autocolresstarted;
190#[doc = "EVENTS_COLLISION (rw) register accessor: an alias for `Reg<EVENTS_COLLISION_SPEC>`"]
191pub type EVENTS_COLLISION = crate::Reg<events_collision::EVENTS_COLLISION_SPEC>;
192#[doc = "NFC auto collision resolution error reported."]
193pub mod events_collision;
194#[doc = "EVENTS_SELECTED (rw) register accessor: an alias for `Reg<EVENTS_SELECTED_SPEC>`"]
195pub type EVENTS_SELECTED = crate::Reg<events_selected::EVENTS_SELECTED_SPEC>;
196#[doc = "NFC auto collision resolution successfully completed"]
197pub mod events_selected;
198#[doc = "EVENTS_STARTED (rw) register accessor: an alias for `Reg<EVENTS_STARTED_SPEC>`"]
199pub type EVENTS_STARTED = crate::Reg<events_started::EVENTS_STARTED_SPEC>;
200#[doc = "EasyDMA is ready to receive or send frames."]
201pub mod events_started;
202#[doc = "SHORTS (rw) register accessor: an alias for `Reg<SHORTS_SPEC>`"]
203pub type SHORTS = crate::Reg<shorts::SHORTS_SPEC>;
204#[doc = "Shortcuts between local events and tasks"]
205pub mod shorts;
206#[doc = "INTEN (rw) register accessor: an alias for `Reg<INTEN_SPEC>`"]
207pub type INTEN = crate::Reg<inten::INTEN_SPEC>;
208#[doc = "Enable or disable interrupt"]
209pub mod inten;
210#[doc = "INTENSET (rw) register accessor: an alias for `Reg<INTENSET_SPEC>`"]
211pub type INTENSET = crate::Reg<intenset::INTENSET_SPEC>;
212#[doc = "Enable interrupt"]
213pub mod intenset;
214#[doc = "INTENCLR (rw) register accessor: an alias for `Reg<INTENCLR_SPEC>`"]
215pub type INTENCLR = crate::Reg<intenclr::INTENCLR_SPEC>;
216#[doc = "Disable interrupt"]
217pub mod intenclr;
218#[doc = "ERRORSTATUS (rw) register accessor: an alias for `Reg<ERRORSTATUS_SPEC>`"]
219pub type ERRORSTATUS = crate::Reg<errorstatus::ERRORSTATUS_SPEC>;
220#[doc = "NFC Error Status register"]
221pub mod errorstatus;
222#[doc = "Unspecified"]
223pub use framestatus::FRAMESTATUS;
224#[doc = r"Cluster"]
225#[doc = "Unspecified"]
226pub mod framestatus;
227#[doc = "NFCTAGSTATE (r) register accessor: an alias for `Reg<NFCTAGSTATE_SPEC>`"]
228pub type NFCTAGSTATE = crate::Reg<nfctagstate::NFCTAGSTATE_SPEC>;
229#[doc = "NfcTag state register"]
230pub mod nfctagstate;
231#[doc = "SLEEPSTATE (r) register accessor: an alias for `Reg<SLEEPSTATE_SPEC>`"]
232pub type SLEEPSTATE = crate::Reg<sleepstate::SLEEPSTATE_SPEC>;
233#[doc = "Sleep state during automatic collision resolution"]
234pub mod sleepstate;
235#[doc = "FIELDPRESENT (r) register accessor: an alias for `Reg<FIELDPRESENT_SPEC>`"]
236pub type FIELDPRESENT = crate::Reg<fieldpresent::FIELDPRESENT_SPEC>;
237#[doc = "Indicates the presence or not of a valid field"]
238pub mod fieldpresent;
239#[doc = "FRAMEDELAYMIN (rw) register accessor: an alias for `Reg<FRAMEDELAYMIN_SPEC>`"]
240pub type FRAMEDELAYMIN = crate::Reg<framedelaymin::FRAMEDELAYMIN_SPEC>;
241#[doc = "Minimum frame delay"]
242pub mod framedelaymin;
243#[doc = "FRAMEDELAYMAX (rw) register accessor: an alias for `Reg<FRAMEDELAYMAX_SPEC>`"]
244pub type FRAMEDELAYMAX = crate::Reg<framedelaymax::FRAMEDELAYMAX_SPEC>;
245#[doc = "Maximum frame delay"]
246pub mod framedelaymax;
247#[doc = "FRAMEDELAYMODE (rw) register accessor: an alias for `Reg<FRAMEDELAYMODE_SPEC>`"]
248pub type FRAMEDELAYMODE = crate::Reg<framedelaymode::FRAMEDELAYMODE_SPEC>;
249#[doc = "Configuration register for the Frame Delay Timer"]
250pub mod framedelaymode;
251#[doc = "PACKETPTR (rw) register accessor: an alias for `Reg<PACKETPTR_SPEC>`"]
252pub type PACKETPTR = crate::Reg<packetptr::PACKETPTR_SPEC>;
253#[doc = "Packet pointer for TXD and RXD data storage in Data RAM"]
254pub mod packetptr;
255#[doc = "MAXLEN (rw) register accessor: an alias for `Reg<MAXLEN_SPEC>`"]
256pub type MAXLEN = crate::Reg<maxlen::MAXLEN_SPEC>;
257#[doc = "Size of the RAM buffer allocated to TXD and RXD data storage each"]
258pub mod maxlen;
259#[doc = "Unspecified"]
260pub use txd::TXD;
261#[doc = r"Cluster"]
262#[doc = "Unspecified"]
263pub mod txd;
264#[doc = "Unspecified"]
265pub use rxd::RXD;
266#[doc = r"Cluster"]
267#[doc = "Unspecified"]
268pub mod rxd;
269#[doc = "MODULATIONCTRL (rw) register accessor: an alias for `Reg<MODULATIONCTRL_SPEC>`"]
270pub type MODULATIONCTRL = crate::Reg<modulationctrl::MODULATIONCTRL_SPEC>;
271#[doc = "Enables the modulation output to a GPIO pin which can be connected to a second external antenna."]
272pub mod modulationctrl;
273#[doc = "MODULATIONPSEL (rw) register accessor: an alias for `Reg<MODULATIONPSEL_SPEC>`"]
274pub type MODULATIONPSEL = crate::Reg<modulationpsel::MODULATIONPSEL_SPEC>;
275#[doc = "Pin select for Modulation control."]
276pub mod modulationpsel;
277#[doc = "NFCID1_LAST (rw) register accessor: an alias for `Reg<NFCID1_LAST_SPEC>`"]
278pub type NFCID1_LAST = crate::Reg<nfcid1_last::NFCID1_LAST_SPEC>;
279#[doc = "Last NFCID1 part (4, 7 or 10 bytes ID)"]
280pub mod nfcid1_last;
281#[doc = "NFCID1_2ND_LAST (rw) register accessor: an alias for `Reg<NFCID1_2ND_LAST_SPEC>`"]
282pub type NFCID1_2ND_LAST = crate::Reg<nfcid1_2nd_last::NFCID1_2ND_LAST_SPEC>;
283#[doc = "Second last NFCID1 part (7 or 10 bytes ID)"]
284pub mod nfcid1_2nd_last;
285#[doc = "NFCID1_3RD_LAST (rw) register accessor: an alias for `Reg<NFCID1_3RD_LAST_SPEC>`"]
286pub type NFCID1_3RD_LAST = crate::Reg<nfcid1_3rd_last::NFCID1_3RD_LAST_SPEC>;
287#[doc = "Third last NFCID1 part (10 bytes ID)"]
288pub mod nfcid1_3rd_last;
289#[doc = "AUTOCOLRESCONFIG (rw) register accessor: an alias for `Reg<AUTOCOLRESCONFIG_SPEC>`"]
290pub type AUTOCOLRESCONFIG = crate::Reg<autocolresconfig::AUTOCOLRESCONFIG_SPEC>;
291#[doc = "Controls the auto collision resolution function. This setting must be done before the NFCT peripheral is activated."]
292pub mod autocolresconfig;
293#[doc = "SENSRES (rw) register accessor: an alias for `Reg<SENSRES_SPEC>`"]
294pub type SENSRES = crate::Reg<sensres::SENSRES_SPEC>;
295#[doc = "NFC-A SENS_RES auto-response settings"]
296pub mod sensres;
297#[doc = "SELRES (rw) register accessor: an alias for `Reg<SELRES_SPEC>`"]
298pub type SELRES = crate::Reg<selres::SELRES_SPEC>;
299#[doc = "NFC-A SEL_RES auto-response settings"]
300pub mod selres;