AVR32701: AVR32AP7 USB Performance. 32-bit Microcontrollers. Application Note. Features. 1 Introduction



Similar documents
Application Note. 8-bit Microcontrollers. AVR270: USB Mouse Demonstration

AVR1900: Getting started with ATxmega128A1 on STK bit Microcontrollers. Application Note. 1 Introduction

8-bit. Application Note. Microcontrollers. AVR282: USB Firmware Upgrade for AT90USB

AVR1309: Using the XMEGA SPI. 8-bit Microcontrollers. Application Note. Features. 1 Introduction SCK MOSI MISO SS

Using CryptoMemory in Full I 2 C Compliant Mode. Using CryptoMemory in Full I 2 C Compliant Mode AT88SC0104CA AT88SC0204CA AT88SC0404CA AT88SC0808CA

AVR1318: Using the XMEGA built-in AES accelerator. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR115: Data Logging with Atmel File System on ATmega32U4. Microcontrollers. Application Note. 1 Introduction. Atmel

AVR1922: Xplain Board Controller Firmware. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR287: USB Host HID and Mass Storage Demonstration. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR1600: Using the XMEGA Quadrature Decoder. 8-bit Microcontrollers. Application Note. Features. 1 Introduction. Sensors

AVR033: Getting Started with the CodeVisionAVR C Compiler. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR32138: How to optimize the ADC usage on AT32UC3A0/1, AT32UC3A3 and AT32UC3B0/1 series. 32-bit Microcontrollers. Application Note.

AVR353: Voltage Reference Calibration and Voltage ADC Usage. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

Application Note. 8-bit Microcontrollers. AVR272: USB CDC Demonstration UART to USB Bridge

AVR317: Using the Master SPI Mode of the USART module. 8-bit Microcontrollers. Application Note. Features. Introduction

AVR1510: Xplain training - XMEGA USART. 8-bit Microcontrollers. Application Note. Prerequisites. 1 Introduction

AVR2006: Design and characterization of the Radio Controller Board's 2.4GHz PCB Antenna. Application Note. Features.

Atmel AVR4921: ASF - USB Device Stack Differences between ASF V1 and V2. 8-bit Atmel Microcontrollers. Application Note. Features.

Atmel AVR4903: ASF - USB Device HID Mouse Application. Atmel Microcontrollers. Application Note. Features. 1 Introduction

AVR1301: Using the XMEGA DAC. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR319: Using the USI module for SPI communication. 8-bit Microcontrollers. Application Note. Features. Introduction

AVR305: Half Duplex Compact Software UART. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

32-bit AVR UC3 Microcontrollers. 32-bit AtmelAVR Application Note. AVR32769: How to Compile the standalone AVR32 Software Framework in AVR32 Studio V2

Application Note. 8-bit Microcontrollers. AVR293: USB Composite Device

General Porting Considerations. Memory EEPROM XRAM

AVR32788: AVR 32 How to use the SSC in I2S mode. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

Atmel AVR4920: ASF - USB Device Stack - Compliance and Performance Figures. Atmel Microcontrollers. Application Note. Features.

How To Use An Atmel Atmel Avr32848 Demo For Android (32Bit) With A Microcontroller (32B) And An Android Accessory (32D) On A Microcontroller (32Gb) On An Android Phone Or

3-output Laser Driver for HD-DVD/ Blu-ray/DVD/ CD-ROM ATR0885. Preliminary. Summary. Features. Applications. 1. Description

Application Note. C51 Bootloaders. C51 General Information about Bootloader and In System Programming. Overview. Abreviations

AVR030: Getting Started with IAR Embedded Workbench for Atmel AVR. 8-bit Microcontrollers. Application Note. Features.

AT89C5131A Starter Kit... Software User Guide

AVR055: Using a 32kHz XTAL for run-time calibration of the internal RC. 8-bit Microcontrollers. Application Note. Features.

AVR2004: LC-Balun for AT86RF230. Application Note. Features. 1 Introduction

AVR134: Real Time Clock (RTC) using the Asynchronous Timer. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR106: C functions for reading and writing to Flash memory. 8-bit Microcontrollers. Application Note. Features. Introduction

Application Note. Atmel ATSHA204 Authentication Modes. Prerequisites. Overview. Introduction

APPLICATION NOTE. Atmel AVR134: Real Time Clock (RTC) Using the Asynchronous Timer. Atmel AVR 8-bit Microcontroller. Introduction.

AVR245: Code Lock with 4x4 Keypad and I2C LCD. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR32737: AVR32 AP7 Linux Getting Started. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

APPLICATION NOTE. Secure Personalization with Transport Key Authentication. ATSHA204A, ATECC108A, and ATECC508A. Introduction.

AVR32110: Using the AVR32 Timer/Counter. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

APPLICATION NOTE. Atmel LF-RFID Kits Overview. Atmel LF-RFID Kit. LF-RFID Kit Introduction

APPLICATION NOTE. Atmel AT04389: Connecting SAMD20E to the AT86RF233 Transceiver. Atmel SAMD20. Description. Features

USER GUIDE EDBG. Description

8-bit RISC Microcontroller. Application Note. AVR910: In-System Programming

AT91 ARM Thumb Microcontrollers. AT91SAM CAN Bootloader. AT91SAM CAN Bootloader User Notes. 1. Description. 2. Key Features

8-bit Microcontroller. Application Note. AVR222: 8-point Moving Average Filter

AVR223: Digital Filters with AVR. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AT91SAM ARM-based Flash MCU. Application Note

Application Note. Atmel CryptoAuthentication Product Uses. Atmel ATSHA204. Abstract. Overview

APPLICATION NOTE. Authentication Counting. Atmel CryptoAuthentication. Features. Introduction

Quest vworkspace Virtual Desktop Extensions for Linux

AVR151: Setup and Use of the SPI. Introduction. Features. Atmel AVR 8-bit Microcontroller APPLICATION NOTE

APPLICATION NOTE. Atmel AT02985: User s Guide for USB-CAN Demo on SAM4E-EK. Atmel AVR 32-bit Microcontroller. Features. Description.

8-bit Microcontroller. Application Note. AVR105: Power Efficient High Endurance Parameter Storage in Flash Memory

8-bit RISC Microcontroller. Application Note. AVR182: Zero Cross Detector

SMARTCARD XPRO. Preface. SMART ARM-based Microcontrollers USER GUIDE

Application Note. USB Microcontrollers. USB PC Drivers Based on Generic HID Class. 1. Introduction

8-bit RISC Microcontroller. Application Note. AVR236: CRC Check of Program Memory

AVR1321: Using the Atmel AVR XMEGA 32-bit Real Time Counter and Battery Backup System. 8-bit Microcontrollers. Application Note.

Application Note. 8-bit Microcontrollers. AVR280: USB Host CDC Demonstration. 1. Introduction

AT91 ARM Thumb Microcontrollers. Application Note. Interfacing a PC Card to an AT91RM9200-DK. Introduction. Hardware Interface

Application Note. USB Mass Storage Device Implementation. USB Microcontrollers. References. Abbreviations. Supported Controllers

8-bit Microcontroller. Application Note. AVR134: Real-Time Clock (RTC) using the Asynchronous Timer. Features. Theory of Operation.

AT88CK490 Evaluation Kit

8051 Flash Microcontroller. Application Note. A Digital Thermometer Using the Atmel AT89LP2052 Microcontroller

8-bit Microcontroller. Application Note. AVR415: RC5 IR Remote Control Transmitter. Features. Introduction. Figure 1.

USER GUIDE. ZigBit USB Stick User Guide. Introduction

8-bit Microcontroller. Application Note. AVR400: Low Cost A/D Converter

AVR ONE!... Quick-start Guide. EVK Windows 32104B AVR ONE! 02/10

3-output Laser Driver for HD-DVD/ Blu-ray/DVD/ CD-ROM ATR0885. Preliminary. Summary

Atmel AVR1017: XMEGA - USB Hardware Design Recommendations. 8-bit Atmel Microcontrollers. Application Note. Features.

Designing Feature-Rich User Interfaces for Home and Industrial Controllers

New Features and Enhancements

APPLICATION NOTE. Atmel AVR443: Sensor-based Control of Three Phase Brushless DC Motor. Atmel AVR 8-bit Microcontrollers. Features.

How to Calculate the Capacitor of the Reset Input of a C51 Microcontroller 80C51. Application Note. Microcontrollers. Introduction

AVR32100: Using the AVR32 USART. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

How To Design An Ism Band Antenna For 915Mhz/2.4Ghz Ism Bands On A Pbbb (Bcm) Board

256K (32K x 8) Battery-Voltage Parallel EEPROMs AT28BV256

AVR106: C Functions for Reading and Writing to Flash Memory. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE

AVR125: ADC of tinyavr in Single Ended Mode. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

USB Test Environment ATUSBTEST- SS7400. Summary

AT89LP Flash Data Memory. Application Note. AT89LP Flash Data Memory API. 1. Introduction. 2. Theory of Operation. 2.1 Flash Memory Operation

Introducing a platform to facilitate reliable and highly productive embedded developments

8-bit RISC Microcontroller. Application Note. AVR155: Accessing an I 2 C LCD Display using the AVR 2-wire Serial Interface

AVR1003: Using the XMEGA Clock System. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

formerly Help Desk Authority Quest Free Network Tools User Manual

Capacitive Touch Technology Opens the Door to a New Generation of Automotive User Interfaces

APPLICATION NOTE Atmel AT02509: In House Unit with Bluetooth Low Energy Module Hardware User Guide 8-bit Atmel Microcontroller Features Description

Atmel AVR4027: Tips and Tricks to Optimize Your C Code for 8-bit AVR Microcontrollers. 8-bit Atmel Microcontrollers. Application Note.

Quick Start Guide. CAN Microcontrollers. ATADAPCAN01 - STK501 CAN Extension. Requirements

8-bit Microcontroller. Application Note. AVR286: LIN Firmware Base for LIN/UART Controller. LIN Features. 1. Atmel LIN/UART Controller

Software Prerequisites Linux Ubuntu LTS. Estimated completion time: 15min. The goal of this hands-on is to:

APPLICATION NOTE. AT07175: SAM-BA Bootloader for SAM D21. Atmel SAM D21. Introduction. Features

CryptoAuth Xplained Pro

8-bit Microcontroller. Application Note. AVR461: Quick Start Guide for the Embedded Internet Toolkit. Introduction. System Requirements

Dell Migration Manager for Enterprise Social What Can and Cannot Be Migrated

Dell Statistica. Statistica Document Management System (SDMS) Requirements

APPLICATION NOTE. Atmel AT01095: Joystick Game Controller Reference Design. 8-/16-bit Atmel Microcontrollers. Features.

Transcription:

AVR32701: AVR32AP7 USB Performance Features Linux USB bulk transfer performance ATSTK1000 (32-bit SDRAM bus width) ATNGW100 (16-bit SDRAM bus width) GadgetFS driver and gadgetfs-test application USB performance measurement tool 1 Introduction This application note documents the USB bulk transfer performance of the ATSTK 1000 and ATNGW100 boards running a 2.6.22-amtel.3 Linux kernel. The tests are based on the Linux USB gadget driver framework. 32-bit Microcontrollers Application Note Rev.

2 Benchmarking tools 2.1 Host side On the host side a Linux application communicates with the USB driver over the libusb library. It scans all enumerated USB devices and searches for a matching vendor/product ID. If such devices are found it configures them, writes and reads a specified amount of data to and from the device and measures the time needed for the transfer. These measurements are used to document the USB bulk transfer performance. This tool is available with this application note. 2.2 Device side To avoid kernel programming, a user space interface is available, GadgetFS. This will transfer all requests not handled by the kernel to user space and thus allowing a developer easy access to the USB interface. To provide this user space API a special gadget driver is needed. This is the GadgetFS driver. After loading this gadget into the kernel it provides a file system for the developer that can be used to communicate with the USB system. 1. Load the GadgetFS driver > modprobe gadgetfs 2. Make a directory for the mountpoint > mkdir /dev/gadget 3. Mount the gadget file system to the mount point > mount -t gadgetfs none /dev/gadget After these steps the file atmel_usba_udc should appear in the directory /dev/gadget/. This file is the entry point for a user application. The user-space test program is based on the gadgetfs-test application from http://www.linux-usb.org. It configures two bulk endpoints (IN and OUT) on the device, sinks all incoming data and provides data for the host. If compiled with the library libaio the application is able to access the gadget driver asynchronous and thus speed up the communication. These tools are also available in the buildroot board support package (http://www.atmel.no/buildroot/). To measure the pure throughput some buffer checking has been disabled in this application. 3 Benchmark data 3.1 Test setup The performance tests were done on a host with a Linux operating system with following hardware features: 2 AVR32701 RAM: 2GiByte CPU: Intel(R) Core(TM)2 T5600@1.83GHz USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller To start a measurement run the test application with: > usbperf

AVR32701 The USB bulk transfer performance tests on the boards were done with following setup: GadgetFS driver gadgetfs-test application usbperf application Transferred amount of data 32MiB Maximum bulk packet size 512 bytes To test the performance gain of asynchronous against synchronous I/O all test were done in both configurations. Start the gadgetfs-test application without any argument to configure the device with the two bulk enpoints and synchronous access to the driver. > gadgetfs-test To run tests with asynchronous access start the application with the parameters -i and -o. Make sure you have compiled the program with libaio support. > gadgetfs-test i20 o5 -i: Length of the asynchronous IN queue length -o: Length of the asynchronous OUT queue length The IN and OUT queue lengths can be used to optimize the transfers. 3.2 Test results Table 3-1 and Table 3-2 document the received test results on the STK1000 and NGW100 development boards. Table 3-1. STK1000 USB performance Read transfer Test case [MiB/s] Write transfer [MiB/s] Synchronous access to the GadgetFS driver 14 14 Asynchronous access to the GadgetFS driver 22 15 Table 3-2. NGW100 USB performance Read transfer Test case [MiB/s] Synchronous access to the GadgetFS driver 14 14 Asynchronous access to the GadgetFS driver 19 15 Write transfer [MiB/s] 3.3 Summary The test results on the two different boards do not differ very much except for the asynchronous read access case. Surprisingly it seems that the different bus widths to the external memory (16bit on NGW100, 32bit on STK1000) of the boards are not 3

directly visible in most cases. The use of asynchronous I/O seems to speed up the performance especially for read transfers. Better performance can be reached with a real kernel driver. For instance the gadget zero driver from linux-usb.org reaches up to 25MiB/s on read transfers. 4 References GadgetFS driver, gadgetfs-test application: http://www.linux-usb.org libusb: http://www.libusb.sourceforge.net libaio: http://www.lse.sourceforge.net/io/aio.html buildroot: http://www.atmel.no/buildroot 4 AVR32701

Disclaimer Headquarters International Atmel Corporation 2325 Orchard Parkway San Jose, CA 95131 USA Tel: 1(408) 441-0311 Fax: 1(408) 487-2600 Atmel Asia Room 1219 Chinachem Golden Plaza 77 Mody Road Tsimshatsui East Kowloon Hong Kong Tel: (852) 2721-9778 Fax: (852) 2722-1369 Atmel Europe Le Krebs 8, Rue Jean-Pierre Timbaud BP 309 78054 Saint-Quentin-en- Yvelines Cedex France Tel: (33) 1-30-60-70-00 Fax: (33) 1-30-60-71-11 Atmel Japan 9F, Tonetsu Shinkawa Bldg. 1-24-8 Shinkawa Chuo-ku, Tokyo 104-0033 Japan Tel: (81) 3-3523-3551 Fax: (81) 3-3523-7581 Product Contact Web Site www.atmel.com Technical Support avr32@atmel.com Sales Contact www.atmel.com/contacts Literature Request www.atmel.com/literature Disclaimer: The information in this document is provided in connection with Atmel products. No license, express or implied, by estoppel or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Atmel products. EXCEPT AS SET FORTH IN ATMEL S TERMS AND CONDITIONS OF SALE LOCATED ON ATMEL S WEB SITE, ATMEL ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY WARRANTY RELATING TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDENTAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, OR LOSS OF INFORMATION) ARISING OUT OF THE USE OR INABILITY TO USE THIS DOCUMENT, EVEN IF ATMEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Atmel makes no representations or warranties with respect to the accuracy or completeness of the contents of this document and reserves the right to make changes to specifications and product descriptions at any time without notice. Atmel does not make any commitment to update the information contained herein. Unless specifically provided otherwise, Atmel products are not suitable for, and shall not be used in, automotive applications. Atmel s products are not intended, authorized, or warranted for use as components in applications intended to support or sustain life. 2008 Atmel Corporation. All rights reserved. Atmel, logo and combinations thereof, AVR and others, are the registered trademarks or trademarks of Atmel Corporation or its subsidiaries. Other terms and product names may be trademarks of others.