Avr-Libc 1.6.7

Total Page:16

File Type:pdf, Size:1020Kb

Avr-Libc 1.6.7 avr-libc 1.6.7 Generated by Doxygen 1.6.2 Mon Mar 15 19:22:26 2010 CONTENTS i Contents 1 AVR Libc1 1.1 Introduction...............................1 1.2 General information about this library.................1 1.3 Supported Devices...........................2 1.4 avr-libc License.............................8 2 Toolchain Overview9 2.1 Introduction...............................9 2.2 FSF and GNU..............................9 2.3 GCC................................... 10 2.4 GNU Binutils.............................. 11 2.5 avr-libc................................. 12 2.6 Building Software............................ 12 2.7 AVRDUDE............................... 12 2.8 GDB / Insight / DDD.......................... 13 2.9 AVaRICE................................ 13 2.10 SimulAVR................................ 13 2.11 Utilities................................. 13 2.12 Toolchain Distributions (Distros).................... 13 2.13 Open Source............................... 14 3 Memory Areas and Using malloc() 14 3.1 Introduction............................... 14 3.2 Internal vs. external RAM....................... 15 3.3 Tunables for malloc().......................... 16 3.4 Implementation details......................... 18 4 Memory Sections 19 4.1 The .text Section............................ 19 4.2 The .data Section............................ 20 4.3 The .bss Section............................. 20 Generated on Mon Mar 15 19:22:26 2010 for avr-libc by Doxygen CONTENTS ii 4.4 The .eeprom Section.......................... 20 4.5 The .noinit Section........................... 20 4.6 The .initN Sections........................... 21 4.7 The .finiN Sections........................... 22 4.8 Using Sections in Assembler Code................... 23 4.9 Using Sections in C Code........................ 23 5 Data in Program Space 24 5.1 Introduction............................... 24 5.2 A Note On const............................ 25 5.3 Storing and Retrieving Data in the Program Space........... 25 5.4 Storing and Retrieving Strings in the Program Space......... 27 5.5 Caveats................................. 29 6 avr-libc and assembler programs 29 6.1 Introduction............................... 29 6.2 Invoking the compiler.......................... 30 6.3 Example program............................ 30 6.4 Pseudo-ops and operators........................ 34 7 Inline Assembler Cookbook 35 7.1 GCC asm Statement........................... 36 7.2 Assembler Code............................. 38 7.3 Input and Output Operands....................... 38 7.4 Clobbers................................. 43 7.5 Assembler Macros........................... 45 7.6 C Stub Functions............................ 45 7.7 C Names Used in Assembler Code................... 46 7.8 Links.................................. 47 8 How to Build a Library 47 8.1 Introduction............................... 47 8.2 How the Linker Works......................... 48 Generated on Mon Mar 15 19:22:26 2010 for avr-libc by Doxygen CONTENTS iii 8.3 How to Design a Library........................ 48 8.4 Creating a Library............................ 49 8.5 Using a Library............................. 50 9 Benchmarks 50 9.1 A few of libc functions.......................... 51 9.2 Math functions.............................. 53 10 Porting From IAR to AVR GCC 53 10.1 Introduction............................... 53 10.2 Registers................................ 54 10.3 Interrupt Service Routines (ISRs).................... 55 10.4 Intrinsic Routines............................ 55 10.5 Flash Variables............................. 56 10.6 Non-Returning main()......................... 57 10.7 Locking Registers............................ 57 11 Frequently Asked Questions 58 11.1 FAQ Index................................ 58 11.2 My program doesn’t recognize a variable updated within an interrupt routine.................................. 59 11.3 I get "undefined reference to..." for functions like "sin()"....... 60 11.4 How to permanently bind a variable to a register?........... 60 11.5 How to modify MCUCR or WDTCR early?.............. 61 11.6 What is all this _BV() stuff about?................... 61 11.7 Can I use C++ on the AVR?...................... 62 11.8 Shouldn’t I initialize all my variables?................. 63 11.9 Why do some 16-bit timer registers sometimes get trashed?...... 64 11.10How do I use a #define’d constant in an asm statement?........ 65 11.11Why does the PC randomly jump around when single-stepping through my program in avr-gdb?........................ 65 11.12How do I trace an assembler file in avr-gdb?.............. 66 11.13How do I pass an IO port as a parameter to a function?........ 67 Generated on Mon Mar 15 19:22:26 2010 for avr-libc by Doxygen CONTENTS iv 11.14What registers are used by the C compiler?.............. 69 11.15How do I put an array of strings completely in ROM?......... 71 11.16How to use external RAM?....................... 73 11.17Which -O flag to use?.......................... 73 11.18How do I relocate code to a fixed address?............... 74 11.19My UART is generating nonsense! My ATmega128 keeps crashing! Port F is completely broken!...................... 75 11.20Why do all my "foo...bar" strings eat up the SRAM?......... 75 11.21Why does the compiler compile an 8-bit operation that uses bitwise operators into a 16-bit operation in assembly?............. 76 11.22How to detect RAM memory and variable overlap problems?..... 77 11.23Is it really impossible to program the ATtinyXX in C?......... 77 11.24What is this "clock skew detected" message?.............. 78 11.25Why are (many) interrupt flags cleared by writing a logical 1?.... 78 11.26Why have "programmed" fuses the bit value 0?............ 79 11.27Which AVR-specific assembler operators are available?........ 79 11.28Why are interrupts re-enabled in the middle of writing the stack pointer? 79 11.29Why are there five different linker scripts?............... 80 11.30How to add a raw binary image to linker output?............ 80 11.31How do I perform a software reset of the AVR?............ 82 11.32I am using floating point math. Why is the compiled code so big? Why does my code not work?........................ 83 11.33What pitfalls exist when writing reentrant code?............ 83 11.34Why are some addresses of the EEPROM corrupted (usually address zero)?.................................. 85 11.35Why is my baud rate wrong?...................... 86 12 Building and Installing the GNU Tool Chain 86 12.1 Building and Installing under Linux, FreeBSD, and Others...... 87 12.2 Required Tools............................. 87 12.3 Optional Tools.............................. 88 12.4 GNU Binutils for the AVR target.................... 88 12.5 GCC for the AVR target......................... 90 Generated on Mon Mar 15 19:22:26 2010 for avr-libc by Doxygen CONTENTS v 12.6 AVR Libc................................ 90 12.7 AVRDUDE............................... 91 12.8 GDB for the AVR target........................ 91 12.9 SimulAVR................................ 92 12.10AVaRICE................................ 92 12.11Building and Installing under Windows................ 92 12.12Tools Required for Building the Toolchain for Windows........ 93 12.13Building the Toolchain for Windows.................. 96 13 Using the GNU tools 102 13.1 Options for the C compiler avr-gcc................... 102 13.1.1 Machine-specific options for the AVR............. 102 13.1.2 Selected general compiler options............... 108 13.2 Options for the assembler avr-as.................... 109 13.2.1 Machine-specific assembler options.............. 109 13.2.2 Examples for assembler options passed through the C compiler 111 13.3 Controlling the linker avr-ld...................... 111 13.3.1 Selected linker options..................... 111 13.3.2 Passing linker options from the C compiler.......... 112 14 Using the avrdude program 114 15 Release Numbering and Methodology 116 15.1 Release Version Numbering Scheme.................. 116 15.1.1 Stable Versions......................... 116 15.1.2 Development Versions..................... 116 15.2 Releasing AVR Libc.......................... 116 15.2.1 Creating a cvs branch...................... 117 15.2.2 Making a release........................ 118 16 Acknowledgments 119 17 Todo List 120 Generated on Mon Mar 15 19:22:26 2010 for avr-libc by Doxygen CONTENTS vi 18 Deprecated List 120 19 Module Index 121 19.1 Modules................................. 121 20 Data Structure Index 123 20.1 Data Structures............................. 123 21 File Index 123 21.1 File List................................. 123 22 Module Documentation 127 22.1 <alloca.h>: Allocate space in the stack................ 127 22.1.1 Detailed Description...................... 127 22.1.2 Function Documentation.................... 127 22.2 <assert.h>: Diagnostics........................ 128 22.2.1 Detailed Description...................... 128 22.2.2 Define Documentation..................... 128 22.3 <ctype.h>: Character Operations................... 129 22.3.1 Detailed Description...................... 129 22.3.2 Function Documentation.................... 130 22.4 <errno.h>: System Errors....................... 132 22.4.1 Detailed Description...................... 132 22.4.2 Define Documentation..................... 132 22.5 <inttypes.h>: Integer Type conversions................ 132 22.5.1 Detailed Description...................... 135 22.5.2 Define Documentation..................... 135 22.5.3 Typedef Documentation...................
Recommended publications
  • Atmega48/V / 88/V / 168/V Introduction Feature
    8-bit AVR Microcontrollers ATmega48/V / 88/V / 168/V DATASHEET SUMMARY Introduction The Atmel® ATmega48/V/ 88/V /168/V is a low-power CMOS 8-bit microcontroller based on the AVR® enhanced RISC architecture. By executing powerful instructions in a single clock cycle, the ATmega48/V/ 88/V /168/V achieves throughputs close to 1MIPS per MHz. This empowers system designer to optimize the device for power consumption versus processing speed. Feature High Performance, Low Power Atmel®AVR® 8-Bit Microcontroller Family • Advanced RISC Architecture – 131 Powerful Instructions – Most Single Clock Cycle Execution – 32 x 8 General Purpose Working Registers – Fully Static Operation – Up to 20 MIPS Throughput at 20MHz – On-chip 2-cycle Multiplier • High Endurance Non-volatile Memory Segments – 4K/8K/16KBytes of In-System Self-Programmable Flash program Memory – 256/512/512Bytes EEPROM – 512/1K/1KBytes Internal SRAM – Write/Erase Cycles: 10,000 Flash/100,000 EEPROM – Data Retention: 20 years at 85°C/100 years at 25°C(1) – Optional Boot Code Section with Independent Lock Bits • In-System Programming by On-chip Boot Program • True Read-While-Write Operation – Programming Lock for Software Security • Atmel® QTouch® Library Support – Capacitive Touch Buttons, Sliders and Wheels – QTouch and QMatrix® Acquisition – Up to 64 sense channels Atmel-2545W-ATmega48/V/88/V/168/V_Datasheet_Summary-11/2016 • Peripheral Features – Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture
    [Show full text]
  • 8-Bit Microcontroller with 8K Bytes In-System Programmable Flash
    Features • High Performance, Low Power AVR ® 8-bit Microcontroller • Advanced RISC Architecture – Powerful Instructions - Most Single Clock Cycle Execution – 32 x 8 General Purpose Working Registers – Fully Static Operation – Up to 1 MIPS throughput per MHz – On-chip 2-cycle Multiplier • Data and Non-Volatile Program Memory – 8K Bytes Flash of In-System Programmable Program Memory • Endurance: 10,000 Write/Erase Cycles 8-bit – Optional Boot Code Section with Independent Lock Bits In-System Programming by On-chip Boot Program True Read-While-Write Operation Microcontroller – 512 Bytes of In-System Programmable EEPROM • Endurance: 100,000 Write/Erase Cycles with 8K Bytes – 512 Bytes Internal SRAM – Programming Lock for Flash Program and EEPROM Data Security In-System • On Chip Debug Interface (debugWIRE) • Peripheral Features Programmable – Two or three 12-bit High Speed PSC (Power Stage Controllers) with 4-bit Resolution Enhancement Flash • Non Overlapping Inverted PWM Output Pins With Flexible Dead-Time • Variable PWM duty Cycle and Frequency • Synchronous Update of all PWM Registers • Auto Stop Function for Event Driven PFC Implementation AT90PWM2 • Less than 25 Hz Step Width at 150 kHz Output Frequency • PSC2 with four Output Pins and Output Matrix – One 8-bit General purpose Timer/Counter with Separate Prescaler and Capture AT90PWM3 Mode – One 16-bit General purpose Timer/Counter with Separate Prescaler, Compare Mode and Capture Mode – Programmable Serial USART Preliminary • Standard UART mode • 16/17 bit Biphase Mode for DALI Communications
    [Show full text]
  • Datasheet Complete
    8-bit AVR Microcontroller ATmega48/V / 88/V / 168/V DATASHEET COMPLETE Introduction The Atmel® ATmega48/V/ 88/V /168/V is a low-power CMOS 8-bit microcontroller based on the AVR® enhanced RISC architecture. By executing powerful instructions in a single clock cycle, the ATmega48/V/ 88/V /168/V achieves throughputs close to 1MIPS per MHz. This empowers system designer to optimize the device for power consumption versus processing speed. Feature High Performance, Low Power Atmel®AVR® 8-Bit Microcontroller Family • Advanced RISC Architecture – 131 Powerful Instructions – Most Single Clock Cycle Execution – 32 x 8 General Purpose Working Registers – Fully Static Operation – Up to 20 MIPS Throughput at 20MHz – On-chip 2-cycle Multiplier • High Endurance Non-volatile Memory Segments – 4K/8K/16KBytes of In-System Self-Programmable Flash program Memory – 256/512/512Bytes EEPROM – 512/1K/1KBytes Internal SRAM – Write/Erase Cycles: 10,000 Flash/100,000 EEPROM – Data Retention: 20 years at 85°C/100 years at 25°C(1) – Optional Boot Code Section with Independent Lock Bits • In-System Programming by On-chip Boot Program • True Read-While-Write Operation – Programming Lock for Software Security • Atmel® QTouch® Library Support – Capacitive Touch Buttons, Sliders and Wheels – QTouch and QMatrix® Acquisition – Up to 64 sense channels Atmel-2545W-ATmega48/V / 88/V / 168/V_Datasheet_Complete-11/2016 • Peripheral Features – Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode,
    [Show full text]
  • AVR Upro+ Programmer
    ® EleSof AVRUPro+ AVRUPro+ AVRUPro+ is a high performance programmer for Atmel’s Microcontroller family. It connected to target device through 2x5 FRC cable & act as ICSP (In-Circuit Serial Programmer). This manual contains a detail description of this device. It also guide you, that how to program AVR AT89S device through it Visit : www.elesof.com www.projectsmaker.com Flash Programming Tool ® EleSof Development System TO OUR VALUED CUSTOMERS I want to express my thanks to you for being interested in our products & having ® confidence in EleSof Technologies. It is our intention to provide you with the best quality products. Furthermore, we will continue to improve our product performance to better suit your needs. ® EleSof Technologies ® The ATMEL name and logo, the ATMEL logo, AVR, AVR (Logo), AVR Freaks, AVR ® ® Freaks (Logo), AVR Studio, IDIC, megaAVR, megaAVR(Logo), picoPower , tinyAVR are trademarks of ATMEL® Corporation. All other trademarks mentioned herein are property of their respective companies and are only used for the purpose of identification or explanation & to the owner’s benefit, with no intent to infringe. Visit : www.elesof.com www.projectsmaker.com TABLE OF CONTENTS Introduction to In-System Programming…………………4 Programming Interface…………………………………...4 AVRUPro + ....………………………………………...…..5 Supported Devices………………………………………..6 AVRUPro+ Programmer Interfac.…………………...…..7 • 8 Pin (A) Atmel AVR Microcontrollers. • 8 Pin (B) Atmel AVR Microcontrollers. • 20 Pin (A) Atmel AVR Microcontrollers. • 20 Pin (B) Atmel AVR Microcontrollers.
    [Show full text]
  • Atmel Atmega48/88/168 Summary
    Features • High performance, low power Atmel® AVR® 8-bit microcontroller • Advanced RISC architecture – 131 powerful instructions – most single clock cycle execution – 32 × 8 general purpose working registers – Fully static operation – Up to 20 MIPS throughput at 20MHz – On-chip 2-cycle multiplier • High endurance non-volatile memory segments – 4/8/16 Kbytes of in-system self-programmable flash program memory – 256/512/512 bytes EEPROM 8-bit Atmel – 512/1K/1Kbytes internal SRAM – Write/erase cyles: 10,000 flash/100,000 EEPROM Microcontroller – Data retention: 20 years at 85°C/100 years at 25°C(1) – Optional boot code section with independent lock bits with 4/8/16K In-system programming by on-chip boot program True read-while-write operation Bytes In-System – Programming lock for software security • QTouch® library support Programmable – Capacitive touch buttons, sliders and wheels – QTouch and QMatrix acquisition Flash – Up to 64 sense channels • Peripheral features – Two 8-bit timer/counters with separate prescaler and compare mode ATmega48/V – One 16-bit timer/counter with separate prescaler, compare mode, and capture mode – Real time counter with separate oscillator ATmega88/V – Six PWM channels – 8-channel 10-bit ADC in TQFP and QFN/MLF package – 6-channel 10-bit ADC in PDIP Package ATmega168/V – Programmable serial USART – Master/slave SPI serial interface – Byte-oriented 2-wire serial interface (Philips I2C compatible) – Programmable watchdog timer with separate on-chip oscillator Summary – On-chip analog comparator – Interrupt and
    [Show full text]
  • Atmega48/V / 88/V / 168/V Introduction Feature
    8-bit AVR Microcontroller ATmega48/V / 88/V / 168/V DATASHEET COMPLETE Introduction The Atmel® ATmega48/V/ 88/V /168/V is a low-power CMOS 8-bit microcontroller based on the AVR® enhanced RISC architecture. By executing powerful instructions in a single clock cycle, the ATmega48/V/ 88/V /168/V achieves throughputs close to 1MIPS per MHz. This empowers system designer to optimize the device for power consumption versus processing speed. Feature High Performance, Low Power Atmel®AVR® 8-Bit Microcontroller Family • Advanced RISC Architecture – 131 Powerful Instructions – Most Single Clock Cycle Execution – 32 x 8 General Purpose Working Registers – Fully Static Operation – Up to 20 MIPS Throughput at 20MHz – On-chip 2-cycle Multiplier • High Endurance Non-volatile Memory Segments – 4K/8K/16KBytes of In-System Self-Programmable Flash program Memory – 256/512/512Bytes EEPROM – 512/1K/1KBytes Internal SRAM – Write/Erase Cycles: 10,000 Flash/100,000 EEPROM – Data Retention: 20 years at 85°C/100 years at 25°C(1) – Optional Boot Code Section with Independent Lock Bits • In-System Programming by On-chip Boot Program • True Read-While-Write Operation – Programming Lock for Software Security • Atmel® QTouch® Library Support – Capacitive Touch Buttons, Sliders and Wheels – QTouch and QMatrix® Acquisition – Up to 64 sense channels Atmel-2545W-ATmega48/V / 88/V / 168/V_Datasheet_Complete-11/2016 • Peripheral Features – Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode,
    [Show full text]
  • 8-Bit Microcontroller with 8K Bytes In-System Programmable Flash Atmega48/V Atmega88/V Atmega168/V Preliminary Summary
    Features • High Performance, Low Power AVR® 8-Bit Microcontroller • Advanced RISC Architecture – 131 Powerful Instructions – Most Single Clock Cycle Execution – 32 x 8 General Purpose Working Registers – Fully Static Operation – Up to 24 MIPS Throughput at 24 MHz – On-chip 2-cycle Multiplier • Non-volatile Program and Data Memories – 4/8/16K Bytes of In-System Self-Programmable Flash (ATmega48/88/168) Endurance: 10,000 Write/Erase Cycles 8-bit – Optional Boot Code Section with Independent Lock Bits In-System Programming by On-chip Boot Program True Read-While-Write Operation Microcontroller – 256/512/512 Bytes EEPROM (ATmega48/88/168) Endurance: 100,000 Write/Erase Cycles with 8K Bytes – 512/1K/1K Byte Internal SRAM (ATmega48/88/168) – Programming Lock for Software Security In-System • Peripheral Features – Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode Programmable – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode Flash – Real Time Counter with Separate Oscillator – Six PWM Channels – 8-channel 10-bit ADC in TQFP and MLF package – 6-channel 10-bit ADC in PDIP Package ATmega48/V – Programmable Serial USART – Master/Slave SPI Serial Interface ATmega88/V – Byte-oriented 2-wire Serial Interface – Programmable Watchdog Timer with Separate On-chip Oscillator – On-chip Analog Comparator ATmega168/V – Interrupt and Wake-up on Pin Change • Special Microcontroller Features – Power-on Reset and Programmable Brown-out Detection – Internal Calibrated Oscillator Preliminary – External and Internal
    [Show full text]
  • SAMG – 8 Bit AVR Microprocessors - Peter Gheude September 2016
    SAMG – 8 bit AVR Microprocessors - Peter Gheude September 2016 A brief look at the successful 8 bit Atmel Mega AVR Microcontrollers – specifically Mega328p. Alf and Vergart’s Risc, after the original Norwegian designers – Not confirmed Why are 8 bit microcontrollers still so common? - some of the larger manufacturers are; Ti MSP430 - Microchip Technology PICs - Altera - Analog Devices - Cypress Semiconductor - Maxim Integrated - ELAN Microelectronics Corp. - Energy Micro - EPSON Semiconductor - Freescale Semiconductor - Fujitsu - Holtek - Hyperstone - Infineon - Intel - Lattice Semiconductor - National Semiconductor - NXP Semiconductors - Panasonic - Parallax - Rabbit Semiconductor - Renesas (Hitachi, Mitsubishi Electric and NEC Electronics) - Rockwell - Silicon Laboratories - Silicon Motion - Sony - Spansion - STMicroelectronics - Texas Instruments - Toshiba - Ubicom - Xemics - Xilinx – XMOS - Zilog - Could be future presentations from a SAMG member? Jargon and Terms related to Microcontrollers which can be covered at a later date. Debugging - debugWIRE - Joint Test Action Group (JTAG) - In-circuit debugging (ICD) - In-circuit emulator (ICE) - In-target probe (ITP) – Integrated Development Environment (IDE) Programming - In-circuit serial programming (ICSP) - In-system programming (ISP) - Program and Debug Interface (PDI) - High-voltage serial programming (HVSP) - High voltage parallel programming (HVPP) Bootloaders - programme to initialise the Microcontroller and initiate user programmes. Why the ATMega328p is so successful ? My Answer
    [Show full text]
  • 8-Bit Microcontroller with 8K Bytes In-System Programmable
    Features • High Performance, Low Power AVR® 8-Bit Microcontroller • Advanced RISC Architecture – 131 Powerful Instructions – Most Single Clock Cycle Execution – 32 x 8 General Purpose Working Registers – Fully Static Operation – Up to 20 MIPS Throughput at 20 MHz – On-chip 2-cycle Multiplier • Non-volatile Program and Data Memories – 4/8/16K Bytes of In-System Self-Programmable Flash (ATmega48/88/168) 8-bit Endurance: 10,000 Write/Erase Cycles – Optional Boot Code Section with Independent Lock Bits Microcontroller In-System Programming by On-chip Boot Program True Read-While-Write Operation with 8K Bytes – 256/512/512 Bytes EEPROM (ATmega48/88/168) In-System Endurance: 100,000 Write/Erase Cycles – 512/1K/1K Byte Internal SRAM (ATmega48/88/168) Programmable – Programming Lock for Software Security • Peripheral Features Flash – Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode – Real Time Counter with Separate Oscillator ATmega48/V – Six PWM Channels ATmega88/V * – 8-channel 10-bit ADC in TQFP and QFN/MLF package – 6-channel 10-bit ADC in PDIP Package ATmega168/V * – Programmable Serial USART – Master/Slave SPI Serial Interface – Byte-oriented 2-wire Serial Interface – Programmable Watchdog Timer with Separate On-chip Oscillator * Preliminary – On-chip Analog Comparator – Interrupt and Wake-up on Pin Change • Special Microcontroller Features – Power-on Reset and Programmable Brown-out Detection – Internal Calibrated Oscillator – External and Internal Interrupt Sources – Five Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, and Standby • I/O and Packages – 23 Programmable I/O Lines – 28-pin PDIP, 32-lead TQFP and 32-pad QFN/MLF • Operating Voltage: – 1.8 - 5.5V for ATmega48V/88V/168V – 2.7 - 5.5V for ATmega48/88/168 • Temperature Range: –-40°C to 85°C • Speed Grade: – ATmega48V/88V/168V: 0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V – ATmega48/88/168: 0 - 10 MHz @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V Rev.
    [Show full text]