Slide 1

Slide 1 text

Using the PSoC USB March 17, 2012 Lloyd Moore, President/Owner

Slide 2

Slide 2 text

Overview  USB Background  USB Standard Classes  Endpoints and Transfer Types  Enumeration  USB Descriptors  Example Project

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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. Audio Speakers, microphone, MIDI Communication (CDC) Virtual Serial Port, modem, Ethernet Content Security File and resource access Firmware Upgrade (DFU) Device software upgrades Human Interface (HID) Keyboards, mice, joysticks, barcode scanners, UPS IrDA Bridge IR communications Mass Storage Hard drives, DVD, flash memory Personal Healthcare Heart rate, blood pressure, glucose meters, ect. Printer Printers – ya that simple! Smart Card Phone cards, keyless entry Still Image Capture Cameras, scanners Test & Measurement ADC, DAC, sensors, etc. Video Video cameras, web cams

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

Transfer Types Type Guarantees Typical Use Control Presence, Error Free Device id and configuration Bulk Error Free Printer, hard drive Interrupt Latency Error Free Keyboard, mouse Isochronous Delivery rate Streaming audio & video

Slide 7

Slide 7 text

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”

Slide 8

Slide 8 text

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.

Slide 9

Slide 9 text

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.

Slide 10

Slide 10 text

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.

Slide 11

Slide 11 text

Device Descriptor  Walkthrough live configuration of descriptor.

Slide 12

Slide 12 text

Clock Configuration IMO = 24.000 MHz USB = IMOx2 ILO = 100KHz

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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: • [email protected] • http://www.CyberData-Robotics.com

Slide 16

Slide 16 text

Questions????  Will be around a bit after the meeting for individual questions  Feel free to e-mail me