Download: 8-bit Microcontroller Application Note AVR240: 4x4Keypad – Wake-up on Keypress Features Introduction

8-bit Microcontroller Application Note AVR240: 4x4Keypad – Wake-up on Keypress Features • 16 Key Pushbutton Pad in4x4Matrix • Very Low Power Consumption • AVR in Sleep Mode and Wakes Up on Keypress • Minimum External Components • ESD Protection Included if Necessary • Efficient Code • Complete Program Included for AT90S1200 • Suitable for Any AVR MCU Introduction This application note describes a simple interface toa4x4keypad designed for low power battery operation. The AVR spends most of its time in Power-down mode, wak- ing up when a key is pressed to instigate a simple test program that fl...
Author: Walway Shared: 8/19/19
Downloads: 181 Views: 1403

Content

8-bit

Microcontroller Application Note AVR240: 4x4Keypad – Wake-up on Keypress Features

• 16 Key Pushbutton Pad in4x4Matrix • Very Low Power Consumption • AVR in Sleep Mode and Wakes Up on Keypress • Minimum External Components • ESD Protection Included if Necessary • Efficient Code • Complete Program Included for AT90S1200 • Suitable for Any AVR MCU

Introduction

This application note describes a simple interface toa4x4keypad designed for low power battery operation. The AVR spends most of its time in Power-down mode, wak- ing up when a key is pressed to instigate a simple test program that flashes one of two LEDs according to the key pressed. If “0” (zero) is pressed the RED LED flashes 10 times. All other keys flash the GREEN LED the number of times marked on the key (e.g., if “C” is pressed the GREEN LED flashes twelve times). Figure 1. Keypad and LED Connections AT90S1200 R1 PB7 R2 PB6 R3 PB5 R4 C1 C2 C3 C4 PB4 D1 R1123FR5 VCC PB3 D2 R2456ER6 PB2 PD2 D3 R3789DR7 R10 LED2 PB1 PD1 GREEN D4 R4A0BCR8 R9 PB0 PD0 LED1RED ALL ALL ALL 1N41484x4KEYPAD 470Ω 330Ω,

Theory of Operation The keypad columns are connected to the high nibble of port B. The keypad rows are

connected to the low nibble. Resistors R1 to R8 (this is shown in Figure 1) serve to limit input current to a safe level in the event of ESD from the keypad. They can be omitted in most applications. In the steady state condition the high nibble is configured as outputs and are in the low state. The low nibble is configured as inputs and has the internal pull-ups enabled, removing the need for external pull-up resistors. After initialization the AVR is put to sleep. When a key is pressed one of the diodes D1 - D4 pull down the external interrupt line PD2, which also has internal pull-ups enabled. This wakes up the AVR and causes it to run the interrupt service routine which scans the keypad and calculates which key is pressed. It then returns to the main program and drives the LEDs according to the key pressed, putting the AVR back to sleep when it has finished. Resistors R9 and R10 are the traditional current limit resistors for the LEDs and can be any suitable value for the supply rail. This application note was tested using 330Ω on a 5V supply. The LEDs are driven in current sink mode (“0” = ON) and provide about 10 mA of forward current with the values specified.

Implementation The firmware consists of three sections, the reset routine, the test program and the

interrupt service routine sets up the ports, sleep mode, power saving and the interrupts. The test program flashes the LED on wake-up and the interrupt service routine responds to the keypress.

Reset Routine The flowchart for the Reset Routine is shown in Figure 3. On reset the ports are initial-

ized with their starting directions. These are fixed on port D, with all bits as outputs except PD2 which must be an input for the external interrupt. This bit has its pull-up enabled by setting bit 2 of Port D. The unused bits are configured as outputs to avoid noise pickup or excessive power consumption which could otherwise occur if left float- ing. Port B starts with the high nibble as outputs sending out zeroes, and the low nibble set as inputs with the pull-ups enabled. Since we are using a minimum of external components, we must ensure that internal pull-ups are turned on for all those bits set up as inputs. This is achieved by configuring the Data Direction Register with “1”s for outputs, “0”s for inputs, and then writing “1”s to the input bits in the PORT Register. The inputs can then be read or tested from the PIN register. This program looks for “0”s and uses the SBIS instruction to skip over the key- press action if not a “0”. Power-down mode is selected by setting the SE and SM bits of the MCUCR. At the same time the external interrupt configured by writing “0”s into the ISC00/01 bits. This will set the external interrupt INT0 to trigger on a LOW level. When using “Power-down” mode the AVR can only be woken up by LOW LEVEL trigger. Power consumption is reduced further by turning off the Analog Comparator. This is done by setting the ACD bit in the ACSR Register. This must be done with care, other- wise an unwanted interrupt can be generated. This program disables global interrupts until the program is ready to be interrupted, solving this problem. If you wish to use the Analog Comparator this code can be removed, but you will need to change ports for the keypad since port B is used for this. The AVR then enters sleep mode. This is placed in the main loop to ensure that it goes back to sleep after it has finished its interrupt function and carried out the “Flash” test routine. When the AVR wakes up after a keypress, the “Flash” routine is called after the 2 AVR240,

AVR240

interrupt routine is finished. When the “Flash” routine is done, the external interrupt is enabled, so that another interrupt can occur. Figure 2. Flowchart for Reset and Main Routine Start Initialize Ports Set Up Onterrupts and Sleep Mode Disable Analog Comparator Disable Global Interrupts Reset Port Configuration Enable Global Interrupts Sleep Flash Enable External Interrupt

Flash Test Function The flow chart is shown in Figure 3.

This function can be replaced by your own application to be executed out of “Power- down” mode. It serves to demonstrate that the key scan routine is working correctly. The value of the key pressed is taken from the “key” variable and used as a pointer to access a 16-byte look-up table stored in EEPROM. The look-up table contains the num- ber of the key pressed. The table has been used for two reasons, it makes the program much shorter, and it allows easy extension to provide full ASCII coding for the key press. For the larger AVRs it would make sense to store this table in program memory and access it using the LPM instruction. The key value derived from the EEPROM is then used as a countdown variable inside an ON/OFF loop for the LED outputs. If the value is “0” the RED LED is flashed 10 times. If the value is non-zero the GREEN LED is flashed that number of times. For example, three times for the “3” key, fifteen times for the “F” key etc. The AVR then repeats the loop and falls asleep. The LED flashing routine is easily modified for your own application, replacing the “Flash” function by your routine. The main consideration is the timing. Because the test program spends some time flashing the LEDs, no extra debounce arrangements are necessary. If your code is very fast you might need to put a short delay in to allow time, for contact bounce. Wake-up from sleep mode typically takes 16 ms or so, although this is being reduced on the newer devices. This also provides some debouncing. Figure 3. Flowchart for “Flash” Function Flash Read EEPROM at Key Value Value Y =0?

N

Flash Green Flash Red LED Value LED Ten Ttimes Times Return 4 AVR240,

AVR240 Long Time Delay To see the LEDs flash requires a delay of about 0.25 second. This is achived using a Subroutine (delay) conventional FOR loop to keep the Timer/Counter free for other work. To achieve 0.25

second witha4MHz clock requires three nested loops. Three local variables contained in registers “fine”, “medium” and “coarse” are used for the loop. The fine and medium counters run the maximum of 255 times with the coarse Counter set to 8, giving just over 0.25 second delay. The flowchart is shown in Figure 4. Figure 4. Flowchart for Delay Subroutine delay Coarse=8 Medium=255 Fine=255 Fine = Fine-1

N

0?

Y

Medium= Medium-1 0? N

Y

Coarse= Coarse-1 0? N

Y

Return

Interrupt Service On entry the Status Register is preserved to avoid corrupting any work the main pro- Routine gram was doing. In this application it may be left out for optimisation if you wish. The

flowchart is shown in Figure 5. The key row is first detected by testing each row input in turn looking for “0”. A base number 0, 4, 8, or 12 is then assigned to the variable “key”. The ports are then reinitial- ized with Port B I/O swapped over so that the key rows are tested. A short time delay “settle” is used to allow the pins time to discharge. This takes the form of a conventional time waste loop using a FOR loop arrangement., The key column is then detected and a number assigned in a temporary variable “temp” of 0, 1, 2, or 3. The final keypress is then computed by adding “key” and “temp”, placing the result in “key” ready for use by the “Flash” function. This method is easier to code than the conventional single bit scan in this application. The Port B configuration is the swapped back prior to restoring the Status Register. This saves using the settling delay again. At the end, the external interrupt is disabled. This is done to avvoid the interrupt routine being triggered again immediately upon exit.

Short Time Delay This short delay is required when changing the Port B I/O contiguration to allow time for Subroutine the pin values to settle. The routine uses the Global Scratch Register “temp” as a single

loop counter for the FOR loop, set at maximum 255 passes. This provides a delay of 0.129 ms at 4 MHz. This value could be shortened by experimentation if time is of the essence or the pins are set high prior to reconfiguration to speed things up. This might remove the need for this delay completely. Figure 5. Flowchart for Interrupt Service Routine Scan Preserve Status Register Test Rows Row Y Key=0 1?

N

Row Y Key=4 2?

N

Row Y Key=8 3?

N

Row Y Key=12 4?

N

Swap Port I/O Nibbles Settle Delay Test Columns

A

6 AVR240,

AVR240

Figure 6. Flowchart for Interrupt Service Routine Continued

A

Col Y Key=key+0 1?

N

Col Y Key=key+1 2?

N

Col Y Key=key+2 3?

N

Col Y Key=key+3 4?

N

Reset Port B I/O Restore Status Register Disable External Interrupt Return From Interrupt

Resources

Table 1. Main CPU and Memory Usage Function Code Size Cycles Register Usage Interrupt Description Main 24 words 19 cycles R16 – Initialization Flash 20 words - R16 – Example program Scan 31 words 47 typical R16, R17, R21 INTO Scans 4x4 keypad Delay 10 words 1,000,000 R18, R19, R20 – 0.25 second delay used in example program only Settle 4 words 516 cycles R16 – Pin settling time delay used in scan Total 87 words - R16, R17, R18, – R19, R20, R21,

Table 2. Peripheral Usage Peripheral Description Interrupts External Interrupt 0 (INT0) Key pressed wake up signal External Interrupt 0 (Low Level triggered)

16 bytes EEPROM Key to value mapping – 8 I/O pins4x4keypad connections – 2 I/O pins Flashing LEDs for example only – ;**** APPLICATIONNOTEAVR240 ************************ ;* ;* Title: 4x4 keypad, wake-up on keypress ;* Version: 1.1 ;* Last Updated: 98.05.30 ;* Target: All AVR Devices ;* ;* Support E-mail: email is hidden ;* ;* DESCRIPTION ;* This Application note scansa4x4keypad and uses sleep mode ;* causing the AVR to wake up on keypress. The design uses a minimum of ;* external components. Included is a test program that wakes up the AVR ;* and performs a scan when a key is pressed and flashes one of two LEDs ;* the number of the key pressed. The external interrupt line is used for ;* wake-up. The example runs on the AT90S1200 but can be any AVR with ;* suitable changes in vectors, EEPROM and stack pointer. The timing assumes ;* a 4 MHz clock. ;* A look up table is used in EEPROM to enable the same structure to be used ;* with more advanced programs e.g ASCII output to displays. ;*************************************************************************** ;***** Register used by all programs ;******Global variable used by all routines .deftemp=r16;general scratch space ;Port B pins .equ ROW1 =3; ;keypad input rows .equ ROW2 =2 .equ ROW3 =1 .equ ROW4 =0 .equ COL1 =7 ;keypad output columns .equ COL2 =6 .equ COL3 =5 .equ COL4 =4 ;Port D pins .equ GREEN =0 ;green LED 8 AVR240,

AVR240

.equ RED =1 ;red LED .equ INT =2 ;interrupt input .include "1200def.inc" ;***** Registers used by interrupt service routine .def key =r17 ;key pointer for EEPROM .def status =r21 ;preserve sreg here ;***** Registers used by delay subroutine ;***** as local variables .def fine =r18;loop delay counters .def medium =r19 .def coarse =r20 ;*****Look up table for key conversion****************************** .eseg ;EEPROM segment .org 0 .db 1,2,3,15,4,5,6,14,7,8,9,13,10,0,11,12 ;****Source code*************************************************** .cseg ;CODE segment .org 0 rjmp reset ;Reset handler rjmp scan ;interrupt service routine reti ;unused timer interrupt reti ;unused analogue interrupt ;*** Reset handler ************************************************** reset: ldi temp,0xFB ;initialize port D as O/I out DDRD,temp ;all OUT except PD2 ext.int. ldi temp,0x30 ;turn on sleep mode and power out MCUCR,temp ;down plus interrupt on low level. ldi temp,0x40 ;enable external interrupts out GIMSK,temp sbi ACSR,ACD ;shut down comparator to save power main: cli ;disable global interrupts ldi temp,0xF0 ;initialize port B as I/O out DDRB,temp ; 4 OUT 4 IN ldi temp,0x0F ;key columns all low and out PORTB,temp ;active pull ups on rows enabled ldi temp,0x07 ;enable pull up on PD2 and out PORTD,temp ;turn off LEDs sei ;enable global interrupts ready sleep ;fall asleep rcall flash ;flash LEDs for example usage, ldi temp, 0x40 out GIMSK, temp ;enable external interrupt rjmp main ;go back to sleep after keyscan ;****Interrupt service routine*************************************** scan: in status,SREG ;preserve status register sbis PINB,ROW1 ;find row of keypress ldi key,0 ;and set ROW pointer sbis PINB,ROW2 ldi key,4 sbis PINB,ROW3 ldi key,8 sbis PINB,ROW4 ldi key,12 ldi temp,0x0F ;change port B I/O to out DDRB,temp ;find column press ldi temp,0xF0 ;enable pull ups and out PORTB,temp ;write 0s to rows rcall settle ;allow time for port to settle sbis PINB,COL1 ;find column of keypress ldi temp,0 ;and set COL pointer sbis PINB,COL2 ldi temp,1 sbis PINB,COL3 ldi temp,2 sbis PINB,COL4 ldi temp,3 add key,temp ;merge ROW and COL for pointer ldi temp,0xF0 ;reinitialize port B as I/O out DDRB,temp ; 4 OUT 4 IN ldi temp,0x0F ;key columns all low and out PORTB,temp ;active pull ups on rows enabled out SREG,status ;restore status register ldi temp,0x00 out GIMSK,temp ;disable external interrupt ;have to do this, because we're ;using a level-triggered interrupt reti ;go back to main for example program ;***Example test program to flash LEDs using key press data************ flash: out EEAR,key ;address EEPROM sbi EECR,EERE ;strobe EEPROM in temp,EEDR ;set number of flashes tst temp ;is it zero? breq zero ;do RED LED green_flash: cbi PORTD,GREEN;flash green LED 'temp' times rcall delay 10 AVR240,

AVR240

sbi PORTD,GREEN rcall delay dec temp brne green_flash exit: ret zero: ldi temp,10 flash_again: cbi PORTD,RED ;flash red LED ten times rcall delay sbi PORTD,RED rcall delay dec temp brne flash_again rjmp exit ;****Time Delay Subroutine for LED flash********************************* delay: ldi coarse,8 ;triple nested FOR loop cagain: ldi medium,255 ;giving about 1/2 second magain: ldi fine,255 ;delay on 4 MHz clock fagain: dec fine brne fagain dec medium brne magain dec coarse brne cagain ret ;***Settling time delay for port to stabilise****************************** settle: ldi temp,255 tagain: dec temp brne tagain ret,

Atmel Corporation Atmel Operations

2325 Orchard Parkway Memory RF/Automotive San Jose, CA 95131, USA 2325 Orchard Parkway Theresienstrasse 2 Tel: 1(408) 441-0311 San Jose, CA 95131, USA Postfach 3535 Fax: 1(408) 487-2600 Tel: 1(408) 441-0311 74025 Heilbronn, Germany Fax: 1(408) 436-4314 Tel: (49) 71-31-67-0 Fax: (49) 71-31-67-2340

Regional Headquarters Microcontrollers

Europe 2325 Orchard Parkway 1150 East Cheyenne Mtn. Blvd. Atmel Sarl San Jose, CA 95131, USA Colorado Springs, CO 80906, USA Route des Arsenaux 41 Tel: 1(408) 441-0311 Tel: 1(719) 576-3300 Case Postale 80 Fax: 1(408) 436-4314 Fax: 1(719) 540-1759 CH-1705 Fribourg Switzerland La Chantrerie Biometrics/Imaging/Hi-Rel MPU/ Tel: (41) 26-426-5555 BP 70602 High Speed Converters/RF Datacom Fax: (41) 26-426-5500 44306 Nantes Cedex 3, France Avenue de Rochepleine Tel: (33) 2-40-18-18-18 BP 123 Asia Fax: (33) 2-40-18-19-60 38521 Saint-Egreve Cedex, France Room 1219 Tel: (33) 4-76-58-30-00 Chinachem Golden Plaza ASIC/ASSP/Smart Cards Fax: (33) 4-76-58-34-80 77 Mody Road Tsimshatsui Zone Industrielle East Kowloon 13106 Rousset Cedex, France Hong Kong Tel: (33) 4-42-53-60-00 Tel: (852) 2721-9778 Fax: (33) 4-42-53-60-01 Fax: (852) 2722-1369 1150 East Cheyenne Mtn. Blvd. Japan Colorado Springs, CO 80906, USA 9F, Tonetsu Shinkawa Bldg. Tel: 1(719) 576-3300 1-24-8 Shinkawa Fax: 1(719) 540-1759 Chuo-ku, Tokyo 104-0033 Japan Scottish Enterprise Technology Park Tel: (81) 3-3523-3551 Maxwell Building Fax: (81) 3-3523-7581 East Kilbride G75 0QR, Scotland Tel: (44) 1355-803-000 Fax: (44) 1355-242-743 Literature Requests www.atmel.com/literature Disclaimer: Atmel Corporation makes no warranty for the use of its products, other than those expressly contained in the Company’s standard warranty which is detailed in Atmel’s Terms and Conditions located on the Company’s web site. The Company assumes no responsibility for any errors which may appear in this document, reserves the right to change devices or specifications detailed herein at any time without notice, and does not make any commitment to update the information contained herein. No licenses to patents or other intellectual property of Atmel are granted by the Company in connection with the sale of Atmel products, expressly or by implication. Atmel’s products are not authorized for use as critical components in life support devices or systems. © Atmel Corporation 2003. All rights reserved. Atmel® and combinations thereof, AVR® and AVR Studio® are the registered trademarks of Atmel Corporation or its subsidiaries. Other terms and product names may be the trademarks of others. Printed on recycled paper.]
15

Similar documents

Microcontrollers for Fluorescent and High Intensity Discharge Lamp Ballasts SMARTER, MORE FLEXIBLE LIGHTING SOLUTIONS
LIGHTINGMICROCONTROLLERSMicrocontrollers for Fluorescent and High Intensity Discharge Lamp Ballasts SMARTER, MORE FLEXIBLE LIGHTING SOLUTIONS Developed together with the industry leading lamp ballast manufac- turers, Atmel® microcontrollers are optimized for Linear and Dimmable Fluorescent tubes, as
AVR121: Enhancing ADC resolution by oversampling
AVR121: Enhancing ADC resolution by oversampling Features • Increasing the resolution by oversampling • Averaging and decimation • Noise reduction by averaging samples 1 Introduction Atmel’s AVR controller offers an Analog to Digital Converter with 10-bit resolution. In most cases 10-bit resolution
  IC Block Diagrams 8-1 Main
IC Block Diagrams 8-1 Main 8-1-1. FAN8082D 8-1 Samsung Electronics 8-1-2. LC87F66C8A Samsung Electronics 8-2 8-3 Samsung Electronics Samsung Electronics 8-4 8-5 Samsung Electronics 8-1-3. M62446AFP Samsung Electronics 8-6 8-7 Samsung Electronics 8-1-4. M66010FP 8-1-5. SI-8050SE 8-1-6. SI-8090JFE S
AVR053: Calibration of the internal RC oscillator Features Introduction
AVR053: Calibration of the internal RC oscillator Features • Calibration using STK500, AVRISP, JTAGICE or JTAGICE mkII • Calibration using 3rd party programmers • Adjustable RC frequency with +/-1% accuracy • Tune RC oscillator at any operating voltage and temperature • Tune RC oscillator to any fre
8-bit Microcontroller Application Note AVR230: DES Bootloader Features
8-bit Microcontroller Application Note Rev. 2541D–AVR–04/05 AVR230: DES Bootloader Features • Fits All AVR Microcontrollers with Bootloader Capabilities • Enables Secure Transfer of Compiled Software or Sensitive Data to Any AVR with Bootloader Capabilities • Includes Easy To Use, Configurable Examp
AVR106: C functions for reading and writing to Flash memory
AVR106: C functions for reading and writing to Flash memory Features • C functions for accessing Flash memory - Byte read - Page read - Byte write - Page write • Optional recovery on power failure • Functions can be used with any device having Self programming Program memory • Example project for us
8-bit Microcontroller Application Note AVR201: Using the AVR® Hardware Multiplier
8-bit Microcontroller Application Note Rev. 1631C–AVR–06/02 AVR201: Using the AVR® Hardware Multiplier Features • 8- and 16-bit Implementations • Signed and Unsigned Routines • Fractional Signed and Unsigned Multiply • Executable Example Programs Introduction The megaAVR is a series of new devices i
  Printed Circuit Board Diagram
Printed Circuit Board Diagram 5-1 MAIN 5-1 Samsung Electronics 5-2 FRONT Samsung Electronics 5-2 5-3 DSP 5-3 Samsung Electronics 5-4 JACK * RCA JACK * SCART JACK Samsung Electronics 5-4 5-5 DVD PACK * TOP VIEW * BOTTOM VIEW 5-5 Samsung Electronics
8-bit Microcontroller Application Note AVR105: Power Efficient High Endurance Parameter Storage in Flash Memory
8-bit Microcontroller Application Note Rev. 2546A–AVR–09/03 AVR105: Power Efficient High Endurance Parameter Storage in Flash Memory Features • Fast Storage of Parameters • High Endurance Flash Storage – 350K Write Cycles • Power Efficient Parameter Storage • Arbitrary Size of Parameters • Semi-redu
8-bit RISC Microcontoller Application Note AVR130: Setup and Use the AVR® Timers Features
8-bit RISC Microcontoller Application Note Rev. 2505A–AVR–02/02 AVR130: Setup and Use the AVR® Timers Features • Description of Timer/Counter Events • Timer/Counter Event Notification • Clock Options • Example Code for Timer0 – Overflow Interrupt • Example Code for Timer1 – Input Capture Interrupt •
8-bit RISC Microcontroller Application Note AVR151: Setup And Use of The SPI Features Introduction
8-bit RISC Microcontroller Application Note Rev. 2585A–AVR–11/04 AVR151: Setup And Use of The SPI Features • SPI Pin Functionality • Multi Slave Systems • SPI Timing • SPI Transmission Conflicts • Emulating the SPI • Code examples for Polled operation • Code examples for Interrupt Controlled operati
AVR241: Direct driving of LCD display using general IO
AVR241: Direct driving of LCD display using general IO Features • Software driver for displays with one common line • Suitable for parts without on-chip hardware for LCD driving • Control up to 15 segments using 16 IO lines • Fully interrupt driven operation Introduction As a low power alternative t
8-bit Microcontroller Application Note
8-bit Microcontroller Application Note Rev. 0938B–AVR–01/03 AVR204: BCD Arithmetics Features • Conversion 16 Bits ↔ 5 Digits, 8 Bits ↔ 2 Digits • 2-digit Addition and Subtraction • Superb Speed and Code Density • Runable Example Program Introduction This application note lists routines for BCD arith
8-bit Microcontroller Application Note
8-bit Microcontroller Application Note Rev. 2530B–AVR–01/04 AVR065: LCD Driver for the STK502 and AVR Butterfly Features • Software Driver for Alphanumeric Characters • Liquid Crystal Display (LCD) Contrast Control • Interrupt Controlled Updating • Conversion of ASCII to LCD Segment Control Codes (S
8-bit Instruction Set Instruction Set Nomenclature
8-bit Instruction Set Rev. 0856D–AVR–08/02 Instruction Set Nomenclature Status Register (SREG) SREG: Status Register C: Carry Flag Z: Zero Flag N: Negative Flag V: Two’s complement overflow indicator S: N ⊕ V, For signed tests H: Half Carry Flag T: Transfer bit used by BLD and BST instructions I: Gl
8-bit Microcontroller Application Note
8-bit Microcontroller Application Note Rev. 0933B–AVR–05/02 AVR102: Block Copy Routines Features • Program Memory (Flash) to SRAM Copy Routine • SRAM to SRAM Copy Routine • Extremely Code Efficient Routines Flash → SRAM: 6 Words, SRAM → SRAM: 5 Words • Runable Test/Example Program Introduction This
Novice’s Guide to AVR Development intended for
Novice’s Guide to AVR Development Preparing your PC for AVR Development Basic AVR Knowledge An Introduction Let's make an easy start, and download the files that we will need later on. The AVR Microcontroller family is a modern architecture, with all the bells andFirst you should download the files
AVR079: STK600 Communication Protocol
AVR079: STK600 Communication Protocol Features 8-bit • Supported Commands and Command options • Command and Answer package formats Microcontrollers 1 Introduction Application Note This document describes the STK®600 protocol. The firmware is distributed with AVR Studio® 4.14 or later. The definition
8-bit Instruction Set Instruction Set Nomenclature
8-bit Instruction Set Rev. 0856G–AVR–07/08 Instruction Set Nomenclature Status Register (SREG) SREG: Status Register C: Carry Flag Z: Zero Flag N: Negative Flag V: Two’s complement overflow indicator S: N ⊕ V, For signed tests H: Half Carry Flag T: Transfer bit used by BLD and BST instructions I: Gl
Designer’s Designing for Efficient Production Corner with In-System Re-programmable Flash µCs
Designer’s Designing for Efficient Production Corner with In-System Re-programmable Flash µCs By: OJ Svendlsi always the component where the majority of the engi- neering hours are spent. Thus, making sure the micro- For products where time-to-market and efficient pro- controller has what it takes t
AVR069: AVRISP mkII Communication Protocol
AVR069: AVRISP mkII Communication Protocol Features • General commands • ISP commands • Return values • Parameters 1 Introduction This document describes the AVRISP mkII protocol. The firmware is distributed with AVR Studio 4.12 or later. Download the latest AVR Studio from the Atmel web site, http:
Studio® Integrated Development A COMPLETE SOFTWARE ENVIRONMENT TO Environment DEVELOP AVR® APPLICATIONS. IT’S FREE!
MICROCONTROLLERSStudio® Integrated Development A COMPLETE SOFTWARE ENVIRONMENT TO Environment DEVELOP AVR® APPLICATIONS. IT’S FREE! AVR Studio® is an Integrated Development Environment for writing and debugging AVR applications in Windows® 98/XP/ME/2000 and Windows NT® environments. AVR Studio provi
Hexadecimal Object File Format Specification
Hexadecimal Object File Format Specification Revision A January 6, 1988 This specification is provided "as is" with no warranties whatsoever, including any warranty of merchantability, noninfringement, fitness for any particular purpose, or any warranty otherwise arising out of any proposal, specifi
AVR914: CAN & UART based Bootloader for AT90CAN32, AT90CAN64, & AT90CAN128 1. Features
AVR914: CAN & UART based Bootloader for AT90CAN32, AT90CAN64, & AT90CAN128 1. Features • UART Protocol 8-bit – UART used as Physical Layer – Based on the Intel Hex-type records Microcontrollers – Auto-baud • CAN Protocol – CAN used as Physical Layer Application Note – 7 re-programmable ISP CAN ident
AVR Microcontrollers Application Note
AVR Microcontrollers Application Note AVR495: AC Induction Motor Control Using the Constant V/f Principle and a Space-vector PWM Algorithm 1. Features • Cost-effective and energy efficient 3-phase induction motor drive • Interrupt driven • Low memory and computing requirements 2. Introduction In a p
AVR Microcontrollers Application Note AVR494: AC Induction Motor Control Using the constant V/f Principle and a Natural PWM Algorithm
AVR Microcontrollers Application Note AVR494: AC Induction Motor Control Using the constant V/f Principle and a Natural PWM Algorithm 1. Features • Cost-effective and flexible 3-phase induction motor drive • Interrupt driven • Low memory and computing requirements 2. Introduction Electrical power ha
AVR465: Single-Phase Power/Energy Meter with Tamper Detection
AVR465: Single-Phase Power/Energy Meter with Tamper Detection Features • Cost-Effective and Flexible Single-Phase Energy Meter • Fulfills IEC 61036 Accuracy Requirements for Class 1 Meters • Detects, Signals and Continues to Measure Accurately Under At Least 20 Different Tamper Conditions • Design E
AVR453: Smart Battery Reference Design
AVR453: Smart Battery Reference Design Features • Support for up to 4 Li-Ion series-connected battery cells • Battery protection by dedicated Hardware - Deep under voltage protection - Over-current protection during charging - Over-current protection during discharging - Short circuit protection • C
8-bit Microcontroller Application Note AVR450: Battery Charger for SLA, NiCd, NiMH and Li-Ion Batteries Features
8-bit Microcontroller Application Note Rev. 1659B–AVR–11/02 AVR450: Battery Charger for SLA, NiCd, NiMH and Li-Ion Batteries Features • Complete Battery Charger Design • Modular “C” Source Code and Extremely Compact Assembly Code • Low Cost • Supports Most Common Battery Types • Fast Charging Algori
Getting started with the AVR battery charger reference design.
Getting started with the AVR battery charger reference design. The AVR battery charger reference design is designed for use with several types of batteries and various number of battery cells. The AVR battery charger reference design is supplied with resistor values for scaling down the charge volta