Download: Novice’s Guide to AVR Development intended for "Bare Bone" AVR basics.Download these files to a temporary folder on your computer. ( e.g. C:\Temp ): people with no AVR STUDIO 4 This file contains the AVR Studio 4 Program. This The AVR microcontrollers are divided into three groups:

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 to have them readily available when you whistles associated with such. When you get the hang of the basic concepts need them. This could take some time depending on your internet connection. the fun of exploring all these features begins. For now we will stick with the intended for "Bare Bone" AVR b...
Author: Zoble1980 Shared: 8/19/19
Downloads: 662 Views: 3989

Content

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 to have them readily available when you whistles associated with such. When you get the hang of the basic concepts need them. This could take some time depending on your internet connection. the fun of exploring all these features begins. For now we will stick with the intended for "Bare Bone" AVR basics.Download these files to a temporary folder on your computer. ( e.g. C:\Temp ): The 3 different Flavors of AVR people with no AVR STUDIO 4 This file contains the AVR Studio 4 Program. This The AVR microcontrollers are divided into three groups: • tinyAVR (~15MB) program is a complete development suite, and prior AVR contains an editor and a simulator that we will • AVR (Classic AVR) use to write our code, and then see how it will • megaAVR run on an AVR device. knowledge.. The difference between these devices lies in the available features. TheAssembly Sample Code This file contains the Assembly Sample code tinyAVR µC are usually devices with lower pin-count or reduced feature set (~1kB) you will need to complete this guide. compared to the megaAVR's . All AVR devices have the same instruction set and memory organization, so migrating from one device to another AVR is easy. By Arild Rødland, AT90S8515 Datasheet This is the Datasheet for the AT90S8515 AVR AVRFreaks (~4MB) Microcontroller. This is a convenient "Getting Some AVR's contain SRAM, EEPROM, External SRAM interface, Analog to Started" device. For now you don't have to worry Digital Converters, Hardware Multiplier, UART, USART and the list goes on. about the different types of AVR micros. You'll see that they are very much alike, and if you learn how to use one (eg. 8515), you will be able to If you take a tinyAVR and a megaAVR and strip off all the peripheral mod- use any other AVR without any problems. ules mentioned above, you will be left with the AVR Core. This Core is the

Starting with a new µC same for all AVR devices. (Think of Hamburgers: They all contain the same slab

architecture can be quite Instruction Set Manual This is the Instruction Set Manual. This document of meat, the difference is the additional styling in the form of tripled-cheese and pickles :) fustrating. The most dif- (~2MB) is very useful if you want detailed informationabout a specific instruction. ficult task seems to be Selecting the "correct" AVR how to get the informa- The morale is that the tinyAVR, AVR (Classic AVR) and megaAVR does not real- When you have downloaded the files, it is time to install the software you ly reflect performance, but is more an indication of the "complexity" of thetion and documentation need. device: Lot's of features = megaAVR, reduced feature set = tinyAVR . The "AVR to get the first AVR pro- (Classic AVR)" is somewhere in between these, and the distinctions between gram up running. Step 2. Installing AVR Studio 4 these groups are becoming more and more vague. This tutorial assumes AVR Studio is also available in a version 3. We will use AVR Studio 4 since thisis the version that will eventually replace version 3. So for your project you should select an AVR that only includes the features that you do not yet own that you need if you are on a strict budget. If you run your own budget you any AVR devices or AVR Important note for people using Windows NT/2000/XP: should of course go for the biggest AVR possible, since eh... because! development tools. It You must be logged in with administrator rights to be able to successfullyinstall AVR Studio. The reason is that these Windows systems have restrictions Learning to write code on the AVR also assumes that you regarding who can install new device drivers! Learning new stuff is fun, but can be a bit frustrating. Although it is fully possi- have no prior knowledge ble to learn the AVR by only reading the datasheet this is a complicated and time- of the AVR architecture Installation: consuming approach. We will take the quick and easy approach, which is: 1) Double click on the AVRSTUDIO.EXE file you downloaded. This file is a self or instruction set. All you extracting file, and will ask where you want to extract the files. The default 1. Find some pre-written, working code need to complete this path points to your "default" temp folder, and could be quite well "hidden" on 2. Understand how this code works tutorial is a computer your hard disk, so make sure to read and remember this path, or enter a new 3. Modify it to suite our needs path to where you want the files placed (e.g. c:\temp ) The device we will use is the AT90S8515 which is an AVR with a good blend running some flavour of of peripherals. Take a few minutes to browse through the Datasheet. the Windows operating 2) Once all the files are extracted, open the temp folder, and double click on system, and an internet the SETUP.EXE file. Just follow the installation, and use the default install path. Learning to use the AVR Datasheets NB: You can use another path, but this tutorial assumes that you install it to It is easy to get scared when looking at the AVR Datasheets. E.g. the connection to download the default path. ATmega128(L) datasheet is almost 350 pages long, and reading it start to fin- documents and files. ish - and remembering the contents, is quite a task. Luckily you are not sup- That's it. Now you have installed all the software you'll need to write code and posed to do that, either. The datasheets are complete technical documents that run programs for all available AVR devices! Keep the Datasheet and Instruction you should use as a reference when you are in doubt how a given peripheral set Manual in a place you remember. or feature works., When you open an AVR Datasheet you will discover that it can be divided into This is done in four steps: these groups: 1. Click on this to let the program know you want to create an Assembly 1. First Page Containing Key information and Feature List program 2. Architectural Overview 2. This is the name of the project. It could be anything, but "Leds" is quite OK! You have now installed 3. Peripheral Descriptions descriptive of what this program is going to do the software, you have a 4. Memory Programming 3. Here you can specify if AVR Studio should automatically create a initial 5. Characteristics assembly file. We want to do this. The filename could be anything, but use vague knowledge of the 6. Register Summary "Leds" to be compatible with this tutorial! 7. Instruction Set Summary 4. Select the path where you want your files stored different types of AVRs, 8. Packaging Information 5. Verify everything once more, and make sure both check-boxes are checked. and know that there is a When you are satisfied, press the "Next >>" button lot of information in the This is quite convenient. When you are familiar with how to use the Step 3: Selecting Debug PlatformAT90S8515 Datasheet, migrating to another Datasheet should be a breeze. The AVR Studio 4 Software can be used as a frontend software for a wide datasheet that you don't After completing this tutorial you should take some time and read through the range of debugging tools. Architectural Overview sections of the datasheets (At the beginning of the yet know anything about! Datasheets). These sections contain a lot of useful information about AVR

Good, now it's time to get memories, Addressing modes and other useful information.

developing! Click "Next" Another useful page to look at is the Instruction Set Summary. This is a nice reference when you start developing code on your own. If you want in-depth to advance to the next information about an instruction, simply look it up in the Instruction Set part of this tutorial. Manual you previously downloaded! OK! You have now installed the software, you have a vague knowledge of the different types of AVRs, and know that there is a lot of information in the datasheet that you don't yet know anything about! Good, now it's time to get 1. AVR Studio 4 supports a wide range of emulation and debugging tools. developing! Click "Next" to advance to the next part of this tutorial. Since we have not purchased any of these yet, we will use the built in simulator functionality. AVR Studio 4 GUI 2. ..and we want to develop for the AT90S8515 device Note: If you have not yet installed AVR Studio you should go to the Preparing 3. Verify all settings once more, then press "Finish" to create project and go your PC for AVR Development section of this tutorial before continuing. to the assembly file Step 1: Creating a New Project Step 4: Writing your very first line of code Start AVR Studio 4 by launching AVR Studio 4 located at [START] | [Programs] AVR Studio will start and open an empty file named Leds.asm. We will take a | [Atmel AVR Tools]. AVR Studio will start up, and you will get this dialog box. closer look at the AVR Studio GUI in the next lesson. For now note that the Leds.asm is not listed in the "Assembler" folder in the left column. This is because the file is not saved yet. Write in this line: "; My Very First AVR Project" as shown in the figure below. The semicolon ; indicates that the rest of the line should be treated as a comment by the assembler. We want to create a new Project so press the "Create New Project Button" Step 2: Configuring Project Settings This step involves setting up what kind of project we want to create, and set- ting up filenames and location where they should be stored. To save the line press - S or select [Save] on the [File] menu. The Leds.asm will now show up in the Left Column as shown below., OK, Now that we have AVR Studio up and running, it's time to take a closer Sample Code (~1kB) look at the AVR Studio GUI.. AVR Studio 4 GUI ;My Very First AVR Project Let's take a closer look at the AVR Studio Graphical User Interface (GUI). .include "8515def.inc" ;Includes the 8515 definitions file .def Temp = R16 ;Gives "Defines" Register R16 the name Temp .org 0x0000 ;Places the following code from address 0x0000 rjmp RESET ;Take a Relative Jump to the RESET Label RESET: ;Reset Label have defined R16 = Temp) out DDRB, Temp ;Store this value in The PORTB Data direction Register Loop: ;Loop Label As you can see below, we have divided the GUI into 6 sections. AVR Studio 4 out PORTB, Temp ;Write all highs contains a help system for AVR Studio, so instead of reinventing the wheel (255 decimal) to PORTB dec Temp ;Decrement R16 (Temp) here, I'll just explain the overall structure of AVR Studio 4 and point to where rjmp Loop ;Take a relative jump to the in the AVR Studio 4 On-line Help System you can find in depth information. Loop label 1. The first line here is the "Menus" Here you will find standard windows Note that the source code changes color when written in the editor window. menus like save and load file, Cut & Paste, and other Studio specific menus This is known as syntax highlighting and is very useful make the code more like Emulation options and stuff. readable. Once the Source code is entered, press CTRL + F7 or select [Build 2. The next lines are Toolbars, which are "shortcuts" to commonly used and Run] from the [Project] Menu. functions. These functions can be saving files, opening new views, setting breakpoints and such. 3. The Workspace contains Information about files in your Project, IO view, and Info about the selected AVR 4. This is the Editor window. Here you write your assembly code. It is also possible to integrate a C-Compiler with AVR Studio, but this is a topic for the more advanced user

At this point you 5. Output Window. Status information is displayed here.

should have installed 6. The System Tray displays information about which mode AVR Studio is running in. Since we are using AT90S8515 in simulator mode, this will be the software, and started displayed here up the a new project More about the GUI In the output view (at the bottom left of the screen) you should get the fol- called "Leds" You should To complete this bare bone guide you don't need any more knowledge of the lowing output indicating that the Project compiled correctly without any errors! GUI right now, but it is a good idea to take a look at the AVR Studio HTML From this output window, we can also see that our program consists of 6 also have the AT90S8515 help system. You can start this by opening [HELP] [AVR Studio User Guide] words of code (12 bytes). from AVR Studio, or by clicking this link (and select: Open) if you installed AVR

Datasheet, stored some- Studio to the default directory. When you have had your fill, we'll continue

where you can easily find working on our first AVR Program. it. If you can answer "Yes" Writing your First AVR Program to both these questions, At this point you should have installed the software, and started up the a newproject called "Leds" You should also have the AT90S8515 Datasheet, stored you are ready to continue somewhere you can easily find it. If you can answer "Yes" to both these ques- tions, you are ready to continue writing some AVR Code. Congratulations!! You have now successfully written your first AVR program, writing some AVR Code. and we will now take a closer look at what it does! In the Editor view in AVR Studio, continue your program (which at this point only consists of the first line below) by adding the text top of next colum. Note: If your program does not compile, check your assembly file for typing (Cheaters can simply cut & paste the source below into AVR Studio...) errors. If you have placed the include files (8515def.inc) in a different folder than the default, you may have to enter the complete path to the file in the .include "c:\complete path\8515def.inc" statement. When it compiles we will continue explaining and then debugging the code.,

Understanding the Source Code

OK so the code compiled without errors. That's great, but let us take a moment RESET: I guess you have figured to see what this program does, and maybe get a feeling how we should sim- This is a label. You can place these where you want in the code, and use the dif- out what our masterpiece ulate the code to verify that it actually performs the way we intended. This is ferent branch instructions to jump to this location. This is quite neat, since the the complete source code: assembler itself will calculate the correct address where the label is. is doing. We have made Sample Code ldi Temp, 0xFF a counter counting down Ah.. finally a decent instruction to look at: Load Immediate (LDI). This instruction ;My Very First AVR Project loads an Immediate value, and writes it to the Register given. Since we have from 255 to 0, but what defined the R16 register to be called "Temp", this instruction will write the hex .include "8515def.inc" ;Includes the 8515 defini- value 0xff (255 decimal) to register R16. happens when we tions file out DDRB, Temp reach zero? .def Temp = R16 ;Gives "Defines" Register R16 Why aren't we just writing "ldi DDRB, Temp"? A good question, and one that the name Temp require that we take a look in the Instruction Set Manual. Look up the "LDI" and .org 0x0000 ;Places the following code "OUT" instructions. You will find that LDI has syntax : "LDI Rd, K" which means from address 0x0000 that it can only be used with General Purpose Registers R16 to R31. Looking at rjmp RESET ;Take a Relative Jump to the "OUT" instruction we see that the syntax is "OUT A, Rr" Which means that the RESET Label content that is going to be written by the OUT instruction has to be fetched from one of the 32 (R0 to R31) General Purpose Registers. RESET: ;Reset Label Anyway, this instruction sets the Data Direction Register PORTB (DDRB) register to have defined R16 = Temp) all high. By setting this register to 0xFF, all IO pins on PORTB are configured as out DDRB, Temp ;Store this value in The outputs. PORTB Data direction Register Loop Loop: ;Loop Label Another label... out PORTB, Temp ;Write all highs (255 decimal) to PORTB dec Temp ;Decrement R16 (Temp) out PORTB, Temp rjmp Loop ;Take a relative jump to the We Now write the value 0xFF to PORTB, which would give us 5V (Vcc) on all Loop label PORTB IO pins if we where to measure it on a real device. Since the IO ports is perhaps the most used feature of the AVR it would be a good idea to open the Now let's take a line-by-line look at what's going on in this code. Datasheet on the PORTB. Notice that PORTB has 3 registers PORTB, PINB and DDRB. In the PORTB register we write what we want written to the physical IO ;My Very First AVR Project pin. In the PINB register we can read the logic level that is currently present on Lines beginning with " ; " (semicolon) are comments. Comments can be added the Physical IO pin, and the DDRB register determines if the IO pin should be con- to any line of code. If comments are written to span multiple lines, each of these figured as input or output. (The reason for 3 registers are the "Read-Modify-Write" lines much begin with a semicolon issue associated with the common 2 register approach, but this is a topic for the Advanced class.) .include "8515def.inc" Different AVR devices have e.g. PORTB placed on different location in IO memory. dec Temp These .inc files maps MNEMONICS codes to physical addresses. This allows you This Decrement (DEC) instruction decrements the Temp (R16) register. After this for example to use the label PORTB instead of remembering the physical location instruction is executed, the contents of Temp is 0xFE. This is an Arithmetic instruc- in IO memory (0x18 for AT90S8515) tion, and the AVR has a wide range of Arithmetic instructions. For a complete list- ing of available instruction: Look in the Instruction Set Summary in the Datasheet! .def Temp = R16 The .def (Define) allow you to create easy to remember labels (e.g. Temp) rjmp Loop instead of using the default register Name (e.g. R16). This is especially useful in Here we make a jump back to the Loop lable. The program will thus continue to projects where you are working with a lot of variables stored in the general pur- write the Temp variable to PORTB decrementing it by one for each loop. pose Registers (The Datasheet gives a good explanation on the General Purpose Registers!) I guess you have figured out what our masterpiece is doing. We have made a counter counting down from 255 to 0, but what happens when we reach .org 0x0000 zero? This is a directive to the assembler that instructs it to place the following code at location 0x0000 in Flash memory. We want to do this so that the following RJMP Simulating with the Source Code instruction is placed in location 0 (first location of FLASH). The reason is that this location is the Reset Vector, the location from where the program execution starts AVR Studio 4 operates in different "modes". Back when we where writing the after a reset, power-on or Watchdog reset event. There are a also other interrupt code, we where in editor mode, now we are in debugging mode. Lets take a vectors here, but our application does not use interrupts, so we can use this space closer look at these: for regular code! 1. Note that a Yellow arrow has appeared on the first RJMP instruction. This rjmp RESET arrow points to the instruction that is about to be executed. Since the previous command was the .org 0x0000, this Relative Jump (RJMP) 2. Note that the workspace has changed from Project to IO view. The IO view instruction is placed at location 0 in Flash memory, and is the first instruction to is our peek-hole into the AVR, and it will probably be your most used view. be executed. If you look at the Instruction Set Summary in the Datasheet, you will see that the AT90S8515 do not have a JMP instruction. It only has the RJMP We will look closer at this one in a short while. instruction! The reason is that we do not need the full JMP instruction. If you 3. The bottom line contains status information. This Reads: compare the JMP and the RJMP you will see that the JMP instruction has longer AT90S8535 Simulator, Auto, Stopped. This is followed by a yellow icon. It range, but requires an additional instruction word, making it slower and bigger. is a good idea to check this information to verify that you have selected RJMP can reach the entire Flash array of the AT90S8515, so the JMP instruction the correct device and emulation tool. is not needed, thus not implemented., Press [ F11 ]. 0xFF is now written to PORTB register, and the arrows points to the DEC instruction. Note that PORTB is equal to 0xFF. Note also that the PINB register is still 0x00! Setting up the IO View Press [ F11 ]. The Temp variable is decremented (0xFF - 1 = 0xFE). In addi- Since our program mainly tion the PINB register changes from 0x00 to 0xFF! Why? To find out why this operates on PORTB registers, happens you have to look at the PORT sections of the datasheet. The expla- we will expand the IO view so nation is that the PORTB is first latched out onto the pin, then latched back to that we can take a closer look the PIN register giving youa1clock cycle delay. As you can see, the simula- at the contents of these regis- tor behaves like the actual part! The next instruction is a relative jump back ter. Expand the IO view (tree) to the Loop label. as shown in the figure on left: Stepping through the Code AVR Studio allows running the code at full speed until a given point, and then halt. We will Press [ F11 ]. The RJMP is now executed, and the arrow is back pointing at however take if nice and slow, and manually press a button for every instruc- the OUT PORTB, Temp instruction. tion that should be executed. This is called single-stepping the code.

After running through

Press [ F11 ] to write the new Temp value to the PORTB register. Note that this introduction you Press [ F11 ] once. This is the key for single-stepping. Note that the yellow the content of PORTB is now updated to 0xFE! Continue pressing F11 until arrow is now pointing at the LDI Temp, 0xFF instruction. This is the instruc- you have counted down the PORTB register to 0x00. What happens if you con- should have a basic tion that is going to be executed next. tinue running the Program? idea of how to get a program up and Conclusion and Recommended Reading running on the After running through this introduction you should have a basic idea of how toget a program up and running on the AVR µC.

AVR µC.

Press [ F11 ] once more. The LDI instruction is executed, and the arrow points As mentioned before, one of the most efficient methods of learning AVR pro- to the OUT instruction. The Temp Register has now the value 0xFF. (If you gramming is looking at working code examples, and understanding how these open the "Register 16-31" tree you will see that R16 contains 0xFF. We work. Here on AVRfreaks.net you will find a large collection of projects suitable defined Temp to be R16, remember?) to learn you more about the AVR. In our tools section we have also linked up all Atmel AVR Application Notes. These are also very useful reading. ❑ Press [ F11 ]. DDRB is now 0xFF, As shown in the IO View above this is rep- resented as black squares in the IO View. So, a white square represents logi- cal low "0" and black squares are logical high "1". By setting DDRB high, all bits of PORTB is configured as outputs.]
15

Similar documents

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
8-bit Microcontroller Application Note
8-bit Microcontroller Application Note Rev. 2534A–AVR–05/03 AVR415: RC5 IR Remote Control Transmitter Features • Utilizes ATtiny28 Special HW Modulator and High Current Drive Pin • Size Efficient Code, Leaves Room for Large User Code • Low Power Consumption through Intensive Use of Sleep Modes • Cos
AVR336: ADPCM Decoder
AVR336: ADPCM Decoder Features • AVR Application Decodes ADPCM Signal in Real-Time • Supports Bit Rates of 16, 24, 32 and 40 kbit/s • More Than One Minute Playback Time on ATmega128 (at 16 kbit/s) • Decoded Signal Played Using Timer/Counter in PWM Mode 1 Introduction Adaptive Differential Pulse Code
8-bit Microcontroller Application Note
8-bit Microcontroller Application Note Rev. 1181B–AVR–04/03 AVR360: Step Motor Controller Features • High-speed Step Motor Controller • Interrupt Driven • Compact Code (Only 10 Bytes Interrupt Routine) • Very High Speed • Low Computing Requirement • Supports all AVR Devices Introduction This applica
8-bit RISC Microcontroller Application Note AVR335: Digital Sound Recorder with AVR and Serial DataFlash Features
8-bit RISC Microcontroller Application Note Rev. 1456B–01/04 AVR335: Digital Sound Recorder with AVR and Serial DataFlash Features • Digital Voice Recorder • 8-bit Sound Recording • 8 KHz Sampling Rate • Sound Frequency up to 4000 Hz • Maximum Recording Time 2 1/4 Minutes • Very Small Board Size • O
USB in a Nutshell. Making Sense of the USB Standard.
USB in a Nutshell. Making Sense of the USB Standard. Starting out new with USB can be quite daunting. With the USB 2.0 specification at 650 pages one could easily be put off just by the sheer size of the standard. This is only the beginning of a long list of associated standards for USB. There are U
What is USB Enumeration? What does enumeration look like?
What is USB Enumeration? Enumeration is the process by which a USB device is attached to a system and is assigned a specific numerical address that will be used to access that particular device. It is also the time at which the USB host controller queries the device in order to decide what type of d
Draft
CYCLIC REDUNDANCY CHECKS IN USB Introduction The USB specification calls for the use of Cyclic Redundancy Checksums (CRC) to protect all non-PID fields in token and data packets from errors during transmission. This paper describes the mathematical basis behind CRC in an intuitive fashion and then e
File: X:\USERS\IGOR\DOC\WORD\Atmel\USB to RS232 Application Note\Firmware\USBtoRS232_ATmega8\AVR Studio 4 project\USBtoRS232.asm 1.2.2004
1 ;*************************************************************************** 2 ;* USBSTACKFORTHEAVRFAMILY3;* 4 ;* File Name :"USBtoRS232.asm" 5 ;* Title :AVR309:USB to UART protocol converter 6 ;* Date :01.02.2004 7 ;* Version :2.8 8 ;* Target MCU :ATmega8 9 ;* AUTHOR :Ing. Igor Cesko 10 ;* Slovak
File: X:\USERS\IGOR\DOC\WORD\Atmel\USB to RS232 Application Note\Firmware\USBtoRS232_AT90S2313\AVR Studio 4 project\USB90S2313.asm 26.1.2004
1 ;*************************************************************************** 2 ;* USBSTACKFORTHEAVRFAMILY3;* 4 ;* File Name :"USB90S2313.asm" 5 ;* Title :AVR309:USB to UART protocol converter (simple - small FIFO) 6 ;* Date :26.01.2004 7 ;* Version :2.2 8 ;* Target MCU :AT90S2313-10 9 ;* AUTHOR :I
AVR309: Software Universal Serial Bus (USB)
AVR309: Software Universal Serial Bus (USB) Features • USB (Universal Serial Bus) protocol implemented in firmware • Supports Low Speed USB (1.5Mbit/s) in accordance with USB2.0 • Implementation runs on very small AVR devices, from 2kBytes and up • Few external components required - One resistor for
Application Note
8-bit Microcontrollers Application Note AVR270: USB Mouse Demonstration Features • Runs with AT90USB Microcontrollers at 8MHz • USB Low Power Bus Powered Device (less then 100mA) • Supported by any PC running Windows® (98SE or later), Linux® or Mac OS®. • 3Kbytes of Code Required • X, Y Movement, Le
8-bit Microcontroller Application Note
8-bit Microcontroller Application Note Rev. 2547A–AVR–11/03 AVR244: AVR UART as ANSI Terminal Interface Features • Make use of standard terminal software as user interface to your application. • Enables use of a PC keyboard as input and ascii graphic to display status and control information. • Driv
MPASM USER'S GUIDE with MPLINK and MPLIB MPASM USER'S GUIDE with MPLINK and MPLIB
Adjust Spine to fit MPASM USER'S GUIDE with MPLINK and MPLIB Microchip Technology Inc. 2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 602.786.7200 Fax: 602.899.9210 © 1999 Microchip Technology Inc., Printed in the U.S.A. 3/99 DS33014 MPASM USER'S GUIDE with MPLINK and MPLIB Information only.
Microcontroller Core Features: RA5/SS/AN4 7 34 RB1RE0/RD/AN5 8 33 RB0/INT
Device Pins A/D PSP Pin Diagram PIC16C63A 28 NO NO PDIP, Windowed CERDIP PIC16C73B 28 YES NO MCLR/VPP 1 40 RB7 PIC16C65B 40 NO YES RA0/AN0 2 39 RB6 RA1/AN1 3 38 RB5 PIC16C74B 40 YES YES RA2/AN2 4 37 RB4 RA3/AN3/VREF 5 36 RB3 RA4/T0CKI 6 35 RB2 Microcontroller Core Features: RA5/SS/AN4 7 34 RB1RE0/RD
PACKAGE OPTION ADDENDUM
PCM2704 and PCM2705 Not Recommended For New Designs PCM2704, PCM2705 PCM2706, PCM2707 Burr-Brown Audio www.ti.com... SLES081F–JUNE 2003–REVISED JANUARY 2009 STEREO AUDIO DAC WITH USB INTERFACE, SINGLE-ENDED HEADPHONE OUTPUT AND S/PDIF OUTPUT 1FEATURES – External ROM Interface (PCM2704/6) 2345• On-Ch
14 + 14W STEREO AMPLIFIER WITH MUTE & ST-BY
TDA7269A 14 + 14W STEREO AMPLIFIER WITH MUTE & ST-BY WIDE SUPPLY VOLTAGE RANGE UP TO ±20V SPLIT SUPPLY HIGH OUTPUT POWER 14 + 14W @ THD =10%, RL = 8Ω, VS = +16V NO POP AT TURN-ON/OFF MUTE (POP FREE) STAND-BY FEATURE (LOW Iq) SHORT CIRCUIT PROTECTION TO GND THERMAL OVERLOAD PROTECTION Multiwatt11 OR
FOREWORD This repair manual has been prepared to provide essential in-
FOREWORD This repair manual has been prepared to provide essential in- formation on body panel repair methods (including cutting and welding operations, but excluding painting) for the TOYOTA YARIS. Applicable models: KSP90 series Applicable models: NCP90, 91 series This manual consists of body repa