Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Product List
C8051F38x USB MCU Slide 12
Programming the USB controller is accomplished through two direct registers that are mapped to the SFR space of the MCU. These registers are called the USB address register (USB0ADR) and the USB data register (USB0DAT). Access to all of the USB registers and the endpoint FIFOs are through an indexing scheme where the USB0ADR register points to the associated register for access and the data register is used to pass the data to the controller. In the example shown in this slide, to write to the common registers the USB0ADR register would set the MUX to where the yellow line is pointing. After the USBADR register is set the data written to the USB0DAT register would then be written to the common register. To access the endpoint registers the index register must first be written to set the MUX to point to the channel highlighted by the red arrow. Then data written will be passed to the associated endpoint pointed to by the index register. Silicon Labs code examples provide routines that handle all of the indirect access which simplifies the implementation.
PTM Published on: 2011-06-01