#[doc = r"Register block"] #[repr(C)] pub struct RegisterBlock { #[doc = "0x00 - Activate NFCT peripheral for incoming and outgoing frames, change state to activated"] pub tasks_activate: TASKS_ACTIVATE, #[doc = "0x04 - Disable NFCT peripheral"] pub tasks_disable: TASKS_DISABLE, #[doc = "0x08 - Enable NFC sense field mode, change state to sense mode"] pub tasks_sense: TASKS_SENSE, #[doc = "0x0c - Start transmission of an outgoing frame, change state to transmit"] pub tasks_starttx: TASKS_STARTTX, _reserved4: [u8; 0x0c], #[doc = "0x1c - Initializes the EasyDMA for receive."] pub tasks_enablerxdata: TASKS_ENABLERXDATA, _reserved5: [u8; 0x04], #[doc = "0x24 - Force state machine to IDLE state"] pub tasks_goidle: TASKS_GOIDLE, #[doc = "0x28 - Force state machine to SLEEP_A state"] pub tasks_gosleep: TASKS_GOSLEEP, _reserved7: [u8; 0xd4], #[doc = "0x100 - The NFCT peripheral is ready to receive and send frames"] pub events_ready: EVENTS_READY, #[doc = "0x104 - Remote NFC field detected"] pub events_fielddetected: EVENTS_FIELDDETECTED, #[doc = "0x108 - Remote NFC field lost"] pub events_fieldlost: EVENTS_FIELDLOST, #[doc = "0x10c - Marks the start of the first symbol of a transmitted frame"] pub events_txframestart: EVENTS_TXFRAMESTART, #[doc = "0x110 - Marks the end of the last transmitted on-air symbol of a frame"] pub events_txframeend: EVENTS_TXFRAMEEND, #[doc = "0x114 - Marks the end of the first symbol of a received frame"] pub events_rxframestart: EVENTS_RXFRAMESTART, #[doc = "0x118 - Received data has been checked (CRC, parity) and transferred to RAM, and EasyDMA has ended accessing the RX buffer"] pub events_rxframeend: EVENTS_RXFRAMEEND, #[doc = "0x11c - NFC error reported. The ERRORSTATUS register contains details on the source of the error."] pub events_error: EVENTS_ERROR, _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: EVENTS_RXERROR, #[doc = "0x12c - RX buffer (as defined by PACKETPTR and MAXLEN) in Data RAM full."] pub events_endrx: EVENTS_ENDRX, #[doc = "0x130 - Transmission of data in RAM has ended, and EasyDMA has ended accessing the TX buffer"] pub events_endtx: EVENTS_ENDTX, _reserved18: [u8; 0x04], #[doc = "0x138 - Auto collision resolution process has started"] pub events_autocolresstarted: EVENTS_AUTOCOLRESSTARTED, _reserved19: [u8; 0x0c], #[doc = "0x148 - NFC auto collision resolution error reported."] pub events_collision: EVENTS_COLLISION, #[doc = "0x14c - NFC auto collision resolution successfully completed"] pub events_selected: EVENTS_SELECTED, #[doc = "0x150 - EasyDMA is ready to receive or send frames."] pub events_started: EVENTS_STARTED, _reserved22: [u8; 0xac], #[doc = "0x200 - Shortcuts between local events and tasks"] pub shorts: SHORTS, _reserved23: [u8; 0xfc], #[doc = "0x300 - Enable or disable interrupt"] pub inten: INTEN, #[doc = "0x304 - Enable interrupt"] pub intenset: INTENSET, #[doc = "0x308 - Disable interrupt"] pub intenclr: INTENCLR, _reserved26: [u8; 0xf8], #[doc = "0x404 - NFC Error Status register"] pub errorstatus: ERRORSTATUS, _reserved27: [u8; 0x04], #[doc = "0x40c - Unspecified"] pub framestatus: FRAMESTATUS, #[doc = "0x410 - NfcTag state register"] pub nfctagstate: NFCTAGSTATE, _reserved29: [u8; 0x0c], #[doc = "0x420 - Sleep state during automatic collision resolution"] pub sleepstate: SLEEPSTATE, _reserved30: [u8; 0x18], #[doc = "0x43c - Indicates the presence or not of a valid field"] pub fieldpresent: FIELDPRESENT, _reserved31: [u8; 0xc4], #[doc = "0x504 - Minimum frame delay"] pub framedelaymin: FRAMEDELAYMIN, #[doc = "0x508 - Maximum frame delay"] pub framedelaymax: FRAMEDELAYMAX, #[doc = "0x50c - Configuration register for the Frame Delay Timer"] pub framedelaymode: FRAMEDELAYMODE, #[doc = "0x510 - Packet pointer for TXD and RXD data storage in Data RAM"] pub packetptr: PACKETPTR, #[doc = "0x514 - Size of the RAM buffer allocated to TXD and RXD data storage each"] pub maxlen: MAXLEN, #[doc = "0x518..0x520 - Unspecified"] pub txd: TXD, #[doc = "0x520..0x528 - Unspecified"] pub rxd: RXD, _reserved38: [u8; 0x04], #[doc = "0x52c - Enables the modulation output to a GPIO pin which can be connected to a second external antenna."] pub modulationctrl: MODULATIONCTRL, _reserved39: [u8; 0x08], #[doc = "0x538 - Pin select for Modulation control."] pub modulationpsel: MODULATIONPSEL, _reserved40: [u8; 0x54], #[doc = "0x590 - Last NFCID1 part (4, 7 or 10 bytes ID)"] pub nfcid1_last: NFCID1_LAST, #[doc = "0x594 - Second last NFCID1 part (7 or 10 bytes ID)"] pub nfcid1_2nd_last: NFCID1_2ND_LAST, #[doc = "0x598 - Third last NFCID1 part (10 bytes ID)"] pub nfcid1_3rd_last: NFCID1_3RD_LAST, #[doc = "0x59c - Controls the auto collision resolution function. This setting must be done before the NFCT peripheral is activated."] pub autocolresconfig: AUTOCOLRESCONFIG, #[doc = "0x5a0 - NFC-A SENS_RES auto-response settings"] pub sensres: SENSRES, #[doc = "0x5a4 - NFC-A SEL_RES auto-response settings"] pub selres: SELRES, } #[doc = "TASKS_ACTIVATE (w) register accessor: an alias for `Reg`"] pub type TASKS_ACTIVATE = crate::Reg; #[doc = "Activate NFCT peripheral for incoming and outgoing frames, change state to activated"] pub mod tasks_activate; #[doc = "TASKS_DISABLE (w) register accessor: an alias for `Reg`"] pub type TASKS_DISABLE = crate::Reg; #[doc = "Disable NFCT peripheral"] pub mod tasks_disable; #[doc = "TASKS_SENSE (w) register accessor: an alias for `Reg`"] pub type TASKS_SENSE = crate::Reg; #[doc = "Enable NFC sense field mode, change state to sense mode"] pub mod tasks_sense; #[doc = "TASKS_STARTTX (w) register accessor: an alias for `Reg`"] pub type TASKS_STARTTX = crate::Reg; #[doc = "Start transmission of an outgoing frame, change state to transmit"] pub mod tasks_starttx; #[doc = "TASKS_ENABLERXDATA (w) register accessor: an alias for `Reg`"] pub type TASKS_ENABLERXDATA = crate::Reg; #[doc = "Initializes the EasyDMA for receive."] pub mod tasks_enablerxdata; #[doc = "TASKS_GOIDLE (w) register accessor: an alias for `Reg`"] pub type TASKS_GOIDLE = crate::Reg; #[doc = "Force state machine to IDLE state"] pub mod tasks_goidle; #[doc = "TASKS_GOSLEEP (w) register accessor: an alias for `Reg`"] pub type TASKS_GOSLEEP = crate::Reg; #[doc = "Force state machine to SLEEP_A state"] pub mod tasks_gosleep; #[doc = "EVENTS_READY (rw) register accessor: an alias for `Reg`"] pub type EVENTS_READY = crate::Reg; #[doc = "The NFCT peripheral is ready to receive and send frames"] pub mod events_ready; #[doc = "EVENTS_FIELDDETECTED (rw) register accessor: an alias for `Reg`"] pub type EVENTS_FIELDDETECTED = crate::Reg; #[doc = "Remote NFC field detected"] pub mod events_fielddetected; #[doc = "EVENTS_FIELDLOST (rw) register accessor: an alias for `Reg`"] pub type EVENTS_FIELDLOST = crate::Reg; #[doc = "Remote NFC field lost"] pub mod events_fieldlost; #[doc = "EVENTS_TXFRAMESTART (rw) register accessor: an alias for `Reg`"] pub type EVENTS_TXFRAMESTART = crate::Reg; #[doc = "Marks the start of the first symbol of a transmitted frame"] pub mod events_txframestart; #[doc = "EVENTS_TXFRAMEEND (rw) register accessor: an alias for `Reg`"] pub type EVENTS_TXFRAMEEND = crate::Reg; #[doc = "Marks the end of the last transmitted on-air symbol of a frame"] pub mod events_txframeend; #[doc = "EVENTS_RXFRAMESTART (rw) register accessor: an alias for `Reg`"] pub type EVENTS_RXFRAMESTART = crate::Reg; #[doc = "Marks the end of the first symbol of a received frame"] pub mod events_rxframestart; #[doc = "EVENTS_RXFRAMEEND (rw) register accessor: an alias for `Reg`"] pub type EVENTS_RXFRAMEEND = crate::Reg; #[doc = "Received data has been checked (CRC, parity) and transferred to RAM, and EasyDMA has ended accessing the RX buffer"] pub mod events_rxframeend; #[doc = "EVENTS_ERROR (rw) register accessor: an alias for `Reg`"] pub type EVENTS_ERROR = crate::Reg; #[doc = "NFC error reported. The ERRORSTATUS register contains details on the source of the error."] pub mod events_error; #[doc = "EVENTS_RXERROR (rw) register accessor: an alias for `Reg`"] pub type EVENTS_RXERROR = crate::Reg; #[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 (rw) register accessor: an alias for `Reg`"] pub type EVENTS_ENDRX = crate::Reg; #[doc = "RX buffer (as defined by PACKETPTR and MAXLEN) in Data RAM full."] pub mod events_endrx; #[doc = "EVENTS_ENDTX (rw) register accessor: an alias for `Reg`"] pub type EVENTS_ENDTX = crate::Reg; #[doc = "Transmission of data in RAM has ended, and EasyDMA has ended accessing the TX buffer"] pub mod events_endtx; #[doc = "EVENTS_AUTOCOLRESSTARTED (rw) register accessor: an alias for `Reg`"] pub type EVENTS_AUTOCOLRESSTARTED = crate::Reg; #[doc = "Auto collision resolution process has started"] pub mod events_autocolresstarted; #[doc = "EVENTS_COLLISION (rw) register accessor: an alias for `Reg`"] pub type EVENTS_COLLISION = crate::Reg; #[doc = "NFC auto collision resolution error reported."] pub mod events_collision; #[doc = "EVENTS_SELECTED (rw) register accessor: an alias for `Reg`"] pub type EVENTS_SELECTED = crate::Reg; #[doc = "NFC auto collision resolution successfully completed"] pub mod events_selected; #[doc = "EVENTS_STARTED (rw) register accessor: an alias for `Reg`"] pub type EVENTS_STARTED = crate::Reg; #[doc = "EasyDMA is ready to receive or send frames."] pub mod events_started; #[doc = "SHORTS (rw) register accessor: an alias for `Reg`"] pub type SHORTS = crate::Reg; #[doc = "Shortcuts between local events and tasks"] pub mod shorts; #[doc = "INTEN (rw) register accessor: an alias for `Reg`"] pub type INTEN = crate::Reg; #[doc = "Enable or disable interrupt"] pub mod inten; #[doc = "INTENSET (rw) register accessor: an alias for `Reg`"] pub type INTENSET = crate::Reg; #[doc = "Enable interrupt"] pub mod intenset; #[doc = "INTENCLR (rw) register accessor: an alias for `Reg`"] pub type INTENCLR = crate::Reg; #[doc = "Disable interrupt"] pub mod intenclr; #[doc = "ERRORSTATUS (rw) register accessor: an alias for `Reg`"] pub type ERRORSTATUS = crate::Reg; #[doc = "NFC Error Status register"] pub mod errorstatus; #[doc = "Unspecified"] pub use framestatus::FRAMESTATUS; #[doc = r"Cluster"] #[doc = "Unspecified"] pub mod framestatus; #[doc = "NFCTAGSTATE (r) register accessor: an alias for `Reg`"] pub type NFCTAGSTATE = crate::Reg; #[doc = "NfcTag state register"] pub mod nfctagstate; #[doc = "SLEEPSTATE (r) register accessor: an alias for `Reg`"] pub type SLEEPSTATE = crate::Reg; #[doc = "Sleep state during automatic collision resolution"] pub mod sleepstate; #[doc = "FIELDPRESENT (r) register accessor: an alias for `Reg`"] pub type FIELDPRESENT = crate::Reg; #[doc = "Indicates the presence or not of a valid field"] pub mod fieldpresent; #[doc = "FRAMEDELAYMIN (rw) register accessor: an alias for `Reg`"] pub type FRAMEDELAYMIN = crate::Reg; #[doc = "Minimum frame delay"] pub mod framedelaymin; #[doc = "FRAMEDELAYMAX (rw) register accessor: an alias for `Reg`"] pub type FRAMEDELAYMAX = crate::Reg; #[doc = "Maximum frame delay"] pub mod framedelaymax; #[doc = "FRAMEDELAYMODE (rw) register accessor: an alias for `Reg`"] pub type FRAMEDELAYMODE = crate::Reg; #[doc = "Configuration register for the Frame Delay Timer"] pub mod framedelaymode; #[doc = "PACKETPTR (rw) register accessor: an alias for `Reg`"] pub type PACKETPTR = crate::Reg; #[doc = "Packet pointer for TXD and RXD data storage in Data RAM"] pub mod packetptr; #[doc = "MAXLEN (rw) register accessor: an alias for `Reg`"] pub type MAXLEN = crate::Reg; #[doc = "Size of the RAM buffer allocated to TXD and RXD data storage each"] pub mod maxlen; #[doc = "Unspecified"] pub use txd::TXD; #[doc = r"Cluster"] #[doc = "Unspecified"] pub mod txd; #[doc = "Unspecified"] pub use rxd::RXD; #[doc = r"Cluster"] #[doc = "Unspecified"] pub mod rxd; #[doc = "MODULATIONCTRL (rw) register accessor: an alias for `Reg`"] pub type MODULATIONCTRL = crate::Reg; #[doc = "Enables the modulation output to a GPIO pin which can be connected to a second external antenna."] pub mod modulationctrl; #[doc = "MODULATIONPSEL (rw) register accessor: an alias for `Reg`"] pub type MODULATIONPSEL = crate::Reg; #[doc = "Pin select for Modulation control."] pub mod modulationpsel; #[doc = "NFCID1_LAST (rw) register accessor: an alias for `Reg`"] pub type NFCID1_LAST = crate::Reg; #[doc = "Last NFCID1 part (4, 7 or 10 bytes ID)"] pub mod nfcid1_last; #[doc = "NFCID1_2ND_LAST (rw) register accessor: an alias for `Reg`"] pub type NFCID1_2ND_LAST = crate::Reg; #[doc = "Second last NFCID1 part (7 or 10 bytes ID)"] pub mod nfcid1_2nd_last; #[doc = "NFCID1_3RD_LAST (rw) register accessor: an alias for `Reg`"] pub type NFCID1_3RD_LAST = crate::Reg; #[doc = "Third last NFCID1 part (10 bytes ID)"] pub mod nfcid1_3rd_last; #[doc = "AUTOCOLRESCONFIG (rw) register accessor: an alias for `Reg`"] pub type AUTOCOLRESCONFIG = crate::Reg; #[doc = "Controls the auto collision resolution function. This setting must be done before the NFCT peripheral is activated."] pub mod autocolresconfig; #[doc = "SENSRES (rw) register accessor: an alias for `Reg`"] pub type SENSRES = crate::Reg; #[doc = "NFC-A SENS_RES auto-response settings"] pub mod sensres; #[doc = "SELRES (rw) register accessor: an alias for `Reg`"] pub type SELRES = crate::Reg; #[doc = "NFC-A SEL_RES auto-response settings"] pub mod selres;