CE95394 - USB HID MOUSE WITH PSOC(R) 3/PSOC 5LP.pdf

CE95394 - USB HID Mouse with PSoC® 3/PSoC 5LP
Objective
This code example implements a standard USB HID mouse with a single button. The mouse cursor will move in the shape of a
box on the screen.
Overview
This project demonstrates the use of the USBFS Component to implement a HID mouse. Using the standard HID mouse
descriptor the PSoC enumerates as a mouse on the PC. When the enumeration is complete, the PSoC sends data about the
relative movement of the mouse to the PC. A single button is also implemented in the project to emulate the left button, or
button 1, on a standard mouse. You can hold down the button on the kit and watch the cursor highlight text or select items on
a desktop while it draws the box.
www.cypress.com
Document No. 001-95394 Rev.**
1
USB HID Mouse with PSoC® 3/PSoC 5LP
PSoC Resources
Cypress provides a wealth of data at www.cypress.com to help you to select the right PSoC device for your design, and
quickly and effectively integrate the device into your design. For a comprehensive list of resources, see KBA86521, How to
Design with PSoC 3, PSoC 4, and PSoC 5LP. The following is an abbreviated list for PSoC 5LP:





Overview: PSoC Portfolio, PSoC Roadmap
Product Selectors: PSoC 1, PSoC 3, PSoC 4, or
PSoC 5LP. In addition, PSoC Creator includes a
device selection tool.
Datasheets:
Describe
and
provide
electrical
specifications for the PSoC 5LP device family.
CapSense Design Guide: Learn how to design
capacitive touch-sensing applications with the
PSoC 5LP family of devices.
Application Notes and Code Examples: Cover a
broad range of topics, from basic to advanced level.
Many of the application notes include code examples.



Technical Reference Manuals (TRM): Provide
detailed descriptions of the architecture and registers
in each PSoC 5LP device family.
Development Kits:
 CY8CKIT-001 is a common development platform
for all PSoC family devices.
 CY8CKIT-050 is a development platform targeted
at analog intensive designs for PSoC 5LP.
The MiniProg3 device provides an interface for flash
programming and debug.
PSoC Creator
PSoC Creator is a free Windows-based Integrated Design Environment (IDE). It enables concurrent hardware and firmware
design of systems based on PSoC 3, PSoC 4, and PSoC 5LP. See Figure 1 – with PSoC Creator, you can:
1.
2.
Drag and drop Components to build your hardware
system design in the main design workspace
3.
Configure Components using configuration tools
4. Explore the library of 100+ Components
Codesign your application firmware with the PSoC
5. Review Component datasheets
hardware
Figure 1. PSoC Creator Features
www.cypress.com
Document No. 001-95394 Rev.**
2
USB HID Mouse with PSoC® 3/PSoC 5LP
Requirements
Tool: PSoC Creator 3.1 CP1
Programming Language: C (GCC 4.8.4)
Associated Parts: All PSoC 3 and PSoC 5LP parts
Related Hardware: CY8CKIT-059, CY8CKIT-001, CY8CKIT-050, and CY8CKIT-030
Design
Figure 2 shows the PSoC Creator schematic for the code example.
Figure 2. USB HID Mouse Code Example Schematic
The code example uses the USBFS Component to implement the HID mouse and a digital input pin configured in resistive
pull-up mode to implement the mouse button.
All of the firmware for the code example is implemented in main.c. The firmware performs the following functions:





Enumerates the PSoC as a HID mouse.
Sends a packet of data with the mouse movement and button status to the PC.
Waits for the last packet to be acknowledged by the PC.
Updates the position data and button data after a brief delay.
Loads the new mouse data into the USB end to be sent to the PC.
www.cypress.com
Document No. 001-95394 Rev.**
3
USB HID Mouse with PSoC® 3/PSoC 5LP
Design Considerations
The design can be extended to implement a functional mouse by adding real user input to load the X and Y position data with.
This can be a joystick or a trackball fed into the ADC.
Hardware Setup
Plug in a USB cable to the USB connector on your kit.
Software Setup
There is no special software setup to use this project. HID drivers come standard on most operating systems, which is the
benefit of creating a HID device.
Components
Table 1 lists the PSoC Creator Components used in this example, as well as the hardware resources used by each.
Table 1. List of PSoC Creator Components
Component or User Module
Hardware Resources
USBFS
USB
Pin
One pin for the mouse button
Parameter Settings
Table 2. Parameter Settings
Component
Non-default Parameter Settings
USBFS
HID Class Descriptor
Pin
Resistive Pull-up, Show External Terminal
Design-Wide Resources
Figure 3 and Figure 4 show the pin selections and the required clock settings for USB operation.
Figure 3. Pin Selections
www.cypress.com
Document No. 001-95394 Rev.**
4
USB HID Mouse with PSoC® 3/PSoC 5LP
Figure 4. Clock Settings for USB Operation
Operation
Program your kit with the code example and plug in a USB cable from your PC to the USB connection on the kit (not the
programming connection). Press the associated button to emulate a left click on the mouse.
www.cypress.com
Document No. 001-95394 Rev.**
5
USB HID Mouse with PSoC® 3/PSoC 5LP
Related Documents
Table 3 lists all relevant application notes, code examples, knowledge base articles, device datasheets, and Component
datasheets.
Table 3. Related Resources
Application Notes
AN57473
USB HID Basics with PSoC® 3 and PSoC 5LP
Introduction to USB HID with PSoC
AN58726
PSoC® 3 / PSoC 5LP USB HID Intermediate (with
Keyboard and Composite Device)
Intermediate level USB HID with PSoC
AN82072
PSoC® 3 and PSoC 5LP USB General Data Transfer
with Standard HID Drivers
General data transfer using HID drivers with PSoC
AN57294
USB 101: An Introduction to Universal Serial Bus 2.0
Introduction to USB
AN56377
PSoC® 3 and PSoC 5LP - Introduction to
Implementing USB Data Transfers
Introduction to USB transfer types
Code Examples
CE95390
USB Audio with PSoC 3/5LP
CE95393
USB Bulk Transfer with PSoC 3/5LP
CE95395
USB MIDI with PSoC 3/5LP
CE95396
USB UART with PSoC 3/5LP
PSoC Creator Component Datasheets
USBFS
Details use of the USBFS Component
Device Documentation
PSoC 3 Datasheets
PSoC 3 Technical Reference Manuals
PSoC 4 Datasheets
PSoC 4 Technical Reference Manuals
PSoC 5LP Datasheets
PSoC 5LP Technical Reference Manuals
Development Kit (DVK) Documentation
PSoC 3 and PSoC 5LP Kits
PSoC 4 Kits
www.cypress.com
Document No. 001-95394 Rev.**
6
USB HID Mouse with PSoC® 3/PSoC 5LP
Document History
Document Title: CE95394 - USB HID Mouse with PSoC® 3/PSoC 5LP
Document Number: 001-95394
Revision
ECN
**
4675951
www.cypress.com
Orig. of
Change
KLMZ
Submission
Date
03/04/2015
Description of Change
New code example
Document No. 001-95394 Rev.**
7
USB HID Mouse with PSoC® 3/PSoC 5LP
Worldwide Sales and Design Support
Cypress maintains a worldwide network of offices, solution centers, manufacturer’s representatives, and distributors. To find
the office closest to you, visit us at Cypress Locations.
PSoC® Solutions
Products
Automotive
cypress.com/go/automotive
psoc.cypress.com/solutions
Clocks & Buffers
cypress.com/go/clocks
PSoC 1 |PSoC 3 | PSoC 4 |PSoC 5LP
Interface
cypress.com/go/interface
Lighting & Power Control
cypress.com/go/powerpsoc
cypress.com/go/plc
Memory
cypress.com/go/memory
PSoC
cypress.com/go/psoc
Touch Sensing
cypress.com/go/touch
USB Controllers
cypress.com/go/usb
Wireless/RF
cypress.com/go/wireless
Cypress Developer Community
Community | Forums |Blogs | Video |Training
Technical Support
cypress.com/go/support
PSoC is a registered trademark and PSoC Creator is a trademark of Cypress Semiconductor Corp. All other trademarks or registered trademarks
referenced herein are the property of their respective owners.
Cypress Semiconductor
198 Champion Court
San Jose, CA 95134-1709
Phone
Fax
Website
: 408-943-2600
: 408-943-4730
: www.cypress.com
© Cypress Semiconductor Corporation, 2015. The information contained herein is subject to change without notice. Cypress Semiconductor
Corporation assumes no responsibility for the use of any circuitry other than circuitry embodied in a Cypress product. Nor does it convey or imply any
license under patent or other rights. Cypress products are not warranted nor intended to be used for medical, life support, life saving, critical control or
safety applications, unless pursuant to an express written agreement with Cypress. Furthermore, Cypress does not authorize its products for use as
critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The
inclusion of Cypress products in life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies
Cypress against all charges.
This Source Code (software and/or firmware) is owned by Cypress Semiconductor Corporation (Cypress) and is protected by and subject to worldwide
patent protection (United States and foreign), United States copyright laws and international treaty provisions. Cypress hereby grants to licensee a
personal, non-exclusive, non-transferable license to copy, use, modify, create derivative works of, and compile the Cypress Source Code and derivative
works for the sole purpose of creating custom software and or firmware in support of licensee product to be used only in conjunction with a Cypress
integrated circuit as specified in the applicable agreement. Any reproduction, modification, translation, compilation, or representation of this Source
Code except as specified above is prohibited without the express written permission of Cypress.
Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress reserves the
right to make changes without further notice to the materials described herein. Cypress does not assume any liability arising out of the application or
use of any product or circuit described herein. Cypress does not authorize its products for use as critical components in life-support systems where a
malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress’ product in a life-support systems
application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges.
Use may be limited by and subject to the applicable Cypress software license agreement.
www.cypress.com
Document No. 001-95394 Rev.**
8