160 likes | 344 Views
Using the PSoC USB. March 17, 2012 Lloyd Moore, President/Owner. Overview. USB Background USB Standard Classes Endpoints and Transfer Types Enumeration USB Descriptors Example Project. USB Background. Star topology, master / slave architecture
E N D
Using the PSoC USB March 17, 2012 Lloyd Moore, President/Owner
Overview • USB Background • USB Standard Classes • Endpoints and Transfer Types • Enumeration • USB Descriptors • Example Project
USB Background • Star topology, master / slave architecture • Host is the master, initiates all communications • Multiple speeds: Low=1.5Mbps, Full=12 Mbps, High=480Mbps, Super=5Gbps • Self powered vs. Bus powered • Low power: 100mA or 150mA Max (USB 2,3) • High power: 500mA or 900mA Max (USB 2,3) • Vendor Id, Product Id, serial number uniquely identify each device
Standard USB Classes • Used to define the USB device. • Standardizes protocols and drivers for common devices. • Allows operating systems to provide default drivers. • Can also create vendor specific classes for custom applications.
Endpoints • Uniquely addressable portion of a USB device. • 4 end points max for a low speed device, 16 for other speeds • End point 0 is special, must be present and is used for enumeration and control • Data transfer happens at end points. • Simplest way to think about an end point is that it provides an addressable buffer to send and receive data. • IN refers to dataflow TO the Host • OUT refers to dataflow FROM the Host
Enumeration • Process by which the host discovers what devices are connected and the properties of those devices. • Utilizes a series of resets and Control transfers to end point 0. • Each device given a unique address between 1 and 127. • Power and bandwidth requirements are collected and allocated. • Device will not be “connected” if resources are not available. • Communication details collected by way of “descriptors”
Descriptors • Data structures which allow the host to learn about a device and how to communicate with it. • Essentially a language which defines the protocol between the host and each device. • Can be quite complex but standard descriptors are well defined. • Standard device drivers can interpret these for a wide range of devices.
Example Project • Configure a PSoC 5 to send data from the CapSense buttons and slider to a PC in the form of a joystick. • Will be using the CY8CKIT-001, and PSoC Creator 1.0 for this demo. • Upgraded LCD display Lumex LCM-S02004DSR • If using PSoC Creator 2.0 will also need to add 24Mhz crystal to bottom of processor module due to a tighter clock requirement. • Data will be shown on LCD as well as sent to PC. • Will be using a “canned” set of code as the configuration is pretty time consuming.
Hardware Configuration • DebugLcd used to control the LCD display • CapSense will run the CapSense buttons and slider control for input • Heavy filtering here as the demo board USB spews lots of noise to CapSense when running. • USBFS – USB 2.0 Full Speed driver, will configure this to be a Joystick HID device to send information to the PC.
Device Descriptor • Walkthrough live configuration of descriptor.
Clock Configuration IMO = 24.000 MHz USB = IMOx2 ILO = 100KHz
USB Initialization Code • USBFS_Start() configures the hardware • Next we wait while the USB device goes through enumeration • Finally prepare the first set of data to be dropped to the host when requested
Main Loop • General operational pattern is to wait for Host to grab data currently at the end point, then replace it. • USBFS_bGetEPAckState() waits for grab • USBFS_LoadInEP() loads next batch of data to be grabbed by the host
Resources • Book: USB Complete, Fourth Edition • Jan Axelson • ISBN: 978-1-931448-08-6 • PSoC Application notes: AN57294, AN57473, AN58726 • PSoC Product Web Site: • http://www.cypress.com/?id=1353 • PSoC Developer Community: • http://www.psocdeveloper.com/forums/ • PSoC Training On Demand: • http://www.cypress.com/training • PSoC Full Development Kit (1, 3, 5): $249 • http://www.cypress.com/?rID=37464 • My Contact Info: • Lloyd@CyberData-Robotics.com • http://www.CyberData-Robotics.com
Questions???? • Will be around a bit after the meeting for individual questions • Feel free to e-mail me