Overview The Atmel®AVR® ATmega8 is a low-power CMOS 8-bit microcontroller based on the AVR RISC architecture. By executing powerful instructions in a single clock cycle, the ATmega8 achieves throughputs approaching 1MIPS per MHz, allowing the system designer to optimize power consumption versus processing speed.
Features • High-performance, Low-power Atmel®AVR® 8-bit Microcontroller • Advanced RISC Architecture – 130 Powerful Instructions – Most Single-clock Cycle Execution – 32 × 8 General Purpose Working Registers – Fully Static Operation – Up to 16MIPS Throughput at 16MHz – On-chip 2-cycle Multiplier • High Endurance Non-volatile Memory segments – 8Kbytes of In-System Self-programmable Flash program memory – 512Bytes EEPROM – 1Kbyte 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 • Peripheral Features – Two 8-bit Timer/Counters with Separate Prescaler, one Compare Mode – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode – Real Time Counter with Separate Oscillator – Three PWM Channels – 8-channel ADC in TQFP and QFN/MLF package Eight Channels 10-bit Accuracy – 6-channel ADC in PDIP package Six Channels 10-bit Accuracy – Byte-oriented Two-wire Serial Interface – Programmable Serial USART – Master/Slave SPI Serial Interface – Programmable Watchdog Timer with Separate On-chip Oscillator – On-chip Analog Comparator • Special Microcontroller Features – Power-on Reset and Programmable Brown-out Detection – Internal Calibrated RC 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-lead PDIP, 32-lead TQFP, and 32-pad QFN/MLF • Operating Voltages – 2.7V — 5.5V (ATmega8L) – 4.5V — 5.5V (ATmega8) • Speed Grades – 0 — 8MHz (ATmega8L) – 0 — 16MHz (ATmega8) • Power Consumption at 4Mhz, 3V, 25C – Active: 3.6mA – Idle Mode: 1.0mA – Power-down Mode: 0.5µA
ru.datasheetbank.com
ATMega8-16PU ATMega8L
Микроконтроллер ATMega8 принадлежит семейству микроконтроллеров AVR фирмы Atmel. ATMega8 имеет 8кб Flash
памяти и по 1024 байт SRAM и 512 байт EEPROM памяти. ATMega8 может работать на частоте до 16МГц.
ATMega8 выпускают в корпусах DIP-28, TQPF-32 и MLF-32
Красным цветом на рисунке показаны номера выводов соответствующие разводке на плате Arduino.
Микроконтроллер ATMega8 имеет
23 программируемых линий ввода-вывода
Два 8-разрядных таймеров-счетчиков
Один 16-разрядный таймер-счетчик
Три выхода с широтно-импульсной модуляцией (ШИМ (PWM))
Счетчик реального времени с отдельным генератором
Программируемый сторожевой таймер счетчик wathdog с отдельным кварцевым генератором
Внутренний калиброванный RC-генератор
8-ми канальный 10-битный АЦП (6 каналов в DIP корпусе)
Аналоговый компаратор
Схема сброса при включении питания и снижении напряжения Brown-out Detection (BOD)
5 программируемых режимов энергосбережения
Двух проводной последовательный интерфейс
Программируемый последовательный интерфейс USART
Master/Slave SPI последовательный интерфейс
Выделяется защищенная область памяти под загрузчик (Boot Loader)
8 кб FLASH памяти программ
1024 байта SRAM
512 байта EEPROM
32 8-ми разрядных регистра общего назначения
В том числе 3 16-ти битных регистра (X, Y, Z)
64 8-ми разрядных регистра ввода-вывода
130 команд
18 векторов прерываний
Условные обозначения и описание ножек микроконтроллеров AVR ATtiny и ATmega
Практически все ножки микроконтроллеров, кроме питания могут быть запрограммированы на выполнение одной из нескольких функций. В распиновке микроконтроллеров для каждой ножки перечисляют аббревиатуры всего списка возможных для ножки функций.
Далее мы приводим описание аббревиатур, которые Вы можете встретить в datasheet микроконтроллеров.
PAn
n-й разряд порта A
PBn
n-й разряд порта B
PDn
n-й разряд порта D
(IR)
(Выходной контакт с повышенной нагрузочной способностью)
ADCn
n-й вход АЦП
AREF
Вход опорного напряжения для АЦП
AVCC
Вывод источника питания АЦП
AIN0
Положительный вход компаратора
AIN1
Отрицательный вход компаратора
INTn
Вход внешнего n-го прерывания
PCINTn
Вход внешнего n-го прерывания по изменению состояния вывода
XTAL1
Вход тактового генератора
XTAL2
Выход тактового генератора
CKOUT
Выход системного тактового сигнала
CLKO
Выход системного тактового сигнала
MOSI
Вход данных при программировании
MISO
Выход данных при программировании
SCK
Вход тактового сигнала при программировании
DI
Вход данных модуля USI в режиме SPI
DO
Выход данных модуля USI в режиме SPI
USCK
Вход/выход тактового сигнала модуля USI в режиме SPI
SDA
Вход/выход данных модуля USI в режиме TWI
SCL
Вход/выход тактового сигнала модуля USI в режиме TWI
Здравствуйте, MySkuвчане! Герой нашего обзора — микроконтроллер Atmega8A-16PU. Я расскажу вам о программировании данного мк в интегрированной среде разработки CodeVisionAvr, помигаем светодиодом, рассмотрим плюсы и минусы работы в данной среде. Возможно, в дальнейшем это послужит для вас альтернативой уже ставшей «народной» Arduino. Если заинтересовались, гоу под cut.
Преамбула. Так уж сложилось, что свое знакомство с мк я начал с Arduino. Мигал светодиодом, подключал различные датчики и шилды, делал различные проекты. Все работало, меня устраивало, однако хотелось чего-то большего. Подвернулся мне один проект, где участвует Atmega8A, под которую нужно самостоятельно написать прошивку. Именно он подтолкнул меня к изучению процесса программирования «голого» мк. Итак, перед нами микроконтроллер фирмы Atmel, семейства AVR Atmega8A.
Технические характеристики:
Распиновка:
Тут находится datasheet Теперь для работы и программирования нужно подключить его к программатору по схеме:
К сожалению, я как сапожник — без сапог, сейчас под руками нет программатора, поэтому я буду использовать Arduino UNO для загрузки в мк готовой прошивки и настройки фьюзов. Достаточно лишь загрузить скетч «Arduinoisp» из папки примеров Arduino IDE и подключить по схеме:
Однако, у данного решения есть существенный недостаток, о котором расскажу чуть позже. Перед тем, как приступить к написанию программы в CodeVisionAvr (далее CvAvr), нам нужно определиться, на какой частоте будет работать наш мк. По умолчанию, с завода наш герой работает от внутреннего rc-генератора на частоте 1Мгц (с возможностью перенастройки на 2, 4, и 8Мгц). Поскольку внутренний rc-генератор калибруют на заводе при определенных условиях (точное напряжение, температура), то точность его работы в «полевых» условиях может отличаться от 3% до 10%. Для задач, где не нужна высокая точность тактирования, этим можно пренебречь, в остальных случаях лучше использовать внешний кварц. В своем проекте я использовал внешний кварц на частоту 8 Мгц. Теперь нам надо «объяснить» мк, что нужно работать от внешнего кварца. Делается это при помощи изменения фьюзов. Если пояснить «на пальцах», то это что то вроде БИОСа, как на материнской плате, где вы указываете режимы её работы, аналогично мы сообщаем мк, в каких режимах, помимо частоты, он должен работать. Вся информация будет храниться в энергонезависимой памяти. О прошивке фьюзов я расскажу под спойлером, те, кто умеет это делать самостоятельно, могут листать дальше.
Дополнительная информация
Как же прописать эти самые фьюзы?! Для этого я использовал программу AvrDude, она бесплатна и легко найдется в интернете. Для того, чтобы правильно выставить фьюзы в соответствии с нужной частотой, смотрим datasheet, а можно и воспользоваться простым он-лайн калькулятор
Страна AlbaniaAlgeriaAmerican Minor Outlying IslandsAmerican SamoaAmerican Virgin IslandsAndorraAngolaAnguillaAntarcticaAntigua and BarbudaArgentinaArmeniaArubaAustraliaAustriaAzerbaijanBahamasBahrainBangladeshBarbadosBelarusBelgiumBelizeBeninBermudaBhutanBlueBoliviaBonaire, Saint Eustatius and SabaBosnia and HerzegovinaBotswanaBouvet IslandsBrazilBritish Indian Ocean TerritoryBritish Virgin IslandsBrunei DarussalamBulgariaBurkina FasoBurmaBurundiCambodiaCameroonCanadaCape VerdeCayman IslandsCentral African RepublicChadChileChinaChristmas IslndCoconut IslandsColombiaComorosCook IslandsCosta RicaCroatiaCuraçaoCyprusCzech RepublicDenmarkDjiboutiDominicaDominican RepublicEast TimorEcuadorEgyptEl SalvadorEquatorial GuineaEstoniaEthiopiaFalkland IslandsFaroe IslandsFijiFinlandFranceFrench GuyanaFrench PolynesiaFrench S.TerritGabonGambiaGeorgiaGermanyGhanaGibraltarGreeceGreenlandGrenadaGuadeloupeGuamGuatemalaGuyanaHaitiHeard and McDonald IslandsHondurasHong KongHungaryIcelandIndiaIndonesiaIraqIrelandIsraelItalyJamaicaJapanJordanKazakhstanKenyaKiribatiKosovoKuwaitKyrgyzstanLaosLatviaLesothoLiberiaLiechtensteinLithuaniaLuxembourgMacauMacedoniaMadagascarMalawiMalaysiaMaldivesMaliMaltaMarshall IslandsMartiniqueMauretaniaMauritiusMayotteMexicoMicronesiaMoldovaMonacoMongoliaMontserratMoroccoMozambiqueNamibiaNauruNepalNetherlandsNew CaledoniaNew ZealandNicaraguaNigerNigeriaNiueNorfolk IslandsNorth Mariana IslandsNorwayOmanPakistanPalauPalestinePanamaPapua New GuineaParaguayPeruPhilippinesPitcairn IslandsPolandPortugalPuerto RicoQatarReunionRomaniaRussian FederationRwandaSaint HelenaSaint Kitts and NevisSaint MartinSamoaSan MarinoSao Tome and PrincipeSaudi ArabiaSenegalSeychellesSierra LeoneSingaporeSint Maarten (Dutch part)SlovakiaSloveniaSolomon IslandsSouth AfricaSouth Georgia and the Southern Sandwich IslandsSouth KoreaSpainSri LankaSt. LuciaSt. Pierre and MiquelonSt. Vincent and the GrenadinesSurinameSvalbardSwazilandSwedenSwitzerlandTaiwanTajikistanTanzaniaThailandTogoTokelau IslandsTongaTrinidad and TobagoTunisiaTurkeyTurkmenistanTurks and Caicos IslandsTuvaluUgandaUkraineUnited Arab EmiratesUnited KingdomUruguayUSAUzbekistanVanuatuVatican CityVenezuelaVietnamWallis and Futuna IslandsWest SaharaZambiaСербияЧерногория
Overview The ATmega16 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 ATmega16 achieves throughputs approaching 1 MIPS per MHz allowing the system designer to optimize power consumption versus processing speed.
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 16 MIPS Throughput at 16 MHz – On-chip 2-cycle Multiplier • Nonvolatile Program and Data Memories – 16K Bytes of In-System Self-Programmable Flash Endurance: 10,000 Write/Erase Cycles – Optional Boot Code Section with Independent Lock Bits In-System Programming by On-chip Boot Program True Read-While-Write Operation – 512 Bytes EEPROM Endurance: 100,000 Write/Erase Cycles – 1K Byte Internal SRAM – Programming Lock for Software Security • JTAG (IEEE std. 1149.1 Compliant) Interface – Boundary-scan Capabilities According to the JTAG Standard – Extensive On-chip Debug Support – Programming of Flash, EEPROM, Fuses, and Lock Bits through the JTAG Interface • Peripheral Features – Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode – Real Time Counter with Separate Oscillator – Four PWM Channels – 8-channel, 10-bit ADC 8 Single-ended Channels 7 Differential Channels in TQFP Package Only 2 Differential Channels with Programmable Gain at 1x, 10x, or 200x – Byte-oriented Two-wire Serial Interface – Programmable Serial USART – Master/Slave SPI Serial Interface – Programmable Watchdog Timer with Separate On-chip Oscillator – On-chip Analog Comparator • Special Microcontroller Features – Power-on Reset and Programmable Brown-out Detection – Internal Calibrated RC Oscillator – External and Internal Interrupt Sources – Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby and Extended Standby • I/O and Packages – 32 Programmable I/O Lines – 40-pin PDIP, 44-lead TQFP, and 44-pad QFN/MLF • Operating Voltages – 2.7 — 5.5V for ATmega16L – 4.5 — 5.5V for ATmega16 • Speed Grades – 0 — 8 MHz for ATmega16L – 0 — 16 MHz for ATmega16 • Power Consumption @ 1 MHz, 3V, and 25°C for ATmega16L – Active: 1.1 mA – Idle Mode: 0.35 mA – Power-down Mode: < 1 µA
Overview The Atmel®AVR® ATmega8A is a low-power CMOS 8-bit microcontroller based on the AVR RISC architecture. By executing powerful instructions in a single clock cycle, the ATmega8A achieves throughputs approaching 1 MIPS per MHz, allowing the system designer to optimize power consumption versus processing speed.
Features • High-performance, Low-power Atmel®AVR® 8-bit Microcontroller • Advanced RISC Architecture – 130 Powerful Instructions – Most Single-clock Cycle Execution – 32 x 8 General Purpose Working Registers – Fully Static Operation – Up to 16MIPS Throughput at 16MHz – On-chip 2-cycle Multiplier • High Endurance Non-volatile Memory segments – 8KBytes of In-System Self-programmable Flash program memory – 512Bytes EEPROM – 1KByte Internal SRAM – Write/Erase Cycles: 10,000 Flash/100,000 EEPROM – Data retention: 20 years at 85C/100 years at 25C(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 – Atmel QTouch and QMatrix acquisition – Up to 64 sense channels • Peripheral Features – Two 8-bit Timer/Counters with Separate Prescaler, one Compare Mode – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode – Real Time Counter with Separate Oscillator – Three PWM Channels – 8-channel ADC in TQFP and QFN/MLF package • Eight Channels 10-bit Accuracy – 6-channel ADC in PDIP package • Six Channels 10-bit Accuracy – Byte-oriented Two-wire Serial Interface – Programmable Serial USART – Master/Slave SPI Serial Interface – Programmable Watchdog Timer with Separate On-chip Oscillator – On-chip Analog Comparator • Special Microcontroller Features – Power-on Reset and Programmable Brown-out Detection – Internal Calibrated RC 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-lead PDIP, 32-lead TQFP, and 32-pad QFN/MLF • Operating Voltages – 2.7 — 5.5V – 0 — 16MHz • Power Consumption at 4MHz, 3V, 25C – Active: 3.6mA – Idle Mode: 1.0mA – Power-down Mode: 0.5µA
Overview
The ATmega8 is a low-power CMOS 8-bit microcontroller based on the AVR RISC architecture. By executing powerful instructions in a single clock cycle, the ATmega8 achieves throughputs approaching 1 MIPS per MHz, allowing the system designer to optimize power consumption versus processing speed.
The AVR core combines a rich instruction set with 32 general purpose working registers. All the 32 registers are directly connected tothe Arithmetic Logic Unit (ALU), allowing two independent registers to be accessed in one single instruction executed in one clock cycle. The resulting architecture is more code efficient while achieving throughputs up to ten times faster than conventional CISC microcontrollers.
Features
• High-performance, Low-power AVR® 8-bit Microcontroller
• Advanced RISC Architecture
– 130 Powerful Instructions – MostSingle-clock Cycle Execution
– 32 x 8 General Purpose Working Registers
– Fully Static Operation
– Up to 16 MIPS Throughput at 16 MHz
– On-chip 2-cycle Multiplier
• Nonvolatile Program and Data Memories
– 8K Bytes of In-System Self-Programmable Flash
Endurance: 10,000 Write/Erase Cycles
– Optional Boot Code Section with Independent Lock Bits
In-System Programming by On-chip Boot Program
True Read-While-Write Operation
– 512 Bytes EEPROM
Endurance: 100,000 Write/Erase Cycles
– 1K Byte Internal SRAM
– Programming Lock for Software Security
• Peripheral Features
– Two 8-bit Timer/Counters with Separate Prescaler, one Compare Mode
– One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode
– Real Time Counter with Separate Oscillator
– Three PWM Channels
– 8-channel ADC in TQFP and QFN/MLF package
Eight Channels 10-bit Accuracy
– 6-channel ADC in PDIP package Eight Channels 10-bit Accuracy
– Byte-oriented Two-wire Serial Interface
– Programmable Serial USART
– Master/Slave SPI Serial Interface
– Programmable Watchdog Timer with Separate On-chip Oscillator
– On-chip Analog Comparator
• Special Microcontroller Features
– Power-on Reset and Programmable Brown-out Detection
– Internal Calibrated RC 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-lead PDIP, 32-lead TQFP, and 32-pad QFN/MLF
• Operating Voltages
– 2.7 — 5.5V (ATmega8L)
– 4.5 — 5.5V (ATmega8)
• Speed Grades
– 0 — 8 MHz (ATmega8L)
– 0 — 16 MHz (ATmega8)
• Power Consumption at 4 Mhz, 3V, 25°C
– Active: 3.6 mA
– Idle Mode: 1.0 mA
– Power-down Mode: 0.5 µA