Module rp2040_pac::usbctrl_regs[][src]

Expand description

USB FS/LS controller device registers

Modules

Device address and endpoint control

Interrupt endpoint 1. Only valid for HOST mode.

Interrupt endpoint 2. Only valid for HOST mode.

Interrupt endpoint 3. Only valid for HOST mode.

Interrupt endpoint 4. Only valid for HOST mode.

Interrupt endpoint 5. Only valid for HOST mode.

Interrupt endpoint 6. Only valid for HOST mode.

Interrupt endpoint 7. Only valid for HOST mode.

Interrupt endpoint 8. Only valid for HOST mode.

Interrupt endpoint 9. Only valid for HOST mode.

Interrupt endpoint 10. Only valid for HOST mode.

Interrupt endpoint 11. Only valid for HOST mode.

Interrupt endpoint 12. Only valid for HOST mode.

Interrupt endpoint 13. Only valid for HOST mode.

Interrupt endpoint 14. Only valid for HOST mode.

Interrupt endpoint 15. Only valid for HOST mode.

Which of the double buffers should be handled. Only valid if using an interrupt per buffer (i.e. not per 2 buffers). Not valid for host interrupt endpoint polling because they are only single buffered.

Buffer status register. A bit set here indicates that a buffer has completed on the endpoint (if the buffer interrupt is enabled). It is possible for 2 buffers to be completed, so clearing the buffer status bit may instantly re set it on the next clock cycle.

Device only: Can be set to ignore the buffer control register for this endpoint in case you would like to revoke a buffer. A NAK will be sent for every access to the endpoint until this bit is cleared. A corresponding bit in EP_ABORT_DONE is set when it is safe to modify the buffer control register.

Device only: Used in conjunction with EP_ABORT. Set once an endpoint is idle so the programmer knows it is safe to modify the buffer control register.

Device: this bit must be set in conjunction with the STALL bit in the buffer control register to send a STALL on EP0. The device controller clears these bits when a SETUP packet is received because the USB spec requires that a STALL condition is cleared when a SETUP packet is received.

Device: bits are set when the IRQ_ON_NAK or IRQ_ON_STALL bits are set. For EP0 this comes from SIE_CTRL. For all other endpoints it comes from the endpoint control register.

interrupt endpoint control register

Interrupt Enable

Interrupt Force

Raw Interrupts

Interrupt status after masking & forcing

Main control register

Used by the host controller. Sets the wait time in microseconds before trying again if the device replies with a NAK.

SIE control register

SIE status register

Read the last SOF (Start of Frame) frame number seen. In device mode the last SOF received from the host. In host mode the last SOF sent by the host.

Set the SOF (Start of Frame) frame number in the host controller. The SOF packet is sent every 1ms and the host will increment the frame number by 1 each time.

Where to connect the USB controller. Should be to_phy by default.

Overrides for the power signals in the event that the VBUS signals are not hooked up to GPIO. Set the value of the override and then the override enable to switch over to the override value.

This register allows for direct control of the USB phy. Use in conjunction with usbphy_direct_override register to enable each override bit.

Override enable for each control in usbphy_direct

Used to adjust trim values of USB phy pull down resistors.

Structs

Register block

Type Definitions

ADDR_ENDP register accessor: an alias for Reg<ADDR_ENDP_SPEC>

ADDR_ENDP1 register accessor: an alias for Reg<ADDR_ENDP1_SPEC>

ADDR_ENDP2 register accessor: an alias for Reg<ADDR_ENDP2_SPEC>

ADDR_ENDP3 register accessor: an alias for Reg<ADDR_ENDP3_SPEC>

ADDR_ENDP4 register accessor: an alias for Reg<ADDR_ENDP4_SPEC>

ADDR_ENDP5 register accessor: an alias for Reg<ADDR_ENDP5_SPEC>

ADDR_ENDP6 register accessor: an alias for Reg<ADDR_ENDP6_SPEC>

ADDR_ENDP7 register accessor: an alias for Reg<ADDR_ENDP7_SPEC>

ADDR_ENDP8 register accessor: an alias for Reg<ADDR_ENDP8_SPEC>

ADDR_ENDP9 register accessor: an alias for Reg<ADDR_ENDP9_SPEC>

ADDR_ENDP10 register accessor: an alias for Reg<ADDR_ENDP10_SPEC>

ADDR_ENDP11 register accessor: an alias for Reg<ADDR_ENDP11_SPEC>

ADDR_ENDP12 register accessor: an alias for Reg<ADDR_ENDP12_SPEC>

ADDR_ENDP13 register accessor: an alias for Reg<ADDR_ENDP13_SPEC>

ADDR_ENDP14 register accessor: an alias for Reg<ADDR_ENDP14_SPEC>

ADDR_ENDP15 register accessor: an alias for Reg<ADDR_ENDP15_SPEC>

BUFF_CPU_SHOULD_HANDLE register accessor: an alias for Reg<BUFF_CPU_SHOULD_HANDLE_SPEC>

BUFF_STATUS register accessor: an alias for Reg<BUFF_STATUS_SPEC>

EP_ABORT register accessor: an alias for Reg<EP_ABORT_SPEC>

EP_ABORT_DONE register accessor: an alias for Reg<EP_ABORT_DONE_SPEC>

EP_STALL_ARM register accessor: an alias for Reg<EP_STALL_ARM_SPEC>

EP_STATUS_STALL_NAK register accessor: an alias for Reg<EP_STATUS_STALL_NAK_SPEC>

INTE register accessor: an alias for Reg<INTE_SPEC>

INTF register accessor: an alias for Reg<INTF_SPEC>

INTR register accessor: an alias for Reg<INTR_SPEC>

INTS register accessor: an alias for Reg<INTS_SPEC>

INT_EP_CTRL register accessor: an alias for Reg<INT_EP_CTRL_SPEC>

MAIN_CTRL register accessor: an alias for Reg<MAIN_CTRL_SPEC>

NAK_POLL register accessor: an alias for Reg<NAK_POLL_SPEC>

SIE_CTRL register accessor: an alias for Reg<SIE_CTRL_SPEC>

SIE_STATUS register accessor: an alias for Reg<SIE_STATUS_SPEC>

SOF_RD register accessor: an alias for Reg<SOF_RD_SPEC>

SOF_WR register accessor: an alias for Reg<SOF_WR_SPEC>

USBPHY_DIRECT register accessor: an alias for Reg<USBPHY_DIRECT_SPEC>

USBPHY_DIRECT_OVERRIDE register accessor: an alias for Reg<USBPHY_DIRECT_OVERRIDE_SPEC>

USBPHY_TRIM register accessor: an alias for Reg<USBPHY_TRIM_SPEC>

USB_MUXING register accessor: an alias for Reg<USB_MUXING_SPEC>

USB_PWR register accessor: an alias for Reg<USB_PWR_SPEC>