Struct nrf52833_hal::pac::usbd::RegisterBlock[][src]

#[repr(C)]pub struct RegisterBlock {
    pub tasks_startepin: [Reg<u32, _TASKS_STARTEPIN>; 8],
    pub tasks_startisoin: Reg<u32, _TASKS_STARTISOIN>,
    pub tasks_startepout: [Reg<u32, _TASKS_STARTEPOUT>; 8],
    pub tasks_startisoout: Reg<u32, _TASKS_STARTISOOUT>,
    pub tasks_ep0rcvout: Reg<u32, _TASKS_EP0RCVOUT>,
    pub tasks_ep0status: Reg<u32, _TASKS_EP0STATUS>,
    pub tasks_ep0stall: Reg<u32, _TASKS_EP0STALL>,
    pub tasks_dpdmdrive: Reg<u32, _TASKS_DPDMDRIVE>,
    pub tasks_dpdmnodrive: Reg<u32, _TASKS_DPDMNODRIVE>,
    pub events_usbreset: Reg<u32, _EVENTS_USBRESET>,
    pub events_started: Reg<u32, _EVENTS_STARTED>,
    pub events_endepin: [Reg<u32, _EVENTS_ENDEPIN>; 8],
    pub events_ep0datadone: Reg<u32, _EVENTS_EP0DATADONE>,
    pub events_endisoin: Reg<u32, _EVENTS_ENDISOIN>,
    pub events_endepout: [Reg<u32, _EVENTS_ENDEPOUT>; 8],
    pub events_endisoout: Reg<u32, _EVENTS_ENDISOOUT>,
    pub events_sof: Reg<u32, _EVENTS_SOF>,
    pub events_usbevent: Reg<u32, _EVENTS_USBEVENT>,
    pub events_ep0setup: Reg<u32, _EVENTS_EP0SETUP>,
    pub events_epdata: Reg<u32, _EVENTS_EPDATA>,
    pub shorts: Reg<u32, _SHORTS>,
    pub inten: Reg<u32, _INTEN>,
    pub intenset: Reg<u32, _INTENSET>,
    pub intenclr: Reg<u32, _INTENCLR>,
    pub eventcause: Reg<u32, _EVENTCAUSE>,
    pub halted: HALTED,
    pub epstatus: Reg<u32, _EPSTATUS>,
    pub epdatastatus: Reg<u32, _EPDATASTATUS>,
    pub usbaddr: Reg<u32, _USBADDR>,
    pub bmrequesttype: Reg<u32, _BMREQUESTTYPE>,
    pub brequest: Reg<u32, _BREQUEST>,
    pub wvaluel: Reg<u32, _WVALUEL>,
    pub wvalueh: Reg<u32, _WVALUEH>,
    pub windexl: Reg<u32, _WINDEXL>,
    pub windexh: Reg<u32, _WINDEXH>,
    pub wlengthl: Reg<u32, _WLENGTHL>,
    pub wlengthh: Reg<u32, _WLENGTHH>,
    pub size: SIZE,
    pub enable: Reg<u32, _ENABLE>,
    pub usbpullup: Reg<u32, _USBPULLUP>,
    pub dpdmvalue: Reg<u32, _DPDMVALUE>,
    pub dtoggle: Reg<u32, _DTOGGLE>,
    pub epinen: Reg<u32, _EPINEN>,
    pub epouten: Reg<u32, _EPOUTEN>,
    pub epstall: Reg<u32, _EPSTALL>,
    pub isosplit: Reg<u32, _ISOSPLIT>,
    pub framecntr: Reg<u32, _FRAMECNTR>,
    pub lowpower: Reg<u32, _LOWPOWER>,
    pub isoinconfig: Reg<u32, _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

tasks_startepin: [Reg<u32, _TASKS_STARTEPIN>; 8]

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

tasks_startisoin: Reg<u32, _TASKS_STARTISOIN>

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

tasks_startepout: [Reg<u32, _TASKS_STARTEPOUT>; 8]

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

tasks_startisoout: Reg<u32, _TASKS_STARTISOOUT>

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

tasks_ep0rcvout: Reg<u32, _TASKS_EP0RCVOUT>

0x4c - Allows OUT data stage on control endpoint 0

tasks_ep0status: Reg<u32, _TASKS_EP0STATUS>

0x50 - Allows status stage on control endpoint 0

tasks_ep0stall: Reg<u32, _TASKS_EP0STALL>

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

tasks_dpdmdrive: Reg<u32, _TASKS_DPDMDRIVE>

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

tasks_dpdmnodrive: Reg<u32, _TASKS_DPDMNODRIVE>

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

events_usbreset: Reg<u32, _EVENTS_USBRESET>

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

events_started: Reg<u32, _EVENTS_STARTED>

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

events_endepin: [Reg<u32, _EVENTS_ENDEPIN>; 8]

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

events_ep0datadone: Reg<u32, _EVENTS_EP0DATADONE>

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

events_endisoin: Reg<u32, _EVENTS_ENDISOIN>

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

events_endepout: [Reg<u32, _EVENTS_ENDEPOUT>; 8]

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

events_endisoout: Reg<u32, _EVENTS_ENDISOOUT>

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

events_sof: Reg<u32, _EVENTS_SOF>

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

events_usbevent: Reg<u32, _EVENTS_USBEVENT>

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

events_ep0setup: Reg<u32, _EVENTS_EP0SETUP>

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

events_epdata: Reg<u32, _EVENTS_EPDATA>

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

shorts: Reg<u32, _SHORTS>

0x200 - Shortcuts between local events and tasks

inten: Reg<u32, _INTEN>

0x300 - Enable or disable interrupt

intenset: Reg<u32, _INTENSET>

0x304 - Enable interrupt

intenclr: Reg<u32, _INTENCLR>

0x308 - Disable interrupt

eventcause: Reg<u32, _EVENTCAUSE>

0x400 - Details on what caused the USBEVENT event

halted: HALTED

0x420 - Unspecified

epstatus: Reg<u32, _EPSTATUS>

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

epdatastatus: Reg<u32, _EPDATASTATUS>

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

usbaddr: Reg<u32, _USBADDR>

0x470 - Device USB address

bmrequesttype: Reg<u32, _BMREQUESTTYPE>

0x480 - SETUP data, byte 0, bmRequestType

brequest: Reg<u32, _BREQUEST>

0x484 - SETUP data, byte 1, bRequest

wvaluel: Reg<u32, _WVALUEL>

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

wvalueh: Reg<u32, _WVALUEH>

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

windexl: Reg<u32, _WINDEXL>

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

windexh: Reg<u32, _WINDEXH>

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

wlengthl: Reg<u32, _WLENGTHL>

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

wlengthh: Reg<u32, _WLENGTHH>

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

size: SIZE

0x4a0 - Unspecified

enable: Reg<u32, _ENABLE>

0x500 - Enable USB

usbpullup: Reg<u32, _USBPULLUP>

0x504 - Control of the USB pull-up

dpdmvalue: Reg<u32, _DPDMVALUE>

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).

dtoggle: Reg<u32, _DTOGGLE>

0x50c - Data toggle control and status

epinen: Reg<u32, _EPINEN>

0x510 - Endpoint IN enable

epouten: Reg<u32, _EPOUTEN>

0x514 - Endpoint OUT enable

epstall: Reg<u32, _EPSTALL>

0x518 - STALL endpoints

isosplit: Reg<u32, _ISOSPLIT>

0x51c - Controls the split of ISO buffers

framecntr: Reg<u32, _FRAMECNTR>

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

lowpower: Reg<u32, _LOWPOWER>

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

isoinconfig: Reg<u32, _ISOINCONFIG>

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

epin0: EPIN

0x600 - Unspecified

epin1: EPIN

0x614 - Unspecified

epin2: EPIN

0x628 - Unspecified

epin3: EPIN

0x63c - Unspecified

epin4: EPIN

0x650 - Unspecified

epin5: EPIN

0x664 - Unspecified

epin6: EPIN

0x678 - Unspecified

epin7: EPIN

0x68c - Unspecified

isoin: ISOIN

0x6a0 - Unspecified

epout0: EPOUT

0x700 - Unspecified

epout1: EPOUT

0x714 - Unspecified

epout2: EPOUT

0x728 - Unspecified

epout3: EPOUT

0x73c - Unspecified

epout4: EPOUT

0x750 - Unspecified

epout5: EPOUT

0x764 - Unspecified

epout6: EPOUT

0x778 - Unspecified

epout7: EPOUT

0x78c - Unspecified

isoout: ISOOUT

0x7a0 - Unspecified

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<Src, Dst> LosslessTryInto<Dst> for Src where
    Dst: LosslessTryFrom<Src>, 
[src]

impl<Src, Dst> LossyInto<Dst> for Src where
    Dst: LossyFrom<Src>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.