Drivers Atmel Input Devices
V-USB is a software-only implementation of a low-speed USB device for Atmel’s AVR® microcontrollers, making it possible to build USB hardware with almost any AVR® microcontroller, not requiring any additional chip.
V-USB is a software-only implementation of a low-speed USB device for Atmel’s AVR® microcontrollers, making it possible to build USB hardware with almost any AVR® microcontroller, not requiring any additional chip. The package provides the installation files for Microsoft USB Input Device Driver version 10.0.4. If the driver is already installed on your system, updating (overwrite-installing) may fix various issues, add new functions, or just upgrade to the available version. This driver for Atmel® SMART ARM®-based microcontrollers provides an interface for the configuration and management of the device's physical I/O Pins, to alter the direction and input/drive characteristics as well as to configure the pin peripheral multiplexer selection. Microchip Studio is an Integrated Development Platform (IDP) for developing and debugging AVR ® and SAM microcontroller applications. It merges all of the great features and functionality of Atmel Studio into Microchip’s well-supported portfolio of development tools to give you a seamless and easy-to-use environment for writing, building and debugging your applications written in C/C.
Features
- Fully USB 1.1 compliant low-speed device, except handling of communication errors and electrical specifications.
- Example projects demonstrate device and host driver implementations on Linux, Mac OS X and Windows.
- Supports multiple endpoints: one control endpoint, two interrupt/bulk-in endpoints and up to 7 interrupt/bulk-out endpoints. (Note that the USB specification forbids bulk endpoints for low speed devices, but V-USB supports them to some degree.)
- Transfer sizes up to 254 bytes by default, more as configuration option.
- Comes with freely usable USB identifiers (Vendor-ID and Product-ID pairs).
- Runs on any AVR microcontroller with at least 2 kB of Flash memory, 128 bytes RAM and a clock rate of at least 12 MHz.
- No UART, timer, input capture unit or other special hardware is required (except one edge triggered interrupt).
- Can be clocked with 12 MHz, 15 MHz, 16 MHz 18 MHz or 20 MHz crystal or from a 12.8 MHz or 16.5 MHz internal RC oscillator.
- High level functionality is written in C and is well commented.
- Only about 1150 to 1400 bytes code size.
- You can choose the License: Open Source or commercial. Click here for details.
Hardware
This diagram shows a typical circuit for a bus powered device.
D1 and D2 are a low cost replacement for a low drop 3.3 V regulator chip, such as the LE33. Operating the AVR at higher voltages exceeds the common mode range of many USB chips. If you need to run the AVR at 5 V, add 3.6 V zener diodes at D+ and D- to limit the voltage.
For a prototyping board, please see metaboard.
Documentation Resources
- Download the V-USB package containing a short description and several simple code examples.
- V-USB's git repository is on github.com.
- V-USB Forum. Discuss ideas or get help from other users.
- V-USB Wiki is a public Wiki with lots of additional information.
- There is also an excellent step by step tutorial by Code and Life.
- Another third party tutorial can be found at workinprogress.ca.
- Objective Development's Developer Article: Implementing USB 1.1 in Firmware
Benefits over Alternative Solutions
Atmel Driver For Windows 10
Why not choose a microcontroller with built-in USB hardware? There are several of these available (see http://janaxelson.com). Or combine the microcontroller of your choice with a USB chip?
Advantages over Microcontrollers with USB Hardware
Atmel Ice Driver Windows 10
- Standard AVR controllers are usually easier to obtain.
- Most of the controllers with USB support are only available in SMD, which is almost impossible to handle for hobbyists.
- V-USB comes with a free shared Vendor- / Product-ID pair.
- A good free ANSI-C compiler (GNU gcc) and a free development system for Windows (WinAVR) are available for AVR.
- AVR controllers are faster than most of the controllers with integrated USB and cost less.
- Stand-alone operation: Some of the USB controllers download their firmware from the host computer into RAM. They don’t work without connection to the host.
- AVR controllers have on-chip EEPROM.
Advantages over separate USB Peripheral
- No additional cost.
- No additional hardware complexity: simpler PCB, less failures.
- More freedom in the choice of USB descriptors.
- V-USB comes with a free shared Vendor- / Product-ID pair.
- Little hardware resources used: only two to three I/O pins.
- USB chips are often hard to obtain.
Advantages over other Firmware-Only Implementations
A similar driver for the AVR series of microcontrollers is available from Igor Češko. Our USB driver has the following advantages over Igor’s driver:
- All customizable code written in ANSI-C and thus easier to maintain.
- Modular concept: easier to integrate into existing designs.
- Slightly smaller code size in spite of high level language modules.
- Faster: All encoding/decoding (USB requires NRZI coding and bit stuffing) is done in real-time, not in the main loop after storing away the raw data stream.
- More endpoints, USB descriptors can be better customized.
- V-USB comes with a free shared Vendor- / Product-ID pair.
- The level of standards conformance is documented (description of limitations and potential problems).
- Licensed under the terms of the GNU General Public License or alternatively under a commercial license.
Dick Streefland has stripped down an older version of V-USB to the basics. His code is easier to read and understand, but lacks some of the features found in V-USB:
Drivers Atmel Input Devices Download
- V-USB supports up to 4 endpoints. This allows implementing devices conforming to the HID or CDC device class.
- V-USB passes the tests in usb.org’s test utility.
- V-USB supports many different clock rates, some even with the internal RC oscillator.