Universal Serial Bus (USB)
MPC885 PowerQUICC Family Reference Manual, Rev. 2
31-30
Freescale Semiconductor
31.15 USB Function Controller Initialization Example
The following is an example initialization sequence for the USB controller operating in function mode. It
can be used to set up four function endpoints (0–3) to fill transmit FIFOs so that data is ready for
transmission when an IN token is received from the USB. The token can be generated using a USB traffic
generator.
1. Enable CLK2 on proper cpm port. CLK2 frequency should be 48 Mhz.
2. Program SICR to connect CLK2 to the USB controller: program SICR[R4CS] to 101.
3. Clear cpm ports to select USBRXD and USBOE.
4. Clear cpm ports to select USBRXP and USBRXN.
5. Set cpm ports to select USBTXP and USBTXN.
6. Clear FRAME_N.
7. Write (DPRAM+0x500) to EP0PTR, (DPRAM+0x520) to EP1PTR, (DPRAM+0x540) to
EP2PTR, and (DPRAM+0x560) to EP3PTR to set up the endpoint pointers.
8. Write 0xBC80_0004 to DPRAM+0x20 to set up the TxBD[Status and Control, Data Length] fields
of endpoint 0.
9. Write DPRAM+0x200 to DPRAM+0x24 to set up the TxBD[Buffer Pointer] field of endpoint 0.
10. Write 0xBCC0_0004 to DPRAM+0x28 to set up the TxBD[Status and Control, Data Length] fields
of endpoint 1.
11. Write DPRAM+0x210 to DPRAM+0x2C to set up the TxBD[Buffer Pointer] field of endpoint 1.
12. Write 0xBC80_0004 to DPRAM+0x30 to set up the TxBD[Status and Control, Data Length] fields
of endpoint 2.
13. Write DPRAM+0x220 to DPRAM+0x34 to set up the TxBD[Buffer Pointer] field of endpoint 2.
14. Write 0xBCC0_0004 to DPRAM+ 0x38 to set up the TxBD[Status and Control, Data Length]
fields of endpoint 3.
15. Write DPRAM+0x230 to DPRAM+0x3C to set up the TxBD[Buffer Pointer] field of endpoint 3.
16. Write 0xCAFE_CAFE to DPRAM+0x200 to set up the endpoint 0 Tx data pattern.
17. Write 0xFACE_FACE to DPRAM+0x210 to set up the endpoint 1 Tx data pattern.
18. Write 0xBACE_BACE to DPRAM+0x220 to set up the endpoint 2 Tx data pattern.
19. Write 0xCACE_CACE to DPRAM+0x230 to set up the endpoint 3 Tx data pattern.
20. Write 0x2000_2020 to DPRAM+0x500 to set up the RBASE and TBASE fields of the endpoint 0
parameter RAM.
21. Write 0x1818_0100 to DPRAM+0x504 to set up the RFCR, TFCR, and MRBLR fields of the
endpoint 0 parameter RAM.
22. Write 0x2000_2020 to DPRAM+0x508 to set up the RBPTR and TBPTR fields of the endpoint 0
parameter RAM.
23. Clear the TSTATE field of the endpoint 0 parameter RAM.
24. Write 0x2008_2028 to DPRAM+0x520 to set up the RBASE and TBASE fields of the endpoint 1
parameter RAM.
Summary of Contents for PowerQUICC MPC870
Page 98: ...MPC885 PowerQUICC Family Reference Manual Rev 2 I 4 Freescale Semiconductor ...
Page 118: ...MPC885 Overview MPC885 PowerQUICC Family Reference Manual Rev 2 1 20 Freescale Semiconductor ...
Page 158: ...The MPC8xx Core MPC885 PowerQUICC Family Reference Manual Rev 2 3 18 Freescale Semiconductor ...
Page 288: ...MPC885 PowerQUICC Family Reference Manual Rev 2 III 4 Freescale Semiconductor ...
Page 554: ...MPC885 PowerQUICC Family Reference Manual Rev 2 V 6 Freescale Semiconductor ...
Page 1090: ...UTOPIA Interface MPC885 PowerQUICC Family Reference Manual Rev 2 43 8 Freescale Semiconductor ...
Page 1312: ...Byte Ordering MPC885 PowerQUICC Family Reference Manual Rev 2 A 8 Freescale Semiconductor ...
Page 1336: ...MPC885 PowerQUICC Family Reference Manual Rev 2 D 16 Freescale Semiconductor ...
Page 1358: ...MPC885 PowerQUICC Family Reference Manual Rev 2 D 38 Freescale Semiconductor ...
Page 1370: ...MPC880 MPC885 PowerQUICC Family Reference Manual Rev 2 E 4 Freescale Semiconductor ...
Page 1386: ...Revision History MPC885 PowerQUICC Family Reference Manual Rev 2 I 2 Freescale Semiconductor ...