Using the PSoC USB       March 17, 2012Lloyd 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   Mult...
Standard USB Classes                         Audio                    Speakers, microphone,   Used to define the         ...
Endpoints   Uniquely addressable portion of a USB device.   4 end points max for a low speed device, 16 for    other spe...
Transfer TypesType          Guarantees      Typical UseControl       Presence,       Device id and              Error Free...
Enumeration   Process by which the host discovers what devices    are connected and the properties of those    devices. ...
Descriptors   Data structures which allow the host to    learn about a device and how to    communicate with it.   Essen...
Example Project   Configure a PSoC 5 to send data from the    CapSense buttons and slider to a PC in the    form of a joy...
Hardware Configuration   DebugLcd used to control the LCD display   CapSense will run the CapSense buttons    and slider...
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 enumerati...
Main Loop   General operational pattern is to wait for    Host to grab data currently at the end    point, then replace i...
Resources   Book: USB Complete, Fourth Edition    • Jan Axelson    • ISBN: 978-1-931448-08-6   PSoC Application notes: A...
Questions???? Will be around a bit after the  meeting for individual questions Feel free to e-mail me
Upcoming SlideShare
Loading in …5
×

PSoC USB HID

1,509 views

Published on

This talk will cover the USB fundamental needed to implement as USB HID joystick device using the Cypress PSoC 5 processor. The concepts covered by the talk are common to USB communications in general and can be used with other processors as well as implementing other types of devices.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,509
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

PSoC USB HID

  1. 1. Using the PSoC USB March 17, 2012Lloyd Moore, President/Owner
  2. 2. Overview USB Background USB Standard Classes Endpoints and Transfer Types Enumeration USB Descriptors Example Project
  3. 3. 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
  4. 4. Standard USB Classes Audio Speakers, microphone, Used to define the MIDI USB device. Communication (CDC) Virtual Serial Port, modem, Ethernet Standardizes Content Security File and resource access protocols and Firmware Upgrade (DFU) Device software upgrades drivers for Human Interface (HID) Keyboards, mice, joysticks, barcode scanners, UPS common devices. IrDA Bridge IR communications Allows operating Mass Storage Hard drives, DVD, flash systems to Personal Healthcare memory Heart rate, blood pressure, provide default glucose meters, ect. drivers. Printer Printers – ya that simple! Smart Card Phone cards, keyless entry Can also create Still Image Capture Cameras, scanners vendor specific Test & Measurement ADC, DAC, sensors, etc. classes for custom Video Video cameras, web cams applications.
  5. 5. 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
  6. 6. Transfer TypesType Guarantees Typical UseControl Presence, Device id and Error Free configurationBulk Error Free Printer, hard driveInterrupt Latency Keyboard, Error Free mouseIsochronous Delivery rate Streaming audio & video
  7. 7. 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”
  8. 8. 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.
  9. 9. 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.
  10. 10. 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.
  11. 11. Device Descriptor Walkthrough live configuration of descriptor.
  12. 12. Clock Configuration IMO = 24.000 MHz USB = IMOx2 ILO = 100KHz
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 16. Questions???? Will be around a bit after the meeting for individual questions Feel free to e-mail me

×