Struct nrf52840::usbd::RegisterBlock[][src]

#[repr(C)]
pub struct RegisterBlock { pub tasks_startepin: [TASKS_STARTEPIN; 8], pub tasks_startisoin: TASKS_STARTISOIN, pub tasks_startepout: [TASKS_STARTEPOUT; 8], pub tasks_startisoout: TASKS_STARTISOOUT, pub tasks_ep0rcvout: TASKS_EP0RCVOUT, pub tasks_ep0status: TASKS_EP0STATUS, pub tasks_ep0stall: TASKS_EP0STALL, pub tasks_dpdmdrive: TASKS_DPDMDRIVE, pub tasks_dpdmnodrive: TASKS_DPDMNODRIVE, pub events_usbreset: EVENTS_USBRESET, pub events_started: EVENTS_STARTED, pub events_endepin: [EVENTS_ENDEPIN; 8], pub events_ep0datadone: EVENTS_EP0DATADONE, pub events_endisoin: EVENTS_ENDISOIN, pub events_endepout: [EVENTS_ENDEPOUT; 8], pub events_endisoout: EVENTS_ENDISOOUT, pub events_sof: EVENTS_SOF, pub events_usbevent: EVENTS_USBEVENT, pub events_ep0setup: EVENTS_EP0SETUP, pub events_epdata: EVENTS_EPDATA, pub shorts: SHORTS, pub inten: INTEN, pub intenset: INTENSET, pub intenclr: INTENCLR, pub eventcause: EVENTCAUSE, pub halted: HALTED, pub epstatus: EPSTATUS, pub epdatastatus: EPDATASTATUS, pub usbaddr: USBADDR, pub bmrequesttype: BMREQUESTTYPE, pub brequest: BREQUEST, pub wvaluel: WVALUEL, pub wvalueh: WVALUEH, pub windexl: WINDEXL, pub windexh: WINDEXH, pub wlengthl: WLENGTHL, pub wlengthh: WLENGTHH, pub size: SIZE, pub enable: ENABLE, pub usbpullup: USBPULLUP, pub dpdmvalue: DPDMVALUE, pub dtoggle: DTOGGLE, pub epinen: EPINEN, pub epouten: EPOUTEN, pub epstall: EPSTALL, pub isosplit: ISOSPLIT, pub framecntr: FRAMECNTR, pub lowpower: LOWPOWER, pub isoinconfig: ISOINCONFIG, pub epin0: EPIN, pub epin1: EPIN, pub epin2: EPIN, pub epin3: EPIN, pub epin4: EPIN, pub epin5: EPIN, pub epin6: EPIN, pub epin7: EPIN, pub isoin: ISOIN, pub epout0: EPOUT, pub epout1: EPOUT, pub epout2: EPOUT, pub epout3: EPOUT, pub epout4: EPOUT, pub epout5: EPOUT, pub epout6: EPOUT, pub epout7: EPOUT, pub isoout: ISOOUT, // some fields omitted }

Register block

Fields

0x04 - Description collection[n]: Captures the EPIN[n].PTR and EPIN[n].MAXCNT registers values, and enables endpoint IN n to respond to traffic from host

0x24 - Captures the ISOIN.PTR and ISOIN.MAXCNT registers values, and enables sending data on ISO endpoint

0x28 - Description collection[n]: Captures the EPOUT[n].PTR and EPOUT[n].MAXCNT registers values, and enables endpoint n to respond to traffic from host

0x48 - Captures the ISOOUT.PTR and ISOOUT.MAXCNT registers values, and enables receiving of data on ISO endpoint

0x4c - Allows OUT data stage on control endpoint 0

0x50 - Allows status stage on control endpoint 0

0x54 - Stalls data and status stage on control endpoint 0

0x58 - Forces D+ and D- lines into the state defined in the DPDMVALUE register

0x5c - Stops forcing D+ and D- lines into any state (USB engine takes control)

0x100 - Signals that a USB reset condition has been detected on USB lines

0x104 - Confirms that the EPIN[n].PTR and EPIN[n].MAXCNT, or EPOUT[n].PTR and EPOUT[n].MAXCNT registers have been captured on all endpoints reported in the EPSTATUS register

0x108 - Description collection[n]: The whole EPIN[n] buffer has been consumed. The RAM buffer can be accessed safely by software.

0x128 - An acknowledged data transfer has taken place on the control endpoint

0x12c - The whole ISOIN buffer has been consumed. The RAM buffer can be accessed safely by software.

0x130 - Description collection[n]: The whole EPOUT[n] buffer has been consumed. The RAM buffer can be accessed safely by software.

0x150 - The whole ISOOUT buffer has been consumed. The RAM buffer can be accessed safely by software.

0x154 - Signals that a SOF (start of frame) condition has been detected on USB lines

0x158 - An event or an error not covered by specific events has occurred. Check EVENTCAUSE register to find the cause.

0x15c - A valid SETUP token has been received (and acknowledged) on the control endpoint

0x160 - A data transfer has occurred on a data endpoint, indicated by the EPDATASTATUS register

0x200 - Shortcut register

0x300 - Enable or disable interrupt

0x304 - Enable interrupt

0x308 - Disable interrupt

0x400 - Details on what caused the USBEVENT event

0x420 - Unspecified

0x468 - Provides information on which endpoint's EasyDMA registers have been captured

0x46c - Provides information on which endpoint(s) an acknowledged data transfer has occurred (EPDATA event)

0x470 - Device USB address

0x480 - SETUP data, byte 0, bmRequestType

0x484 - SETUP data, byte 1, bRequest

0x488 - SETUP data, byte 2, LSB of wValue

0x48c - SETUP data, byte 3, MSB of wValue

0x490 - SETUP data, byte 4, LSB of wIndex

0x494 - SETUP data, byte 5, MSB of wIndex

0x498 - SETUP data, byte 6, LSB of wLength

0x49c - SETUP data, byte 7, MSB of wLength

0x4a0 - Unspecified

0x500 - Enable USB

0x504 - Control of the USB pull-up

0x508 - State D+ and D- lines will be forced into by the DPDMDRIVE task. The DPDMNODRIVE task reverts the control of the lines to MAC IP (no forcing).

0x50c - Data toggle control and status

0x510 - Endpoint IN enable

0x514 - Endpoint OUT enable

0x518 - STALL endpoints

0x51c - Controls the split of ISO buffers

0x520 - Returns the current value of the start of frame counter

0x52c - Controls USBD peripheral low power mode during USB suspend

0x530 - Controls the response of the ISO IN endpoint to an IN token when no data is ready to be sent

0x600 - Unspecified

0x614 - Unspecified

0x628 - Unspecified

0x63c - Unspecified

0x650 - Unspecified

0x664 - Unspecified

0x678 - Unspecified

0x68c - Unspecified

0x6a0 - Unspecified

0x700 - Unspecified

0x714 - Unspecified

0x728 - Unspecified

0x73c - Unspecified

0x750 - Unspecified

0x764 - Unspecified

0x778 - Unspecified

0x78c - Unspecified

0x7a0 - Unspecified

Auto Trait Implementations