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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

USER GUIDE. ZigBit USB Stick User Guide. Introduction

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

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

AT89C5131A Starter Kit... Software User Guide

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

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

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

General Porting Considerations. Memory EEPROM XRAM

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

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

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

Atmel AT32UC3A3256 microcontroller 64MBit SDRAM Analog input (to ADC) Temperature sensor RC filter

AT91SAM ARM-based Flash MCU. Application Note

USER GUIDE EDBG. Description

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

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

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

AT88CK490 Evaluation Kit

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

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

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

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

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

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

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

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

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

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

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

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

APPLICATION NOTE. AT16268: JD Smart Cloud Based Smart Plug Getting. Started Guide ATSAMW25. Introduction. Features

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

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

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

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

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

Introducing a platform to facilitate reliable and highly productive embedded developments

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

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

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

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

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

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

Atmel AVR ATxmega384C3 microcontroller OLED display with pixels resolution Analog sensors. Ambient light sensor Temperature sensor

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

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

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

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

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

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

AN10866 LPC1700 secondary USB bootloader

Designing Feature-Rich User Interfaces for Home and Industrial Controllers

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

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

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

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

AN3354 Application note

Getting started with DfuSe USB device firmware upgrade STMicroelectronics extension

Atmel AVR4905: ASF - USB Device HID Generic. 8-/32-bit Atmel Microcontrollers. Application Note. Features. 1 Introduction

Atmel AVR4950: ASF - USB Host Stack. 8-bit Atmel Microcontrollers. Application Note. Features. 1 Introduction

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

New Features and Enhancements

Atmel SMART ARM Core-based Embedded Microprocessors

APPLICATION NOTE. Atmel AVR911: AVR Open Source Programmer. 8-bit Atmel Microcontrollers. Features. Introduction

AN3990 Application note

CryptoAuth Xplained Pro

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

Dell Spotlight on Active Directory Server Health Wizard Configuration Guide

APPLICATION NOTE. Atmel AVR600: STK600 Expansion, Routing and Socket Boards. Atmel Microcontrollers. Introduction

MODFLEX MINI GATEWAY ETHERNET USER S GUIDE

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

AVR 32771: USB High speed Device Mass storage on SD/MMC card with optional AES. 32-bit Microcontrollers. Application Note. Features.

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

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

64K (8K x 8) Parallel EEPROM with Page Write and Software Data Protection AT28C64B

AT86RF230 (2450 MHz band) Radio Transceiver... User Guide

Quest vworkspace Virtual Desktop Extensions for Linux

Transcription:

AVR115: Data Logging with Atmel File System on ATmega32U4 Microcontrollers 01101010 11010101 01010111 10010101 Application Note 1 Introduction Atmel provides a File System management for AT90USBx and ATmegaxxUx parts. This File System allows performing data logging operation and this application note shows how to implement this feature using ATmega32U4 and EVK527 board. The EVK527-series4-datalogging is the firmware package related to AVR 115. The reader should be familiar with AVR114 Application Note before reading this one. Rev.

2 Hardware Requirements The Data Logging example application requires the following hardware: AVR USB evaluation board ATEVK527 which includes: - ATmega32U4 - DataFlash (32Mbits) - SD/MMC connector USB cable (Standard A to Mini B) PC running on Windows (98SE, ME, 2000, XP), Linux or MAC OS with an USB 1.1 or 2.0 host 3 In-System programming and Device Firmware Upgrade To program the device you can use one of the following methods: The JTAG interface using the JTAGICE mkii The SPI interface using the AVRISP mkii and JTAGICE mkii The USB interface thanks to the factory DFU bootloader and FLIP(1) software The parallel programming using the STK 500 or STK600 Please refer to FLIP(1) help content to see how to install the USB driver and program the device through the USB interface. Note: 1. FLIP is software provided by Atmel to allow the user to program the Atmel devices through the USB interface (No external hardware required) thanks to the factory DFU bootloader. Note: With JTAGICE MKII be careful with the box erase before programming in AVR Studio. If checked, the DFU bootloader is deleted before to programming. 2 AVR115

AVR115 4 Quick Start Once your device is programmed with EVK527-series4-datalogging hex file, you can start the data logging demonstration: 1. Unplug the USB cable and plug a power cable (9 V) 2. Press key down to start record : The log file is created either on the MMC/SD card if present, or on DataFlash memory The LED0 is turned on when the recording starts The LED2 is turned on when an error occurs (Disk not present, Disk full, ) 3. Press the key HWB or plug the USB cable to stop the recording. 4. Plug USB cable on your PC to run the U-Disk and to read the log file Disk:\log000\log000.bin Figure 4-1. EVK521 Rev1 USB Solder SP2 & SP4 to enable LED0 and LED2 External Power 5V MMC/SD slot Stop record Start record Board power = 3V for Operational Amplifier Note: This is the EVK527 default factory configuration except the SP2 & SP4 which must be sold. By default, the recorded data is only a digital number (16-bits) incremented and stored each 120 µs. One can change the record source via the software compilation options in datalogging.c file: #define LOG_ADCMIC_EXAMPLE #define LOG_ADCEXT_EXAMPLE #define LOG_PIN_EXAMPLE #define LOG_ENUM_EXAMPLE // From microphone ADC to a WAV file // From other ADC input to a BIN file // Records pins states to a BIN file // Records counter value to a BIN file (Default) 3

5 Application 5.1 Behavior The sample application provides two operating modes: Download mode: the user has to connect the kit to PC (removable disk U-Disk ) to be able to access to the log file written on the memories (DataFlash or SD/MMC card). In this mode, the embedded Atmel File System is not allowed to access to the memories. Note: To prevent data corruption, only one file system management may be active at a given time. Figure 5-1. Download mode (U-Disk) MMC / SD Card (via SPI) The File System (FS) is decoded by the PC USB Device Class Mass Storage DataFlash (via SPI) Data logging mode: during this mode the data recording can be performed. The kit must be disconnected from the USB host and starting/stopping record actions are managed by EVK527 buttons (see Figure 4-1. EVK521 Rev1). When the data recording starts, a file is created in a memory. An 8 KHz interrupt timer samples the values from ADC or another source and writes them in a buffer. The full buffers are transferred in the file by the data logging task. Figure 5-2. Data Logging mode Two buffers of 512 B ping-pong mode The FS is decoded by the embedded Atmel FS ADC I/O MMC / SD Card (via SPI) Timer Interrupt (8 KHz) Data Logging Task (scheduled by main) DataFlash (via SPI) 4 AVR115

AVR115 5.2 Firmware This section explains only the File System management code and not the USB module. The following code samples are extracted from the data_logging.c file from EVK527-series4-datalogging package. 5.2.1 Enable/disable embedded FS The File System module initialization and exit are managed by the datalogging_task(). When the chip exits from USB Device mode, one can call nav_reset() to initialize the embedded Atmel File System. When one wants to stop the embedded Atmel File System or when the USB Device mode starts, the nav_exit() must be called to flush cache information into the memories. Figure 5-3. Example of datalogging_task() routine void datalogging_task(void) // Change the data logging state if( Is_joy_down() // If data logging started by user && (!Is_device_enumerated())) // and if USB Device mode stopped if(!g_b_datalogging_running ) // Start data logging nav_reset(); //** Init File System g_b_datalogging_running = datalogging_start(); if( Is_hwb() // If data logging stopped by user Is_device_enumerated() ) // or if USB Device mode started if( g_b_datalogging_running ) // Stop data logging g_b_datalogging_running = FALSE; datalogging_stop(); nav_exit(); //** Exit of File System module // Execute data logging background task if( g_b_datalogging_running ) g_b_datalogging_running = datalogging_file_write_sector(); if(!g_b_datalogging_running ) datalogging_stop(); nav_exit(); //** Exit of File System module 5

5.2.2 Open disk In this example, only one navigator handle 1 is needed because the application has only one disk exploration and only one file opened at the same time. In that case, we select the default navigator handle 0 nav_select(0). Note: 1. see Application Note AVR114 for more information about navigator handle The algorithm to open a disk depends on the number of disks connected (see configuration in conf_access.h file). By default the example uses the DataFlash and MMC/SD driver and the following algorithm: Try to mount MMC/SD disk and format if necessary If error (disk not present, fail, ) Try to mount DataFlash disk and format if necessary If error (disk not present, fail, ) Abort data logging Bool datalogging_open_disk(void) U8 u8_i; nav_select(fs_nav_id_default); Figure 5-4. datalogging_open_disk() routine #if( (LUN_2 == ENABLE) && (LUN_3 == ENABLE)) // Configuration set in conf_access.h // Select and try to mount disk MMC/SD (lun 1) or DataFlash (lun 0) // Try first the MMC/SD for( u8_i=1; u8_i!=0xff; u8_i-- ) #else // There is only one memory MMC/SD or DataFlash (lun 0) for( u8_i=0; u8_i!=0xff; u8_i-- ) #endif if( nav_drive_set(u8_i) ) // Select driver (not disk) // Driver available then mount it if(!nav_partition_mount() ) // Error during the mount then check error status if( FS_ERR_NO_FORMAT!= fs_g_status ) continue; // Disk fails (not present, HW error, system error, // Disk no formated then format it if(!nav_drive_format(fs_format_default) ) continue; // Format fails return TRUE; // Here disk mounted // No valid disk found 6 AVR115

AVR115 5.2.3 Create path file This part creates the following path file Disk:\logxxx\logxxx.bin. The datalogging_create_path_file() routine creates the directory \logxxx\. The nav_setcwd() routine searches and eventually creates the path (the third argument must be TRUE). Bool datalogging_create_path_file(void) char ascii_name[15]; U16 u16_dir_num = 0; Figure 5-5. datalogging_create_path_file() routine if(!nav_dir_root() ) // Error FS while( u16_dir_num < 30 ) // The limitation of number of directories is just an example sprintf( ascii_name, "./log%03d/", u16_dir_num); // Enter in sub directory and eventually create it if don't exist if(!nav_setcwd( ascii_name, FALSE, TRUE) ) // Error FS // Create a file if( datalogging_create_file() ) return TRUE; // File created // Here, the directory is full then go to parent directory to create the next sub directory if(!nav_dir_gotoparent() ) // Error FS u16_dir_num++; // Too many log directories and files The datalogging_create_file() routine creates the file \logxxx.bin. This one limits the number of log file in a log directory to 10, because the exploration of a directory with many files may be too slow. Bool datalogging_create_file(void) char ascii_name[15]; U16 u16_file_num = 0; Figure 5-6. datalogging_create_file() routine while( u16_file_num < 10 ) // Create file sprintf( ascii_name, "log%03d.bin", u16_file_num); if( nav_file_create( ascii_name )) return TRUE; // Here, the file is created, closed and emptied // Error during creation then check error if( fs_g_status!= FS_ERR_FILE_EXIST ) // Error FS (Disk full, directory full,...) // The file exists then increment number in name u16_file_num++; // Too many log files in current directory 7

5.2.4 File space allocation This section is not mandatory but allows increasing the data logging bandwidth. For more explanation, see 6.5 of AVR114 application note. Note: At the end of data logging, the remaining allocated memory (size allocated - final size) is freed up when the file is closed. Bool datalogging_alloc_file_space(void) Fs_file_segment g_recorder_seg; // Open the file created in write mode if(!file_open(fopen_mode_w)) Figure 5-7. datalogging_alloc_file_space() routine // Define the size of segment to alloc (unit 512 B) // Note: you can alloc more in case of you don't know the total size g_recorder_seg.u16_size = FILE_ALLOC_SIZE; // Alloc in FAT a cluster list equal or inferior at segment size if(!file_write( &g_recorder_seg )) file_close(); // If you want then you can check the mimimun size allocated if( g_recorder_seg.u16_size < FILE_ALLOC_SIZE_MIN ) file_close(); nav_file_del(false); // Close/open file to reset size // Note: This sequence doesn't remove the previous FAT allocation file_close(); // Closes file if(!file_open(fopen_mode_w)) // Opens file in write mode and forces the size to 0 return TRUE; //** File open and FAT allocated 8 AVR115

AVR115 5.2.5 File filling The file_write_buf() is the best routine to fill a file. Using a multiple of 512 B as buffer size and current file position will give optimal speed performance, because the memory interface uses a block of 512 B. Buffers (2 * 512 B) are filled by timer0 interrupt routine. The maximum data logging bandwidth on ATmega32U4 at 8 MHz is 18 KB/s. This value has been measured with the following example. Figure 5-8. datalogging_file_write_sector() routine Bool datalogging_file_write_sector(void) //!!!! Note : // if the written buffer size has a multiple of 512 B // and if the current file position is a multiple of 512 B // then the "file_write_buf()" routine is very efficient. if( g_b_buf_full[g_u8_cur_buf] ) if(!file_write_buf( &g_data_buf[g_u8_cur_buf*fs_size_of_sector], FS_SIZE_OF_SECTOR ) ) // Error write g_b_buf_full[g_u8_cur_buf] = FALSE; // Now wait new buffer g_u8_cur_buf++; if( NB_DATA_BUF == g_u8_cur_buf ) g_u8_cur_buf = 0; return TRUE; 9

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 Unit 1-5 & 16, 19/F BEA Tower, Millennium City 5 418 Kwun Tong Road Kwun Tong, Kowloon Hong Kong Tel: (852) 2245-6100 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 avr@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 CONDI- TIONS 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. 2009 Atmel Corporation. All rights reserved. Atmel, Atmel logo and combinations thereof, AVR, STK, AVR Studio, DataFlash and others, are the registered trademarks or trademarks of Atmel Corporation or its subsidiaries. Windows and others are registered trademarks or trademarks of Microsoft Corporation in US and or other countries. Other terms and product names may be trademarks of others.