Avr mega16 module

8-разрядные микроконтроллеры с 16 Кбайтами внутрисистемно программируемой Flash памяти

Отличительные особенности:

  • 8-разрядный высокопроизводительный AVR микроконтроллер с малым потреблением
  • Прогрессивная RISC архитектура
      130 высокопроизводительных команд, большинство команд выполняется за один тактовый цикл
      32 8-разрядных рабочих регистра общего назначения
      Полностью статическая работа
      Производительность приближается к 16 MIPS (при тактовой частоте 16 МГц)
      Встроенный 2-цикловый перемножитель
  • Энергонезависимая память программ и данных
      16 Кбайт внутрисистемно программируемой Flash памяти (In-System Self-Programmable Flash)
      Обеспечивает 1000 циклов стирания/записи
      Дополнительный сектор загрузочных кодов с независимыми битами блокировки
    Внутрисистемное программирование встроенной программой загрузки
      Обеспечен режим одновременного чтения/записи (Read-While-Write)
      512 байт EEPROM
      Обеспечивает 100000 циклов стирания/записи
      1 Кбайт встроенной SRAM
      Программируемая блокировка, обеспечивающая защиту программных средств пользователя
  • Интерфейс JTAG (совместимый с IEEE 1149.1)
      Возможность сканирования периферии, соответствующая стандарту JTAG
      Расширенная поддержка встроенной отладки
      Программирование через JTAG интерфейс: Flash, EEPROM памяти, перемычек и битов блокировки
  • Встроенная периферия
      Два 8-разрядных таймера/счетчика с отдельным предварительным делителем, один с режимом сравнения
      Один 16-разрядный таймер/счетчик с отдельным предварительным делителем и режимами захвата и сравнения
      Счетчик реального времени с отдельным генератором
      Четыре канала PWM
      8-канальный 10-разрядный аналого-цифровой преобразователь
      8 несимметричных каналов
      7 дифференциальных каналов (только в корпусе TQFP)
      2 дифференциальных канала с программируемым усилением в 1, 10 или 200 крат (только в корпусе TQFP)
      Байт-ориентированный 2-проводный последовательный интерфейс
      Программируемый последовательный USART
      Последовательный интерфейс SPI (ведущий/ведомый)
      Программируемый сторожевой таймер с отдельным встроенным генератором
      Встроенный аналоговый компаратор
  • Специальные микроконтроллерные функции
      Сброс по подаче питания и программируемый детектор кратковременного снижения напряжения питания
      Встроенный калиброванный RC-генератор
      Внутренние и внешние источники прерываний
      Шесть режимов пониженного потребления: Idle, Power-save, Power-down, Standby, Extended Standby и снижения шумов ADC
  • Выводы I/O и корпуса
      32 программируемые линии ввода/вывода
      40-выводной корпус PDIP и 44-выводной корпус TQFP
  • Рабочие напряжения
      2,7 — 5,5 В (ATmega16L)
      4,5 — 5,5 В (ATmega16)
  • Рабочая частота
      0 — 8 МГц (ATmega16L)
      0 — 16 МГц (ATmega16)

Блок- схема ATmega16:

Расположение выводов ATmega16:

Документация:

  2911Kb Engl Описание микроконтроллера ATmega16
  237Kb Engl Краткая информация ATmega16
  Rus Архитектура и система команд
  Програмное обеспечение
  Инструментальные средства для 8-разрядных AVR-микроконтроллеров

Семейства микроконтроллеров

Стандартные семейства:

  • tinyAVR (ATtinyxxx):
    • Флеш-память до 16 КБ; SRAM до 512 Б; EEPROM до 512 Б;
    • Число линий ввода-вывода 4-18 (общее количество выводов 6-32);
    • Ограниченный набор периферийных устройств.
  • megaAVR (ATmegaxxx):
    • Флеш-память до 256 КБ; SRAM до 16 КБ; EEPROM до 4 КБ;
    • Число линий ввода-вывода 23-86 (общее количество выводов 28-100);
    • Аппаратный умножитель;
    • Расширенная система команд и периферийных устройств.
  • XMEGA AVR (ATxmegaxxx):
    • Флеш-память до 384 КБ; SRAM до 32 КБ; EEPROM до 4 КБ;
    • Четырёхканальный DMA-контроллер;
    • Инновационная система обработки событий.

Как правило, цифры после префикса обозначают объём встроенной flash-памяти (в КБ) и модификацию контроллера. А именно — максимальная степень двойки, следующая за префиксом, обозначает объём памяти, а оставшиеся цифры определяют модификацию (напр., ATmega128 — объём памяти 128 КБ; ATmega168 — объём памяти 16 КБ, модификация 8; ATtiny44 и ATtiny45 — память 4 КБ, модификации 4 и 5 соответственно).[источник не указан 3304 дня]

На основе стандартных семейств выпускаются микроконтроллеры, адаптированные под конкретные задачи:

  • со встроенными интерфейсами USB, CAN, контроллером LCD;
  • со встроенным радиоприёмопередатчиком — серии ATAxxxx, ATAMxxx;
  • для управления электродвигателями — серия AT90PWMxxxx;
  • для автомобильной электроники;
  • для осветительной техники.

Кроме указанных выше семейств, ATMEL выпускает 32-разрядные микроконтроллеры семейства AVR32, которое включает в себя подсемейства AT32UC3 (тактовая частота до 66 МГц) и AT32AP7000 (тактовая частота до 150 МГц).

Версии контроллеров

AT (mega/tiny)xxx — базовая версия.
ATxxxL — версии контроллеров, работающих на пониженном (Low) напряжении питания (2,7 В).
ATxxxV — версии контроллеров, работающих на низком напряжении питания (1,8 В).
ATxxxP — малопотребляющие версии (до 100 нА в режиме Power-down), применена технология picoPower (анонсированы в июле 2007), повыводно и функционально совместимы с предыдущими версиями.
ATxxxA — уменьшен ток потребления, перекрывается весь диапазон тактовых частот и напряжений питания двух предыдущих версий (также, в некоторых моделях, добавлены новые возможности и новые регистры, но сохранена полная совместимость с предыдущими версиями). Микроконтроллеры «А» и «не-А» обычно имеют одинаковую сигнатуру, что вызывает некоторые трудности, так как Fuse-bit’ы отличаются.

Номер модели дополняется индексом, указывающим вариант исполнения. Цифры (8,10,16,20) перед индексом означают максимальную частоту, на которой микроконтроллер может стабильно работать при нормальном для него напряжении питания).

Первая буква индекса означает вариант корпуса:

АТxxx-P — корпус DIP
АТxxx-A — корпус TQFP
АТxxx-J — корпус PLCC
АТxxx-M — корпус MLF
АТxxx-MA — корпус UDFN/USON
АТxxx-C — корпус CBGA
АТxxx-CK — корпус LGA
АТxxx-S — корпус EIAJ SOIC
АТxxx-SS — узкий корпус JEDEC SOIC
АТxxx-T — корпус TSOP
АТxxx-TS — корпус (ATtiny4/5/9/10)
АТxxx-X — корпус TSSOP

Следующая буква означает температурный диапазон и особенности изготовления:

АТxxx-xC — коммерческий температурный диапазон (0 °C — 70 °C)
АТxxx-xA — температурный диапазон −20 °C — +85 °C, с использованием бессвинцового припоя
АТxxx-xI — индустриальный температурный диапазон (-40 °C — +85 °C)
АТxxx-xU — индустриальный температурный диапазон (-40 °C — +85 °C), с использованием бессвинцового припоя
АТxxx-xH — индустриальный температурный диапазон (-40 °C — +85 °C), с использованием NiPdAu
АТxxx-xN — расширенный температурный диапазон (-40 °C — +105 °C), с использованием бессвинцового припоя
АТxxx-xF — расширенный температурный диапазон (-40 °C — +125 °C)
АТxxx-xZ — автомобильный температурный диапазон (-40 °C — +125 °C)
АТxxx-xD — расширенный автомобильный температурный диапазон (-40 °C — +150 °C)

последняя буква R означает упаковку в ленты (Tape & Reel) для автоматизированных систем сборки.

Getting started with MightyCore

Ok, so you’ve downloaded and installed MightyCore, but how do you get the wheels spinning? Here’s a quick start guide:

  • Hook up your microcontroller as shown in the .
  • Open the Tools > Board menu item, and select a MighyCore compatible microcontroller.
  • If the BOD option is presented, you can select at what voltage the microcontroller will shut down at. Read more about BOD .
  • Select your prefered pinout. Personally I prefer the standard pinout because it’s «cleaner», but the Bobuino pinout is better at Arduino UNO pin compatibility. Read more about the different pinouts .
  • Select your prefered clock frequency. 16 MHz is standard on most Arduino boards.
  • Select what kind of programmer you’re using under the Programmers menu.
  • If the Variants option is presented, you’ll have to specify what version of the microcontroller you’re using. E.g the ATmega1284 and the ATmega1284P have different device signatures, so selecting the wrong one will result in an error.
  • Hit Burn Bootloader. If an LED is connected to pin PB0, it should flash twice every second.
  • Now that the correct fuse settings is set and the bootloader burnt, you can upload your code in two ways:
    • Disconnect your programmer tool, and connect a USB to serial adapter to the microcontroller, like shown in the . Then select the correct serial port under the Tools menu, and click the Upload button. If you’re getting some kind of timeout error, it means your RX and TX pins are swapped, or your auto reset circuity isn’t working properly (the 100 nF capacitor on the reset line).
    • Keep your programmer connected, and hold down the button while clicking Upload. This will erase the bootloader and upload your code using the programmer tool.

Your code should now be running on your microcontroller! If you experience any issues related to bootloader burning or serial uploading, please use or create an issue on Github.

Генератор тактовой частоты

Но самым важным для нас в настоящее время является блок «Oscillator Circuits/Clock Generation» (Схема генератора/Генератор тактовой частоты).

В программе часто возникает необходимость сделать временную задержку в ее выполнении — паузу. А точную паузу можно организовать только методом подсчета времени. Время считаем исходя из количества тактов генератора микроконтроллера.

Да и не лишним будет заранее просчитать: успеет ли МК выполнить тот или иной фрагмент программы за отведенное для этого время.

В даташите ищем соответствующую главу: «System Clock and Clock Options» (Тактовый генератор и его параметры). В ней видим раздел «Clock Sources» (Источники тактового сигнала), в котором имеется таблица с перечнем видов тактовых сигналов. В этом разделе указано, что данный МК имеет встроенный тактовый RC-генератор. В разделе «Default Clock Source» имеется указание о том, что МК продается уже настроенным для использования встроенного RC-генератора. При этом тактовая частота МК — 1 МГц.

Из раздела «Calibrated Internal RC Oscillator» (Калиброванный RC-генератор) узнаем, что встроенный RC-генератор имеет температурный дрейф в пределах 7,3 — 8,1 МГц. Может возникнуть вопрос: если частота встроенного тактового генератора 7,3 — 8,1 МГц, то как была получена частота 1 МГц? Дело в том, что тактовый сигнал попадает в схемы микроконтроллера через программируемый делитель частоты (Об это рассказано в разделе «System Clock Prescaler»).

В данном микроконтроллере он имеет несколько коэффициентов деления: 1, 2, 4 и 8. При выборе первого мы получим частоту самого тактового генератора, при включении последнего — в 8 раз меньше, т.е., 8/8=1 МГц. С учетом вышесказанного получаем, что тактовая частота данного МК при включенном делителе с коэффициентом 8 будет в пределах от 7,3/8 = 0,9125 МГц (9125 КГц) до 8,1/8 = 1,0125 МГц.

Обратите внимание на один ну очень важный факт: стабильность частоты дана при температуре МК 25 градусов по шкале Цельсия. Вспомним, что внутренний генератор выполнен по RC схеме

А емкость конденсатора очень зависит от температуры!

Параметры

Parameters / Models ATMEGA16-16AQ ATMEGA16-16AQR ATMEGA16-16AU ATMEGA16-16AUR ATMEGA16-16MQ ATMEGA16-16MU ATMEGA16-16MUR ATMEGA16-16PU ATMEGA165A-AU ATMEGA165A-AUR ATMEGA165A-MU ATMEGA165A-MUR ATMEGA165P-16AN ATMEGA165P-16ANR ATMEGA165P-16AU ATMEGA165P-16AUR ATMEGA165P-16MN ATMEGA165P-16MNR ATMEGA165P-16MU ATMEGA165P-16MUR ATMEGA165PA-AN ATMEGA165PA-AU ATMEGA165PA-AUR ATMEGA165PA-MN ATMEGA165PA-MNR ATMEGA165PA-MU ATMEGA165PA-MUR ATMEGA165PV-8AN ATMEGA165PV-8ANR ATMEGA165PV-8AU ATMEGA165PV-8AUR ATMEGA165PV-8MNR ATMEGA165PV-8MU ATMEGA165PV-8MUR ATMEGA168-20AU ATMEGA168-20AUR ATMEGA168-20MQ ATMEGA168-20MQR ATMEGA168-20MU ATMEGA168-20MUR ATMEGA168-20PU ATMEGA168A-AU ATMEGA168A-AUR ATMEGA168A-CCU ATMEGA168A-CCUR ATMEGA168A-MMH ATMEGA168A-MMHR ATMEGA168A-MU ATMEGA168A-MUR ATMEGA168A-PU ATMEGA168P-20AN ATMEGA168P-20ANR ATMEGA168P-20AU ATMEGA168P-20AUR ATMEGA168P-20MQ ATMEGA168P-20MQR ATMEGA168P-20MU ATMEGA168P-20MUR ATMEGA168P-20PU ATMEGA168PA-15AZ ATMEGA168PA-15MZ ATMEGA168PA-AN ATMEGA168PA-ANR ATMEGA168PA-AU ATMEGA168PA-AUA1 ATMEGA168PA-AUR ATMEGA168PA-CCU ATMEGA168PA-CCUR ATMEGA168PA-MMH ATMEGA168PA-MMHR ATMEGA168PA-MN ATMEGA168PA-MNR ATMEGA168PA-MU ATMEGA168PA-MUA1 ATMEGA168PA-MUR ATMEGA168PA-PN ATMEGA168PA-PU ATMEGA168PV-10AN ATMEGA168PV-10AU ATMEGA168PV-10AUR ATMEGA168PV-10MU ATMEGA168PV-10MUR ATMEGA168PV-10PU ATMEGA168V-10AU ATMEGA168V-10AUR ATMEGA168V-10MQ ATMEGA168V-10MQR ATMEGA168V-10MU ATMEGA168V-10MUR ATMEGA168V-10PU ATMEGA169A-AU ATMEGA169A-AUR ATMEGA169A-MCHR ATMEGA169A-MU ATMEGA169A-MUR ATMEGA169P-15AT ATMEGA169P-16AU ATMEGA169P-16AUR ATMEGA169P-16MCH ATMEGA169P-16MCHR
Рабочий диапазон температур, °C от -40 до +105 от -40 до +105 от -40 до +85 от -40 до +85 от -40 до +105 от -40 до +85 от -40 до +85 от -40 до +85

Конденсаторы по питанию

Перед тем, как подать на микроконтроллер питающее напряжение, выполним правило, которое обязательно для всех цифровых микросхем: в непосредственной близости от выводов питания микросхемы должен быть керамический конденсатор емкостью 0,06 — 0,22 мкф. Обычно устанавливают конденсатор 0,1 мкф. Его часто называют блокировочным конденсатором.

В схему необходимо установить и электролитический конденсатор емкостью 4-10 мкф. Он также является блокировочным фильтром, но на менее высоких частотах. Такой конденсатор можно устанавливать один для нескольких микросхем. Обычно на 2-3 корпуса микросхем.

Дело в том, что микроконтроллер (как и другие цифровые микросхемы) состоит из транзисторных ячеек, которые в процессе работы постоянно переключаются из открытого состояния в закрытое, и наоборот. При этом изменяется потребляемая транзисторными ячейками энергия. В линии питания возникают кратковременные «провалы» напряжения. Этих ячеек в микроконтроллере сотни тысяч (думаю, что сейчас уже миллионы!), поэтому по питающим проводам начинают гулять импульсные помехи с частотами от единиц до десятков тысяч Герц.

Для предотвращения распространения этих помех по цепям схемы, да и самой микросхемы микроконтроллера, параллельно его выводам питания устанавливают такой блокировочный конденсатор. При этом на каждую микросхему необходимо устанавливать индивидуальный конденсатор.

Конденсатор для постоянного тока является изолятором. Но при установке конденсатора в цепи с непостоянным током он делается сопротивлением. Чем выше частота, тем меньшее сопротивление оказывает конденсатор. Следовательно, блокировочный конденсатор с малой емкостью пропускает через себя (шунтирует) высокочастотные сигналы (десятки и сотни Герц), а конденсатор с бОльшей емкостью — низкочастотные. Об этом я писал еще в статье Конденсатор в цепи постоянного и переменного тока

Микроконтроллеры

Микроконтроллер Atmega8 довольно часто используется в радиолюбительских схемах,сделан он с использованием технологии CMOS на AVR RISC архитектуре. За один такт выполняется одна инструкция, на микроконтроллера ATmega8 достигается производительность в 1MIPS на МГц, и тем самым достигается наиболее оптимальная производительность и потребляемая энергия.

Технические характеристики:

  • Программная память равна 8 кБ, цикл составляет 10000 раз;
  • объем флеш памяти 512 байт который хранит переменные (цикл перезаписи 100 000);
  • Оперативная память (ОЗУ) 1кб;
  • 32 регистра общего назначения;
  • Два 8-ми разрядных таймера/счетчика с раздельным прескалером, режим сравнения, режим захвата;
  • таймер реального времени с независимым генератором;
  • три канала ШИМ;
  • шесть каналов АЦП, канал 10-ти разрядный;
  • последовательный интерфейс двухпроводной;
  • USART;
  • SPI ;
  • Сторожевой таймер с независимым генератором;
  • аналоговый компаратор;
  • внутренний RC генератор;
  • возможность обработки внешних и внутренних прерываний;
  • режимы с пониженным энергопотреблением: Idle,Power-save,Power-down,Standby,ADC Noise Reduction;
  • напряжение от 4.5 В до 5.5 В;
  • тактовая частота от 0-16 МГц.

Расположение выводов микроконтроллера Atmega8

Порты ввода/вывода

Порты микроконтроллера сгруппированы в 3 группы:

Порт D

  • PD0 — цифровой вход/выход, RxD — вход приемника USART;
  • PD1 — цифровой вход/выход, TxD — выход передатчика USART;
  • PD2 — цифровой вход/выход, INT0 — внешнее прерывание нулевого канала;
  • PD3 — цифровой вход/выход, INT1 — внешнее прерывание первого канала;
  • PD4 — цифровой вход/выход, XCK — внешний такт для USART, T0 — внешний вход Timer0;
  • PD5 — цифровой вход/выход, T1 — внешний вход Timer1;
  • PD6 — цифровой вход/выход, AIN0 — вход аналогового компаратора канал 0;
  • PD7 — цифровой вход/выход, AIN1 — вход аналогового компаратор канал 1.

Порт C

  • PС0 — цифровой вход/выход, ADC0 — аналоговый вход канал 0;
  • PС1 — цифровой вход/выход, ADC1 — аналоговый вход канал 1;
  • PС2 — цифровой вход/выход, ADC2 — аналоговый вход канал 2;
  • PС3 — цифровой вход/выход, ADC3- аналоговый вход канал 3;
  • PС4 — цифровой вход/выход, ADC4- аналоговый вход канал 3;
  • PC5 — цифровой вход/выход, SDA- двух проводной последовательный интерфейс (канал данных);
  • PС6 — цифровой вход/выход, RESET- внешний сброс.

Порт B

  • PB0 — цифровой вход/выход, ICP1 — захват входа 1;
  • PB1 — цифровой вход/выход, OC1A — выход сравнения/ШИМ 1A;
  • PB2 — цифровой вход/выход, OC1B — выход сравнения/ШИМ 1B;
  • PB3 — цифровой вход/выход, OC2 — вход сравнения/ШИМ2, MOSI
  • PB4 — цифровой вход/выход, MISO
  • PB5 — цифровой вход/выход, SCK — тактовый вход;
  • PB6 — цифровой вход/выход, XTAL1- тактовый вход для резонатора;
  • PB7 — цифровой вход/выход, XTAL2- тактовый вход для резонатора, TOSC2 — тактовый вход в случае работы от встроенного резонатора.

Выводы для питания микроконтроллера

  • VCC — вход напряжение питания;
  • GND — это общий «минусовой» вывод, земля;
  • AVcc — вход напряжения питания для модуля АЦП;
  • ARef — вход опорного напряжение для АЦП.

Datasheet микроконтроллера Atmega8

  • < Назад
  • Вперёд >

How to install

Boards Manager Installation

This installation method requires Arduino IDE version 1.6.4 or greater.

  • Open the Arduino IDE.
  • Open the File > Preferences menu item.
  • Enter the following URL in Additional Boards Manager URLs:

  • Separate the URLs using a comma ( , ) if you have more than one URL
  • Open the Tools > Board > Boards Manager… menu item.
  • Wait for the platform indexes to finish downloading.
  • Scroll down until you see the MightyCore entry and click on it.
  • Click Install.
  • After installation is complete close the Boards Manager window.

Manual Installation

Click on the «Download ZIP» button. Extract the ZIP file, and move the extracted folder to the location «~/Documents/Arduino/hardware». Create the «hardware» folder if it doesn’t exist.
Open Arduino IDE, and a new category in the boards menu called «MightyCore» will show up.

ATmega324PB

If you plan to use the ATmega324PB you need the latest version of the Arduino toolchain. This toolchain is available through IDE 1.8.6 or newer. Here’s how you install/enable the toolchain:

  • Open the Tools > Board > Boards Manager… menu item.
  • Wait for the platform indexes to finish downloading.
  • The top is named Arduino AVR boards. Click on this item.
  • Make sure the latest version is installed and selected
  • Close the Boards Manager window.

Экологический статус

ATMEGA16-16AQ ATMEGA16-16AQR ATMEGA16-16AU ATMEGA16-16AUR ATMEGA16-16MQ ATMEGA16-16MU ATMEGA16-16MUR ATMEGA16-16PU ATMEGA165A-AU ATMEGA165A-AUR ATMEGA165A-MU ATMEGA165A-MUR ATMEGA165P-16AN ATMEGA165P-16ANR ATMEGA165P-16AU ATMEGA165P-16AUR ATMEGA165P-16MN ATMEGA165P-16MNR ATMEGA165P-16MU ATMEGA165P-16MUR ATMEGA165PA-AN ATMEGA165PA-AU ATMEGA165PA-AUR ATMEGA165PA-MN ATMEGA165PA-MNR ATMEGA165PA-MU ATMEGA165PA-MUR ATMEGA165PV-8AN ATMEGA165PV-8ANR ATMEGA165PV-8AU ATMEGA165PV-8AUR ATMEGA165PV-8MNR ATMEGA165PV-8MU ATMEGA165PV-8MUR ATMEGA168-20AU ATMEGA168-20AUR ATMEGA168-20MQ ATMEGA168-20MQR ATMEGA168-20MU ATMEGA168-20MUR ATMEGA168-20PU ATMEGA168A-AU ATMEGA168A-AUR ATMEGA168A-CCU ATMEGA168A-CCUR ATMEGA168A-MMH ATMEGA168A-MMHR ATMEGA168A-MU ATMEGA168A-MUR ATMEGA168A-PU ATMEGA168P-20AN ATMEGA168P-20ANR ATMEGA168P-20AU ATMEGA168P-20AUR ATMEGA168P-20MQ ATMEGA168P-20MQR ATMEGA168P-20MU ATMEGA168P-20MUR ATMEGA168P-20PU ATMEGA168PA-15AZ ATMEGA168PA-15MZ ATMEGA168PA-AN ATMEGA168PA-ANR ATMEGA168PA-AU ATMEGA168PA-AUA1 ATMEGA168PA-AUR ATMEGA168PA-CCU ATMEGA168PA-CCUR ATMEGA168PA-MMH ATMEGA168PA-MMHR ATMEGA168PA-MN ATMEGA168PA-MNR ATMEGA168PA-MU ATMEGA168PA-MUA1 ATMEGA168PA-MUR ATMEGA168PA-PN ATMEGA168PA-PU ATMEGA168PV-10AN ATMEGA168PV-10AU ATMEGA168PV-10AUR ATMEGA168PV-10MU ATMEGA168PV-10MUR ATMEGA168PV-10PU ATMEGA168V-10AU ATMEGA168V-10AUR ATMEGA168V-10MQ ATMEGA168V-10MQR ATMEGA168V-10MU ATMEGA168V-10MUR ATMEGA168V-10PU ATMEGA169A-AU ATMEGA169A-AUR ATMEGA169A-MCHR ATMEGA169A-MU ATMEGA169A-MUR ATMEGA169P-15AT ATMEGA169P-16AU ATMEGA169P-16AUR ATMEGA169P-16MCH ATMEGA169P-16MCHR
RoHS Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим Совместим

Распиновка Atmega8

На следующей странице публикуется расположение выводов данного микроконтроллера при использовании разных типов корпусов:

Советую этот листок из даташита распечатать и иметь под рукой. В процессе разработки и сборки схемы очень полезно иметь эти данные перед глазами.

Внимание!

Обратите внимание на такой факт: микросхема микроконтроллера может иметь (и имеет в данной модели) несколько выводов для подключения источника питания. То есть имеется несколько выводов для подключения «земли» — «общего провода», и несколько выводов для подачи положительного напряжения

Изготовители микроконтроллеров рекомендуют подключать соответствующие выводы вместе, т.е., минус подавать на все выводы, помеченные как Gnd (Ground — Земля), плюс — на все выводы помеченные как Vcc.

При этом через одинаковые выводы МК не должны протекать токи, так как внутри корпуса МК они соединены тонкими проводниками! То есть при подключении нагрузки эти выводы не должны рассматриваться как «перемычки».

Исходный код программы на языке С (Си) с пояснениями

Полный текст программы приведен ниже. В этом разделе статьи объяснено значение некоторых элементов программы.

Для начала определим функцию для чтения конвертированного в результате АЦП значения. В качестве аргумента в данной функции будет выступать номер канала, на котором необходимо будет производить АЦП.

C++

unsigned int ADC_read(unsigned char chnl)

1 unsignedintADC_read(unsignedcharchnl)

Поскольку у нас всего 8 каналов АЦП, то номер канала может принимать значение от 0 до 7.

C++

chnl= chnl & 0b00000111;

1 chnl=chnl&0b00000111;

Записав число ‘40’ (в двоичном виде ‘01000000’) в регистр ADMUX мы выберем канал ADC0 для аналого-цифрового преобразования.

C++

ADMUX = 0x40;

1 ADMUX=0x40;

На этом шаге мы начнем процесс аналого-цифрового преобразования, записав «1» в бит ADSC регистра ADCSRA. После этого необходимо подождать до тех пор пока бит ADIF не сигнализирует нам о том что процесс преобразования завершен. Мы закончим процесс АЦП записав ‘1’ в бит ADIF регистра ADCSRA. Когда преобразование закончено, возвратим значение АЦП.

C++

ADCSRA|=(1<<ADSC);
while(!(ADCSRA & (1<<ADIF)));
ADCSRA|=(1<<ADIF);
return (ADC);

1
2
3
4

ADCSRA|=(1<<ADSC);

while(!(ADCSRA&(1<<ADIF)));

ADCSRA|=(1<<ADIF);

return(ADC);

Выберем опорное напряжение АЦП установив бит REFS0. После этого разрешим АЦП и установим коэффициент деления предделителя равным 128.

Arduino

ADMUX=(1<<REFS0);
ADCSRA=(1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);

1
2

ADMUX=(1<<REFS0);

ADCSRA=(1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);

Теперь сохраним значение АЦП и передадим его на PORTC. В результате этого 8 светодиодов, подключенных к PORTC, покажут получившееся в результате аналого-цифрового преобразования значение в 8-битном формате. В рассматриваемом примере мы показываем изменение напряжения от 0 до 5В, которое регулируется на входе АЦП микроконтроллера с помощью потенциометра.

C++

i = ADC_read(0);
PORTC = i;

1
2

i=ADC_read();

PORTC=i;

Величину подаваемого напряжения можно контролировать с помощью вольтметра. В представленном примере мы используем для этого цифровой мультиметр.

Обозначения индексов микроконтроллеров

После обозначения базовой версии и серии микроконтроллера, через дефис идет индекс, указывающий вариант исполнения микроконтроллера.Индекс состоит из 1-2 цифр, которые означают максимальную частоту, на которой микроконтроллер может стабильно работать при нормальном для него напряжении питания, и из 1-3 букв, которые обозначают вариант корпуса, температурный диапазон работы, и особенности изготовления.Первая буква (или две буквы) после частоты обозначает тип корпуса:P — корпус DIP (PDIP)A — корпус TQFPM — корпус MLFTS — корпус SOT-23 (ATtiny4/5/9/10)J — корпус PLCCA — корпус UDFN/USONC — корпус CBGACK — корпус LGAS — корпус EIAJ SOICSS — узкий корпус JEDEC SOICT — корпус TSOPX — корпус TSSOP

Следующая буква означает температурный диапазон и особенности изготовления:C — коммерческий температурный диапазон (0 °C — 70 °C)A — температурный диапазон −20 °C — +85 °C, с использованием бессвинцового припояI — индустриальный температурный диапазон (-40 °C — +85 °C)U — индустриальный температурный диапазон (-40 °C — +85 °C), с использованием бессвинцового припояH — индустриальный температурный диапазон (-40 °C — +85 °C), с использованием NiPdAuN — расширенный температурный диапазон (-40 °C — +105 °C), с использованием бессвинцового припояF — расширенный температурный диапазон (-40 °C — +125 °C)Z — автомобильный температурный диапазон (-40 °C — +125 °C)D — расширенный автомобильный температурный диапазон (-40 °C — +150 °C)
Еще в самом конце может быть буква R, которая означает, что микроконтроллеры упакованы в ленты для автоматизированных систем сборки

К примеру:ATmega8L-8AU — максимальная частота — 8 мегагерц, корпус — TQFP, индустриальный температурный диапазон (-40 °C — +85 °C), с использованием бессвинцового припояATmega8-16PN — максимальная частота — 16 мегагерц, корпус — PDIP, расширенный температурный диапазон (-40 °C — +105 °C), с использованием бессвинцового припоя

Если вы знаете, что обозначают буквы и цифры в маркировке микроконтроллера, значит знаете основные параметры микроконтроллеров, и всегда сможете подобрать для своей конструкции наиболее оптимальный вариант микроконтроллера.

Линейка микроконтроллеров ATmegaЛинейка микроконтроллеров ATtiny

Маркировка микроконтроллеров AVR ATmega и ATtinyМаркировка микроконтроллеров AVR семейства ATmega и ATtiny, базовые версии и версии микроконтроллеров, индекс микроконтроллеров
Published by: Мир микроконтроллеров

Date Published: 04/27/2015

Что такое АЦП (аналого-цифровой преобразователь)

В электронике под АЦП (в переводе с англ. от ADC — analog-to-digital converter) понимают устройство которое конвертирует аналоговый сигнал (например, ток или напряжение) в цифровой код (двоичную форму). В реальном мире большинство сигналов являются аналоговыми, но все микроконтроллеры и микропроцессоры способны понимать только двоичные (бинарные) сигналы – 0 или 1. То есть чтобы заставить микроконтроллер понимать аналоговые сигналы необходимо конвертировать их в цифровую форму – это и делает АЦП. Существуют различные типы АЦП, каждый тип удобен для конкретных приложений. Наиболее популярные типы АЦП используют такие типы аппроксимаций как приближенная, последовательная и дельта-аппроксимацию. 

Самые дешевые АЦП – с последовательной аппроксимацией, их мы и будем рассматривать в данной статье. В данном случае для каждого фиксированного аналогового уровня последовательно формируется серия соответствующих им цифровых кодов. Внутренний счетчик используется для их сравнения с аналоговым сигналом после конверсии. Генерация цифровых кодов останавливается когда соответствующий им аналоговый уровень становится чуть-чуть больше чем аналоговый сигнал на входе АЦП. Этот цифровой код и будет представлять собой конвертированное значение аналогового сигнала.

Мы в данной статье будем использовать встроенный в микроконтроллер AVR ATmega16 аналого-цифровой преобразователь – практически все микроконтроллеры семейства AVR оснащаются встроенным АЦП. Но вместе с тем следует помнить о том, что существуют и другие типы микроконтроллеров, у которых нет собственных АЦП – в этом случае необходимо использовать внешний АЦП. Как правило, внешние АЦП сейчас выпускаются в виде одной микросхемы.

Supported clock frequencies

MightyCore supports a variety of different clock frequencies. Select the microcontroller in the boards menu, then select the clock frequency. You’ll have to hit «Burn bootloader» in order to set the correct fuses and upload the correct bootloader.
Make sure you connect an ISP programmer, and select the correct one in the «Programmers» menu. For time critical operations an external crystal/oscillator is recommended.

You might experience upload issues when using the internal oscillator. It’s factory calibrated but may be a little «off» depending on the calibration, ambient temperature and operating voltage. If uploading failes while using the 8 MHz internal oscillator you have these options:

  • Edit the baudrate line in the file, and choose either 115200, 57600, 38400 or 19200 baud.
  • Upload the code using a programmer (USBasp, USBtinyISP etc.) or skip the bootloader by holding down the shift key while clicking the «Upload» button
  • Use the 4, 2 or 1 MHz option instead
Frequency Oscillator type Speed Comment
16 MHz External crystal/oscillator 115200 Default clock on most AVR based Arduino boards
20 MHz External crystal/oscillator 115200
18.4320 MHz External crystal/oscillator 115200 Great clock for UART communication with no error
14.7456 MHz  External crystal/oscillator 115200 Great clock for UART communication with no error
12 MHz External crystal/oscillator 57600 Useful when working with USB 1.1 (12 Mbit/s)
11.0592 MHz External crystal/oscillator 115200 Great clock for UART communication with no error
8 MHz External crystal/oscillator 57600 Common clock when working with 3.3V
7.3728 MHz External crystal/oscillator 115200 Great clock for UART communication with no error
4 MHz External crystal/oscillator 9600
3.6864 MHz External crystal/oscillator 115200 Great clock for UART communication with no error
2 MHz External crystal/oscillator 9600
1.8432 MHz External crystal/oscillator 115200 Great clock for UART communication with no error
1 MHz External crystal/oscillator 9600
8 MHz Internal oscillator 38400 Might cause UART upload issues. See comment above
4 MHz Internal oscillator 9600 Derived from the 8 MHz internal oscillator
2 MHz Internal oscillator 9600 Derived from the 8 MHz internal oscillator
1 MHz Internal oscillator 9600 Derived from the 8 MHz internal oscillator