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