Схемы, устройства и проекты на микроконтроллерах AVR
На данной странице представлена карта статей по микроконтроллерам AVR, опубликованным на нашем сайте «Мир микроконтроллеров». По мере добавления статей данной тематики данная карта статей также будет дополняться. Микроконтроллеры семейства AVR в настоящее время являются одними из самых популярных микроконтроллеров. Они … Читать далее →
Микроконтроллер ATtiny85 является удобной и сравнительно мощной альтернативой старшим моделям микроконтроллеров семейства AVR. Его применение особенно оправданно в тех случаях, когда вы стремитесь к минимизации размеров вашего устройства. Микросхема ATtiny85 содержит 8 контактов – 6 контактов ввода/вывода (включая Reset) и … Читать далее →
ATtiny – это серия самых маленьких микроконтроллеров из семейства AVR. Эти микроконтроллеры могут использовать большинство библиотек, доступных для платформы Arduino. ATtiny85 – это 8-пиновый 8-битный микроконтроллер семейства AVR.
В этой статье мы рассмотрим создание портативного счетчика шагов (шагомера) на основе микроконтроллера AVR ATtiny85, акселерометра и гироскопа MPU6050, и OLED дисплея. Питание на шагомер будет подавать от простой батарейки на 3V, что позволяет сделать его достаточно компактным и удобным … Читать далее →
GPS модули широко используются в современной электронике для определения местоположения, основываясь на координатах долготы и широты. Системы мониторинга транспортных средств, часы GPS, системы предупреждения о чрезвычайных происшествиях, системы наблюдения – это лишь небольшой список приложений, в которых может потребоваться технология … Читать далее →
Как показывают многочисленные исследования в современном мире люди более склонны доверять машинам нежели другим людям. Сейчас, когда в мире активно развиваются такие технологии как искусственный интеллект, машинное обучение, чат-боты, синергия (совместная деятельность) между людьми и роботами с каждым годом все … Читать далее →
Двигатели постоянного тока относятся к числу наиболее часто используемых двигателей. Их можно встретить где угодно – начиная от простейших конструкций до продвинутой робототехники. В этой статье мы рассмотрим подключение двигателя постоянного тока к микроконтроллеру ATmega16 (семейство AVR). Но сначала немного … Читать далее →
Принцип действия датчиков Холла основан на так называемом «эффекте Холла», открытым Эдвином Холлом (Edwin Hall) в 1869 году. Этот эффект гласит: «эффект Холла основан на явлении возникновения поперечной разности потенциалов (называемой также холловским напряжением) при помещении проводника с постоянным током … Читать далее →
Широтно-импульсная модуляция (сокр. ШИМ, от англ. PWM — Pulse Width Modulation) является технологией, позволяющей изменять ширину импульсов в то время как частота следования импульсов остается постоянной. В настоящее время она применяется в разнообразных системах контроля и управления, а также в … Читать далее →
ATmega16 (семейство AVR) является дешевым 8 битным микроконтроллером и имеет достаточно большое число интерфейсов ввода-вывода общего назначения. Он поддерживает все часто используемые в настоящее время протоколы связи такие как UART, USART, SPI и I2C. Он достаточно широко применяется в робототехнике, … Читать далее →
Схемы на микроконтроллерах, самодельные устройства и программаторы
Светофор на RGB-светодиодной ленте, управляемый ARDUINO UNO
1 72 0
Схема цифровой шкалы на Arduino UNO для связного КВ-приемникаЗдесь приводится описание цифровой шкалы для коротковолнового связного приемника, работающего в диапазонах 160м, 80м, 40м, 20м, 10м или любом из них. Шкала работает с двухстрочным ЖК-дисплеем. В его верхней строке показывает значение частоты в кГц,а в нижней длину волны в метрах. Внося …
1 1135 0
Самодельный велоспидометр на ARDUINO UNO (ATMEGA328)Здесь описывается цифровой прибор на микроконтроллере, измеряющий скорость движения велосипеда. Индикатором служит ЖК-дисплей типа 1602А, он стандартный, на основе контроллера HD44780. Обозначение 1602А фактически значит, что он на две строки по 16 символов в строке. Используется только одна его …
1 749 0
Девятиразрядный мультиметр на АЦП AD7705 и AVR микроконтроллереОсновой предлагаемого мультиметра является микросхема 16-битного двухканального дельта-сигма аналого-цифрового преобразователя (АЦП) AD7705. Широко распространенные мультиметры на основе АЦП двойного интегрирования ICL7106 [2] обеспечивают отображение результата преобразования числом, не превышающим 1999, что соответствует, без учета знака, 11-битному АЦП, за вычетом 48 единиц счёта…
1 2004 0
Реле времени на микроконтроллере AVR ATtiny2313 с индикатором фирмы Data VisionСхема и описание самодельного реле времени на AVR микроконтроллере ATtiny2313 с индикатором фирмы Data Vision. Реле времени (таймеры), пожалуй, одна из самых массовых разработок конструкторов электронных техники. Автор предлагает вариант 4-х канального реле времени, разработанного на базе микроконтроллера семейства AVR и жидкокристаллического индикатора фирмы Data Vision. Принципиальная схема реле времени …
1 664 0
Макет светофора на ARDUINO UNO, схема и описание1 365 0
Самодельный кодовый замок на микроконтроллере (PIC16F628A)Схема самодельного кодового замка, построенного на микроконтроллере PIC16F628A и транзисторах, имеет цифровое табло. Этот замок можно использовать для ограничения доступа в помещение, гараж, дом, сейф, шкаф. Его исполнительным устройством может служить механизм запирания двери автомобиля …
1 1136 0
Часы с календарем на индикаторах ИН-12Предлагаемые часы показывают текущее время и дату, обладают функциями будильника. Их особенность — использование газоразрядных цифровых индикаторов ИН-12. Подобные индикаторы широко применялись в электронных часах и цифровых измерительных приборах в семидесятые годы прошлого века. Индикаторы …
1 1144 0
Автоматическое управления вентиляцией помещения, схема на МК ATtiny2313AСхема самодельного устройства, автоматически включающего и выключающего принудительную вентиляцию помещения. Работа устройства осуществляется в зависимости от относительной влажности воздуха в помещении и скорости её изменения. Оно не содержит дефицитных деталей и может быть помещено в стандартный …
0 1298 0
Двоичные часы на микроконтроллере PIC16F628AСхема самодельных двоичных часов на микроконтроллере PIC16F628A и светодиодах. Эти необычные карманные часы могут стать оригинальным подарком. Индикатор времени в них построен всего на шести единичных светодиодах. Секрет в том, что число часов и число минут текущего времени отображаются ими …
1 707 0
1 2 3 4 5 … 10Радиодетали, электронные блоки и игрушки из китая:
AtMega8 |
27.11.2016
автор Aurel
Нет комментариев
26.02.2014
автор Aurel
Рубрики: Инструменты радиолюбителя, Радиолюбительская технология, Устройства своими руками | Тэги: aliexpress, AtMega8, AVR, FM-2028, FX-9501, T12, Блок питания, Корпус, паяльник | Ссылка
28.01.2014
автор Aurel
комментариев 16
08.01.2014
автор Aurel
комментариев 47
Рубрики: Инструменты радиолюбителя | Тэги: AtMega8, AVR, avr usb, AVR910, ebay, USB, usbasp, usbasp avr, Инструменты радиолюбителя, Интернет магазины, программатор avr usb | Ссылка
22.12.2013
автор Aurel
комментария 4
10.06.2013
автор Aurel
Нет комментариев
28.05.2013
автор Aurel
Нет комментариев
12.05.2013
автор Aurel
Нет комментариев
30.04.2013
автор Aurel
1 комментарий
Представленное устройство предназначено для измерения входного напряжения амплитудой от -10 до +10В. Измеренный уровень сигнала в цифровом виде передаётся на ПК по USB. Питается устройство непосредственно от шины USB. Устройство оснащено светодиодными индикаторами индицирующими передачу данных в ПК, приём данных … Продолжить чтение →
Рубрики: Устройства своими руками | Тэги: AtMega8, AVR, USB, Ассемблер, Вольтметр, Измерения, Микроконтроллер, Устройства своими руками | Ссылка
24.03.2013
автор Aurel
комментариев 9
Меня попросили изготовить устройство для организации игр, в которых требовалось быстрее остальных дать правильный ответ. (Аналогична игре «Угадай мелодию»). Данное устройство отображает на семисегментном дисплее номер одной из четырёх кнопок нажатой первой. Это моё первое устройство на микроконтроллере AVR, которое состоит из 5-ти … Продолжить чтение →
Рубрики: Устройства своими руками | Тэги: AtMega8, AVR, Ассемблер, Микроконтроллер, Семисегментный индикатор, Устройства своими руками | Ссылка
Даташит на русском Atmega8 | Практическая электроника
Что такое даташит
Даташит – это техническое описание на какой-либо радиокомпонент. Где его найти? Ну, конечно же, в интернете! Так так почти вся радиоэлектронная продукция выпускается “за бугром”, то и описание на них, соответственно, “забугорское”, а точнее, на английском языке. Те, кто хорошо дружит с разговорным английским, не факт, что сможет прочитать технические термины в даташитах.
Даташит на английском на Atmega8
Давайте попробуем пролить свет истины на основные характеристики МК ATmegа8. Для этого качаем даташит. В нашей статье мы будем рассматривать только основные сведения нашего подопечного.
Вот что мы видим на первой странице даташита:
Даташит на русском Atmega8
Запоминаем правило: в фирменном описании нет ни одного лишнего слова! (иногда информации не хватает, но это уже другой случай)
Features. Переводится как “функции”. В среде электронщиков просто “фичи”.
– High Performance, Low Power AVR® 8-Bit Microcontroller
Высокопроизводительный, потребляющий мало энергии, 8-битный микроконтроллер.
Понимаем как рекламу, единственно полезное то, что данный микроконтроллер — 8 битный.
– Advanced RISC Architecture
Расширенная RISC архитектура.-6). А при 10 МГц — в десять раз быстрее, т.е., 0,1 мкс.
– 32 x 8 General Purpose Working Registers
32 восьмибитных регистра общего пользования.
Про регистры поговорим позднее, просто запомним, что большое количество регистров — весьма неплохо, ведь регистр — это ячейка памяти в самом МК. А чем больше такой памяти – тем «шустрее» работает МК!
Объединив эти данные с количеством поддерживаемых микроконтроллером команд, в очередной раз убеждаемся в изначальной ориентации данного МК под высокоуровневые языки вроде Си, Паскаля и других.
– Fully Static Operation
Полностью статическая структура.
Вспоминаем о типах памяти: динамической и статической. Этот пункт заверяет нас, что МК сохранит свою работоспособность при тактовой частоте ниже сотен герц и даже при отсутствии тактовой частоты на его специальных выводах.
(Также нелишним будет напомнить о том, что потребляемая мощность большинства типов МК напрямую зависит от тактовой частоты: чем выше тактовая частота, тем больше он потребляет)
– Up to 16 MIPS Throughput at 16 MHz
До 16 миллионов выполняемых команд при тактовой частоте 16 МГц.
За одну секунду при тактовой частоте 16 МГц может быть выполнено до 16 000 000 команд! Следовательно, одна однобайтовая команда может быть выполнена за 0,07 мкс. Весьма недурно для маленькой микросхемы.
С учетом предыдущего пункта понимаем, как работает на частотах от 0 Гц до 16 МГц.
– On-chip 2-cycle Multiplier
В данном МК имеется встроенный умножитель, который умножает числа за два такта.
Ну, это хорошо. Даже очень. Но мы пока не будет вгрызаться в эти нюансы…
– High Endurance Non-volatile Memory segments
Надежная энергонезависимая память, построенная в виде нескольких сегментов.
Вспоминаем типы памяти: EEPROM и FLASH.
– 8KBytes of In-System Self-programmable Flash program memory
– 8 Кбайт встроенной в МК памяти. Память выполнена по технологии Flash. В самом МК имеется встроенный программатор.
Этот объем весьма хорош! Для обучения (да и не только) — с запасом. А наличие встроенного программатора этой памяти, позволяет загружать данные в память, используя простой внешний программатор (в простейшем случае это пять проводков, которыми микроконтроллер подключают к LPT порту компьютера).
– 256 Bytes EEPROM
В МК имеется 256 байт энергонезависимой памяти EEPROM.
Следовательно, можно сохранить еще дополнительную информацию, которую можно изменять программой МК, без внешнего программатора.
– 1024 Bytes Internal SRAM
В МК имеется 1024 байт оперативной памяти (ОЗУ/RAM).
Также весьма приятный объем
– Write/Erase cyles: 10,000 Flash/100,000 EEPROM
Память Flash выдерживает 10 000 циклов записи/стирания, а память EEPROM — до 100 000
Проще говоря, программу в МК можно изменять до 10 000 раз, а свои данные в 10 раз больше.
– Data retention: 20 years at 85°C/100 years at 25°C
Сохранность данных в памяти МК — до 20 лет при температуре хранения 85°C, и 100 лет — при температуре 20°C.
Если ваши внуки и правнуки включат вашу «мигалку» или музыкальную шкатулку, то они смогут насладиться их работой ))
– Optional Boot Code Section with Independent Lock Bits
– Programming Lock for Software Security
МК имеет несколько областей памяти (не уточняем каких), которые можно защитить от прочтения установкой специальных бит защиты.
Ну, тут всё понятно: свои труды вы можете защитить от вычитывания программы из памяти МК.
Далее идет описание имеющейся в данном микроконтроллере периферии (т.е., встроенных в него аппаратных устройств типа таймеров, источников прерываний и интерфейсов связи)
– Two 8-bit Timer/Counters
– One 16-bit Timer/Counter
В МК имеется два таймера/счетчика: 8 и 16 бит.
– 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
В составе МК есть несколько каналов АЦП: 6 – для корпуса PDIP и 8 – для корпуса QFN/MLF. Разрядность АЦП — 10 бит.
– Byte-oriented Two-wire Serial Interface
– Programmable Serial USART
В данном МК реализован аппаратный двухпроводный интерфейс связи USART, байт ориентированный и программируемый — имеется возможность настройки параметров интерфейса.
– Master/Slave SPI Serial Interface
Реализован SPI интерфейс связи, режимы Мастер/Подчиненный.
[quads id=1]
– Programmable Watchdog Timer with Separate On-chip Oscillator
Сторожевой таймер с собственным автономным генератором.
– On-chip Analog Comparator
Аналоговый компаратор.
– Power-on Reset and Programmable Brown-out Detection
Реализованы режимы контроля напряжения питания и защита работы МК при плохом питании (гарантирует увеличение надёжности работы всей системы).
– Internal Calibrated RC Oscillator
Встроенный калиброванный RC-генератор (можно запустить МК без внешних элементов).
– External and Internal Interrupt Sources
Реализовано несколько типов внешних и внутренних прерываний.
– Five Sleep Modes
Пять режимов «сна» (уменьшение энергопотребления МК за счет отключения некоторых внутренних узлов или специальных методов замедления их работы)
Понимаем как возможность выбора такого режима, при котором соотношение «потребляемая энергия/возможности» будут оптимальны для решения наших задач. Весьма полезная возможность при необходимости экономить энергию: питании от батарей, аккумуляторов и других источников.
– 28-pin PDIP, 32-lead TQFP, 28-pad QFN/MLF and 32-pad QFN/MLF
Указаны типы корпусов, в которых выпускается данный микроконтроллер. Видим «28 DIP» — это хорошо! Не надо покупать специализированные дорогостоящие панели и мучиться с тоненькими и часто расположенными выводами на корпусе МК.
Temperature Range:
-40°C to 85°C
Рабочая температура: -40°C … +85°C
Очень важный параметр! Бывают модели микроконтроллеров, которые работоспособны только при положительных температурах окружающего воздуха.
(Был у меня горький опыт, когда в устройстве был применен именно такой «теплолюбивый» микроконтроллер. А устройство поместили на улицу… И каждую зиму «благодарные» пользователи моего устройства «хвалили» меня за «замерзание» микроконтроллера, которое проявлялось в виде полного его зависания)
Напряжение питания и тактовая частота
– 2.7 – 5.5V for ATmega8L
– 4.5 – 5.5V for ATmega8
Имеется две модификации данного МК: одна работоспособна при широком диапазоне питающих напряжение, вторая — в узком.
– ATmega8L: 0 – 8 MHz @ 2.7 – 5.5V
– ATmega8: 0 – 16 MHz @ 4.5 – 5.5V
Максимальная тактовая частота:
– Atmega8L: 0 – 8 МГц при напряжении питания 2,7 – 5,5 вольт
– Atmega8: 0 – 16 МГц при напряжении питания 4,5 – 5,5 вольт.
И что мы видим? А то, что модификация МК, работоспособная в широком диапазоне питающих напряжений, не может быть тактируема частотами выше 8 МГц. Следовательно, и ее вычислительные возможности будут ниже.
Power Consumption at 4 Mhz, 3V, 25°C
– Active: 3.6 mA
– Idle Mode: 1.0 mA
– Power-down Mode: 0.5 µA
Потребляемая мощность:
– при работе на частоте 4 МГц и напряжении питания 3 вольта потребляемый ток: 3,6 миллиампер,
– в различных режимах энергосбережения потребляемый ток: от 1 миллиампер до 0,5 микроампера
Распиновка Atmega8
На следующей странице публикуется расположение выводов данного микроконтроллера при использовании разных типов корпусов:
Советую этот листок из даташита распечатать и иметь под рукой. В процессе разработки и сборки схемы очень полезно иметь эти данные перед глазами.
Внимание!
Обратите внимание на такой факт: микросхема микроконтроллера может иметь (и имеет в данной модели) несколько выводов для подключения источника питания. То есть имеется несколько выводов для подключения «земли» — «общего провода», и несколько выводов для подачи положительного напряжения.
Изготовители микроконтроллеров рекомендуют подключать соответствующие выводы вместе, т.е., минус подавать на все выводы, помеченные как Gnd (Ground — Земля), плюс — на все выводы помеченные как Vcc.
При этом через одинаковые выводы МК не должны протекать токи, так как внутри корпуса МК они соединены тонкими проводниками! То есть при подключении нагрузки эти выводы не должны рассматриваться как «перемычки».
Блочная диаграмма
Листаем описание далее, видим главу «Overview» (Обзор).
В ней имеется раздел «Block Diagram» (Устройство). На рисунке показаны устройства, входящие в состав данного микроконтроллера.
Генератор тактовой частоты
Но самым важным для нас в настоящее время является блок «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 схеме. А емкость конденсатора очень зависит от температуры!
Конденсаторы по питанию
Перед тем, как подать на микроконтроллер питающее напряжение, выполним правило, которое обязательно для всех цифровых микросхем: в непосредственной близости от выводов питания микросхемы должен быть керамический конденсатор емкостью 0,06 — 0,22 мкф. Обычно устанавливают конденсатор 0,1 мкф. Его часто называют блокировочным конденсатором.
В схему необходимо установить и электролитический конденсатор емкостью 4-10 мкф. Он также является блокировочным фильтром, но на менее высоких частотах. Такой конденсатор можно устанавливать один для нескольких микросхем. Обычно на 2-3 корпуса микросхем.
Дело в том, что микроконтроллер (как и другие цифровые микросхемы) состоит из транзисторных ячеек, которые в процессе работы постоянно переключаются из открытого состояния в закрытое, и наоборот. При этом изменяется потребляемая транзисторными ячейками энергия. В линии питания возникают кратковременные «провалы» напряжения. Этих ячеек в микроконтроллере сотни тысяч (думаю, что сейчас уже миллионы!), поэтому по питающим проводам начинают гулять импульсные помехи с частотами от единиц до десятков тысяч Герц.
Для предотвращения распространения этих помех по цепям схемы, да и самой микросхемы микроконтроллера, параллельно его выводам питания устанавливают такой блокировочный конденсатор. При этом на каждую микросхему необходимо устанавливать индивидуальный конденсатор.
Конденсатор для постоянного тока является изолятором. Но при установке конденсатора в цепи с непостоянным током он делается сопротивлением. Чем выше частота, тем меньшее сопротивление оказывает конденсатор. Следовательно, блокировочный конденсатор с малой емкостью пропускает через себя (шунтирует) высокочастотные сигналы (десятки и сотни Герц), а конденсатор с бОльшей емкостью — низкочастотные. Об этом я писал еще в статье Конденсатор в цепи постоянного и переменного тока
Выводы
– микроконтроллер AVR ATmega-8 при поставке с завода работает на тактовой частоте 0,91—1,1 МГц;
– напряжение питания должно быть в пределах 4,5 — 5,5 Вольт. Мы будем использовать микросхемы с питающим напряжением 5 Вольт, поэтому и МК будет питаться этим же напряжением. (Хотя работоспособность сохранится при напряжении питания 2,7 Вольт для обычных, не низковольтных моделей МК)
Где и как искать компоненты и даташиты ? Смотрите в видео:
Power-line communication. Часть 2 — Основные блоки устройства / Блог компании Directum / Хабр
Часть 1 — Основы передачи данных по линиям электропередач
В первой части статьи мы кратко ознакомились с основными понятиями при передаче данных по линиям электропередач. Узнали, что такое “полезный сигнал”, как с его помощью можно кодировать передаваемую информацию. Но ни слова не было о том, как это устройство должно быть выполнено физически, как оно будет генерировать сигнал, и каким образом его вообще подключить к сети 220 В.
В этой и следующей частях статьи опишем, какие основные блоки должны быть в простейшем устройстве передачи данных по PLC. Постепенно, как конструктор, будем добавлять в общую картину блок за блоком и разберемся для чего нужен каждый блок и как он работает.
— Введение
— Мозги устройства — микроконтроллер
— Основные требования к микроконтроллеру
— Выбор подходящего микроконтроллера
— Особенности питания устройства
Дисклеймер: статья не является руководством по созданию устройства и не является справочником по электронным компонентам. Это просто результаты моих экспериментов и некоторый накопленный практикой опыт, который, надеюсь, будет полезен тем, кто интересуется темой. Если есть какие-то замечания, интересные ссылки и книги, обязательно оставляй это в комментах.
Введение
Для начала кратко вспомним из части 1, как происходит передача данных. На изображении одна из фаз ЛЭП. Красное устройство передает, синие слушают. Биты данных один за одним передаются в виде синусоидальных сигналов различной частоты (FSK модуляция).
В мозге устройства — микроконтроллере — зашит протокол, по которому передаются/принимаются данные. Также в прошивке микроконтроллера для каждого передаваемого символа (или бита) задана соответствующая частота сигнала.
Для примера: если передается символ “0”, то генерируется “полезный сигнал” в виде синусоиды 74 кГц. А если передается “1”, то генерируется синусоида с частотой, например, 80 кГц. Номиналы частот не особо важны, просто выбираются любые из разрешенных диапазонов. Главное, чтобы приемник смог их различить.
В первой части статьи упоминалось про третий символ “S”, который означал начало кадра. Он также кодировался своей определенной частотой. Когда устройство получало символ “S”, входной буфер очищался. Для простоты в этой статье будут упоминаться только “0” и “1”.
Передающие и принимающие устройства синхронизируются между собой с помощью отдельного блока устройства — “zero cross детектора”.
Представим передающее устройство, в котором есть подготовленный кадр данных — некий массив нулей и единиц, и этот кадр нужно передать по PLC каналу связи (ЛЭП). Передача/прием кадра происходит по одному биту за один синхросигнал из ZC детектора.
Физически это значит, что за один синхросигнал из ZC детектора генерируется один “полезный сигнал” определенной частоты. В нашем случае это синусоиды 74 кГц или 80 кГц.
Таким образом, бит за битом, передается кадр данных в PLC канал. Совместно с микроконтроллером генерацией сигналов будет заниматься отдельная часть схемы. Назовём её “Выходная цепь”.
Задача принимающих устройств — каждый раз, по сигналу ZC детектора, оцифровывать “полезный сигнал” из PLC канала и узнавать, какой символ там был закодирован.
Но сначала сырой сигнал нужно грубо очистить от шума, подогнать уровень “очищенного” сигнала под пригодный для оцифровки и уже затем передать на АЦП микроконтроллера для дальнейшего цифрового анализа. Этой подготовкой “полезного сигнала” для АЦП будет заниматься “Входная цепь”.
Чтобы не раздувать эту часть статьи, расскажу только про задачи, решаемые микроконтроллером и некоторые особенности питания устройства.
В следующей части рассмотрим как устройство можно согласовать с сетью 220 В, работу ZC детектора, а также про входную и выходную цепи.
Мозги устройства — микроконтроллер
Центральная часть устройства — микроконтроллер, который будет контролировать всю схему: обрабатывать входной сигнал, генерировать полезный сигнал, управлять усилителями, хранить данные и т.д.
Микроконтроллер — это такой мини-компьютер, который в одном корпусе содержит процессор (ЦПУ), память (ПЗУ и ОЗУ), ввод-вывод и периферийные устройства. По сути, внутри уже все есть для работы: подаем питание и поехали. Дальше все зависит уже от программы “прошивки”, которую мы в него записали.
Рисунок с сайта digikey.comСейчас выпускают микроконтроллеры с большим количеством различной встроенной периферии. Это очень удобно, так как меньше необходимости во внешних компонентах, что экономит место на печатной плате (и, конечно же, ваши денежки). Внутри может иметь ЦАП и АЦП, часы с календарем. Даже встроенный USB уже не удивляет.
На рынке огромное разнообразие микроконтроллеров с разной вычислительной мощностью и периферией. Обычно они группируются в серии и подходят под разные классы задач. Например, чтобы помигать светодиодом в миниатюрном устройстве, нам не нужен мощный камень, на котором можно запустить Linux, подойдет “ATtiny”. Но для нашего устройства его уже не хватит, так как нужны ЦАП, АЦП и быстрые вычисления в реальном времени.
Поэтому к выбору камня нужно подойти немного поразмыслив. Подумаем, что же требуется от микроконтроллера в нашем случае.
Основные требования к микроконтроллеру
Производительность
Основной нагрузкой на ЦПУ будет обработка оцифрованного входного сигнала с помощью ДПФ для выяснения того, какой символ был закодирован в сигнале: “0” или “1”. Далее этот символ будет отправляться в протокол на уровень выше. Больше всего вычислений будет происходить именно при подсчете гармоник в ДПФ.
Циклично, с интервалом 10 миллисекунд, АЦП будет оцифровывать входящий сигнал и сохранять его в виде массива чисел. Затем этот массив несколько раз прогоняется через ДПФ для выяснения амплитуд гармоник каждой из интересующих нас частот в полезном сигнале.
Результат визуально можно представить в виде эквалайзера, на котором нарисованы полоски определенных частот разной высоты (амплитуды). Для подсчета высоты каждой отдельной полоски нужно сигнал прогонять через ДПФ.
После подсчета некоторого количества гармоник, делаются выводы о том, какой символ закодирован.
В самом простом случае можно просто сравнить амплитуды гармоник 74 и 80 кГц между собой. Если в сигнале преобладает гармоника с частотой 74 кГц, записываем в входной буфер бит “0”.
Если в сигнале преобладает гармоника с частотой 80 кГц, записываем в входной буфер “1”.
В таком случае, любой шум что-то означает: “0” либо “1”, даже если ничего не передавалось. Отделением зерен от плевел будет заниматься отдельная подпрограмма — уровнем выше — которая будет проверять целостность кадра и прочие прелести.
Задача же этого уровня — просто, как конвейер, подавать “0” и “1” наверх, а дальше из них будут складываться правильные целостные кадры данных. Или не будут.
Также можно заморочиться и дополнительно рассчитывать амплитуды смежных гармоник и узнавать уровень шума относительно полезного сигнала. Можно программно фильтровать сигнал и тд. Вариантов много.
Суть в том, что считать, возможно, придется много. Успевать считать нужно гарантированно, так как это реалтайм-конвейер.
Если разложить всю нагрузку на которую ЦПУ тратит время друг за другом, то получим примерно это:
оцифровка сигнала
подсчет амплитуд гармоник через ДПФ и анализ результата
прочая нагрузка (обработка прерываний из интерфейсов USB или CAN, обработчики таймеров, моргания светодиодами, работа с памятью, какие-то вычисления по протоколу и т.д.)
Это должно циклично выполняться каждые 10 миллисекунд снова и снова. ЦПУ никогда не должен быть загружен на 100%, иначе есть риск не успеть посчитать что-то важное. Поэтому всегда нужно оставлять запас по производительности.
Энергоэффективность
Обратная сторона быстрых вычислений — большее потребление энергии. Чем быстрее контроллер считает, тем больше он потребляет энергии. Поэтому нам не нужен “слишком мощный” процессор.
Подобрать нужную производительность ЦПУ можно опытным путём: берём микроконтроллер с запасом вычислительной мощности и памяти, пишем код, запускаем и смотрим за какое время он справляется с конкретными задачами. Выбираем из линейки контроллеров подходящий, оставляя небольшой запас мощности и памяти (для возможных обновлений и улучшений).
Должен быть достаточно быстрый АЦП
Нам нужно оцифровывать входной аналоговый сигнал и желательно, чтобы был встроенный АЦП. Точность тут не так важна, как скорость. Так как измеряемый сигнал имеет частоту до сотни килогерц. Для корректных вычислений гармоник есть условие (из Теоремы Котельникова).
Частота дискретизации должна быть минимум в два раза больше частоты измеряемого сигнала.
Это значит, что для распознавания сигнала нужно сделать от двух точек измерения на период. А по-хорошему — 4-5. Посмотрим на примере.
Представим, что мы измеряем сигнал, в котором есть нужная нам гармоника частотой 80 кГц. У сигнала с частотой 80 кГц период микросекунд. Чтобы оцифровать 5 точек на период нужно успевать делать измерение раз в 2.5 микросекунды для адекватного распознавания сигнала.
С пятью точками измерений на период уже выглядит неплохо. ДПФ с этим отлично справится.
Но для чего брать с запасом? Что если измерять по минимуму, только две точки на период? Вот такой сигнал мы оцифруем при удачном попадании.
А так будет выглядеть оцифрованный сигнал, если попасть в момент, когда сигнал в нуле.
Не похоже на синусоиду.
Если интересно посмотреть, что будет, если проводить измерения частотой меньше двух точек за период, то поищите в гугле картинки “Эффект алиасинга”.
Должен быть достаточно быстрый ЦАП
Для полезного сигнала нужно сгенерировать синусоиду большой частоты. Чем больше точек на период синусоиды успеет генерировать ЦАП, тем плавнее будет сигнал на выходе (меньше лесенка, которую затем сгладит конденсатор).
Представим на примере синусоиды с частотой 80 кГц, период 12.5 микросекунд. Возьмем для начала 4 точки на период. Генерация каждые 3.125 микросекунды.
Такой сигнал сложновато будет сгладить конденсатором, чтобы сделать его похожим на синус.
Увеличим количество точек вдвое. Генерация каждые 1.56 микросекунды.
Нужна достаточная скорость ЦАП для того, чтобы сигнал был хотя бы похож на синус. В нашем случае, с сигналом частотой до 80 кГц, будет достаточно чтобы ЦАП успевал менять уровень сигнала раз в 1.5 микросекунды. Если успеет быстрее, то еще лучше.
С выхода ЦАП этот угловатый сигнал проходит через пассивный фильтр нижних частот и в сглаженном виде идет на усилитель “выходной цепи”.
Если нет АЦП
Помню, в самом начале я проводил эксперименты на 8-битных AVR от Atmel серии ATmega8, и у них в распоряжении не было АЦП. Но на них было очень удобно начинать знакомство с миром микроконтроллеров. Низкий порог вхождения и никаких танцев с бубнами при запуске.
Ну так вот, входной сигнал я решил “оцифровывать” простой ножкой в режиме входа. Если входное напряжение выше 2.5В, то у ножки было логическое состояние “1”, если ниже 2.5В, то “0”. В равные промежутки времени просто считывалось текущее состояние ножки и эти значения записывались в массив.
И этот “оцифрованный сигнал” прогонялся через ДПФ и вычислялось наличие нужных гармоник. Ни о какой точности или чувствительности речи и не шло, но это работало.
Если нет ЦАП
Аналогичная ситуация на ATmega8 была с ЦАП. Его там нет, и мне очень не хотелось заморачиваться с внешним ЦАП.
Оказалось, что можно пожертвовать логическими выходами микроконтроллера и подключить к ним резисторную матрицу R-2R. Таким образом из горстки резисторов собрать свой ЦАП с нужной разрядностью.
Картинка с сайта easyelectronics.ruПодавая 0 и 1 на выходы микроконтроллера, можно получать нужный уровень напряжения на выходе “OUT”. Чем больше выходов будет использовано, тем выше разрядность ЦАП. По схеме R-2R оставил ссылку в конце.
Выбор подходящего микроконтроллера
После экспериментов на ATmega8 мне захотелось улучшить то, что есть. Выбирая из разных вариантов, я положил глаз на STM32. А конкретно — на STM32F103 — это 32-битные микроконтроллеры на ядре ARM Cortex-M3 (до 72 MHz).
Эксперименты проводил на отладочной плате, которая, наверное, есть в любом магазине электроники. На отладочной плате сразу располагался программатор, с помощью которого прошивается на МК.
Немного пострадав с его запуском, сразу же побежал проверять его по своему чек листу.
Производительность?
Схема тактирования позволяет работать ЦПУ на частоте 72 MHz, что после 8-битных на 20 MHz было с запасом. Хватало для более точных расчетов по алгоритму ДПФ.
Энергоэффективность?
При почти максимальной нагрузке потреблял около 40-50 мА. Дешевый стабилизатор напряжения в схеме питания на 100 мА с этим справлялся. Даже с учетом остальной маложрущей периферии этого было достаточно.
Достаточно быстрый АЦП?
Разобрался, как разогнать до максимальной скорости АЦП при частоте ЦПУ 72 MHz. Так как ранее было сказано, что полезный сигнал будет частотой в районе 80 кГц, то будем считать исходя из этого.
В доках для STM32 нашел, как вычислять минимальное время преобразования: нужно к настраиваемому времени семплирования (минимум 1.5 цикла) прибавить 12.5 машинных циклов. Получается 14 машинных циклов на одну точку измерения.
При определенной настройке схемы тактирования на модуль АЦП приходится 14 MHz. Если перевести в секунды, то 14 циклов при частоте тактирования 14 MHz — это одно измерение в 1 микросекунду.
Идеально! Даже если полезный сигнал будет частотой 100 кГц, я смогу измерить 10 точек за один период сигнала. С минимальной точностью, но быстро.
Примерно так будет выглядеть оцифровка синусоиды 80 кГц.
Достаточно быстрый ЦАП?
По той же логике нам нужно сгенерировать синусоиду частотой около 80 кГц. И если мы хотим, чтобы синусоида была похожа на синусоиду, а не на странную угловатую фигуру, нужно генерировать одну точку хотя бы раз в 1.5 микросекунды, как мы выяснили ранее.
Почитав документацию, я понял, что в ЦАП STM32F103 встроенный ОУ имеет ограничение в 1 MSPS. Получилось настроить генерацию каждой точки сигнала раз в 1 микросекунду.
Примерно так при этом будет выглядеть синусоида с частотой 80 кГц на выходе из ЦАП.
Периферия
Что еще мне понравилось в STM32F103 — это наличие встроенного USB. Там есть режим эмуляции COM порта. Мне показалось это очень удобным, особенно после внешних преобразователей USB-UART.
Можно подключать устройство к ПК обычным шнурком от телефона и через терминал посылать на устройство какие-нибудь отладочные команды.
Для экспериментов подключал два PLC устройства к двум компам, и они посылали друг другу ASCII символы, вводимые с клавиатуры. Получилось что-то вроде чата через розетку 220 В.
Особенности питания устройства
Сразу отмечу, что я не спец в проектировании блоков питания, для подробностей есть специализированная литература. Но считаю важным отметить некоторые моменты, которые влияют на стабильность системы, и с которыми у меня были проблемы.
Блок питания можно либо собирать самому, либо взять готовый модуль с нужными характеристиками, это неважно. В любом случае, нужно адекватно развести линии питания по печатной плате.
Схема питания устройства зависит от потребителей. В нашем случае основные “жрущие” потребители — это микроконтроллер и “выходная цепь”, так как в ней усилитель для отправки сигнала в ЛЭП.
Остальные потребители вроде усилителей входного сигнала во “входной цепи”, EEPROM памяти или какие-то UART конвертеры потребляют немного.
Стабильное питание микроконтроллера
Первое и самое важное на что нужно обратить внимание — это стабильность питания микроконтроллера. Он не любит скачки напряжения и может в самый неподходящий момент перезагружаться или просто начать себя странно вести (пропускать блоки кода).
И тут у нас проблемка: как назло, под боком у микроконтроллера находится “выходная цепь” с усилителем полезного сигнала. Этот блок устройства во время генерации сигнала импульсами потребляет мощность, что может прилично потрясти всю систему питания, обнулив при этом микроконтроллер.
Примерная картина потребления мощностиПри передаче кадра это происходит каждые 10 миллисекунд длиной в 1 миллисекунду.
С этим у меня возникли трудности. Иногда устройство работало нормально, но чаще — предсказуемо перезагружалось. Сначала пытался решить проблему блоком питания помощнее, но не помогало. В поисках решений много интересного узнал из форумов по робототехнике. Там похожие проблемы были в основном из-за сервоприводов, которые потребляют приличное количество энергии и, при неправильной разводке платы, могут внезапно перезагружать микроконтроллер.
Для тяжелых случаев есть пара советов, которые помогут уменьшить влияние скачков напряжения.
Совет 1 — Разделить землю на аналоговую и цифровую
Первый важный момент — это обеспечение минимального влияния аналоговой части схемы на цифровую.
Для этого нужно разделить дорожки “GND” в самом начале схемы питания — возле минуса блока питания. Ни в коем случае нельзя их пересекать или как-то замыкать в других частях схемы.
Для питания условно “цифровых” компонентов схемы (микроконтроллер, EEPROM память и т.д.) от самого блока питания должна идти отдельная линия, можно назвать её “DGND”.
Для питания аналоговой схемы генерации “полезного сигнала” от блока питания, соответственно, должна идти отдельная линия “AGND”. Подробнее можно почитать в статьях или литературе по заземлению.
Совет 2 — Не забыть про керамику
Конденсаторы нужно ставить перед каждой ножкой питания микроконтроллера и как можно ближе к ним. Обязательно выполнить минимум обвеса, который указан в Datasheet на микроконтроллер.
Картинка с сайта allexpress.comТакже желательно добавить в цепи питания микроконтроллера дополнительную емкость, в виде электролитического или танталового конденсатора, чтобы он мог даже выдерживать кратковременное отключение питания.
С танталовыми осторожнее, они красиво взрываются :).
Еще надо не забыть “защитить” ножку “Reset” микроконтроллера, как указано в Datasheet. В противном случае микроконтроллер может внезапно перезагружаться. Если нет светодиодной индикации запуска программы микроконтроллера, то можно этого даже не заметить.
Совет 3 — Экранировать цифровые компоненты
Может получиться так, что недалеко от микроконтроллера расположен высокочастотный трансформатор, который во время передачи сигнала генерирует электромагнитные помехи.
Мне помогло расположение микроконтроллера на другой от ВЧ трансформатора стороне печатной платы и наличие земляного полигона под корпусом микроконтроллера.
Картинка с сайта caxapa.ru «Помехоустойчивые устройства, Алексей Кузнецов»Подробнее можно почитать в статье по ссылке в конце.
Заключение
В этой части мы в общих чертах разобрали чем занимается микроконтроллер. Узнали некоторые особенности питания устройства и возможные проблемы.
Статья вышла довольно объемной. Я постарался максимально коротко передать основные моменты. Может сложиться ощущение незаконченности и это нормально. Для углубленного изучения оставлю ссылки внизу.
В следующей части подробнее разберём оставшиеся блоки устройства: входная и выходная цепи, zc детектор и согласование устройства в сетью 220 В. После этого должна сложиться целостная картинка. В заключительной части пробежимся по программной части: обработке оцифрованного сигнала, генерация синуса и т.д.
У кого был/есть какой-либо опыт в PLC обязательно делитесь этим с остальными в комментариях 🙂
Полезные ссылки
https://nag.ru/articles/article/24485/strasti-po-plc.html — интересная статья по истории PLC
https://www.electronshik.ru/catalog/interfeys-modemy-plc — заводские PLC микросхемы с datasheet (там много схем и характеристик)
https://ru.wikipedia.org/wiki/Частотная_манипуляция — FSK модуляция
http://www.atmega8.ru/ — про ATmega8
STM32
https://www.st.com/en/microcontrollers-microprocessors/stm32f103.html — STM32F103
https://themagicsmoke.ru/courses/stm32/led.html — “Помигать светодиодом” на stm32
https://blog.avislab.com/stm32-clock_ru — схема тактирования stm32
https://habr.com/ru/post/312810/ — подробнее про ЦАП в stm32
https://blog.avislab.com/stm32-adc_ru/ — АЦП в stm32
https://blog.avislab.com/stm32-usb_ru/ — USB в stm32
Аналоговая часть
http://easyelectronics.ru/parallelnyj-cifro-analogovyj-preobrazovatel-po-sxeme-r-2r.html — преобразователь по схеме R-2R
http://caxapa.ru/lib/emc_immunity.html — «Помехоустойчивые устройства», Алексей Кузнецов
https://www.ruselectronic.com/passive-filters — пассивные фильтры
Микроконтроллеры AVR для начинающих – 1 « схемопедия
Микроконтроллеры (далее МК) прочно вошли в нашу жизнь, на просторах интернета можно встретить очень много интересных схем, которые исполнены на МК. Чего только нельзя собрать на МК: различные индикаторы, вольтметры, приборы для дома (устройства защиты, коммутации, термометры…), металлоискатели, разные игрушки, роботы и т.д. перечислять можно очень долго. Первую схему на микроконтроллере я увидел лет 5-6 назад в журнале радио, и практически сразу же перелистнул страницу, подумав про себя “все равно не смогу собрать”. Действительно, в то время МК для меня были чем то очень сложным и непонятым устройством, я не представлял как они работают, как их прошивать, и что делать с ними в случае неправильной прошивки. Но около года назад, я впервые собрал свою первую схему на МК, это была схема цифрового вольтметра на 7 сегментных индикаторах, и микроконтроллере ATmega8. Так получилось, что микроконтроллер я купил случайно, когда стоял в отделе радиодеталей, парень передо мной покупал МК, и я тоже решил купить, и попробовать собрать что-нибудь. В своих статьях я расскажу вам про микроконтроллеры AVR фирмы ATMEL, научу вас работать с ними, рассмотрим программы для прошивки, изготовим простой и надежный программатор, рассмотрим процесс прошивки и самое главное проблемы, которые могут возникнуть и не только у новичков.
Основные параметры некоторых микроконтроллеров семейства AVR:
Микроконтроллер | Память FLASH | Память ОЗУ | Память EEPROM | Порты ввода/вывода | U питания | Частота |
ATmega48 | 4 | 512 | 256 | 23 | 2,7-5,5 | 0-10-20 |
ATmega48V | 4 | 512 | 256 | 23 | 1,8-4,8-5,5 | 0-4-10 |
ATmega8515 | 8 | 512 | 512 | 35 | 4,5-5,5 | 0-16 |
ATmega8515L | 8 | 512 | 512 | 35 | 2,7-5,5 | 0-8 |
ATmega8535 | 8 | 512 | 512 | 32 | 4,5-5,5 | 0-16 |
ATmega8535L | 8 | 512 | 512 | 32 | 2,7-5,5 | 0-8 |
ATmega8 | 8 | 1K | 512 | 23 | 4,5-5,5 | 0-16 |
ATmega8L | 8 | 1K | 512 | 23 | 2,7-5,5 | 0-8 |
ATmega88 | 8 | 1K | 512 | 23 | 2,7-5,5 | 0-10-20 |
ATmega88V | 8 | 1K | 512 | 23 | 4,5-5,5 | 0-4-10 |
ATmega16 | 16 | 1K | 512 | 32 | 4,5-5,5 | 0-16 |
ATmega16L | 16 | 1K | 512 | 32 | 2,7-5,5 | 0-8 |
ATmega32 | 32 | 2K | 1K | 32 | 4,0-5,5 | 0-16 |
ATmega32L | 32 | 2K | 1K | 32 | 2,7-5,5 | 0-8 |
Дополнительные параметры МК AVR mega:
Рабочая температура: -55…+125*С
Температура хранения: -65…+150*С
Напряжение на выводе RESET относительно GND: max 13В
Максимальное напряжение питания: 6.0В
Максимальный ток линии ввода/вывода: 40мА
Максимальный ток по линии питания VCC и GND: 200мА
Расположение выводов моделей ATmega 8X
Расположение выводов моделей ATmega48x, 88x, 168x
Расположение выводов у моделей ATmega8515x
Расположение выводов у моделей ATmega8535x
Расположение выводов у моделей ATmega16, 32x
Расположение выводов у моделей ATtiny2313
В конце статьи прикреплён архив с даташитами на некоторые микроконтроллеры
Установочные FUSE биты MK AVR
BODEN | BODLEVEL | BOOTRST | BOOTSZ0 | BOOTSZ1 | CKSEL0 | CKSEL1 | SPIEN |
CKSEL2 | CKSEL3 | EESAVE | FSTRT | INCAP | RCEN | RSTDISBL | SUT0 |
SUT1 |
Запомните, запрограммированный фьюз – это 0, не запрограммированный – 1. Осторожно стоит относиться к выставлению фьюзов, ошибочно запрограммированный фьюз может заблокировать микроконтроллер. Если вы не уверены какой именно фьюз нужно запрограммировать, лучше на первый раз прошейте МК без фьюзов.
Самыми популярными микроконтроллерами у радиолюбителей являются ATmega8, затем идут ATmega48, 16, 32, ATtiny2313 и другие. Микроконтроллеры продаются в TQFP корпусах и DIP, новичкам рекомендую покупать в DIP. Если купите TQFP, будет проблематичнее их прошить, придется купить или изготовить переходник и паять плату т.к. у них ножки располагаются очень близко друг от друга. Советую микроконтроллеры в DIP корпусах, ставить на специальные панельки, это удобно и практично, не придется выпаивать МК если приспичит перепрошить, или использовать его для другой конструкции.
Почти все современные МК имеют возможность внутрисхемного программирования ISP, т.е. если ваш микроконтроллер запаян на плату, то для того чтобы сменить прошивку нам не придется выпаивать его с платы.
Для программирования используется 6 выводов:
RESET – Вход МК
VCC – Плюс питания, 3-5В, зависит от МК
GND – Общий провод, минус питания.
MOSI – Вход МК (информационный сигнал в МК)
MISO – Выход МК (информационный сигнал из МК)
SCK – Вход МК (тактовый сигнал в МК)
Иногда еще используют вывода XTAL 1 и XTAL2, на эти вывода цепляется кварц, если МК будет работать от внешнего генератора, в ATmega 64 и 128 вывода MOSI и MISO не применяются для ISP программирования, вместо них вывода MOSI подключают к ножке PE0, a MISO к PE1. При соединении микроконтроллера с программатором, соединяющие провода должны быть как можно короче, а кабель идущий от программатора на порт LPT так-же не должен быть слишком длинным.
В маркировке микроконтроллера могут присутствовать непонятные буквы с цифрами, например Atmega 8L 16PU, 8 16AU, 8A PU и пр. Буква L означает, что МК работает от более низкого напряжения, чем МК без буквы L, обычно это 2.7В. Цифры после дефиса или пробела 16PU или 8AU говорят о внутренней частоте генератора, который есть в МК. Если фьюзы выставлены на работу от внешнего кварца, кварц должен быть установлен на частоту, не превышающей максимальную по даташиту, это 20МГц для ATmega48/88/168, и 16МГц для остальных атмег.
Первые цифры в названии микроконтроллера обозначают объем FLASH ПЗУ в килобайтах, например ATtiny15 – 1 Кб, ATtiny26 – 2 Кб, AT90S4414 – 4 Кб, Atmega8535 – 8 Кб, ATmega162 – 16Кб, ATmega32 – 32 Кб, ATmega6450 – 64Кб, Atmega128 – 128Кб.
Иногда встречаются схемы, где применены микроконтроллеры с названиями типа AT90S… это старые модели микроконтроллеров, некоторые из них можно заменить на современные, например:
AT90S4433 – ATmega8
AT90S8515 – ATmega8515
AT90S8535 – ATmega8535
AT90S2313 – ATtiny2313
ATmega163 – ATmega16
ATmega161 – ATmega162
ATmega323 – ATmega32
ATmega103 – ATmega64/128
ATmega 8 имеет несколько выводов питания, цифровое – VCC, GND и аналоговое – AVCC, GND. В стандартном включении обе пары выводов соединяют параллельно, т.е. вместе. Микроконтроллеры AVR не любят повышенного напряжения, если питание выше 6 вольт, то они могут выйти из строя. Я обычно применяю маломощный стабилизатор напряжения на 5 вольт, КР142ЕН5 или 78L05. Если напряжение питания слишком низкое, то МК не прошьется, программа будет ругаться и выдавать ошибки (к примеру -24 в PonyProg).
На этом закончим, пока можете выбрать в интернете понравившуюся схему и изучить ее, можете заодно сходить и купить нужный микроконтроллер. В следующих частях статьи мы будем собирать простой и надежный программатор, познакомимся с программами для прошивания и попробуем прошить МК.
Даташит ATmega8
Даташит ATmega16
Даташит ATmega32
Даташит ATmega48/88/168
Даташит ATmega128
Даташит ATmega8515
Даташит ATmega8535
Даташит ATtiny2313
Автор: Романов А.С (г. Чебоксары)
Arduino ATtmega8: плата, характеристики, распиновка
Микроконтроллеры – отличная основа для большого количества устройств. По сути своей они напоминают компьютер: постоянная память; оперативная память; вычислительное ядро; тактовая частота.
Среди многих семейств и видов МК новички часто выбирают контроллеры AVR Atmega. Однако язык программирования может показаться сложным, поэтому преподаватель из Италии решил разработать простую и удобную плату для обучения.
Родилась Arduino ATmega8, на основе которой можно собрать очень удобное и простое устройство.
Arduino NG — вариант платы Arduino на микроконтроллере ATmega8С этими платами от Ардуино вы получаете целый ряд преимуществ:
- готовая разведенная печатная плата со всеми необходимыми компонентами и разъёмами;
- микроконтроллеры Atmega;
- возможность программировать без программаторов – через ЮСБ порт;
- питание от любого источника 5-20 вольт;
- простой язык программирования и возможность использования чистой C AVR без переделок платы и прошивки.
Характеристики чипа
- Частота ATmega8: 0-16 МГц
- Напряжение ATmega8: 5 В
- Частота ATmega8L: 0-8 МГц
- Частоат ATmega8A: 0-16 МГц
В реальности почти все микроконтроллеры при рабочем напряжении в 5 вольт работают с частотой 16 мегагерц, если участвует внешний кварцевый резонатор. Если брать внутренний генератор, то частоты составят: 8, 4, 2 и 1 МГц.
Распиновка Arduino ATmega8
Ниже приводим распиновку атмега8, которую можно также найти на официальном сайте производителя:
Добавление устройств АТмега
Есть один нюанс по работе с эти чипом — нам нужно внести некоторые изменений в один файл, чтобы дальше можно было бы программировать микроконтроллеры Arduino ATmega8.
Вносим следующие изменения в файл hardware/arduino/boards.txt:
atmega8o.name=ATmega8 (optiboot 16MHz ext) atmega8o.upload.protocol=arduino atmega8o.upload.maximum_size=7680 atmega8o.upload.speed=115200 atmega8o.bootloader.low_fuses=0xbf atmega8o.bootloader.high_fuses=0xdc atmega8o.bootloader.path=optiboot50 atmega8o.bootloader.file=optiboot_atmega8.hex atmega8o.bootloader.unlock_bits=0x3F atmega8o.bootloader.lock_bits=0x0F atmega8o.build.mcu=atmega8 atmega8o.build.f_cpu=16000000L atmega8o.build.core=arduino:arduino atmega8o.build.variant=arduino:standard ############################################################## a8_8MHz.name=ATmega8 (optiboot 8 MHz int) a8_8MHz.upload.protocol=arduino a8_8MHz.upload.maximum_size=7680 a8_8MHz.upload.speed=115200 a8_8MHz.bootloader.low_fuses=0xa4 a8_8MHz.bootloader.high_fuses=0xdc a8_8MHz.bootloader.path=optiboot a8_8MHz.bootloader.file=a8_8MHz_a4_dc.hex a8_8MHz.build.mcu=atmega8 a8_8MHz.build.f_cpu=8000000L a8_8MHz.build.core=arduino a8_8MHz.build.variant=standard ############################################################## a8_1MHz.name=ATmega8 (optiboot 1 MHz int) a8_1MHz.upload.protocol=arduino a8_1MHz.upload.maximum_size=7680 a8_1MHz.upload.speed=9600 a8_1MHz.bootloader.low_fuses=0xa1 a8_1MHz.bootloader.high_fuses=0xdc a8_1MHz.bootloader.path=optiboot a8_1MHz.bootloader.file=a8_1MHz_a1_dc.hex a8_1MHz.build.mcu=atmega8 a8_1MHz.build.f_cpu=1000000L a8_1MHz.build.core=arduino a8_1MHz.build.variant=standard ############################################################## a8noboot_8MHz.name=ATmega8 (no boot 8 MHz int) a8noboot_8MHz.upload.maximum_size=8192 a8noboot_8MHz.bootloader.low_fuses=0xa4 a8noboot_8MHz.bootloader.high_fuses=0xdc a8noboot_8MHz.build.mcu=atmega8 a8noboot_8MHz.build.f_cpu=8000000L a8noboot_8MHz.build.core=arduino a8noboot_8MHz.build.variant=standard
Таким образом, если мы перейдем в меню Сервис → Плата, то увидим устройства:
- ATmega8 (optiboot 16MHz ext)
- ATmega8 (optiboot 8 MHz int)
- ATmega8 (optiboot 1 MHz int)
- ATmega8 (no boot 8 MHz int)
Платы Arduino
Ардуино продаётся во множестве вариантов; главное, что объединяет платы, – это концепция готового изделия. Вам не нужно травить плату и паять все её компоненты, вы получаете готовое к работе изделие. Можно собирать любые устройства, не используя паяльник. Все соединения в базовом варианте выполняются с помощью макетной платы и перемычек.
Сердце платы – микроконтроллер семейства AVR. Изначально был применён микроконтроллер atmega8, но его возможности не безграничны, и плата подвергалась модернизации и изменениям. Стандартная плата, которая наиболее распространена у любителей – это плата версии UNO, существует много её вариаций, а её размеры сравнимы с кредитной карточкой.
Плата Arduino Nano – полный аналог большего собрата, но в гораздо меньших размерах, версия arduino atmega168 была самой популярной и недорогой, но её сменила другая модель – arduino atmega328, стоимость которой аналогична, а возможности больше.
Следующей важной деталью является печатная плата. Разведена и запаяна на заводе, позволяет избежать проблем с её созданием, травлением и пайкой. Качество платы зависит от производителя конкретного экземпляра, но, в основном, оно на высоком уровне. Питание платы осуществляется с помощью пары линейных стабилизаторов, типа L7805, или других LDO стабилизаторов напряжения.
Клеммная колодка – отличный способ сделать надёжное разъёмное соединение и быстро выполнить изменения в схеме прототипов ваших устройств. Для тех, кому не хватает стандартных разъёмов, есть более крупные и мощные платы, например, на atmega2560, у которой доступно полсотни портов для работы с периферией.
На фото изображена плата Arduino Mega 2560. На её основе можно собрать довольно сложного робота, систему умного дома или 3d-принтер на ардуино.
Не стоит думать, что младшие версии слабы, например, микроконтроллер atmega328, на котором построены модели Uno, nano, mini и другие, имеет вдвое больше памяти по сравнению с 168 моделью – 2 кб ОЗУ и 32 кб Flash памяти. Это позволяет записывать более сложные программы в память микроконтроллера.
Проекты на основе Arduino ATmega
Микроконтроллер в современной электронике – основа для любого устройства, начиная от простой мигалки на светодиодах, до универсальных измерительных приборов и даже средств автоматизации производства.
Пример 1
Можно сделать тестер с 11 функциями на микроконтроллере atmega32.
Устройство имеет крайне простую схему, в которой использовано немногим более дюжины деталей. Однако вы получаете вполне функциональный прибор, которым можно производить измерения. Вот краткий перечень его возможностей:
- Прозвонка цепи с возможностью измерять падение напряжения на переходе диода.
- Омметр.
- Измеритель ёмкости.
- Измерение активного сопротивления конденсатора или ESR.
- Определение индуктивности.
- Возможность счёта импульсов.
- Измерение частоты – пригодится в диагностике, например, для проверки ШИМ источника питания.
- Генератор импульсов – тоже полезен в ремонте.
- Логический анализатор позволит просмотреть содержимое пачек цифровых сигналов.
- Тестер стабилитронов.
Пример 2
Для радиолюбителей будет полезно иметь качественное оборудование, но станция стоит дорого. Есть возможность собрать паяльную станцию своими руками, для этого нужна плата Arduino, имеющая в своем составе микроконтроллер atmega328.
Пример 3
Для продвинутых радиолюбителей есть возможность собрать более чем бюджетный осциллограф. Мы опубликуем данный урок в дальнейших статьях.
Для этого вам понадобится:
- Arduino uno или atmega
- Tft дисплей 5 дюйма.
- Небольшой набор обвязки.
Или его упрощенный аналог на плате Nano и дисплее от nokia 5110.
Такой осциллографический пробник станет полезным для автоэлектрика и мастера по ремонту радиоэлектронной аппаратуры.
Пример 4
Бывает, что управляемые модули удалены друг от друга или возможностей одной ардуино не хватает – тогда можно собрать целую микроконтроллерную систему. Чтобы обеспечить связь двух микроконтроллеров стоит использовать стандарт RS 485.
На фото приведен пример реализации такой системы и ввода данных с клавиатуры.
Цветомузыка на микроконтроллере Arduino ATmega8
Для школьной дискотеки можно собрать ЦМУ на 6 каналов.
Транзисторы VT1-VT6 нужно подобрать с учетом мощности ваших светодиодов. Это силовые компоненты – они нужны, потому что мощности микроконтроллера не хватит, чтобы запустить мощные лампы или светодиоды.
Если вы хотите коммутировать сетевое напряжение и собрать цветомузыку на лампах накаливания, вместо них нужно установить симисторы и драйвер. Дополнить каждый канал ЦМУ вот такой конструкцией:
Ардуино своими руками
Atmega2560 – хоть и мощный и продвинутый контроллер, но проще и быстрее собрать первую плату на atmega8 или 168.
Левая часть схемы – это модуль связи по USB, иначе говоря, USB-UART/TTL конвертер. Его, вместе с обвязкой, можно выбросить из схемы, для экономии места, собрать на отдельной плате и подключать только для прошивки. Он нужен для преобразования уровней сигнала.
DA1 – это стабилизатор напряжения L7805. В качестве основы можно использовать целый ряд avr микросхем, которые вы найдете, например, серии, arduino atmega32 или собрать arduino atmega16. Для этого нужно использовать разные загрузчики, но для каждого из МК нужно найти свой.
Можно поступить еще проще, и собрать всё на беспаечной макетной плате, как это показано здесь, на примере 328-й атмеги.
Микроконтроллеры – это просто и весело – вы можете сделать кучу приятный и интересных вещей или даже стать выдающимся изобретателем, не имея при этом ни образования, ни знаний о низкоуровневых языках. Ардуино – шаг в электронику с нуля, который позволяет перейти к серьезным проектам и изучению сложных языков, типа C avr и других.
Введение в ATmega8 — Инженерные проекты
Привет, друзья! Надеюсь у тебя все хорошо. Я вернулся, чтобы дать вам ежедневную дозу полезной информации, чтобы вы могли преуспевать и совершенствоваться в соответствии с вашими техническими потребностями и требованиями. Сегодня я расскажу подробнее о Introduction to ATmega8 . Это 8-битный микроконтроллер AVR, основанный на технологии RISC CMOS и имеющий 28-контактный интерфейс для пакета PDIP. Объем памяти программ составляет 8 КБ, а размер ОЗУ и EEPROM составляет 1 КБ и 512 байт соответственно.Microchip был основным источником для производства микроконтроллеров PIC и AVR, которые в основном используются во встроенных системах и системах промышленной автоматизации. Эти модули могут выполнять ряд функций на крошечном чипе, не позволяя вам тратить слишком много и покупать внешние компоненты для автоматизации в соответствующем проекте. В этом посте я расскажу обо всем, что связано с этим крошечным чипом, включая основной функции, распиновка, описание контактов, функции, используемый компилятор и все, что вам нужно знать.Давайте перейдем к деталям этого встроенного модуля.
Введение в ATmega8
- ATmega8 — это 8-битный микроконтроллер AVR, основанный на архитектуре RISC и в основном используемый во встроенных системах и проектах промышленной автоматизации.
- Он поставляется в трех корпусах, известных как PDIP, MLF и TQFP, где первый содержит 28 контактов, а два других — по 32 контакта на каждом модуле.
- Программная память составляет 8 КБ флэш-памяти, что достаточно для хранения ряда инструкций, в то время как две другие памяти RAM и EEPROM содержат 1 КБ и 512 байт соответственно.
- Другие функции этого модуля: таймер включения, сторожевой таймер, обнаружение перебоев в работе, внутрисхемное последовательное программирование и пять спящих режимов.
- Набор команд является основным критерием, который отличает этот модуль от контроллера PIC, где первый выполняет большинство инструкций за один тактовый цикл и поставляется с 32 регистрами общего назначения, тогда как более поздний требует количества тактовых циклов на команду и поставляется с регистром W. .
- В устройство добавлен 10-разрядный модуль АЦП, который играет жизненно важную роль для сопряжения датчиков и содержит всего 6 каналов для пакета PDIP и 8 каналов для оставшихся двух пакетов.
- К устройству добавлены протоколы связи, такие как SPI, I2C и USART, которые широко используются для установления связи с внешними устройствами.
1. Характеристики ATmega8
Перед тем, как вы начнете работать над соответствующим проектом, рекомендуется проверить функции модуля, чтобы понять, подходят ли эти функции для проекта, над которым вы собираетесь работать. В следующей таблице показаны основные характеристики ATmega8.Количество контактов | 28 |
CPU | 8-битный AVR |
Рабочее напряжение | 2.От 7 до 5,5 В |
Память программ | 8K |
Тип памяти программ | Флэш-память |
RAM | 1 Кбайт |
EEPROM | 512 байт |
АЦП Количество каналов АЦП | 10-бит 6 в PDIP, 8 в TQFP и QFN |
Компаратор | 1 |
Каналы ШИМ | 3 |
Генератор | до 16 МГц |
Таймер (3) | 16-битный таймер (1) 8-битный таймер (2) |
Пакеты (3) | PDIP (28 контактов) TQFP (32 контакта) QFN (32) |
Таймер включения питания | Да |
Пины ввода / вывода | 23 |
Производитель | Микрочип |
SPI | Да |
I2C | Да |
Сторожевое время r | Да |
Обнаружение потемнения (BOD) | Да |
USART | Да |
Спящий режим | 5 |
Минимальная рабочая температура | -55 C |
Максимальная рабочая температура | 125 C |
2.Распиновка и описание ATmega8
Вы получили краткое введение в модуль. В этом разделе мы рассмотрим распиновку и описание каждого контакта.Распиновка
На следующем рисунке показана распиновка ATmega8.- ATmega8 поставляется в трех пакетах, известных как PDIP, MLF и TQFP, где первый используется для создания индивидуальных проектов, а два других используются для промышленных и электронных устройств.
Описание выводов
В следующей таблице показано полное описание каждого вывода, которое поможет вам предвидеть основную функцию, связанную с каждым выводом.1 | PC6 RESET PCINT14 | I / O PinRESET будет сгенерирован путем удержания этого вывода в НИЗКОМ состоянии дольше минимальной длительности импульса Прерывание | |
2 | PD0 RXD PCINT16 | I / O PinSerial Receive Pin (USART) Interrupt | |
3 | PD1 TXD PCINT17 | I / O PinSerial Transmit Pin (USART) Прерывание | |
4 | |||
4 | PD2 INT0 PCINT18 | Вывод ввода / вывода Внешнее прерывание Прерывание | |
5 | PD3 INT1 OC2B PCINT19 | Вывод прерывания для канала прерывания ввода / вывода | |
6 | PD4 T0 XCK PCINT20 | 900 32 I / O PinT0 (Timer0 External Counter Input) XCK (USART External Clock I / O) Прерывание||
7 | VCC | Напряжение питания | |
8 | GND | Контакт заземления | |
9 | PB6 OSC1 XTAL1 PCINT6 | I / O PinOscillator Input PinInterrupt | |
10 | PB7 ПК Вывод Вывод осциллятора Прерывание | ||
11 | PD5 T1 OC0B PCINT21 | I / O PinPinT1 (Timer0 Timer0 External Counter Input) Назначенный вывод Прерывание | |
12 | PD6 AIN0 OC0A PCINT22 | 9003 2 I / OPin Аналоговый положительный вывод компаратора||
13 | PD7 AIN1 PCINT23 | ||
14 | 1 PBINT Последовательное программирование в цепи Часы Прерывание | ||
15 | PB1OC1APCINT1 | Вывод ввода / вывода Выделенный вывод для таймера (канал ШИМ) Прерывание | |
16SSOC / O Вход выбора ведомого устройства PinSPI.Когда контроллер действует как ведомый, этот вывод имеет низкий уровень Выделенный вывод для таймера (канал ШИМ) Прерывание | |||
17 | PB3 MOSI OC2A PCINT3 | I / O Pin MOSI (главный выход, подчиненный вход) для связи SPI. Данные принимаются этим контактом, когда контроллер действует как подчиненный Выделенный контакт для таймера Прерывание | |
18 | PB4 MISO PCINT4 | Контакт ввода / вывода MISO (Master Вход ведомого выхода) для связи SPI.Когда контроллер действует как подчиненный, данные отправляются контроллером в ведущее устройство через этот вывод Прерывание | |
19 | PB5 SCK PCINT5 | Контакт ввода / вывода SCK (Последовательные часы шины SPI). Эти часы используются контроллером и другими устройствами для передачи данных Прерывание | |
20 | AVCC | Вывод напряжения питания для АЦП | |
21 | AREF | Опорное напряжение | |
22 | GND | Контакт заземления | |
23 | PC0ADC0PCINT8 | ||
24 | PC1ADC1PCINT9 | Контакт ввода / вывода Аналоговый канал 1 Прерывание 33 | Вывод ввода / вывода Аналоговый канал 2 Прерывание |
26 | PC3ADC3PCINT11 | Вывод ввода / вывода Аналоговый канал 3 Прерывание | |
27 | PC4ADC4SDAPCINT12 | 9019 Аналоговый канал 4||
28 | PC5ADC5SCLPCINT13 | Вывод ввода / вывода Аналоговый канал 5 Последовательные часы (I2C) Прерывание |
3.Основные функции ATmega8
ATmega8 может выполнять и выполнять ряд функций. Ниже приведены основные функции, связанные с этим крошечным модулем.Таймер
Atmega8 включает три таймера, два из которых 8-битные, а один 16-битный. Эти таймеры могут использоваться в обоих направлениях, то есть таймер, а также счетчик, где первый используется для создания операции в любой запущенной функции, управляет внутренними функциями контроллера и увеличивает цикл команд, в то время как позже используется для подсчета количества интервалов. путем увеличения переднего и заднего фронта штифта и в основном используется для внешних функций.Помимо этих таймеров, два других таймера включены в устройство с именем- Таймеры запуска генератора
- Таймер включения
Количество спящих режимов
В устройстве есть пять спящих режимов, которые помогают экономить электроэнергию.Эти режимы включают:- Энергосбережение
- Выключение
- Холостой ход
- Подавление шума АЦП
- Резервный
Обнаружение сбоев (BOD)
BOD, также известный как BOR (Brown Out Reset), используется для сброса модуля, когда Vcc (напряжение питания) становится ниже порогового напряжения отключения. Важно отметить, что таймер включения питания должен быть включен для создания задержки и помощи в возврате устройства из функции BOD. В этом режиме создается несколько диапазонов напряжения для защиты модуля при падении напряжения на линии подачи напряжения.Связь SPI
ATmega8 поставляется с последовательным периферийным интерфейсом (SPI) — коммуникационным модулем, который помогает установить связь между микроконтроллером и другими периферийными устройствами, такими как регистры сдвига, SD-карты и датчики. Он включает в себя отдельные линии синхронизации и данных с добавлением линии выбора для выбора соответствующего устройства для связи. Для связи SPI используются следующие два контакта:- MOSI (Master Output Slave Input)
- MISO (главный вход, подчиненный выход)
Сторожевой таймер
ATmega8 имеет встроенный сторожевой таймер, который сбрасывает контроллер, если запущенная программа зависает во время компиляции или застревает в бесконечном цикле. Сторожевой таймер — это не что иное, как таймер обратного отсчета.Прерывание
Прерывание указывает на экстренный вызов, который приостанавливает выполнение основной функции до тех пор, пока не будет выполнена требуемая инструкция. Контроллер переходит к основной программе после вызова и выполнения прерывания.Связь I2C
Протокол I2C используется для подключения низкоскоростных устройств, таких как преобразователи АЦП и ЦАП, а также микроконтроллеры. Это двухпроводная связь, которая поставляется с последовательными часами- (SCL)
- Последовательные данные (SDA)
4. Интерфейс памяти ATmega8
Пространство памяти в контроллере является проявлением линейной и регулярной карты памяти.Этот модуль AVR поставляется с Гарвардской архитектурой, в которой хранятся отдельные ячейки памяти как для данных, так и для программы.- Одиночная конвейерная обработка используется для выполнения инструкций в программной памяти — программируемой флэш-памяти — где следующая инструкция вызывается и выполняется, за которой следует следующая инструкция, которая помогает выполнять инструкции в каждом тактовом цикле.
Программная память (ROM)
Программная память имеет объем памяти около 8 КБ и может выполнять инструкции в каждом тактовом цикле. Она хранит информацию постоянно и не зависит от источника питания и широко известна как ПЗУ или энергонезависимая память. Адрес памяти программ может обращаться к 16- или 32-битной инструкции.- Флэш-память программы разделена на две части, включая раздел прикладной программы и раздел программы загрузки.Последний поставляется с флэш-памятью приложений, используемой для записи инструкций SPM.
Память данных (RAM)
Объем памяти данных составляет около 1 КБ (1024 байта). Доступ к нему можно получить через пять различных режимов адресации в архитектуре AVR, названных как прямой, косвенный, косвенный со смещением, косвенный с предварительным декрементом и косвенный с постинкрементом.- Три адресных регистра X, Y и Z могут увеличиваться и уменьшаться с регулярными интервалами при наличии режимов косвенной адресации.
- Модуль ALU, который разделен на три основные функции, известные как прямые, арифметические и битовые функции, имеет прямое соединение с 32 регистрами общего назначения в пределах одного такта.
5. Компиляторы ATmega8
Если вы новичок в микроконтроллере, вы можете немного скептически относиться к компилятору, который вы можете использовать для написания и компиляции кода в ваш контроллер AVR. Я объединил некоторые базовые компиляторы, некоторые из которых лучше других с точки зрения эффективности. Хотя в бесплатных версиях могут отсутствовать некоторые функции, их рекомендуется начать с новичка, чтобы получить практический опыт работы с контроллером AVR.- IAR оказался лучшим компилятором для AVR.Несмотря на то, что он дорогой и имеет высокопрофессиональный интерфейс, он выполняет инструкции с приличной скоростью.
- Порт GCC — хороший вариант для AVR, который работает как с Linux, так и с Windows. Интерфейс немного сложный.
- ImageCraft — еще один правильный вариант для начала, но в нем отсутствуют некоторые функции графического интерфейса, такие как редактор и управление проектами, которые могут создавать проблемы во время выполнения кода.
- CodeVision поставляется с CodeWizard и очень экономичен.
6. Взаимодействие ATmega8 с Arduino
ATmega8 может взаимодействовать с Arduino для разработки встроенного проекта. На следующем рисунке показано взаимодействие ATmega8 с Arduino.- Если вы новичок в плате Arduino, вы должны попробовать эти проекты Arduino для начинающих, они помогут понять основные функции платы Arduino.
7. Блок-схема ATmega8
Блок-схема поможет вам понять, как основные функции и компоненты связаны и работают внутри устройства.На следующем рисунке показана блок-схема ATmega8.- ATmega8 — это маломощный микроконтроллер CMOS AVR, который в основном основан на архитектуре RISC. Выполняя мощные инструкции за один тактовый цикл, ATmega8 может выполнять и выполнять мощные инструкции с использованием 1MIPS на МГц за один тактовый цикл, что значительно помогает в оптимизации энергопотребления.
8. Проекты и приложения ATmega8
- Используется во встроенных и роботизированных системах
- Широко используется в студенческих проектах
- Система домашней безопасности
- Для конструирования квадрокоптеров
- Промышленная автоматизация
Введение в архитектуру микроконтроллера Atmega8 и ее приложения
Аббревиатура микроконтроллера AVR — «Advanced Virtual RISC», а микроконтроллер — это краткое обозначение микроконтроллера.Микроконтроллер — это крошечный компьютер на одной микросхеме, который также называют устройством управления. Подобно компьютеру, микроконтроллер состоит из множества периферийных устройств, таких как блоки ввода и вывода, память, таймеры, последовательная передача данных, программируемая. Приложения микроконтроллера включают встроенные приложения и автоматически управляемые устройства, такие как медицинские устройства, устройства дистанционного управления, системы управления, офисные машины, электроинструменты, электронные устройства и т. Д. На рынке доступно различных типов микроконтроллеров , таких как 8051, PIC и Микроконтроллер AVR.В данной статье представлена краткая информация о микроконтроллере AVR Atmega8.
Что такое микроконтроллер AVR Atmega8?
В 1996 году микроконтроллер AVR был произведен компанией «Atmel Corporation». Микроконтроллер включает гарвардскую архитектуру, которая быстро работает с RISC. Характеристики этого микроконтроллера включают в себя функции, отличные от других, таких как режимы сна-6, встроенный АЦП (аналого-цифровой преобразователь), внутренний генератор и последовательный обмен данными, выполняет инструкции за один цикл выполнения.Эти микроконтроллеры были очень быстрыми, и они использовали низкое энергопотребление для работы в различных режимах энергосбережения. Доступны различные конфигурации микроконтроллеров AVR для выполнения различных операций, таких как 8-битные, 16-битные и 32-битные. Пожалуйста, обратитесь к приведенной ниже ссылке; Типы микроконтроллеров AVR
Микроконтроллер Atmega8 МикроконтроллерыAVR доступны в трех различных категориях, таких как TinyAVR, MegaAVR и XmegaAVR.
- Микроконтроллер Tiny AVR очень мал по размеру и используется во многих простых приложениях.
- Mega AVR микроконтроллер очень мал. известен благодаря большому количеству интегрированных компонентов, хорошей памяти и используется в современных и множественных приложениях.
- Микроконтроллер Xmega AVR применяется в сложных приложениях, требующих высокой скорости и огромной программной памяти.
Описание выводов микроконтроллера Atmega8
Основная особенность микроконтроллера Atmega8 заключается в том, что все выводы микроконтроллера поддерживают два сигнала, кроме 5-выводных. Микроконтроллер Atmega8 состоит из 28 контактов, из которых контакты 9,10,14,15,16,17,18,19 используются для порта B, контакты 23,24,25,26,27,28 и 1 используются для порта C и Контакты 2, 3, 4, 5, 6, 11, 12 используются для порта D.
Конфигурация контактов микроконтроллера Atmega8- Контакт -1 является контактом RST (сброс) и подает сигнал низкого уровня в течение времени, превышающего минимальная длина импульса вызовет СБРОС.
- Контакты 2 и 3 используются в USART для последовательной связи.
- Контакты 4 и 5 используются в качестве внешнего прерывания. Один из них будет активироваться, когда установлен бит флага прерывания в регистре состояния, а другой будет активироваться до тех пор, пока условие вторжения будет успешным.
- Выводы 9 и 10 используются в качестве генераторов счетчиков таймера, а также в качестве внешнего генератора, в котором кристалл напрямую связан с двумя выводами. Контакт-10 используется для низкочастотного кварцевого генератора или кварцевого генератора.Если внутренний настраиваемый RC-генератор используется в качестве источника CLK и разрешен асинхронный таймер, эти выводы можно использовать в качестве вывода генератора таймера.
- Pin-19 используется как Master CLK o / p, ведомый CLK i / p для SPI-канала.
- Pin-18 используется как Master CLK i / p, slave CLK o / p.
- Pin-17 используется как Master data o / p, slave data i / p для SPI-канала. Он используется как i / p, когда разрешен ведомым устройством, и является двунаправленным, когда это разрешено ведущим устройством. Этот вывод также можно использовать в качестве o / p для сравнения с match o / p, что помогает в качестве внешнего o / p для таймера / счетчика.
- Pin-16 используется как выбор ведомого i / p. Его также можно использовать в качестве таймера или счетчика1, для сравнения, вывод PB2 можно использовать как выход из положения.
- Вывод 15 может использоваться как внешний вывод таймера или совпадения счетчика.
- Вывод 23 на выводы 28 используются для каналов АЦП (цифровое значение аналогового входа). Контакт 27 также может использоваться как последовательный интерфейс. CLK, а контакт 28 может использоваться как данные последовательного интерфейса.
- Контакты 12 и 13 используются в качестве аналоговых i / ps компаратора.
- Выводы 6 и 11 используются в качестве источников таймера / счетчика.
Архитектура микроконтроллера AVR Atmega8
Архитектура микроконтроллера Atmega AVR включает следующие блоки.
Архитектура микроконтроллера Atmega8Память: Имеет 1 Кбайт внутренней SRAM, 8 Кбайт флэш-памяти программ и 512 байт EEPROM.
Порты ввода-вывода: Он имеет три порта, а именно порт-B, порт-C и порт-D, и с этих портов можно получить доступ к 23 линиям ввода-вывода.
Прерывания: Два внешних источника прерываний расположены в порту D.Девятнадцать разнородных векторов прерываний, поддерживающих девятнадцать событий, производимых внутренними периферийными устройствами.
Таймер / счетчик: Доступны 3 внутренних таймера, 8 бит-2, 16 бит-1, представляющие многочисленные рабочие режимы и поддерживающие внутреннюю / внешнюю синхронизацию.
Последовательный периферийный интерфейс (SPI): Микроконтроллер ATmega8 содержит три встроенных устройства связи. Один из них — SPI, 4 контакта выделены микроконтроллеру для реализации этой системы связи.
USART: USART — одно из самых мощных коммуникационных решений. Микроконтроллер ATmega8 поддерживает как синхронные, так и асинхронные схемы передачи данных. Для этого на нем выделено три контакта. Во многих коммуникационных проектах широко используется модуль USART для связи с ПК-микроконтроллером.
Двухпроводный интерфейс (TWI): TWI — еще одно устройство связи, которое присутствует в микроконтроллере ATmega8. Это позволяет разработчикам установить связь между двумя устройствами с использованием двух проводов вместе с общим заземлением. Поскольку выход TWI выполняется с использованием открытого коллектора, поэтому необходимо обязательно установить внешние подтягивающие резисторы. схема.
Аналоговый компаратор: Этот модуль встроен в интегральную схему, которая предлагает возможность контраста между двумя напряжениями, связанными с двумя входами компаратора через внешние контакты, связанные с микроконтроллером.
АЦП: Встроенный АЦП (аналого-цифровой преобразователь) может преобразовывать аналоговый i / p-сигнал в цифровые данные с разрешением 10 бит. Это разрешение вполне достаточно для приложений низкого уровня.
Приложения микроконтроллера Atmega8
Микроконтроллер Atmega8 используется для создания различных электрических и электронных проектов.Некоторые проекты микроконтроллеров AVR atmega8 перечислены ниже.
Atmega8 на основе Project- AVR на базе микроконтроллера LED Matrix Interfacing
- UART связь между Arduino Uno и ATmega8
- Interfing оптопары с микроконтроллером ATmega8
- AVR на базе микроконтроллера и системы пожарной сигнализации
- AVR Измерение интенсивности света с помощью микроконтроллера AVR
- Измерение силы света
- с использованием микроконтроллера LR
- Амперметр 100 мА на базе микроконтроллера AVR
- ATmega8 Система противоугонной сигнализации на базе микроконтроллера
- Интерфейс джойстика на базе микроконтроллера AVR
- Интерфейс микроконтроллера AVR Интерфейс гибкого датчика
- Управление шаговым двигателем с использованием микроконтроллера AVR
Таким образом, все это о микроконтроллере Atmega8 учебник , который включает, что такое микроконтроллер Atmega8, архитектура, конфигурация контактов и его приложения.Мы надеемся, что вы лучше понимаете эту концепцию. Кроме того, любые сомнения относительно этой концепции или реализации проектов на основе микроконтроллеров AVR, пожалуйста, оставьте свой отзыв, комментируя в разделе комментариев ниже. В чем разница между микроконтроллером Atmega8 и Atmega 32?
atmega — Можно ли подключить USB-принтер к Atmega8
atmega — Можно ли подключить USB-принтер к Atmega8 — Обмен электротехнического стекаСеть обмена стеков
Сеть Stack Exchange состоит из 178 сообществ вопросов и ответов, включая Stack Overflow, крупнейшее и пользующееся наибольшим доверием онлайн-сообщество, где разработчики могут учиться, делиться своими знаниями и строить свою карьеру.
Посетить Stack Exchange- 0
- +0
- Авторизоваться Зарегистрироваться
Electric Engineering Stack Exchange — это сайт вопросов и ответов для профессионалов в области электроники и электротехники, студентов и энтузиастов.Регистрация займет всего минуту.
Зарегистрируйтесь, чтобы присоединиться к этому сообществуКто угодно может задать вопрос
Кто угодно может ответить
Лучшие ответы голосуются и поднимаются наверх
Спросил
Просмотрено 280 раз
\ $ \ begingroup \ $Хотите улучшить этот вопрос? Добавьте подробности и проясните проблему, отредактировав этот пост.
Закрыт 4 года назад.
У меня есть термопринтер USB, которым я хочу управлять с помощью шестнадцатеричных команд из его таблицы данных с дешевых микроконтроллеров. Но для этого мне нужно создать USB-хост на моей плате, а для этого требуется нечто большее, чем просто Atmega8. Вместо этого, если я просто брошу usb-пакет, в котором есть моя команда, от контроллера к принтеру, это сработает?
Создан 18 фев.
\ $ \ endgroup \ $ 8 \ $ \ begingroup \ $USB — это особенно сложный и чувствительный к времени протокол, который не способствует передаче битов на микроконтроллере.Даже попытка вручную реализовать конечный автомат USB в FPGA с нуля потребует значительного объема работы, требующей глубоких знаний спецификации USB и практических особенностей реализации.
Вам понадобится внешняя ИС USB-хоста или микроконтроллер со встроенной поддержкой USB-хоста.
Создан 18 фев.
Полиномиальный5,1344 золотых знака3333 серебряных знака6868 бронзовых знаков
\ $ \ endgroup \ $ 4язык-c
Электротехнический стек Exchange лучше всего работает с включенным JavaScriptВаша конфиденциальность
Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Принимать все файлы cookie Настроить параметры
USB — USB-драйвер только с прошивкой для микроконтроллеров Atmel AVR
V-USB — USB-драйвер только с прошивкой для микроконтроллеров Atmel AVR Товары Маленький снитч Микро-снитч LaunchBar Средство просмотра политики доступа в Интернет Больше продуктов Блог Магазин Служба поддержки Вакансии V-USB МенюV-USB — это программная реализация низкоскоростного USB-устройства для микроконтроллеров Atmel AVR®, позволяющая создавать USB-оборудование практически с любым микроконтроллером AVR®, не требуя дополнительных микросхем.
Характеристики
- Низкоскоростное устройство, полностью совместимое с USB 1.1, за исключением обработки ошибок связи и электрических характеристик.
- Примеры проектов демонстрируют реализацию драйверов устройств и хостов в Linux, Mac OS X и Windows.
- Поддерживает несколько конечных точек: одну конечную точку управления, две конечные точки прерывания / массового ввода и до 7 конечных точек прерывания / массового вывода. (Обратите внимание, что спецификация USB запрещает массовые конечные точки для низкоскоростных устройств, но V-USB в некоторой степени их поддерживает.)
- По умолчанию передается размер до 254 байтов, больше как опция конфигурации.
- Поставляется со свободно используемыми идентификаторами USB (пары Vendor-ID и Product-ID).
- Работает на любом микроконтроллере AVR с как минимум 2 КБ флэш-памяти, 128 байт ОЗУ и тактовой частотой не менее 12 МГц.
- Не требуется UART, таймера, входного блока захвата или другого специального оборудования (кроме одного прерывания, запускаемого фронтом).
- Может работать с тактовой частотой 12 МГц, 15 МГц, 16 МГц, 18 МГц или 20 МГц или от 12.Внутренний RC-генератор на 8 МГц или 16,5 МГц.
- Функциональность высокого уровня написана на C и хорошо прокомментирована.
- Размер кода всего от 1150 до 1400 байт.
- Вы можете выбрать лицензию: с открытым исходным кодом или коммерческую. Щелкните здесь, чтобы узнать подробности.
Оборудование
На этой схеме показана типовая схема устройства с питанием от шины.
D1 и D2 представляют собой недорогую замену микросхеме стабилизатора с низким падением напряжения 3,3 В, такой как LE33. Работа AVR при более высоких напряжениях выходит за пределы синфазного диапазона многих микросхем USB.Если вам нужно запустить АРН при 5 В, добавьте стабилитроны 3,6 В на D + и D-, чтобы ограничить напряжение.
Макетную плату см. На metaboard.
Преимущества перед альтернативными решениями
Почему бы не выбрать микроконтроллер со встроенным USB-оборудованием? Доступно несколько из них (см. Http://janaxelson.com). Или объединить микроконтроллер по вашему выбору с USB-чипом?
Преимущества перед микроконтроллерами с USB-оборудованием
- Стандартные контроллеры AVR обычно легче получить.
- Большинство контроллеров с поддержкой USB доступны только в SMD, с чем практически невозможно справиться любителям.
- V-USB поставляется с бесплатной общей парой Vendor- / Product-ID.
- Для AVR доступны хороший бесплатный компилятор ANSI-C (GNU gcc) и бесплатная система разработки для Windows (WinAVR). Контроллеры
- AVR быстрее, чем большинство контроллеров со встроенным USB, и стоят меньше.
- Автономная работа: некоторые контроллеры USB загружают свои микропрограммы с главного компьютера в оперативную память.Они не работают без подключения к хосту. Контроллеры
- AVR имеют встроенную EEPROM.
Преимущества перед отдельным периферийным USB-устройством
- Без дополнительных затрат.
- Никаких дополнительных аппаратных сложностей: более простая печатная плата, меньше отказов.
- Больше свободы в выборе дескрипторов USB.
- V-USB поставляется с бесплатной общей парой Vendor- / Product-ID.
- Используется мало аппаратных ресурсов: всего два-три контакта ввода / вывода. Микросхемы USB
- часто трудно достать.
Преимущества перед другими реализациями только с микропрограммным обеспечением
Аналогичный драйвер для микроконтроллеров серии AVR можно приобрести у Игоря Чешко. Наш USB-драйвер имеет следующие преимущества перед драйвером Игоря:
- Весь настраиваемый код написан на ANSI-C, поэтому его легче поддерживать.
- Модульная концепция: легче интегрировать в существующие проекты.
- Немного меньший размер кода, несмотря на языковые модули высокого уровня.
- Быстрее: все кодирование / декодирование (USB требует кодирования NRZI и вставки битов) выполняется в реальном времени, а не в основном цикле после сохранения потока необработанных данных.
- Больше конечных точек, дескрипторы USB могут быть лучше настроены.
- V-USB поставляется с бесплатной общей парой Vendor- / Product-ID.
- Уровень соответствия стандартам задокументирован (описание ограничений и потенциальных проблем).
- По лицензии GNU General Public License или по коммерческой лицензии.
Dick Streefland урезал старую версию V-USB до самого основания. Его код легче читать и понимать, но ему не хватает некоторых функций, которые есть в V-USB:
.- V-USB поддерживает до 4 конечных точек.Это позволяет реализовать устройства, соответствующие классу устройств HID или CDC.
- V-USB проходит тесты в тестовой утилите usb.org.
- V-USB поддерживает множество различных тактовых частот, некоторые даже с внутренним RC-генератором.
AVR является зарегистрированным товарным знаком Atmel Corporation
Atmega32 — Atmega8 Master-Slave SPI Связь: 4 шага (с изображениями)
SPI — Сведения о регистре:AVR содержит следующие три регистра, которые имеют дело с SPI:
- SPCR — Регистр управления SPI — Этот регистр является главным регистром i.е. он содержит биты для инициализации SPI и управления им.
- SPSR — Регистр состояния SPI — это регистр состояния. Этот регистр используется для чтения состояния шин.
- SPDR — Регистр данных SPI — Регистр данных SPI — это регистр чтения / записи, в котором происходит фактическая передача данных.
Этот регистр управляет SPI. Мы получим биты, которые включают SPI, настраивают тактовую частоту, настраивают ведущий / ведомый и т. Д.
Бит 7: SPIE — Разрешение прерывания SPI
Бит разрешения прерывания SPI используется для разрешения прерываний в SPI. Обратите внимание, что для использования функций прерывания необходимо разрешить глобальные прерывания. Установите этот бит в «1», чтобы разрешить прерывания.
Бит 6: SPE — SPI Enable Бит разрешения SPI используется для включения SPI в целом. Когда этот бит установлен в 1, SPI включен или отключен. Когда SPI включен, обычные функции ввода / вывода контактов отменяются.
Бит 5: DORD — Порядок данных. DORD означает Data ORDer. Установите этот бит в 1, если вы хотите сначала передать LSB, иначе установите его в 0, и в этом случае он сначала отправит MSB.
Бит 4: MSTR — Выбор ведущего / ведомого Этот бит используется для настройки устройства как ведущего или ведомого. Когда этот бит установлен в 1, SPI находится в режиме Master (т.е. часы будут генерироваться конкретным устройством), иначе, когда он установлен в 0, устройство находится в режиме SPI Slave.
Бит 3: CPOL — Полярность тактового сигнала Этот бит выбирает полярность тактового сигнала, когда шина неактивна.Установите этот бит в 1, чтобы гарантировать, что SCK будет ВЫСОКИМ, когда шина бездействует, в противном случае установите его в 0, чтобы SCK был LOW в случае бездействия шины. Это означает, что когда CPOL = 0, то передний фронт SCK является передним фронтом тактовой частоты. Когда CPOL = 1, тогда передний фронт SCK будет фактически задним фронтом тактовой частоты. Смущенный? Что ж, мы еще вернемся к этому чуть позже в этом посте. Функциональные возможности CPOL
Бит 2: CPHA — Фаза синхросигнала Этот бит определяет, когда необходимо выполнить выборку данных.Установите этот бит в 1 для выборки данных на переднем (первом) фронте SCK, в противном случае установите в 0 для выборки данных на заднем (втором) фронте SCK. Функциональность CPHA
Бит 1,0: SPR1, SPR0 — Выбор тактовой частоты SPI Эти биты вместе с битом SPI2X в регистре SPSR (обсуждается далее) используются для выбора делителя частоты генератора, где fOSC обозначает внутренний часы, или частота кристалла в случае внешнего генератора.
Регистр состояния SPI (SPSR)
Регистр состояния SPI — это регистр, из которого мы можем получить состояние шины SPI, и в этом регистре также устанавливается флаг прерывания.Ниже приведены биты в регистре SPSR.
Бит 7: SPIF — Флаг прерывания SPI
Флаг прерывания SPI устанавливается всякий раз, когда последовательная передача завершается. Прерывание также генерируется, если бит SPIE (бит 7 в SPCR) включен и глобальные прерывания разрешены. Этот флаг сбрасывается при выполнении соответствующей ISR.
Бит 6: WCOL — Флаг конфликта записи Флаг конфликта записи устанавливается, когда данные записываются в регистр данных SPI (SPDR, обсуждается далее), когда есть надвигающаяся передача или линии данных заняты.Этот флаг можно сбросить, сначала прочитав регистр данных SPI, когда установлен WCOL. Обычно, если мы правильно подаем команды передачи данных, этой ошибки не возникает. Мы обсудим, как можно избежать этой ошибки, на более поздних этапах публикации.
Бит 5: 1 Это зарезервированные биты.
Бит 0: SPI2x — режим двойной скорости SPI Бит режима двойной скорости SPI уменьшает делитель частоты с 4x до 2x, тем самым удваивая скорость. Обычно этот бит не нужен, если нам не нужны очень конкретные скорости передачи или очень высокие скорости передачи.Установите этот бит в 1, чтобы включить режим двойной скорости SPI. Этот бит используется вместе с битами SPR1: 0 регистра SPCR.
Регистр данных SPI (SPDR)Регистр данных SPI является 8-битным регистром чтения / записи. Это регистр, из которого мы читаем входящие данные и записываем данные, в которые хотим передать.
7-й бит является старшим значащим битом (MSB), а 0-й бит — младшим значащим битом (LSB).
Теперь мы можем связать его с битом 5 SPCR — битом DORD.Когда для DORD установлено значение 1, сначала передается LSB, то есть 0-й бит SPDR, и наоборот.
SPI предлагает 4 режима данных для передачи данных, wiz SPI Mode 0,1,2 и 3, единственная разница в этих режимах заключается в фронте тактового сигнала, на котором производится выборка данных. Это основано на выборе битов CPOL и CPHA.
SPI-Slave Select (SS) PinSS ’(означает, что SS дополняется) работает в активной низкой конфигурации, означает, что нужно выбрать конкретное ведомое устройство, на него должен быть передан сигнал LOW.
При установке в качестве входа, вывод SS ’должен иметь ВЫСОКИЙ (Vcc) на ведущем устройстве и НИЗКИЙ (заземленный) на ведомом устройстве.
Присоединение нескольких ведомых устройств является проблемой, поэтому я расскажу об этом позже, но мой мотив — начать работать в SPI с некоторой базовой идеей.
Абсолютное указывающее устройство USB HID с использованием ATmega8 и магнитометра — Denilson Sá
В ноябре прошлого года я, наконец, закончил колледж! Я получил степень бакалавра компьютерных наук в UFRJ ( Федеральный университет Рио-де-Жанейро, ).
И для моего старшего проекта (или выпускного проекта, или TCC — Trabalho de Conclusão de Curso , или PFC — Projeto Final de Curso ) я решил создать USB-устройство, которое могло бы управлять указателем мыши, используя AVR Микроконтроллер ATmega8 и магнитометр.
Магнитометр — это цифровой компас, который может измерять магнитное поле (в трех измерениях). Идея состоит в том, что пользователь держит магнитометр и перемещает его (на самом деле учитывается только вращение).При изменении ориентации магнитометра изменяется и измеренный трехмерный вектор магнитного поля. Основываясь на этом векторе, микроконтроллер применяет математические вычисления и перемещает указатель мыши в некоторую позицию на экране.
В двух словах, устройство ведет себя как Wiimote, но использует совершенно другую технологию. Вы просто указываете устройством в каком-то направлении, и указатель мыши перемещается в это положение.
Поскольку микроконтроллер реализует класс USB HID (с использованием реализации USB только для прошивки V-USB от OBJECTIVE DEVELOPMENT Software GmbH (Wayback Machine)), он сразу работает в любой операционной системе, не требуя каких-либо специальных драйверов.Он был успешно протестирован в Linux, Mac OS X и Windows. Он также был протестирован на одном устройстве Android, но не поддерживал абсолютное указывающее устройство.
Ссылки:
Видео:
Dispositivo apontador com интерфейс USB usando magnetômetro (доступны английские субтитры)
Перемещение указателя мыши с помощью движений головы
Абсолютное указывающее устройство USB, реализованное в ATmega8 с использованием магнитометра (незавершенное видео)
Этот проект был сложным и очень полезным.Приятно видеть, как он работает после стольких недель бодрствования по ночам, разработки и отладки.
Общая информация: идея этого проекта была вдохновлена выступлением / демонстрацией Марсина Вичари на Google I / O 2011: Секреты Google Pac-Man: Game Show
МикроконтроллерAvr Atmega8 — особенности и блок-схема с даташитом
В моей предыдущей статье я говорил о ATmega32 . Теперь позвольте мне представить еще одного члена семейства микроконтроллеров AVR, ATmega8 .Этот член имеет много функций, аналогичных ATmega32 . Но в нем уменьшено количество функций и возможностей, но при этом достаточно функций для работы. Теперь позвольте мне сказать вам, что если вы хотите собрать знания и в то же время сделать это с меньшими затратами, чем бюджет ATmega32 , вы можете подумать о создании проектов с ATmega8 . В этом случае одна функция, которую вы не сможете реализовать, — это интерфейс JTAG . Но остальные функции доступны в этой ИС.Посмотрим, что можно получить от ATmega8.
Схема выводов микроконтроллера Atmega8: —
Схема контактов — Atmega8Память: Имеет 8 Кбайт, флеш-памяти программ (срок службы 10 000 циклов записи / стирания), 512 байтов EEPROM (100 000 циклов записи / стирания). 1 Кбайт Внутренняя SRAM
Порты ввода / вывода: 23 порта ввода / вывода могут быть получены от трех портов; а именно порт B, порт C и порт D.
Прерывания: Два внешних источника прерываний, расположенных в порту D.19 различных векторов прерываний, поддерживающих 19 событий, генерируемых внутренними периферийными устройствами.
Таймер / счетчик: Доступны три внутренних таймера, два 8-битных, один 16-битный, предлагающие различные режимы работы и поддерживающие внутреннюю или внешнюю синхронизацию.
SPI (последовательный периферийный интерфейс): ATmega8 содержит три интегрированных устройства связи. Один из них — последовательный периферийный интерфейс. Для реализации этой схемы связи Atmega8 назначены четыре контакта.
USART: Одним из самых мощных коммуникационных решений является USART , а ATmega8 поддерживает как синхронные, так и асинхронные схемы передачи данных. Для этого предусмотрены три контакта. Во многих проектах этот модуль широко используется для связи контроллера PC-Micro.
TWI (двухпроводный интерфейс): Еще одно устройство связи, которое присутствует в ATmega8, — это двухпроводный интерфейс.