Human interface on STK600:
Introduction
This example shows how to implement a USB Device HID Mouse on Atmel MCU with USB module. The application note AVR4903 http://ww1.microchip.com/downloads/en/appnotes/doc8409.pdf provides information about this implementation.
Startup
The example uses the buttons or sensors available on the board to simulate a standard mouse. After loading firmware, connect the board (EVKxx,Xplain,...) to the USB Host. When connected to a USB host system this application provides a mouse application in the Unix/Mac/Windows operating systems. This example uses the native HID driver for these operating systems.
- Led 0 is on when USB line is in IDLE mode, and off in SUSPEND mode
- Led 1 blinks when USB host has checked and enabled HID mouse interface
- Mouse move are linked at switches 0 (right), 1 (left), 2 (down), 3 (up)
- Mouse buttons are not handle in this user interface example.
- The switches 0 to 3 can be used to wakeup USB Host in remote wakeup mode.
Setup for STK600:
- LEDS connector is connected to PORTA
- SWITCHES are connected to PORTB
- Warning! The AREF0 jumper must be removed because AREF0 connected on PORTA0 overrides led 0.
- Warning! The AREF1 jumper must be removed because AREF1 connected on PORTB0 overrides switch 0.
About example
The example uses the following module groups:
- Basic modules: Startup, board, clock, interrupt, power management
- USB Device stack and HID modules:
services/usb/
services/usb/udc/
services/usb/class/hid/
services/usb/class/hid/mouse/
- Specific implementation:
- main.c,
initializes clock
initializes interrupt
manages UI
- specific implementation for each target "./examples/product_board/":
- conf_foo.h configuration of each module
- ui.c implement of user's interface (buttons, leds)