Схемы, устройства и проекты на микроконтроллерах 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. Он достаточно широко применяется в робототехнике, … Читать далее →
Устройства на микроконтроллерах Atmel серии AVR
GSM сигнализация для автомобиля (ATmega16)
07.10.2010
Устройство предназначено для своевременного оповещения автовладельца о взломе автомобиля. Сигнализация контролирует двери, окна,…
Просмотров: 10390
Простой цифровой спидометр с семисегментным индикатором (ATmega8)
07.10.2010
Устройство представляет собой простой спидометр на AVR микроконтроллере. Его отличительной чертой является минимум деталей, всего 4…
Тахометр на AVR микроконтроллере (ATtiny2313, C)
13.01.2010
Данное устройство представляет собой неплохой тахометр, предел его измерений
составляет 100 – 9990 об/мин. Точность измерения – ± 3 об/мин….
Просмотров: 27914
Mega-Генератор (ATmega16, C)
09.08.2008
Попросили меня как-то на работе (автосервис) организовать генератор для проверки различных электроклапанов, инжекторов, катушек…
Просмотров: 9447
Простейший бортовой компьютер на любой инжекторный двигатель (ATmega8, C)
08.08.2008
Все началось с того, что как мне казалось, у меня большой расход топлива. Машина у меня Audi-80 с 2-х литровым движком (ABT) и моновпрыском (одна…
Просмотров: 13395
Автомобильный тахометр (AT89C2051, asm)
08.08.2008
Автомобильный тахометр представляет собой функционально законченный блок, который устанавливается в салоне автомобиля.
…
Релейный регулятор громкости по схеме Никитина c LED дисплеем, ПДУ (RC5) (ATmega8, C)
16.02.2011
Как следует из названия, в данной статье представлено устройство собранное на микроконтроллере для регулирования громкости, по…
Просмотров: 5473
Релейный регулятор громкости по схеме Никитина с LCD дисплеем и ПДУ (RC5) (ATmega8, C)
16.02.2011
Как следует из названия, в данной статье представляется устройство для регулирования громкости, собранное по схеме Никитина. В отличии…
Просмотров: 4326
Релейный регулятор громкости по схеме Никитина с LCD, ПДУ (RC5) и кнопками (ATmega8, C)
16.02.2011
Как следует из названия, в данной статье представляется устройство для регулирования громкости, собранное по схеме Никитина. В этой…
Просмотров: 3076
Релейный регулятор громкости по схеме Никитина с LCD, ПДУ (RC5) и энкодером (ATmega8, C)
16.02.2011
Просмотров: 6041
Одноканальный микроконтроллерный приёмник диапазона 400 мГц на синтезаторе (ATtiny24)
02.12.2010
Приёмник предназначен для приёма сигналов радиомикрофонов на ПАВ-резонаторах, работающих в диапазоне 400-450 мГц с WFM – широкополосной…
Просмотров: 3669
Приёмник 399-469 мГц с дисплеем от NOKIA 3310 (ATmega8)
02.12.2010
Данный приёмник является продолжением разработки «Приёмника диапазона 4хх мГц на синтезаторе».
Приёмник имеет следующие…
Просмотров: 5843
Простой WAV плеер на AVR микроконтроллере (ATtiny25/45/85, C)
31.10.2010
Это простой SD аудио плеер на одном микроконтроллере ATtiny25/45/85. У этих микроконтроллеров есть два быстрых ШИМ (fast PWM) выхода с несущей…
Музыкальный Звонок на MMC/SD карте (ATmega32, C)
17.03.2008
Простые однотональные мелодии на сегодняшний день уже не могут вызвать восторга у благодарных слушателей. За примерами далеко ходить…
Просмотров: 9378
AVR-USB-MEGA16: USB BootloadHID для микроконтроллеров AVR (ATmega8, ATmega16, C)
30.08.2010
В статье описывается USB bootloader BootloadHID, который хорошо подходит для ATmega8 и ATmega16, так как у него код умещается в 2048…
Просмотров: 5829
Загрузчики (bootloader) для микроконтроллеров AVR
30.08.2010
Описана технология bootloader, встроенная во все микроконтроллеры Atmel AVR семейства ATmega. Материал для статьи взят с сайта…
Просмотров: 6388
Управление электрическими цепями через USB (ATmega8, C)
29.10.2011
Давайте сделаем устройство, которое будет подключаться к USB и сможет управлять электроцепями(например, включать освещение),…
USB-контроллер джойстика на основе микроконтроллера AVR (ATmega8, C)
15.05.2011
Я начал разрабатывать этот контроллер джойстика, вдохновленный необходимостью в простом самодельном джойстике, который мог бы…
Просмотров: 9416
LCD2USB – подключение LCD индикатора к компьютеру через USB (ATmega8, C)
04.10.2010
Цель LCD2USB – подсоединить текстовые дисплеи на основе контроллера HD44780 к персональным компьютерам (PC) через USB. LCD2USB разрабатывался как…
Просмотров: 6727
Простой VGA/Видео адаптер (ATmega8, C)
28.08.2010
Задавшись целью подключить VGA-монитор для вывода текстовых данных с микроконтроллерной системы сбора информации – я с удивлением…
Просмотров: 10457
Уменьшение шума от кулеров, с выводом температур на LCD (ATmega8, C)
28.08.2010
Устройство создано для уменьшения шума от кулеров компьютера и контроле температур в системном блоке на LCD дисплее. Включает в себя…
Индикатор интенсивности работы компьютера (AT89C2051, asm)
28.08.2010
Идея создания этого устройства пришла после того, как в компьютере начали разом «стучать» оба жестких диска, причиной чего, как…
Просмотров: 3978
Регулятор оборотов 12V вентилятора на DS18B20 (ATtiny13, C)
01.07.2009
Взял все вентиляторы из своего компа и попробовал при каком напряжении они стартуют. Получилась довольно печальная картина: некоторые…
Просмотров: 12234
Подключение знакосинтезирующего LCD 4×16 к USB (AT90S2313, C)
01.07.2009
Данный проект представляет из себя LCD дисплей 4×16 подключаемый к USB. Проект реализован на довольно дешёвом и доступном МК AT93S2313 формы Atmel….
Просмотров: 3037
Управление большим количеством нагрузок через USB/COM порт (PIC18F252, C)
15.02.2009
Просмотров: 5722
Стрелочный индикатор загрузки центрального процессора (AT90S2313, C)
09.08.2008
Драйвер берет значение текущей загрузки ЦП и передает его в СОМ порт. К СОМ порту подключен контроллер, принимающий значения текущей…
Просмотров: 4559
Цифровая паяльная станция своими руками (ATmega8, C)
27.05.2012
Состав: ATmega8, LM358, IRFZ44, 7805, мост, 13 резисторов, один потенциометр, 2 электролита, 4 конденсатора, трехразрядный светодиодный семисегментный…
Просмотров: 46060
Переделка ультразвуковой ванночки Ya Xun YX2000A (ATtiny2313, C)
12.03.2011
Перед покупкой уз-ванночки я долго бегал по городу и заходил в сервисные центры, где ремонтируют мобилки, чтобы узнать, какими…
Просмотров: 5415
Измеритель емкости и индуктивности (ATtiny15, asm)
19.02.2011
Просмотров: 7878
Тестер для LAN кабеля (ATtiny2313, asm)
02.11.2010
Очень простой но практичный тестер для LAN кабелей. Проверяет тип кабеля (прямой или кросс), а так же возможные неисправности.
Фото…
Просмотров: 6712
Цифровой осциллограф на микроконтроллере AVR (ATmega32, C)
01.11.2010
Несколько месяцев назад, во время сёрфинга в интернете, я наткнулся на осциллограф на микроконтроллере PIC18F2550 и графическом дисплее на…
Просмотров: 11409
Частотомер на AVR микроконтроллере (ATmega16, C)
11.10.2010
Частотомер 4-110 МГц.
Изначально разработан для измерение частоты и подсчёта импульсов (за 1сек.) при разработке цифровых устройств, но…
Просмотров: 4204
Микроконтроллерный сверлильный станок для печатных плат (ATtiny13, C)
11.10.2010
Травить платы мы уже научились, теперь надо сверлить отверстия. Можно ручной дрелью, можно электродрелью, можно станком… Электродрелью…
Просмотров: 17212
Блок питания 3-20В, 0.1-10А (ATmega8, C)
12.01.2010
Без чего не может обойтись не один радиолюбитель? Правильно – без ХОРОШЕГО блока питания, а ещё лучше ХОРОШЕГО ДВУХКАНАЛЬНОГО блока…
Просмотров: 25935
Микроконтроллерный частотомер с LCD индикатором (ATmega8515, asm)
09.08.2008
Принцип работы частотомера хорошо известен. Подсчитав число периодов входного сигнала за известное время, он приводит его к секундному…
Просмотров: 4339
Таймер для паяльника (ATmega16, C)
09.08.2008
Многие из нас сталкивались с прогоранием жала паяльника из-за того, что забыли выключить после завершения заботы. Так же горячий…
Просмотров: 3275
Цифровая паяльная станция своими руками (v1.0) (ATmega8, C)
09.08.2008
Начать нужно с того, что однажды я озадачился приобретением паяльной станции, ибо “вечные” жала портятся от перегрева, а мой…
Просмотров: 11425
Цифровая паяльная станция своими руками (v2.0) (ATmega8, C)
09.08.2008
Это вторая версия статьи “Цифровая паяльная станция своими руками”
Начать нужно с того, что однажды я озадачился приобретением…
Просмотров: 7620
Паяльная станция на микроконтроллере с PID регулятором температуры (ATmega8)
09.08.2008
Цифровая паяльная станция на микроконтроллере представляет собой по сути ПИД (Пропорционально – Интегрально – Дифференциальный)…
Просмотров: 11809
Mega-Генератор (ATmega16, C)
09.08.2008
Попросили меня как-то на работе (автосервис) организовать генератор для проверки различных электроклапанов, инжекторов, катушек…
Просмотров: 9447
Измеритель емкости и частотомер на AVR микроконтроллере (ATmega8, C)
09.08.2008
Предыстория данного проекта такая… Нашел я в интернете одну статейку китайского разработчика, в которой описывалось устройство…
Просмотров: 12589
Цифровой КСВ метр на микроконтроллере (ATmega8)
09.08.2008
Цифровой автоматический КСВ метр обеспечивает быстрый пересчет Коэффициента Стоячей Волны в автоматическом режиме. Этот прибор…
Просмотров: 5435
Вольтметр и амперметр на микроконтроллере для лабораторного блока питания (ATmega8)
09.08.2008
Не так давно я задался целью сделать себе для работы лабораторный источник питания. Долго думал как реализовать с помощью ШИМ и мощных…
Просмотров: 16306
Двухканальный стабилизированный диммер (с подробнейшим описанием) (ATmega16, asm)
03.08.2013
1. ОБЩИЕ СВЕДЕНИЯ
1.1. Введение
Несмотря на бурное развитие сверх ярких светодиодов, в широкой продаже пока не появились светодиодные…
Просмотров: 5793
Cхемотехника и программирование устройств фазового регулирования (ATtiny2313, C)
24.11.2011
Кто из вас не хотел изготовить себе сенсорный диммер с возможностью дистанционного управления светом? Наверное, многие. Так вот и я…
Просмотров: 6162
Цифровой инклинометр (акселерометр) MMA7260Q (ATmega32, AD7799, C)
10.06.2011
Инклинометр – устройство, предназначенное для измерения угла наклона различных объектов, относительно гравитационного поля…
Просмотров: 5869
Динамическая индикация индикатора по последовательной шине (ATmega8, 74HC595, C)
17.02.2011
Девяти разрядный семисегментный индикатор с последовательной шиной выполнен на двух микросхемах 74HC595D. Индикатор стоял в…
Просмотров: 6110
Использование графического LCD WG12864A (ATmega8, C)
25.12.2010
Наряду с символьными ЖК, современные производители выпускают разнообразные графические индикаторы. Если у символьных, как правило,…
Просмотров: 5004
Применение семи сегментных LED модулей HT1611, HT1613, МТ10Т7-7 (asm)
24.12.2010
Практически любое микроконтроллерное устройство имеет те или иные устройства индикации. В простейшем случае это всего несколько…
Просмотров: 5295
Шаговые двигатели – Stepper motors (AT90S2313, asm)
24.12.2010
Шаговые двигатели уже давно и успешно применяются в самых разнообразных устройствах. Их можно встретить в дисководах, принтерах,…
Просмотров: 20090
Подключаем тачскрин к AVR – The AVR based USB HID Touchscreen Mouse (ATmega168, C)
19.11.2010
Примечание от администрации сайта eldigi.ru.
Данная статья является поучительным примером по подключению резистивного сенсорного экрана…
Просмотров: 5284
LCD2USB – подключение LCD индикатора к компьютеру через USB (ATmega8, C)
04.10.2010
Цель LCD2USB – подсоединить текстовые дисплеи на основе контроллера HD44780 к персональным компьютерам (PC) через USB. LCD2USB разрабатывался как…
Просмотров: 6727
Приёмник RC5 на AVR контроллере (ATmega16, C)
25.09.2009
На рисунке сверху – структура посылки передатчика. По первым двум стартовым битам вычисляется период Р. Затем, как видно из рисунка,…
Просмотров: 3276
Подключение знакосинтезирующего LCD 4×16 к USB (AT90S2313, C)
01.07.2009
Данный проект представляет из себя LCD дисплей 4×16 подключаемый к USB. Проект реализован на довольно дешёвом и доступном МК AT93S2313 формы Atmel….
Просмотров: 3037
Управление большим количеством нагрузок через USB/COM порт (PIC18F252, C)
15.02.2009
Цель устройства – обеспечить контроль большого числа цифровых нагрузок через компьютер. Основные применение – автоматическое…
Просмотров: 5722
Музыкальный Звонок на MMC/SD карте (ATmega32, C)
17.03.2008
Простые однотональные мелодии на сегодняшний день уже не могут вызвать восторга у благодарных слушателей. За примерами далеко ходить…
Просмотров: 9378
Двухканальный стабилизированный диммер (с подробнейшим описанием) (ATmega16, asm)
03.08.2013
1. ОБЩИЕ СВЕДЕНИЯ
1.1. Введение
Несмотря на бурное развитие сверх ярких светодиодов, в широкой продаже пока не появились светодиодные…
Просмотров: 5793
15-ти канальный управляемый диммер (ATmega8)
20.05.2011
В наш повседневный быт всё чаще входят различные интеллектуальные системы управления. Стиральные машинки давно сами стирают и сушат,…
Просмотров: 7718
Пульт дистанционного управления для цифровых зеркальных камер (ATtiny12, asm)
02.12.2010
Некоторые модели цифровых фотокамер имеют возможность дистанционного управления с помощью ИК-лучей. Дистанционное управление…
Просмотров: 4738
15-ти канальная система инфракрасного дистанционного управления (ATmega8)
26.10.2010
Основные возможности разработанного модуля дистанционного управления:
· 15 выходов для подключения нагрузок;
·…
Просмотров: 4086
Универсальное устройство: часы, термометр, система удалённого управления (ATmega16)
01.08.2010
Устройство “Universal device” (Универсальное устройство) содержит в себе функции нескольких устройств, которые сильно облегчают жизнь…
Просмотров: 8069
Часы на микроконтроллере ATmega16 (ATmega16, C)
26.01.2010
От администрации сайта eldigi.ru
Автор конструкции предоставил только схемы, исходники и проект для симуляции в Proteus-e. За что ему…
Просмотров: 6981
Сенсорный регулятор освещения с дистанционным управлением (ATtiny2313)
08.03.2009
Предлагаемое устройство — один из вариантов микроконтроллерных регуляторов яркости ламп накаливания, конструкции которых можно…
Просмотров: 7334
Многоканальная система дистанционного управления или «Умный дом» (ATmega16)
24.01.2009
Как говорится, лень – двигатель прогресса. Возможно, поэтому всё большее распространение получают системы дистанционного…
Просмотров: 9479
Часы на ATmega8 (ATmega8, C)
21.06.2008
Два датчика температуры DS18B20 (дома и на улице).
5 будильников.
Отсрочка сигнала, если будильник не отключить, срабатывает примерно…
Просмотров: 15545
Домашняя метеостанция с часами, календарем и будильниками (ATmega32, C)
21.04.2008
Предлагаемый прибор отличается от аналогов использованием современной базы, исчерпывающим в домашних условиях набором измеряемых…
Просмотров: 9009
“МультиПульт” – расширь возможности своего пульта! (ATtiny2313)
13.04.2008
Данная конструкция будет интересна прежде всего владельцам ТВ тюнеров на чипсете Philips SAA7134 и SAA7135. Теоретически, любой пульт от таких ТВ…
Просмотров: 3179
Музыкальный Звонок на MMC/SD карте (ATmega32, C)
17.03.2008
Простые однотональные мелодии на сегодняшний день уже не могут вызвать восторга у благодарных слушателей. За примерами далеко ходить…
Просмотров: 9378
Регулятор яркости лампы накаливания на микроконтроллере (AT89C2051, asm)
01.03.2008
В этом проекте рассказывается о микроконтроллерном регуляторе яркости лампы накаливания (далее просто регулятор). Регулятор…
Просмотров: 6275
Регулятор освещения с дистанционным управлением (AT90S2313, C)
22.01.2008
Предлагаемый прибор умеет не только включать и выключать освещение, но и регулировать его яркость. Он имеет и дополнительную функцию…
Просмотров: 4698
Часы будильник термометр и ИК-ДУ (AT89C4051, C)
18.01.2008
Предлагаемое вниманию читателей устройство выполнено на современной элементной базе и отличается от ранее опубликованных в журнале…
Просмотров: 3661
Счетчик на микроконтроллере (AT90S2313, asm)
06.01.2008
Во многих устройствах бытовой техники и промышленной автоматики сравнительно недавних лет выпусков установлены механические…
Просмотров: 5256
Блок жизнеобеспечения аквариума (AT89C2051, asm)
08.12.2007
Блок жизнеобеспечения аквариума представляет собой функционально законченный блок, который управляет включением компрессора,…
Просмотров: 3728
Продвинутые радио-часы/будильник с термометрами на графическом LCD (ATmega8515)
29.11.2007
Представленное устройство не слишком рентабельно для серийного производства, но представляет собою весьма неплохой пример…
Просмотров: 6303
Датчик утечки газа на микроконтроллере (ATtiny13, C)
10.11.2010
В данной статье представлен датчик утечки газа на микроконтроллере ATtiny13, а в качестве сенсора газа применён MQ-4 фирмы HANWEI ELETRONICS. Это…
Просмотров: 6369
GSM сигнализация для автомобиля (ATmega16)
07.10.2010
Устройство предназначено для своевременного оповещения автовладельца о взломе автомобиля. Сигнализация контролирует двери, окна,…
Просмотров: 10390
Контроллер доступа “Tiny KTM” (AT90S2343)
09.08.2008
Контроллер доступа “Tiny KTM” – проще схемы не бывает! Контроллер предназначен для ограничения и контроля доступа в помещения, такие…
Просмотров: 3481
Электронный замок с ключами iButton (AT89C2051, asm)
09.08.2008
Некоторое время тому назад появился проект «ИМИТАТОР TOUCH-MEMORY DS1990A», т.е. отмычка. Теперь Вашему вниманию предлагается замок к зтой…
Просмотров: 4866
Если Вы потеряли Touch Memory… (AT89C2051, asm)
09.08.2008
Последнее время во многих организациях, а порой и дома, появились дверные замки, ключом к которым является таблетка Touch Memory фирмы DALLAS….
Просмотров: 4145
Имитатор touch-memory DS1990A (AT89C2051, asm)
09.08.2008
Этот проект является развитием проекта Если Вы потеряли Touch Memory…
Имитатор touch-memory DS1990A, который предлагается Вашему вниманию, способен…
Просмотров: 4480
Телефонный охранный сигнализатор (AT90S2313, asm)
09.08.2008
Передать тревожный сигнал на некоторое расстояние можно различными способами. В случае охраны квартиры, когда расстояние до хозяина…
Просмотров: 2606
Автономная охранная система на базе ТМ (ATmega8)
09.08.2008
Автономные системы охраны получили достаточно широкое распространение в нашей стране из-за простоты и дешевизны. Классическая…
Просмотров: 5411
SignALL – GSM сигнализация всем (ATtiny2313)
09.08.2008
“SignALL” – GSM сигнализация (далее по тексту “устройство”), предназначена для охраны помещений, таких как квартиры, дачи,…
Просмотров: 8581
Контроллер доступа Visual KTM (ATiny2313)
09.08.2008
Контроллер предназначен для ограничения и контроля доступа в помещения, такие как жилая комната, рабочий кабинет и т.д., с количеством…
Просмотров: 3566
Система оповещения GSM-click (ATmega8, C)
09.08.2008
Предлагаемое устройство предназначено для оповещения о произошедшем событии по GSM каналу, проще говоря СМС-кой. Подключаем его…
Просмотров: 4479
Зарядное устройство для NiMh и NiCd аккумуляторов AA AAA (ATmega8, C)
29.08.2010
Зарядное устройство предназначено для зарядки NiMh и NiCd аккумуляторов (АА AAA) методом быстрого заряда. В принципе сейчас много микросхем…
Просмотров: 7059
Повышающий преобразователь с PID регулятором (ATmega8)
01.04.2010
ПИД регулятор или пропорционально-интегрально-дифференциальный регулятор – это самый совершенный из существующих типов…
Просмотров: 5079
Блок питания 3-20В, 0.1-10А (ATmega8, C)
12.01.2010
Без чего не может обойтись не один радиолюбитель? Правильно – без ХОРОШЕГО блока питания, а ещё лучше ХОРОШЕГО ДВУХКАНАЛЬНОГО блока…
Просмотров: 25935
Устройство защиты от опасных напряжений (трёхфазное) SOKOL UZP-3F (ATmega8)
08.06.2009
Часто причиной выхода из строя дорогостоящего оборудования, в первую очередь промышленного, является отклонение сетевого напряжения…
Просмотров: 3601
Устройство защиты от опасных напряжений в электросети SOKOL UZP-1F (ATmega8)
08.05.2009
Основные возможности устройства:
Изменение и индикация на двустрочном ЖК-дисплее действующего значения напряжения в диапазоне…
Просмотров: 2795
Вольтметр и амперметр на микроконтроллере для лабораторного блока питания (ATmega8)
09.08.2008
Не так давно я задался целью сделать себе для работы лабораторный источник питания. Долго думал как реализовать с помощью ШИМ и мощных…
Просмотров: 16306
Моддинг блока питания (ATmega8)
25.04.2008
Наверняка нет радиолюбителя, который бы не делал для собственных нужд лабораторный блок питания (БП). Сложность таких устройств может…
Просмотров: 5918
Два микроконтроллерных регулятора мощности (AT89C2051, asm)
30.01.2008
Рис. 1
Для управления инерционной нагрузкой часто применяются тиристорные регуляторы мощности, работающие по принципу подачи на…
Просмотров: 3950
Повышающий преобразователь напряжения на AVR (AT90S2313, asm)
15.01.2008
История создания этого девайса такова: некий господин N, экстремал в годах и большой любитель сплава по горным рекам, утопил в одном из…
Просмотров: 3819
Зарядное устройство для малогабаритных аккумуляторов (AT89C2051, MCP3208, asm)
08.12.2007
Зарядное устройство предназначено для зарядки любых малогабаритных аккумуляторов емкостью до 2А*Ч.
Ток выдаваемый зарядным…
Просмотров: 3781
USB программатор микроконтроллеров AVR / 89S совместимый с AVR910 (ATmega8, C)
22.01.2012
Схема программатора приведена на рисунке ниже. Предохранитель F1 служит для защиты линий питания порта USB от случайного замыкания по…
Просмотров: 10641
USB, COM отладчик JTAG ICE (ATmega16)
27.04.2010
Иногда, программа зашитая в микроконтроллера работает совсем не так как надо её создателю. Тогда наступает стадия отладки (Отлаживать…
Просмотров: 3951
Параллельный программатор для микроконтроллеров AVR (ATmega16)
16.02.2008
Поводом для создания данного устройства послужило появление новых чипов AVR поддерживающих отладку по протоколу debugWIRE. Так как он не…
Просмотров: 13746
USB параллельный программатор для микроконтроллеров AVR (ATmega16)
16.02.2008
Этот программатор является продолжением “Параллельного программатора для микроконтроллеров AVR” Предлагаемый вариант…
Просмотров: 6211
Пульт дистанционного управления для цифровых зеркальных камер (ATtiny12, asm)
02.12.2010
Некоторые модели цифровых фотокамер имеют возможность дистанционного управления с помощью ИК-лучей. Дистанционное управление…
Просмотров: 4738
Cхемотехника и программирование устройств фазового регулирования (ATtiny2313, C)
24.11.2011
Кто из вас не хотел изготовить себе сенсорный диммер с возможностью дистанционного управления светом? Наверное, многие. Так вот и я…
Просмотров: 6162
15-ти канальный управляемый диммер (ATmega8)
20.05.2011
В наш повседневный быт всё чаще входят различные интеллектуальные системы управления. Стиральные машинки давно сами стирают и сушат,…
Просмотров: 7718
PWM (ШИМ) управление LED матрицей 8х8 через регистр сдвига 74HC595 (ATmega8, C)
23.01.2011
Есть матрица 8х8, одноцветная. Всего, соответственно, 16 выходов: 8 на столбцы и 8 на строки. Проблема номер один – понять какой контакт чем…
Просмотров: 5629
Светодиодное табло “Волшебная палочка” (AT89C2051/PIC18C84, asm)
06.11.2010
За этим замысловатым названием кроется очень интересная конструкция на PIC-контроллере. Главное достоинство – это оригинальность идеи. В…
Просмотров: 4522
Бегущая строка на микроконтролере (AT90S2313)
21.08.2008
Это устройство может использоваться как гирлянда на праздниках, вечеринках. Для вывода поздравительных сообщений. А так же везде, где…
Просмотров: 5407
Регулятор яркости лампы накаливания на микроконтроллере (AT89C2051, asm)
01.03.2008
В этом проекте рассказывается о микроконтроллерном регуляторе яркости лампы накаливания (далее просто регулятор). Регулятор…
Просмотров: 6275
Многоканальный USB-Термометр (ATmega8, C)
27.10.2011
Когда то давно я написал статью о том, как сделать USB Термометр и разместил ее на двух сайтах. Девайс очень простой, но спустя пару дней,…
Просмотров: 5188
Уменьшение шума от кулеров, с выводом температур на LCD (ATmega8, C)
28.08.2010
Устройство создано для уменьшения шума от кулеров компьютера и контроле температур в системном блоке на LCD дисплее. Включает в себя…
Просмотров: 3959
USB Термометр (ATmega8, C)
10.03.2010
В качестве микроконтроллера, был выбран ATmega8 (такие, как ATtiny8/48 не захотел использовать по причине их дискретности в некоторых городах)….
Просмотров: 6756
Термостат на ATtiny2313 и DS18B20 (ATtiny2313, C)
13.01.2010
Данная конструкция стала прямым продолжением конструкции “Термометр на ATtiny2313 и DS18B20”. Как там упоминалось, хотелось…
Просмотров: 9699
Улучшенный термостат на ATtiny2313 и DS18B20 (ATtiny2313, C)
13.01.2010
По многочисленным просьбам дорабатываю конструкцию “Термостат на ATtiny2313 и DS18B20”. Теперь умеет:
Измерение температуры от -55°С до…
Просмотров: 26374
Термометр на ATtiny2313 и DS18B20 (ATtiny2313, C)
12.01.2010
В Интернете есть куча схем термометров на AVR, но как всегда хочется чего-то своего.. Да и мозги размять тоже следует. Этот термометр был…
Просмотров: 14058
Цифровой термометр на DS18B20 (ATmega8, C)
18.10.2009
Цифровой термометр предназначен для измерения температуры с точностью до одной десятой доли градуса Цельсия*.
Цифровой термометр…
Просмотров: 5835
Регулятор оборотов 12V вентилятора на DS18B20 (ATtiny13, C)
01.07.2009
Взял все вентиляторы из своего компа и попробовал при каком напряжении они стартуют. Получилась довольно печальная картина: некоторые…
Просмотров: 12234
Многофункциональные часы-термостат с дистанционным управлением (ATmega8)
08.03.2009
Возникла у меня потребность в настольных часах-термометре, чтобы помимо времени можно было узнать температуру на улице и в доме. В…
Просмотров: 4451
Термометр – меньше не бывает (ATmega8)
18.05.2008
Предлагается схема на микроконтроллере ATMega8 для измерения температуры в диапазоне от −55° C до +127° C с точностью не хуже +-0,5° C. В…
Просмотров: 6523
Термометр с ЖКИ и датчиком DS18B20 (ATtiny15)
01.03.2008
В технической литературе и в Интернете можно найти множество описаний и схем цифровых термометров. В большинстве конструкций…
Просмотров: 4153
Термостат (AT90S2313, C)
15.02.2008
Прибор был создан по просьбе одного знакомого для контроля температуры в комнате – включения отопителя / вентилятора при достижении…
Просмотров: 4386
Термостат на DS18B20 и ATmega8 (ATmega8, C)
27.01.2008
В схеме, можно применять светодиодные семисегментные индикаторы с общим катодом или анодом (2 прошивки).
Датчик температуры DS18B20….
Просмотров: 15452
Простой термометр на DS18B20 (ATtiny2313, C)
26.01.2008
Это простой термометр на основе термо датчика DS18B20 и мк ATtiny2313 (или AT90S2313) выводящий информацию на 7-сегментный ЖКИ – модуль на основе…
Просмотров: 8168
Схемы на микроконтроллерах, самодельные устройства и программаторы
Схема цифровой шкалы на Arduino UNO для связного КВ-приемника
Здесь приводится описание цифровой шкалы для коротковолнового связного приемника, работающего в диапазонах 160м, 80м, 40м, 20м, 10м или любом из них. Шкала работает с двухстрочным ЖК-дисплеем. В его верхней строке показывает значение частоты в кГц,а в нижней длину волны в метрах. Внося …
1 580 0
Самодельный велоспидометр на ARDUINO UNO (ATMEGA328)Здесь описывается цифровой прибор на микроконтроллере, измеряющий скорость движения велосипеда. Индикатором служит ЖК-дисплей типа 1602А, он стандартный, на основе контроллера HD44780. Обозначение 1602А фактически значит, что он на две строки по 16 символов в строке. Используется только одна его …
1 339 0
Девятиразрядный мультиметр на АЦП AD7705 и AVR микроконтроллереОсновой предлагаемого мультиметра является микросхема 16-битного двухканального дельта-сигма аналого-цифрового преобразователя (АЦП) AD7705. Широко распространенные мультиметры на основе АЦП двойного интегрирования ICL7106 [2] обеспечивают отображение результата преобразования числом, не превышающим 1999, что соответствует, без учета знака, 11-битному АЦП, за вычетом 48 единиц счёта…
1 1459 0
Реле времени на микроконтроллере AVR ATtiny2313 с индикатором фирмы Data VisionСхема и описание самодельного реле времени на AVR микроконтроллере ATtiny2313 с индикатором фирмы Data Vision. Реле времени (таймеры), пожалуй, одна из самых массовых разработок конструкторов электронных техники. Автор предлагает вариант 4-х канального реле времени, разработанного на базе микроконтроллера семейства AVR и жидкокристаллического индикатора фирмы Data Vision. Принципиальная схема реле времени …
1 382 0
Макет светофора на ARDUINO UNO, схема и описаниеЭтот макет светофорного управления движения на перекрестке можно использовать в различных играх по изучению правил дорожного движения. Он может быть сделан как в миниатюрном, настольном варианте для передвижения по нему игрушечных моделей машин и кукол-пешеходов, так и в варианте для детского …
1 239 0
Самодельный кодовый замок на микроконтроллере (PIC16F628A)Схема самодельного кодового замка, построенного на микроконтроллере PIC16F628A и транзисторах, имеет цифровое табло. Этот замок можно использовать для ограничения доступа в помещение, гараж, дом, сейф, шкаф. Его исполнительным устройством может служить механизм запирания двери автомобиля …
1 686 0
Часы с календарем на индикаторах ИН-12Предлагаемые часы показывают текущее время и дату, обладают функциями будильника. Их особенность – использование газоразрядных цифровых индикаторов ИН-12. Подобные индикаторы широко применялись в электронных часах и цифровых измерительных приборах в семидесятые годы прошлого века. Индикаторы …
1 733 0
Автоматическое управления вентиляцией помещения, схема на МК ATtiny2313AСхема самодельного устройства, автоматически включающего и выключающего принудительную вентиляцию помещения. Работа устройства осуществляется в зависимости от относительной влажности воздуха в помещении и скорости её изменения. Оно не содержит дефицитных деталей и может быть помещено в стандартный …
0 737 0
Двоичные часы на микроконтроллере PIC16F628AСхема самодельных двоичных часов на микроконтроллере PIC16F628A и светодиодах. Эти необычные карманные часы могут стать оригинальным подарком. Индикатор времени в них построен всего на шести единичных светодиодах. Секрет в том, что число часов и число минут текущего времени отображаются ими …
1 497 0
Термометр на микроконтроллере для четырех датчиков DS18B20Схема самодельного термометра, предназначенного для отображения данных с четырех датчиков DS18B20, используется микроконтроллер. К этому микроконтроллерному термометру можно подключить до четырёх цифровых датчиков температуры DS18B20, расположив их в тех местах, где необходимо контролировать …
1 654 0
1 2 3 4 5 … 10Радиодетали, электронные блоки и игрушки из китая:
Устройство микроконтроллеров AVR « схемопедия
Первые микроконтроллеры с ядром AVR (аббревиатура производная от имен двух главных разработчиков Alf-Egil Bogen + Vegard Wollen + RISC) увидели свет в 1997г и начали стремительно завоевывать нишу на рынке 8-разрядных микроконтроллеров для встраиваемых систем. А уже через несколько лет своего становления AVR превратились в основное направление развития компании Atmel.
Первопроходцем стало семейство Classic, которое сейчас уже полностью снято с производства. Первые модели Classic были немного “сыроватыми” (что, впрочем, характерно и для многих других сложных изделий) и вызывали различные нарекания по поводу стабильности работы, надежности энергонезависимой памяти и т.д. Однако со временем недостатки были устранены, а основные концепции Atmel увидели свое продолжение в двух семействах нового поколения ATtiny (младшее семейство) и ATmega (старшее семейство). В данный момент микроконтроллеры ATtiny и ATmega составляют основную массу изделий AVR (характеристики микроконтроллеров ATtiny и ATmega приведены в приложении A). Но сказать, что на этом их развитие завершилось, конечно, нельзя. На сегодняшний день ядро AVR лежит в основе целого ряда микроконтроллеров для специализированных приложений. К ним относятся модели, содержащие на своем борту CAN (AT90CAN), USB (AT90USB), модули для генерации ШИМ (AT90PWM), радиочастотный модуль (AT86RF), а также конфигурируемые микроконтроллеры, которые совмещают на одном кристалле процессор и программируемые массивы FPGA.
Со второй половины 2008 г начался серийный выпуск моделей микроконтроллеров семейства Xmega. Архитектура AVR перетерпела значительную переработку. Были устранены многие слабые места. В составе Xmega появились контроллеры прерываний и прямого доступа к памяти, 12-разрядные АЦП и ЦАП, дополнительные модули таймеров-счетчиков и мн. др. Память EEPROM стала проецироваться на адресное пространство SRAM. Напряжение питания снизилось до 3.3 В, а максимальная тактовая частота процессора Xmega возросла до 32 МГц.
Каждый год объем продаж AVR-микроконтроллеров увеличивается примерно в два раза, а общее их выпущенное количество уже давно перевалило за полмиллиарда. В электронной промышленности AVR стали безоговорочным индустриальным стандартом.
Особенности архитектуры
Как и подавляющее большинство современных 8-разрядных микроконтроллеров, AVR является типичным представителем архитектуры Гарвардского типа. Память программ и память данных в нем отделены друг от друга и находятся в различных адресных пространствах (см. рис.1). ЦПУ имеет две независимые шины: 16-разрядную для обращения к ПЗУ и 8-разрядную для взаимодействия с ОЗУ. Длина слова команды у AVR кратна 16-ти битам и может составлять 2 или 4 байта.
Рис.1 Разделение памяти программ и данных в Гарвардской архитектуре
Гарвардская архитектура дает возможность одновременно осуществлять выборку команд из ПЗУ и производить операции над переменными в ОЗУ, что дает существенный прирост производительности. В этом случае, однако, микроконтроллер может выполнять команды только из ПЗУ, но для большинства приложений, где предполагается его использование, это не имеет серьезного значения.
Рис.2 Работа конвейера команд
В микроконтроллерах AVR реализован двухступенчатый конвейер команд (см. рис.2). Во время выполнения текущей команды, происходит выборка и декодирование следующей инструкции. Функционирование конвейера нарушается только в те моменты, когда результат выполнения команды не определен. Это относится к командам типа Test & Skip (Проверка и пропуск) и аппаратным прерываниям. В первом случае происходит ветвление по условию, которое заранее неизвестно, а во втором – программный переход в неопределенный момент времени.
AVR имеют систему команд RISC (Reduced Instruct Set Computers – компьютеры с сокращённым набором команд). Такая система подразумевает наличие небольшого, хорошо продуманного набора команд, большая часть из которых выполняется за одинаковый промежуток времени (машинный цикл). Машинный цикл ядра AVR – 1 период тактовой частоты системного генератора. Это означает, что производительность микроконтроллера составляет 1 MIPS (Millions Instruction Per Second) на 1 МГц (!) или 20 MIPS при наибольшей частоте 20 МГц.
Рис.3 Внутреннее устройство микроконтроллеров семейства ATtiny
Внутренняя структура микроконтроллеров семейства ATtiny приведена на рис.3, а семейства ATmega на рис.4. Аппаратные модули, закрашенные серым цветом, имеются не во всех моделях AVR.
Рис.4 Внутреннее устройство микроконтроллеров семейства ATmega
Даташит на русском Atmega8 | Практическая электроника
Что такое даташит
Даташит – это техническое описание на какой-либо радиокомпонент. Где его найти? Ну, конечно же, в интернете! Так так почти вся радиоэлектронная продукция выпускается “за бугром”, то и описание на них, соответственно, “забугорское”, а точнее, на английском языке. Те, кто хорошо дружит с разговорным английским, не факт, что сможет прочитать технические термины в даташитах.
Даташит на английском на Atmega8
Давайте попробуем пролить свет истины на основные характеристики МК ATmegа8. Для этого качаем даташит. В нашей статье мы будем рассматривать только основные сведения нашего подопечного.
Вот что мы видим на первой странице даташита:
Даташит на русском Atmega8
Запоминаем правило: в фирменном описании нет ни одного лишнего слова! (иногда информации не хватает, но это уже другой случай)
Features. Переводится как “функции”. В среде электронщиков просто “фичи”.
– High Performance, Low Power AVR® 8-Bit Microcontroller
Высокопроизводительный, потребляющий мало энергии, 8-битный микроконтроллер.
Понимаем как рекламу, единственно полезное то, что данный микроконтроллер — 8 битный.-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 Вольт для обычных, не низковольтных моделей МК)
Где и как искать компоненты и даташиты ? Смотрите в видео:
Зарядное устройство для автомобильных аккумуляторов на Atmega 8.
РадиоКот >Схемы >Питание >Зарядные устройства >Зарядное устройство для автомобильных аккумуляторов на Atmega 8.
Хочу представить вниманию зарядное устройство (ЗУ) для автомобильных аккумуляторов на Atmega 8. Данное устройство является моим вариантом ЗУ описание которого выложено в [1]. Очень рекомендую сначала прочитать описание оригинального ЗУ для снятия многих вопросов. К достоинствам ЗУ можно отнести использование силового трансформатора от бесперебойников, защиту от короткого замыкания и переполюсовки. ЗУ можно собрать в корпусе бесперебойника что снимает проблему всех устройств радиолюбителя – корпус.
После изготовления нескольких штук по оригинальному описанию я пришел к заключению что использование Atmega16 является избыточным, как по обьему памяти так и по количеству портов вводавывода. Поэтому было решено перевести проект на Atmega 8, тем более что исходники Автором были любезно выложены.
После тщательного курения даташита, а особенно замечательной книги [2] получилось переделать прошивку для Atmega 8. Также мною были внесены некоторые изменения в схему устройства для придания некоторой универсальности в части возможности использования различных компонентов. Схема того что получилось представлена ниже:
Как видно устройство разделено на две части: микроконтроллера (МК) и силовую.
Некоторые обьяснения по схеме контроллера. К разьему pow-in подключается маломощный внешний трансформатор с напряжением вторичной обмотки порядка 10-15 вольт, после выпрямления напряжение подается через развязывающий диод D9 на стабилизатор 78l12, который используется для питания операционного усилителя цепи измерения тока, и стабилизатора 7805 который питает микроконтроллер. Резисторы R32, R1 и стабилитрон D10 с напряжением стабилизации 5.1 вольт формируют сигнал прерывания МК для определения момента перехода сетевого напряжения через ноль.
На операционном усилителе (ОУ) U5 типа LM358 собраны усилитель сигнала с шунта для измерения зарядного тока и усилитель сигнала с шунта для определения перегрузки. Питание ОУ осуществляется напряжением 12 вольт и напряжением -5 вольт, которое преобразуется при помощи ICL7660 из напряжения +5 вольт. Использование ICL7660 позволяет отказаться от применения трансформатора с двумя вторичными обмотками, как в оригинальном устройстве. Кроме того предусмотрен вариант использования Rail-to-Rail ОУ, что позволяет вообще отказаться от источника питания +12 вольт, преобразователя ICL7660, а также защитных диодных сборок D6, D7. Был испытан образец на ОУ MCP6002 который себя неплохо зарекомендовал. При использовании Rail-to-Rail ОУ не устанавливается стабилизатор 78l12 и конденсатор C15. Впаивается нулевая перемычка R13 для питания ОУ от +5 вольт, а вместо конденсатора C13 впаивается нулевая перемычка на корпус. Таким образом организуется питание +5 вольт для ОУ. При сборке нужно внимательно следить какой вариант собираете дабы не повредить ОУ и МК при несоответствии типа применяемого ОУ напряжению питания.
Диодные сборки D6, D7, D11 служат для защиты портов МК от перенапряжения и напряжения обратной полярности. В оригинальной схеме для этой цели используются стабилитроны на 5.1 вольт, но при сборке устройства выяснилось что они вносят погрешность при измерении тока и напряжения, т.к. начинают приоткрываться при напряжении порядка 4.8 вольта. В устройстве АЦП МК использует в качестве опорного напряжения напряжение питания +5 вольт, а следовательно АЦП охватывает весь диапазон от 0 до 5 вольт. Установка D11 обязательна.
Разьем ISP1 служит для внутрисхемного программирования МК, распиновка его стандартна для варианта 6 контактов. Реле RL1 служит для включения силового трансформатора. Транзистор управления реле любой средней мощности типа npn, ставил КТ817. Реле выпаивается из платы бесперебойника, также в зависимости от типа платы можно выпаять кварцевый резонатор на 8 Мгц, стабилизатор 7805, стабилизатор 7812 для силового модуля. Переменным резистором RV1 устанавливаем контрастность дисплея. Дисплей используется типа 0802 с кирилицей. Типоразмер всех используемых SMD резисторов и конденсаторов 1206. Конденсатор C16 танталовый SMD 10мкф 16 вольт.
В силовом модуле стабилизатор 7812 служит для питания вентилятора обдува радиатора на котором устанавливается силовой диодный мост типа KBPC5010 или аналогичный, а также тиристор 40TPS12. В данной версии прошивки обдув включается при токе зарядки 2А, выключается при 1А. В качестве радиатора идеально подходят так называемые «процессорные». Предохранитель FU1 автомобильный на 30А, впаивается прямо в плату. Такие попарно установлены на плате бесперебойника. Резисторы R1-R7, R12, R13, R16 типоразмера 1206 на 0.1 Ом впаяны параллельно и образуют шунт для измерения тока. Транзисторы ключей для управления вентилятором и тиристором использовал типа КТ816Б, можно использовать любые средней мощности типа pnp.
К точкам BATT припаиваются провода с крокодилами для подключения к батарее, к точкам BRIDGE провода с наконечниками для подключения к диодному мосту. Провода с наконечниками также из бесперебойника. К разьему FAN подключают вентилятор охлаждения.
Силовая плата и плата МК соединяются 2-мя шлейфами с 3-мя проводами: сигнал измерения напряжения – общий – сигнал измерения тока и сигнал управления тиристором – общий силовой – сигнал управления вентилятором. ВНИМАНИЕ: общий и общий силовой не долны соединятся в шлейфах они впаиваются в соответствующие места платы и никак между собой не связаны.
После сборки и проверки монтажа подключается ЗУ к сети, если все правильно собрано после экранов приветствия появится надпись «Подключи батарею». Подключаем аккумулятор или внешний источник напряжением 12 вольт к крокодилам и подстроечным резистором RV6 выставляем напряжение на экране ЗУ соответствующее напряжению аккумулятора или источника питания по контрольному вольтметру. Далее подключаем ЗУ к аккумулятору через амперметр, вращаем энкодер по часовой стрелке выставляя зарядный ток 1А и нажимаем ручку энкодера, на экране появляется надпись «Заряд начат» и зарядный ток начинает плавно увеличиваться от нуля до утановленного значения. Подстроечным резистором RV3 выставляем правильные показания тока на экране ЗУ по контрольному амперметру. Выставлять следует при установившемся значении на экране. Подстроечным резистором RV4 выставляем напряжение на входе 24 МК равным 0.09в при зарядном токе 1А.
Для справки: для входов измерения тока и напряжения АЦП МК максимальные значения в +5 вольт соответствуют 15 амперам и 15 вольтам. Для входа измерения перегрузки по току напряжение отключения тока зарядки – 1 вольт.
Подключаем ЗУ к сети, подключаем батарею, устанавливаем требуемый ток заряда в диапазоне 0-10А вращением энкодера, нажимаем энкодер. Ток заряда плавно растет до установленного значения. При достижении на батарее 14.4 вольта ток плавно падает при условии неизменности напряжения на батарее в 14.4 вольта. При падении тока зарядки ниже 0.5А и напряжении 14.4 вольта считается что батарея заряжена и зарядка прекращается – выводится надпись «Батарея заряжена». При невозможности достижения напряжения на батарее в 14.4 вольта при токе 0.5 А в течении 4 часов выводится надпись «Проверь батарею не берет заряд» и заряд отключается. Если при включении зарядки ток не растет появляется надпись «Плохой контакт с батареей» и заряд отключается. При пробое тиристора и неконтроллируемом увеличении напряжения выше 15 вольт заряд отключается и появляется надпись «ERROR VOLTAGE». При чрезмерном увеличении тока заряда или КЗ также заряд отключается и выводится надпись «Ошибка по току». Чтобы досрочно прервать заряд энкодером уменьшаем ток до нуля и нажимаем энкодер или просто снимаем клемму с батареи. Для изменения тока заряда в процессе зарядки вращаем энкодер и нажимаем, появляется надпись «Ток изменен».
Фьюзы для прошивки:
Плата МК односторонняя, 11 перемычек.
Плата силовая односторонняя, 1 перемычка:
Несколько фотографий готового ЗУ:
Список литературы:
- https://we.easyelectronics.ru/power-electronics/zaryadnoe-ustroystvo-dlya-avtomobilnyh-akkumulyatorov-na-atmega-16.html
- Евстифеева А.В. «Микроконтроллеры AVR семейства Mega».
Ниже в архиве проект в Протеус 8 платы МК и силовой платы, а также прошивка.
Файлы:
Протеус, прошивка
Все вопросы в Форум.
Как вам эта статья? | Заработало ли это устройство у вас? |
Эти статьи вам тоже могут пригодиться:
Простые устройства на микроконтроллерах своими руками. Частотный преобразователь для асинхронного двигателя на AVR. Частотомер II от DANYK
Принцип закрывания дверцы клетки весьма прост. Дверка клетки подпирается специальным упором, сделанным из медной проволоки. К упору крепится капроновая нить нужной длины. Если потянуть за нить, то упор соскальзывает, и дверка клетки под собственным весом закрывается. Но это в ручном режиме, а я хотел реализовать автоматический процесс без участия кого-либо.
Для управления механизмом закрывания дверцы клетки был применен сервопривод. Но в процессе работы он создавал шум. Шум мог спугнуть птицу. Поэтому сервопривод я заменил на коллекторный двигатель, взятый из радиоуправляемой машинки. Он работал тихо и идеально подходил, тем более что управлять коллекторным двигателем не составляло сложностей.
Для определения, находится ли уже птица в клетке, я использовал недорогой датчик движения. Сам датчик движения уже является законченным девайсом, и паять ничего не нужно. Но у данного датчика угол срабатывания весьма большой, а мне нужно, чтобы он реагировал только во внутренней области клетки. Для ограничения угла срабатывания я поместил датчик в цоколь, когда-то служившей эконом-лампы. Из картона вырезал своего рода заглушку с отверстием посередине для датчика. Пошаманив с расстоянием данной заглушки относительно датчика, настроил оптимальный угол для срабатывания датчика.
В качестве зазывалы для птиц я решил применить звуковой модуль WTV020M01 с записанным на микроSD карте памяти пением чижа и щегла. Именно их я и собирался ловить. Поскольку я использовал один звуковой файл, то и управлять звуковым модулем я решил простим способом, без использования протокола обмена между звуковым модулем и микроконтроллером.
При подаче на девятую ножку звукового модуля низкого сигнала, модуль начинал воспроизводить. Как только звук воспроизводился на пятнадцатой ноге звукового модуля, устанавливается низкий уровень. Благодаря этому микроконтроллер отслеживал воспроизведение звука.
Поскольку я реализовал паузу между циклами воспроизведения звука, то для остановки воспроизведения звука программа подает низкий уровень на первую ножку звукового модуля (reset). Звуковой модуль является законченным устройством со своим усилителем для звука, и, по большому счету, в дополнительном усилителе звука он не нуждается. Но мне данного усиления звука показалось мало, и в качестве усилителя звука я применил микросхему TDA2822M. В режиме воспроизведения звука потребляет 120 миллиампер. Учитывая, что поимка птицы займет какое-то время, в качестве автономной батареи питания я применил не совсем новый аккумулятор от бесперебойника (всё равно валялся без дела).
Принцип электронного птицелова прост, и схема состоит в основном из готовых модулей.
Программа и схема –
Бывает идешь мимо припаркованных машин, и замечаешь краем глаза, что кто то уже давно, судя по тусклому свечению ламп, забыл свет выключить. Кто то и сам так попадал. Хорошо когда есть штатный сигнализатор не выключенного света, а когда нету поможет вот такая поделка: Незабывайка умеет пищать, когда не выключен свет и умеет пропикивать втыкание задней передачи.
Схема цифрового индикатора уровня топлива обладает высокой степенью повторяемости, даже если опыт работы с микроконтроллерами незначителен, поэтому разобраться в тонкостях процесса сборки и настройки не вызывает проблем. Программатор Громова – это простейший программатор, который необходим для программирования avr микроконтроллера. Программатор Горомова хорошо подходит как для внутрисхемного, так и для стандартного схемного программирования. Ниже приведена схема контроля индикатора топлива.
Плавное включение и выключение светодиодов в любом режиме (дверь открыта, и плафон включен). Так же авто выключение через пять минут. И минимальное потребление тока в режиме ожидания.
Вариант 1 – Коммутация по минусу. (с применением N-канальных транзисторов) 1) “коммутация по минусу”, т.е такой вариант при котором один питающий провод лампы соединен с +12В аккумулятора (источника питания), а второй провод коммутирует ток через лампу тем самым включает ее. В данном варианте будет подаваться минус. Для таких схем нужно применять N-канальные полевые транзисторы в качестве выходных ключей.
Сам модем небольшого размера, недорог, работает без проблем, четко и быстро и вообще нареканий нет к нему. Единственный минус для меня был, это необходимость его включать и выключать кнопкой. Если его не выключать, то модем работал от встроенного аккумулятора, который в итоге садился и модем снова было нужно включать.
Принцип работы прост: привращении крутилки регулируется громкость, при нажатии – выключение-включение звука. Нужно для кар писи на винде или андройде
Изначально в Lifan Smily (да и не только) режим работы заднего дворника – единственный, и называется он «всегда махать». Особенно негативно воспринимается такой режим в наступивший сезон дождей, когда на заднем стекле собираются капли, но в недостаточном для одного прохода дворника количестве. Так, приходится либо слушать скрип резины по стеклу, либо изображать робота и периодически включать-выключать дворник.
Немного доработал схему реле времени задержки включения освещения салона для автомобиля Форд (схема разрабатывалась для вполне конкретного автомобиля, как замена штатного реле Ford 85GG-13C718-AA, но была успешно установлена в отечественную “классику”).
Уже не первый раз проскакивают такие поделки. Но почему-то люди жмуться на прошивки. Хотя в большинстве своём они основаны на проекте elmchan “Simple SD Audio Player with an 8-pin IC”. Исходниник не открывают аргументируя, что пришлось исправлять проект, что в у меня качество лучше… и т.д. Короче взяли open source проект, собрали, и выдаёте за своё.
Итак. Микроконтроллер Attiny 13- так сказать сердце данного устройства. С его прошивкой долго мучился, никак не мог прошить.Ни 5ю проводками через LPT, ни прогромматором Громова. Компьютер просто не видит контроллер и все.
В связи с нововведениями в ПДД, народ стал думать о реализации дневных ходовых огней. Один из возможных путей это включение ламп дальнего света на часть мощности, об этом и есть данная статья.
Это устройство позволит ближнему свету автоматически включиться при начале движения и регулирует напряжение на лампах, ближнего света, в зависимости от скорости с которой вы едите. Так же, это послужит более безопасному движению и продлит срок службы ламп.
Теперь у меня на столе лежит два одинаковых программатора. А всё для того, чтобы попробовать новую прошивку. Эти близняшки буду шить друг друга. Все опыты проводятся под MS Windows XP SP3 .
Цель – увеличение скорости работы и расширение совместимости программатора.
Популярная среда разработки Arduino IDE привлекает большим количеством готовых библиотек и интересных проектов, которые можно найти на просторах Сети.
Некоторое время назад оказались в моем распоряжении несколько микроконтроллеров ATMEL ATMega163 и ATMega163L. Микросхемы были взяты из отслуживших свой срок девайсов. Данный контроллер очень похож на ATMega16, и фактически является его ранней версией.
Привет читателям Датагора! Мне удалось собрать вольтметр минимальных размеров с посегментной разверткой индикатора при довольно высокой функциональности, с автоматическим определением типа индикатора и выбором режимов.
Прочитав статьи Edward Ned’а, я собрал DIP-версию и проверил ее в работе. Действительно вольтметр работал, ток через вывод микросхемы к индикатору не превышал 16 миллиампер в импульсе, так что работа микросхемы без резисторов, ограничивающих токи сегментов, вполне допустима и не вызывает перегрузок элементов.
Не понравилось слишком частое обновление показаний на дисплее и предложенная шкала «999». Хотелось подправить программу, но исходных кодов автор не выкладывает.
В это же мне потребовались вольтметр и амперметр для небольшого блока питания. Можно было собрать на совмещенный вариант, а можно было собрать два миниатюрных вольтметра, причем габариты двух вольтметров получались меньше совмещенного варианта.
Свой выбор я остановил на микросхеме и написал исходный код для посегментной развертки индикатора.
В процессе написания кода возникла идея программируемого переключения шкал и положения запятой, что и удалось реализовать.
Механический энкодер – вещь удобная в использовании, но он имеет некоторые досадные недостатки. В частности, контакты со временем изнашиваются и приходят в негодность, появляется дребезг. Оптические энкодеры гораздо надежнее, но они дороже, многие из них боятся пыли, и они редко встречаются в таком виде, в котором их удобно было бы использовать в радиотехнике.
Короче, когда я узнал о том, что шаговый двигатель можно использовать как энкодер, эта идея мне очень понравилась.
Практически вечный энкодер! Замучить его невозможно: соберешь раз и можешь энкодить всю жизнь.
Предварительный усилитель-коммутатор с цифровым управлением. Применяем с программированием через оболочку Arduino, электронные потенциометры от Microchip, графический TFT.
Разрабатывать и собирать это устройство в мои планы не входило. Ну вот просто никак! У меня уже есть два предварительных усилителя. Оба меня вполне устраивают.
Но, как обычно происходит у меня, стечение обстоятельств или цепь неких событий, и вот нарисовалась задача на ближайшее время.
Здравствуйте, уважаемые читатели ! Хочу представить вам « » – проект подающего робота для настольного тенниса, который будет полезен новичкам и любителям при отработке приёма различного типа подач в любую зону стола, поможет рассчитать тайминг и силу приёма мяча.
А ещё можно просто привыкнуть к новой накладке или ракетке, и хорошенько простучать её.
Приветствую читателей ! Есть у меня пожилой компьютер, которому уже исполнилось лет десять. Параметры у него соответствующие: «пенёк» 3,0 ГГц, пара Гб ОЗУ и древняя материнская плата EliteGroup 915-й серии.
И задумал я куда-нибудь старичка пристроить (подарить, продать), т. к. выбрасывать жалко. Но мешала задуманному одна неприятность: у материнки не срабатывало включение от кнопки питания, и что бы я ни делал, начиная от проверки проводов и заканчивая прозвонкой транзисторов на плате, проблему найти так и не смог. Отдавать в ремонт спецам – ремонт окажется дороже всего компа.
Думал я, думал и нашёл способ запустить моего бедолагу. Выдернул батарею BIOS-а, от чего комп испугался и сразу стартанул при следующем появлении питания! А дальше – почти в каждом BIOS-е есть запуск ПК от любой кнопки клавиатуры или кнопки POWER на клавиатуре. Казалось бы, проблема решена. Ан нет, есть нюансы. С USB-клавиатур запуск не срабатывал. Плюс не хотелось пугать нового хозяина, компьютер должен стартовать от привычной кнопки питания на корпусе.
Поделки с микроконтроллерами – вопрос, как никогда актуальный и интересный. Ведь мы живем в 21 веке, эпохе новых технологий, роботов и машин. На сегодняшний день каждый второй, начиная с малого возраста, умеет пользоваться интернетом и различного рода гаджетами, без которых порою и вовсе сложно обойтись в повседневной жизни.
Поэтому в этой статье мы будем затрагивать, в частности, вопросы пользования микроконтроллерами, а также непосредственного применения их с целью облегчения миссий, каждодневно возникающих перед всеми нами. Давайте разберемся, в чем ценность этого прибора, и как просто использовать его на практике.
Микроконтроллер − это чип, целью которого является управление электрическими приборами. Классический контроллер совмещает в одном кристалле, как работу процессора, так и удаленных приборов, и включает в себя оперативное запоминающее устройство. В целом, это монокристальный персональный компьютер, который может осуществлять сравнительно обыкновенные задания.
Разница между микропроцессором и микроконтроллером заключается в наличии встроенных в микросхему процессора приборов «пуск-завершение», таймеров и иных удаленных конструкций. Применение в нынешнем контроллере довольно сильного вычисляющего аппарата с обширными способностями, выстроенного на моносхеме, взамен единого комплекта, существенно уменьшает масштабы, потребление и цену созданных на его основе приборов.
Из этого следует, что применить такое устройство можно в технике для вычисления, такой, как калькулятор, материнка, контроллеры компакт-дисков. Используют их также в электробытовых аппаратах – это и микроволновки, и стиральные машины, и множество других. Также микроконроллеры широко применяются в индустриальной механике, начиная от микрореле и заканчивая методиками регулирования станков.
Микроконроллеры AVR
Ознакомимся с более распространенным и основательно устоявшимся в современном мире техники контроллером, таким как AVR. В его состав входят высокоскоростной RISC-микропроцессор, 2 вида затратной по энергии памяти (Flash-кэш проектов и кэш сведений EEPROM), эксплуатационная кэш по типу RAM, порты ввода/вывода и разнообразные удаленные сопряженные структуры.
- рабочая температура составляет от -55 до +125 градусов Цельсия;
- температура хранения составляет от -60 до +150 градусов;
- наибольшая напряженность на выводе RESET, в соответствии GND: максимально 13 В;
- максимальное напряжение питания: 6.0 В;
- наибольший электроток линии ввода/вывода: 40 мА;
- максимальный ток по линии питания VCC и GND: 200 мА.
Возможности микроконтроллера AVR
Абсолютно все без исключения микроконтроллеры рода Mega обладают свойством самостоятельного кодирования, способностью менять составляющие своей памяти драйвера без посторонней помощи. Данная отличительная черта дает возможность формировать с их помощью весьма пластичные концепции, и их метод деятельности меняется лично микроконтроллером в связи с той либо иной картиной, обусловленной мероприятиями извне или изнутри.
Обещанное количество оборотов переписи кэша у микроконтроллеров AVR второго поколения равен 11 тысячам оборотов, когда стандартное количество оборотов равно 100 тысячам.
Конфигурация черт строения вводных и выводных портов у AVR заключается в следующем: целью физиологического выхода имеется три бита регулирования, а никак не два, как у известных разрядных контроллеров (Intel, Microchip, Motorola и т. д.). Это свойство позволяет исключить потребность обладать дубликатом компонентов порта в памяти с целью защиты, а также ускоряет энергоэффективность микроконтроллера в комплексе с наружными приборами, а именно, при сопутствующих электрических неполадках снаружи.
Всем микроконтроллерам AVR свойственна многоярусная техника пресечения. Она как бы обрывает стандартное течение русификатора для достижения цели, находящейся в приоритете и обусловленной определенными событиями. Существует подпрограмма преобразования запрашивания на приостановление для определенного случая, и расположена она в памяти проекта.
Когда возникает проблема, запускающая остановку, микроконтроллер производит сохранение составных счетчика регулировок, останавливает осуществление генеральным процессором данной программы и приступает к совершению подпрограммы обрабатывания остановки. По окончании совершения, под шефствующей программы приостановления, происходит возобновление заранее сохраненного счетчика команд, и процессор продолжает совершать незаконченный проект.
Поделки на базе микроконтроллера AVR
Поделки своими руками на микроконтроллерах AVR становятся популярнее за счет своей простоты и низких энергетических затрат. Что они собой представляют и как, пользуясь своими руками и умом, сделать такие, смотрим ниже.
“Направлятор”
Такое приспособление проектировалось, как небольшой ассистент в качестве помощника тем, кто предпочитает гулять по лесу, а также натуралистам. Несмотря на то, что у большинства телефонных аппаратов есть навигатор, для их работы необходимо интернет-подключение, а в местах, оторванных от города, это проблема, и проблема с подзарядкой в лесу также не решена. В таком случае иметь при себе такое устройство будет вполне целесообразно. Сущность аппарата состоит в том, что он определяет, в какую сторону следует идти, и дистанцию до нужного местоположения.
Построение схемы осуществляется на основе микроконтроллера AVR с тактированием от наружного кварцевого резонатора на 11,0598 МГц. За работу с GPS отвечает NEO-6M от U-blox. Это, хоть и устаревший, но широко известный и бюджетный модуль с довольно четкой способностью к установлению местонахождения. Сведения фокусируются на экране от Nokia 5670. Также в модели присутствуют измеритель магнитных волн HMC5883L и акселерометр ADXL335.
Беспроводная система оповещения с датчиком движения
Полезное устройство, включающее в себя прибор перемещения и способность отдавать, согласно радиоканалу, знак о его срабатывании. Конструкция является подвижной и заряжается с помощью аккумулятора или батареек. Для его изготовления необходимо иметь несколько радиомодулей HC-12, а также датчик движения hc-SR501.
Прибор перемещения HC-SR501 функционирует при напряжении питания от 4,5 до 20 вольт. И для оптимальной работы от LI-Ion аккумулятора следует обогнуть предохранительный светодиод на входе питания и сомкнуть доступ и вывод линейного стабилизатора 7133 (2-я и 3-я ножки). По окончанию проведения этих процедур прибор приступает к постоянной работе при напряжении от 3 до 6 вольт.
Внимание: при работе в комплексе с радиомодулем HC-12 датчик временами ложно срабатывал. Во избежание этого необходимо снизить мощность передатчика в 2 раза (команда AT+P4). Датчик работает на масле, и одного заряженного аккумулятора, емкостью 700мА/ч, хватит свыше, чем на год.
Минитерминал
Приспособление проявило себя замечательным ассистентом. Плата с микроконтроллером AVR нужна, как фундамент для изготовления аппарата. Из-за того, что экран объединён с контроллером непосредственно, то питание должно быть не более 3,3 вольт, так как при более высоких числах могут возникнуть неполадки в устройстве.
Вам следует взять модуль преобразователя на LM2577, а основой может стать Li-Ion батарея емкостью 2500мА/ч. Выйдет дельная комплектация, отдающая постоянно 3,3 вольта во всём трудовом интервале напряжений. С целью зарядки применяйте модуль на микросхеме TP4056, который считается бюджетным и достаточно качественным. Для того чтобы иметь возможность подсоединить минитерминал к 5-ти вольтовым механизмам без опаски сжечь экран, необходимо использовать порты UART.
Основные аспекты программирования микроконтроллера AVR
Кодирование микроконтоллеров зачастую производят в стиле ассемблера или СИ, однако, можно пользоваться и другими языками Форта или Бейсика. Таким образом, чтобы по факту начать исследование по программированию контроллера, следует быть оснащенным следующим материальным набором, включающим в себя: микроконтроллер, в количестве три штуки – к высоковостребованным и эффективным относят – ATmega8A-PU, ATtiny2313A-PU и ATtiny13A- PU.
Чтобы провести программу в микроконтроллер, нужен программатор: лучшим считают программатор USBASP, который дает напряжение в 5 Вольт, используемое в будущем. С целью зрительной оценки и заключений итогов деятельности проекта нужны ресурсы отражения данных − это светодиоды, светодиодный индуктор и экран.
Чтобы исследовать процедуры коммуникации микроконтроллера с иными приборами, нужно числовое приспособление температуры DS18B20 и, показывающие правильное время, часы DS1307. Также важно иметь транзисторы, резисторы, кварцевые резонаторы, конденсаторы, кнопки.
С целью установки систем потребуется образцовая плата для монтажа. Чтобы соорудить конструкцию на микроконтроллере, следует воспользоваться макетной платой для сборки без пайки и комплектом перемычек к ней: образцовая плата МВ102 и соединительные перемычки к макетной плате нескольких видов – эластичные и жесткие, а также П-образной формы. Кодируют микроконтроллеры, применяя программатор USBASP.
Простейшее устройство на базе микроконтроллера AVR. Пример
Итак, ознакомившись с тем, что собой представляют микроконтроллеры AVR, и с системой их программирования, рассмотрим простейшее устройство, базисом для которого служит данный контроллер. Приведем такой пример, как драйвер низковольтных электродвигателей. Это приспособление дает возможность в одно и то же время распоряжаться двумя слабыми электрическими двигателями непрерывного тока.
Предельно возможный электроток, коим возможно загрузить программу, равен 2 А на канал, а наибольшая мощность моторов составляет 20 Вт. На плате заметна пара двухклеммных колодок с целью подсоединения электромоторов и трехклеммная колодка для подачи усиленного напряжения.
Устройство выглядит, как печатная плата размером 43 х 43 мм, а на ней сооружена минисхемка радиатора, высота которого 24 миллиметра, а масса – 25 грамм. С целью манипулирования нагрузкой, плата драйвера содержит около шести входов.
Заключение
В заключение можно сказать, что микроконтроллер AVR является полезным и ценным средством, особенно, если дело касается любителей мастерить. И, правильно использовав их, придерживаясь правил и рекомендаций по программированию, можно с легкостью обзавестись полезной вещью не только в быту, но и в профессиональной деятельности и просто в повседневной жизни.
Представляю вторую версию двухканального циклического таймера. Были добавлены новые функции и изменилась принципиальная схема. Циклический таймер позволяет включать и выключать нагрузку, а также выдерживать паузу на заданные интервалы времени в циклическом режиме. Каждый из выходов таймера имеет 2 режима работы – “Логический” и “ШИМ”. Если выбран логический режим устройство позволяет управлять с помощью контактов реле освещением, отоплением, вентиляцией и другими электроприборами. Нагрузкой могут выступать любые электрические приборы мощность нагрузки которых не превышает максимального тока реле. Тип выхода “ШИМ” позволяет например подключить через силовой транзистор двигатель постоянного тока, при этом есть возможность установить скважность ШИМ, чтобы двигатель вращался с определенной скоростью.
Часы собранные на микроконтроллере ATtiny2313 и светодиодной матрице показывают время в 6-ти различных режимах.
Светодиодная матрица 8*8 управляется методом мультиплексирования. Токоограничивающие резисторы исключены из схемы, чтобы не испортить дизайн, и, поскольку отдельные светодиоды управляются не постоянно, они не будут повреждены.
Для управления используется только одна кнопка, длительное нажатие кнопки(нажатие и удержание) для поворота меню и обычное нажатие кнопки для выбора меню.
Это хобби-проект, потому точность хода часов зависит лишь от калибровки внутреннего генератора контроллера. Я не использовал кварц в этом проекте, так как он занимал бы два нужных мне вывода ATtiny2313. Кварц может быть использован для повышения точности в альтернативном проекте (печатной плате).
На этот раз я представлю простой малогабаритный частотомер с диапазоном измерения от 1 до 500 МГц и разрешением 100 Гц.
В настоящее время, независимо от производителя, почти все микроконтроллеры имеют так называемые счетные входы, которые специально предназначены для подсчета внешних импульсов. Используя этот вход, относительно легко спроектировать частотомер.
Однако этот счетчый вход также имеет два свойства, которые не позволяют напрямую использовать частотомер для удовлетворения более серьезных потребностей. Одна из них заключается в том, что на практике в большинстве случаев мы измеряем сигнал с амплитудой в несколько сотен мВ, который не может перемещать счетчик микроконтроллера. В зависимости от типа, для правильной работы входа требуется сигнал не менее 1-2 В. Другое заключается в том, что максимальная измеримая частота на входе микроконтроллера составляет всего несколько МГц, это зависит от архитектуры счетчика, а также от тактовой частоты процессора.
Это устройство позволяет контролировать температуру воды в чайнике, имеет функцию поддержания температуры воды на определенном уровне, а также включение принудительного кипячения воды.
В основе прибора микроконтроллер ATmega8, который тактируется от кварцевого резонатора частотой 8МГц. Датчик температуры – аналоговый LM35. Семисегментный индикатор с общим анодом.
Эта декоративная звезда состоит из 50 специальных светодиодов RGB, которые контролируются ATtiny44A . Все светодиоды непрерывно изменяют цвет и яркость в случайном порядке. Также есть несколько разновидностей эффектов, которые также активируются случайно. Три потенциометра могут изменять интенсивность основных цветов. Положение потенциометра индицируется светодиодами при нажатии кнопки, а изменение цвета и скорость эффекта можно переключать в три этапа. Этот проект был полностью построен на компонентах SMD из-за специальной формы печатной платы. Несмотря на простую схему, структура платы довольно сложная и вряд ли подойдет для новичков.
В этой статье описывается универсальный трехфазный преобразователь частоты на микроконтроллере(МК) ATmega 88/168/328P . ATmega берет на себя полный контроль над элементами управления, ЖК-дисплеем и генерацией трех фаз. Предполагалось, что проект будет работать на готовых платах, таких как Arduino 2009 или Uno, но это не было реализовано. В отличие от других решений, синусоида не вычисляется здесь, а выводится из таблицы. Это экономит ресурсы, объем памяти и позволяет МК обрабатывать и отслеживать все элементы управления. Расчеты с плавающей точкой в программе не производятся.
Частота и амплитуда выходных сигналов настраиваются с помощью 3 кнопок и могут быть сохранены в EEPROM памяти МК. Аналогичным образом обеспечивается внешнее управление через 2 аналоговых входа. Направление вращения двигателя определяется перемычкой или переключателем.
Регулируемая характеристика V/f позволяет адаптироваться ко многим моторам и другим потребителям. Также был задействован интегрированный ПИД-регулятор для аналоговых входов, параметры ПИД-регулятора могут быть сохранены в EEPROM. Время паузы между переключениями ключей (Dead-Time) можно изменить и сохранить.
Этот частотомер с AVR микроконтроллером позволяет измерять частоту от 0,45 Гц до 10 МГц и период от 0,1 до 2,2 мкс в 7-ми автоматически выбранных диапазонах. Данные отображаются на семиразрядном светодиодном дисплее. В основе проекта микроконтроллер Atmel AVR ATmega88/88A/88P/88PA, программу для загрузки вы можете найти ниже. Настройка битов конфигурации приведена на рисунке 2 .
Принцип измерения отличается от предыдущих двух частотомеров. Простой способ подсчета импульсов через 1 секунду, используемый в двух предыдущих частотомерах(частотомер I, частотомер II), не позволяет измерять доли Герц. Вот почему я выбрал другой принцип измерения для своего нового частотомера III. Этот метод намного сложнее, но позволяет измерять частоту с разрешением до 0,000 001 Гц.
Это очень простой частотомер на микроконтроллере AVR. Он позволяет измерять частоты до 10 МГц в 2-х автоматически выбранных диапазонах. Он основан на предыдущем проекте частотомера I , но имеет 6 разрядов индикатора вместо 4-х. Нижний диапазон измерения имеет разрешение 1 Гц и работает до 1 МГц. Более высокий диапазон имеет разрешение 10 Гц и работает до 10 МГц. Для отображения измеренной частоты используется 6-разрядный светодиодный дисплей. Прибор построен на основе микроконтроллера Atmel AVR ATtiny2313A или ATTiny2313 . Настройку битов конфигурации вы можете найти ниже.
Микроконтроллер тактируется от кварцевого резонатора частотой 20 МГц (максимально допустимая тактовая частота). Точность измерения определяется точностью этого кристалла, а также конденсаторов C1 и C2. Минимальная длина полупериода измеряемого сигнала должна быть больше периода частоты кварцевого генератора (ограничение архитектуры AVR). Таким образом, при 50% рабочем цикле можно измерять частоты до 10 МГц.
Введение в 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 |
ЦП | 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 | Есть |
Сторожевой таймер | Есть |
Обнаружение перегорания (BOD) | Есть |
USART | Есть |
Спящий режим | 5 |
Минимальная рабочая температура | -55 С |
Максимальная рабочая температура | 125 С |
2.Распиновка и описание ATmega8
Вы получили краткое введение в модуль. В этом разделе мы рассмотрим распиновку и описание каждого контакта.Распиновка
На следующем рисунке показана распиновка ATmega8.- ATmega8 поставляется в трех пакетах, известных как PDIP, MLF и TQFP, где первый используется для создания индивидуальных проектов, а два других используются для промышленных и электронных устройств.
Описание штифта
В следующей таблице показано полное описание каждого вывода, которое поможет вам предвидеть основную функцию, связанную с каждым выводом.1 | PC6 СБРОС PCINT14 | Контакт ввода / вывода СБРОС будет генерироваться удержанием этого вывода в НИЗКОМ состоянии дольше минимальной длительности импульса. Прерывание |
2 | PD0 RXD PCINT16 | Контакт ввода / вывода Пин последовательного приема (USART) Прерывание |
3 | ПД1 TXD PCINT17 | Контакт ввода / вывода Контакт последовательной передачи (USART) Прерывание |
4 | ПД2 INT0 PCINT18 | Контакт ввода / вывода Внешнее прерывание Прерывание |
5 | ПД3 ИНТ1 OC2B PCINT19 | Контакт ввода / вывода Внешнее прерывание Выделенный контакт для таймера (канал ШИМ) Прерывание |
6 | ПД4 T0 XCK PCINT20 | Контакт ввода / вывода T0 (Вход внешнего счетчика Timer0) XCK (ввод / вывод внешних часов USART) Прерывание |
7 | VCC | Электропитание |
8 | ЗЕМЛЯ | Штырь заземления |
9 | PB6 OSC1 XTAL1 PCINT6 | Контакт ввода / вывода Входной контакт осциллятора Прерывание |
10 | PB7 OSC2 XTAL2 PCINT7 | Контакт ввода / вывода Выходной вывод генератора Прерывание |
11 | ПД5 Т1 OC0B PCINT21 | Контакт ввода / вывода PinT1 (вход внешнего счетчика Timer0) Выделенный контакт для таймера (канал ШИМ) Прерывание |
12 | ПД6 AIN0 OC0A PCINT22 | I / O PinAnalog компаратор положительный Выделенный контакт для таймера (канал ШИМ) Прерывание |
13 | ПД7 AIN1 PCINT23 | |
14 | PB0 ICP1 CLKO PCINT0 | Вывод ввода / вывода Последовательное программирование в цепи Часы Прерывание |
15 | PB1 OC1A PCINT1 | Вывод ввода / вывода Выделенный контакт для таймера (канал ШИМ) Прерывание |
16 | PB2 SS OC1B PCINT2 | Контакт ввода / вывода Вход выбора ведомого устройства SPI.Когда контроллер действует как ведомый, этот вывод низкий. Выделенный контакт для таймера (канал ШИМ) Прерывание |
17 | PB3 MOSI OC2A PCINT3 | Вывод ввода / вывода MOSI (главный выход, подчиненный вход) для связи SPI. Данные принимаются этим контактом, когда контроллер действует как подчиненный Специальный штифт для таймера Прерывание |
18 | PB4 MISO PCINT4 | Контакт ввода / вывода MISO (Master Input Slave Output) для связи SPI.Когда контроллер действует как подчиненный, данные отправляются контроллером мастеру через этот вывод .Прерывание |
19 | PB5 SCK PCINT5 | Контакт ввода / вывода SCK (последовательные часы шины SPI). Эти часы используются контроллером и другими устройствами для передачи данных Прерывание |
20 | AVCC | Вывод напряжения питания для ADC |
21 | AREF | Опорное напряжение |
22 | GND | Штырь заземления |
23 | PC0 ADC0 PCINT8 | |
24 | PC1 АЦП1 PCINT9 | Контакт ввода / вывода Аналоговый канал 1 Прерывание |
25 | PC2 ADC2 PCINT10 | Контакт ввода / вывода Аналоговый канал 2 Прерывание |
26 | PC3 ADC3 PCINT11 | Контакт ввода / вывода Аналоговый канал 3 Прерывание |
27 | PC4 ADC4 ПДД PCINT12 | Контакт ввода / вывода Аналоговый канал 4 Последовательные данные (I2C) Прерывание |
28 | PC5 ADC5 SCL PCINT13 | Контакт ввода / вывода Аналоговый канал 5 Последовательные часы (I2C) Прерывание |
3.Основные функции ATmega8
ATmega8 может выполнять и выполнять ряд функций. Ниже приведены основные функции, связанные с этим крошечным модулем.Таймер
Atmega8 включает три таймера, два из которых 8-битные, а один 16-битный. Эти таймеры могут использоваться в обоих направлениях, то есть таймер, а также счетчик, где первый используется для создания операции в любой запущенной функции, управляет внутренними функциями контроллера и увеличивает цикл команд, в то время как позже используется для подсчета количества интервалов. путем увеличения переднего и заднего фронта штифта и в основном используется для внешних функций.Помимо этих таймеров, два других таймера включены в устройство с именем- Таймеры запуска генератора
- Таймер включения
Количество спящих режимов
В устройстве есть пять спящих режимов, которые помогают экономить электроэнергию.Эти режимы включают:- Экономия энергии
- Выключение
- Холостой ход
- Снижение шума АЦП
- в режиме ожидания
Обнаружение выхода из строя (BOD)
BOD, также известный как BOR (Brown Out Reset), используется для сброса модуля, когда Vcc (напряжение питания) становится ниже порогового напряжения отключения. Важно отметить, что таймер включения питания должен быть включен для создания задержки и помощи в возврате устройства из функции BOD.В этом режиме создается несколько диапазонов напряжения для защиты модуля при падении напряжения на линии подачи напряжения.Связь SPI
ATmega8 поставляется с последовательным периферийным интерфейсом (SPI) – коммуникационным модулем, который помогает установить связь между микроконтроллером и другими периферийными устройствами, такими как регистры сдвига, SD-карты и датчики. Он включает в себя отдельные линии синхронизации и данных с добавлением линии выбора для выбора соответствующего устройства для связи.Два контакта, используемые для связи SPI, следующие.- MOSI (главный выход, подчиненный вход)
- 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
- Используется во встраиваемых и робототехнических системах
- Широко используется в студенческих проектах
- Система домашней безопасности
- Для конструирования квадрокоптеров
- Промышленная автоматизация
denilsonsa / atmega8-magnetometer-usb-mouse: ATmega8 работает как USB-мышь, считывая движения с магнитометра (цифрового компаса). [Заключительный проект по курсу Bacharelado em Ciência da Computação DCC / UFRJ]
Введение
Это абсолютное указывающее устройство USB HID с AVR ATmega8. 8-битный микроконтроллер и магнитометр HMC5883L.Это позволяет пользователю управлять указателем мыши, перемещая датчик в воздухе, направляя его на желаемое положение, чем-то похожее на контроллер Wiimote (правда, по совершенно другой технологии).
Он был разработан Денилсоном Фигейредо де Са (см. Сообщение в блоге) в 2011 год в качестве выпускного проекта для получения степени бакалавра степень в области компьютерных наук в DCC / UFRJ.
Этот проект находится по адресу:
Полный текст моей диссертации (написан на португальском языке) доступен в формате PDF на
раздел загрузки GitHub и BitBucket.Исходный код LaTeX доступен в каталоге monografia /
(некоторые второстепенные
для его компиляции может потребоваться настройка).
Фото и видео
Принципиальная схема схемы доступна на монографии / img /
подкаталог этого репозитория.
Как это работает
Устройство поддерживает USB HID и должно работать в любой операционной системе (имеет успешно протестирован в Linux, Mac OS X и Windows). Он определяет сам по себе как клавиатура и мышь (фактически, «абсолютное указывающее устройство»).
Имеет физический переключатель, который выбирает между двумя режимами работы. (Режим конфигурации и режим мыши ) и три кнопки.
После подключения устройства к компьютеру пользователь должен установить переключатель в положение режим конфигурации и откройте любой простой текстовый редактор. В этом режиме устройство распечатывает меню конфигурации, отправляя (виртуальную) клавиатуру события к компьютеру (возможно, правильнее было бы сказать, что он “печатает” пункты меню вместо печати).Две кнопки устройства используются для перемещаться по элементам меню (выбирая следующий или предыдущий элемент), а третья кнопка подтверждает текущий выбор.
В режиме конфигурации пользователь должен откалибровать «ноль» от сенсор, а также углы экрана. Данные калибровки сохраняются в памяти EEPROM микроконтроллера, и, таким образом, он будет запомнен даже после отключения устройства.
После запуска «нулевой» калибровки устройство начнет печать значений.
от датчика, и пользователь должен двигать датчик всеми возможными
направлений, пытаясь получить максимальные и минимальные значения для каждого из
три оси (X, Y, Z).Подтвердите кнопку нужно нажать, чтобы закончить
калибровка. Эта калибровка требуется, потому что датчик может иметь
смещения и, таким образом, возвращают значения, которые не центрированы на нуле (см.
images zerocal_off
и zerocal_on
из подкаталога monografia / img /
).
После правильной калибровки «нуля» пользователь должен откалибровать каждый
угол экрана. Пользователь должен перемещаться по пунктам меню до Установить влево
,
наведите датчик на верхний левый угол экрана, а затем нажмите кнопку кнопка подтверждения .Это нужно повторить для всех остальных углов. Для лучшего
результатов, пользователь должен находиться прямо перед центром экрана, а
экран должен быть обращен либо на север, либо на юг.
Калибровка «нуля» необходима только один раз, сразу после сборки проект. С другой стороны, калибровка угла требуется всегда, когда пользователь сталкивается с другой ориентацией экрана.
После завершения этих двух калибровок устройство готово, и пользователь может переключиться в режим мыши .В этом режиме указатель мыши будет перемещаться в соответствии с движениями датчика, а три кнопки работают как кнопки мыши (левая, правая и средняя кнопка).
Устройство считывает измерения магнитного поля с датчика как
3-осевой вектор и применяет алгоритм для преобразования этого 3D-вектора в 2D.
координаты экрана. Подробнее об алгоритме читайте на сайте mouseemu.c
.
исходный код.
Из-за ограниченной точности сенсора и количества улавливаемого шума устройство применяет сглаживающий фильтр к положению указателя.Это увеличивает воспринимаемой точности, но также вносит небольшую задержку в движения.
Переключатель режима также можно использовать для приостановки положения мыши, так как указатель не перемещается в режиме конфигурации .
Все шаги, упомянутые здесь, можно увидеть в этом видео.
Возможные улучшения
Используйте микроконтроллер с большим объемом памяти. Это необходимо перед внедрение любых дальнейших улучшений.
Используйте сигнал прерывания
DRDY
от датчика, чтобы получить до 160 Гц.В применяемом в настоящее время методе используется непрерывная частота 75 Гц. режим измерения вместе с опросом. Это было реализовано так потому что на печатной плате датчика, которую я купил на eBay, не былоDRDY Линия
доступна. Печатная плата продается в Love Electronics есть эта линия.Для достижения наилучших результатов пользователь должен смотреть на север или на юг. направление. Если вместо этого пользователь смотрит на запад или на восток, вертикальное перемещение указателя сильно ухудшается.Это случилось потому что в этом случае датчик вращается вокруг той же оси, что и магнитное поле и, таким образом, практически не дает изменений в измерениях. Решение этой проблемы – присоединить акселерометр в качестве второго датчик к этому устройству.
С этими двумя датчиками магнитометр можно использовать для горизонтального движение указателя и акселерометр для вертикального указателя движение.
Эти два датчика могут использоваться вместе для реализации компенсация наклона (аналогично этому руководству от Love Электроника).
Третий датчик, гироскоп, может быть добавлен для повышения точности и уменьшите дрожание указателя, увеличивая отзывчивость устройство.
Попробуйте другой магнитометр с большей точностью (если он есть).
Попробуйте другие алгоритмы преобразования координат.
Реализуйте беспроводную связь между устройством и компьютером.
Это можно сделать с помощью пары микроконтроллеров: один рядом с компьютер, разговаривающий с USB-портом; и еще один рядом с датчиком.Связь между этими двумя микроконтроллерами может быть беспроводной. Это решение было реализовано ранее в двух других проекты.
Или это можно сделать с помощью устройства Bluetooth HID.
Требования
Для сборки этого проекта вам необходимо:
- ATmega8 или любой другой аналогичный микроконтроллер AVR. При использовании другая модель, может потребоваться небольшая доработка прошивки. Кстати, если вы собираетесь покупать микроконтроллер, очень рекомендую выбирая тот, у которого больше памяти.Хотя 8 КиБ было достаточно, некоторые части прошивку пришлось отключить, чтобы она подошла. Если есть возможность, приобретите устройство с объемом флэш-памяти не менее 16 КБ.
- HMC5883L 3-осевой магнитометр. Если вы используете другой датчик, будьте готов переписать код обработки датчика.
- Прочие электронные компоненты. См. Принципиальную схему на
monografia / img / AVR-magnetometer-usb-mouse
, доступно в SVG, PNG и Форматы PDF.
Требуемая программная среда:
- AVR-GCC – разработан с версией 4.5.3. Разные версии
требует обновления нескольких флагов компилятора в Makefile
- AVR-Libc – разработан с версией 1.7.0.
- AVRDUDE или любой другой инструмент для записи прошивки на устройство.
- Unix-подобная система – разработана на Gentoo Linux amd64, должна работать где угодно стандартными средствами Unix.
Каталоги в этом репозитории
Основное содержимое этого проекта находится в этих трех каталогах:
-
firmware /
– Содержит исходный код прошивки. -
projection /
– Код Python для изучения различных алгоритмов для преобразование 3D-векторов в 2D-координаты экрана. -
monografia /
– LaTeX-источник диссертации (на португальском языке). -
apresentacao /
– LaTeX-источник презентации (на португальском языке).
Есть также несколько дополнительных каталогов:
-
html_javascript /
– Некоторые HTML-страницы, которые я использовал во время презентации. -
linux_usbhid_bug /
– Информация о незначительной ошибке в Linux USB HID умение обращаться. -
other_scripts /
– Некоторые скрипты для генерации графика размера прошивки через некоторое время.
Как построить этот проект
Все перечисленные здесь команды предполагают, что вы находитесь в каталоге микропрограмм
(
один с Makefile
и с размером
).
Хотите получить быстрый список доступных целей make ? Запустите и сделайте справку
.
Препарат
Эти шаги нужно выполнить только один раз. Это начальная установка проект.
Установите оборудование на макетную плату. Вы можете найти краткое описание в комментарии Описание оборудования в
main.c
файл и полную принципиальную схему наmonografia / img / AVR-magnetometer-usb-mouse
, доступно в SVG, PNG и Форматы PDF.Откройте файл
hardwareconfig.h
и проверьте, соответствуют ли эти определения оборудование.В принципе, просто проверьте, подключены ли USB D- и USB D +. к правильным контактам.Откройте
TWI_Master.h
и проверьте правильность значенияTWI_TWBR
. Должен быть обновляется, если вы используете другую тактовую частоту.Открыть
Makefile
.- Установите
AVRDUDE_PARAMS
в соответствии с вашим программатором AVR, если вы используете что-то кроме USBasp. - Если вы используете часы, отличные от 12 МГц, обновите настройку
F_CPU
. - Если вы используете микроконтроллер, отличный от ATmega8, обновите
GCC_MCU
,AVRDUDE_MCU
,BOOTLOADER_ADDRESS
иCHECKSIZE_CODELIMIT
. - Также проверьте правильность битов предохранителя из
AVRDUDE_PARAMS_FUSE
. - Если вы хотите использовать загрузчик, установите
BOOTLOADER_ENABLED
на1
. Делать убедитесь, что на вашем устройстве достаточно места для хранения основной прошивки с загрузчиком. - Установите
ENABLE_KEYBOARD
,ENABLE_MOUSE
иENABLE_FULL_MENU
на1
или0
, согласно тому, что вы хотите в финальной прошивке.Посмотрите на комментарии в этом файле для получения подробной информации.
- Установите
Выполните команду
make writefuse
для записи битов предохранителя.
Запись загрузчика (необязательно)
Этот раздел не является обязательным. Вам не нужен загрузчик. Это просто круто и удобно, но вам это не нужно. Не стесняйтесь пропустить эти шаги.
Этот проект поставляется с USBaspLoader. После того, как он будет записан в микроконтроллер, любое более позднее обновление прошивки может быть выполнено без необходимости преданный программист AVR.
После записи загрузчика, если выполняется определенное условие (конкретное кнопка удерживается) во время загрузки устройства, то загрузчик примет control, и устройство идентифицирует себя как USBasp. Пишу в это “виртуальный” USBasp фактически обновит прошивку без необходимости дополнительное оборудование.
Вы обновляли Makefile
make writefuse
?Выполнить
очистить
.Выполнить
, сделать загрузку
. Это скомпилирует загрузчик.Запустите
, сделайте writeboot
. Это запишет загрузчик в микроконтроллер. Для этого шага вам понадобится программист AVR.Запустите
make clean
, чтобы очистить скомпилированные файлы. Это необходимо, потому что скомпилированные файлы из загрузчика несовместимы с основным проектом (и наоборот).
Готово! Вам больше не нужен программатор AVR!
Запись в EEPROM (необязательно)
Вам не нужно сейчас записывать EEPROM.Вы можете просто использовать прошивку
встроенные меню (включенные с ENABLE_KEYBOARD
) для интерактивного обновления
настройки хранятся в EEPROM.
Значения EEPROM, определенные в sensor.c
, подходят для моего датчика.
Вероятно, у вашего датчика будут разные номера калибровки, и поэтому он
настоятельно рекомендуется использовать меню прошивки для ее калибровки (по крайней мере
однажды).
В любом случае, чтобы записать значения EEPROM, просто запустите make
, а затем make writeeeprom
.
Пишем основную прошивку
Вам либо нужен программатор AVR, либо вам нужно запустить загрузчик на микроконтроллер (см. раздел о загрузчике).
Выполните либо
, либо все
, либо, сделайте комбайн
.make
– это ярлык дляmake all
.make comb
использует некоторые специальные флаги компилятора для компиляции все файлы одновременно, что приводит к дополнительной оптимизации, а не возможно при компиляции отдельно.Эта команда не будет работать на GCC 4.6 или новее, потому что флаги изменились (и, таким образом, они нужно обновить). ПрочтитеMakefile
, чтобы узнать больше.Если это не удается, попробуйте запустить
make clean
. Makefilemake clean
всякий раз, когда что-то выходит из строя.
Запустите
, сделайте запись флэш-памяти
.
После редактирования прошивки вам нужно только повторить эти два шага.
Благодарности
- Проф. Нельсон Килула Васконселос , консультант этого проекта.
- Бруно Боттино Феррейра за помощь и терпение во время этого проекта.
- Marcelo Salhab Brogliato за предложение преобразования координат с использованием линейные уравнения.
- OBJECTIVE DEVELOPMENT Software GmbH за потрясающий V-USB реализация USB только для микропрограмм для устройств AVR.
- Atmel Corporation для микроконтроллеров AVR и AVR315: TWI Мастер реализации.
- Авторы и соавторы всего открытого и бесплатного программного обеспечения, использованного во время этот проект.
- Демонстрация Marcin Wichary на Google I / O 2011: Секреты Google Pac-Man: Game Show, которое дало мне основную идею для этого проект.
vi: expandtab: filetype = markdown
Введение в архитектуру микроконтроллера 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 очень мал по размеру и используется во многих простых приложениях.
- Мега микроконтроллер 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 используются в качестве генераторов счетчиков таймера, а также в качестве внешнего генератора, в котором кристалл напрямую связан с двумя выводами. Pin-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, проект- ,
- , AVR, микроконтроллер, светодиодная матрица, интерфейс ,
- , UART, связь между Arduino Uno и ATmega8 ,
- , интерфейс, оптопара, микроконтроллер ATmega8. Амперметр 100 мА на базе микроконтроллера AVR
- Система противоугонной сигнализации на базе микроконтроллера ATmega8
- Интерфейс джойстика на базе микроконтроллера AVR
- Интерфейс микроконтроллера AVR Интерфейс гибкого датчика
- Управление шаговым двигателем с использованием микроконтроллера AVR
Таким образом, все это о микроконтроллере Atmega8 учебник , который включает, что такое микроконтроллер Atmega8, архитектура, конфигурация контактов и его приложения.Мы надеемся, что вы лучше понимаете эту концепцию. Кроме того, любые сомнения относительно этой концепции или реализации проектов на основе микроконтроллеров AVR, пожалуйста, оставьте свой отзыв, комментируя в разделе комментариев ниже. В чем разница между микроконтроллером Atmega8 и Atmega 32?
Шина I2C для ATtiny и ATmega: 8 шагов
Теперь, когда мы научились использовать шину I2C для чтения и записи расширителя порта ввода / вывода, давайте перейдем к использованию памяти I2C, как RAM, так и EEPROM.Основное отличие состоит в том, что несколько байтов могут быть прочитаны или записаны из памяти с помощью одной команды I2C.
Чтобы подготовиться к этим экспериментам, нам нужно немного изменить оборудование и построить пару новых схем на макетной плате. Сохраните схему расширителя портов, так как мы будем использовать ее для отображения некоторых значений памяти. Снимите DIP-переключатели с PCA8574A и поместите мигалки на эти контакты. Если вам не хватает мигалок, переместите те, что с P4 по P7, на P0 по P3. (Отображаемые значения достаточно малы.)
Теперь посмотрите на схему I2C Ram.pdf и подключите PCF8570 к макетной плате. Посмотрите также на картинку. Обязательно привяжите контакт 7 к Vcc. Проложите провода для SDA и SCL от PCA8574A. Никаких дополнительных подтягивающих резисторов не требуется.
Если вас также интересует EEPROM, создайте эту схему, также используя I2C EEPROM.pdf для 24C16, но имейте в виду, что в примере используется ATmega168. Эта схема действительно проста. Как обсуждалось выше, биты адреса следует игнорировать. Просто подключите питание и землю.Не подключайте SDA и SCL, так как мы еще не закончили эксперименты с Ram.
Мы начнем наши эксперименты с памятью с ATtiny2313, подключенного к расширителю портов PCA8574A и к PCF8570 Ram. Программа запишет некоторые числа в RAM, затем прочитает их и отобразит на расширителе портов.
Измените рабочий каталог на RAM под USI I2C. Используйте файл make для компиляции и загрузки USI_I2C_RAM.c. Обратите внимание, что файлы драйверов I2C идентичны тем, которые мы использовали ранее.Подключите питание, и вы должны увидеть, как светодиод 1 (PD6) замигает один раз. Данные будут записаны в первые 4 байта памяти. Нажмите кнопку, и два байта будут считаны и отображены. Вы должны увидеть один светодиодный индикатор на расширителе портов (P0), двухсекундную паузу, затем загорятся два светодиода (P0 и P1). Еще две секунды пауза, и светодиоды должны погаснуть. Нажмите кнопку еще раз, чтобы начать последовательность заново. Отладка аналогична описанному выше методу.
Давайте посмотрим на код. Откройте USI_I2C_RAM.c. Он должен выглядеть очень похоже на предыдущий код. Основные отличия заключаются в деталях чтения и записи памяти. Посмотрите, как загружается буфер сообщений перед вызовом, который фактически выполняет запись. Первый байт – это адрес подчиненного устройства с соответствующим установленным битом чтения / записи. Но следующий байт – это адрес памяти, с которого следует начать запись данных. Затем идут фактические байты данных, которые будут последовательно загружаться в память, начиная с указанного нами адреса. Мы указываем размер сообщения как 6.Итак, мы начинаем запись с адреса 00 и записываем значения 01, 03, 02 и 06 в ячейки памяти с 00 по 03.
Чтобы прочитать данные обратно из памяти, мы должны использовать функцию USI_TWI_Start_Random_Read. Буфер сообщений получает адрес подчиненного устройства в первом байте и начальный адрес во втором байте. Затем вызовите функцию с размером сообщения, равным числу байтов для чтения плюс 2. Обратите внимание, что бит чтения / записи не имеет значения, поскольку чтение будет выполнено независимо. Возвращаемые данные будут начинаться со второго места в буфере сообщений.После считывания данных они инвертируются для отображения на расширителе портов и записываются в них по одному байту с паузой между значениями. Наконец, светодиоды расширителя портов погаснут. Запись в расширитель портов идентична тому, что было сделано в предыдущих примерах. Для развлечения вы можете раскомментировать оператор #define DEBUG, как указано выше, и увидеть множество мигающих светодиодов.
Покрытые волнением после очередного удачного эксперимента, давайте перейдем к ATmega168 и EEPROM. Измените свой рабочий каталог на EEPROM в TWI I2C.Используйте файл make для компиляции и загрузки TWI_I2C_EEPROM.c. Обратите внимание, что файлы драйвера I2C идентичны тем, которые мы использовали ранее для PCA8574A. Чтобы протестировать программу, отключите ATtiny2313 и подключите ATmega168. Оставьте шину I2C подключенной к Ram и включите питание. Результаты другие, поскольку теперь мы пишем и читаем больше данных. Светодиод 1 на PD7 должен мигать при инициализации. Нажмите кнопку, и данные будут считаны из памяти и отображены. Светодиоды на PCA8574 должны мигать в следующей последовательности: P1, P0 и P2 (все выключены), P0 и P1, P1 и P2.Наконец, все светодиоды портов должны погаснуть. Нажмите кнопку еще раз, чтобы повторить это.
Ой, но подождите, скажете вы. Разве это программа не для EEPROM? Поскольку мы обращаемся к устройству памяти по одному и тому же адресу I2C, одна и та же программа работает как для оперативной памяти, так и для EEPROM. Выключите питание, переместите SDA и SCL из RAM в EEPROM и снова запустите программу. Он должен работать точно так же. Обратите внимание, что EEPROM и Ram не могут быть подключены к шине I2C одновременно, поскольку они имеют один и тот же адрес.(Самые умные из вас могут подумать об изменении программируемых адресных битов на ОЗУ, но это все равно не сработает. 24C16 использует весь блок адресов, который может быть запрограммирован для ОЗУ.)
Хорошо, давайте посмотрим на это последняя программа. Откройте TWI_I2C_EEPROM.c. Первое, на что следует обратить внимание, это то, что я указал, как обращаться ко всей EEPROM 24C16. Доступ к нему можно получить блоками по 256 байт по 8 различным адресам ведомых устройств I2C. Посмотрите, как MEMORY_ADDR определяется как начальный адрес в шестнадцатеричном формате 50; вот почему Ram работал.Если вы хотите получить доступ к другим блокам 24C16, используйте другие адреса, как я указал. Посмотрите, как я настроил запись в память. Сначала в буфер помещается адрес подчиненного устройства с установленным битом чтения / записи, затем начальный адрес 00, затем 16 байтов данных. Функция TWI_Start_Read_Write вызывается для записи данных (как и раньше) с размером сообщения, установленным на 18. Когда кнопка нажата, мы используем TWI_Start_Random_Read и TWI_Read_Data_From_Buffer для обратного чтения данных. Каждый третий байт отображается на светодиодах расширителя портов.Наконец, светодиоды выключаются в ожидании следующего нажатия кнопки.
Вы можете спросить, почему я решил записать 16 байтов. Если вы внимательно прочитаете лист данных, вы увидите, что 24C16 выполняет цикл записи всякий раз, когда он получает 16 байтов, даже если отправляется больше байтов. Так что это показалось хорошим числом для использования. Если вы решите увеличить это значение, вам придется изменить размер MESSAGEBUF_SIZE. Вам также нужно будет изменить значение TWI_BUFFER_SIZE в TWI_Master.h. Это связано с тем, что драйвер копирует данные из буфера сообщений для использования подпрограммой обслуживания прерывания.
Поздравляем! Теперь вы готовы использовать шину I2C в своих проектах!
Amazon.com: Программатор HonsCreat USBasp AVR Программатор для ATMEL Quadcopter KK2 Инструмент обновления KK2.X с 10-контактным кабелем и 6-контактным адаптером ATMEGA8 ATMEGA128 для Arduino: Компьютеры и аксессуары
С моим ограниченным использованием этого программатора мне он скорее нравится. Есть много отрицательных отзывов, и, возможно, со временем их количество будет расти, но мне этот программист больше нравится.Это вопрос опыта и использования, и вот почему.Я программирую Arduinos много лет, как и другие, использующие подобные продукты. Стандартный способ программирования Arduinos – через встроенный USB-порт через загрузчик. Честно говоря, загрузчик для меня – всего лишь удобный способ вставить программу в Arduino, иначе это была бы плата разработки Atmel-Inside. Мне больше нравится идея НЕ иметь загрузчик, чтобы моя программа запускалась сразу или экономила память. Для этого у вас должен быть другой Arduino, настроенный как программист ISP и подключенный к контактам SPI на вашем целевом чипе.Это очень удобно, когда у вас есть Arduino-на-макетной плате, но это действительно беспорядочно.
Итак, мне это надоело, и я заказал этот программатор USBasp. Это намного чище и проще. До сих пор мне удалось обновить все загрузчики на моих старых платах Arduino, мне удалось заблокировать свой Arduino Uno (и разблокировать его), загрузить программы на некоторые Arduinos с плохими чипами FTDI и многое другое. Суть в том, что это намного проще, чем перепрыгивать через 6 отдельных проводов.Вероятно, это будет степень моего использования, поэтому другие могут больше жаловаться на этот продукт. Для приложений с напряжением 3,3 В я предпочитаю STM32 вместо STLINK, поэтому я бы никогда не использовал такой продукт, как для 32-разрядных или 3,3-вольтовых приложений.
Качество сборки этого продукта во многом такое же, как и у любого другого электронного продукта, выходящего из Китая в наши дни – он полон флюса, не как в старые времена, поэтому будьте осторожны с заражением флюсом.
Как упоминал другой обозреватель, вы должны использовать такой инструмент, как ZaDiag, чтобы загрузить драйверы, прежде чем ваша система его распознает.Как только драйвер загружен, все готово.
Мне, вероятно, придется купить запасной, но я мог бы поискать более универсальный, более близкий к новейшей конструкции Fischl. Я не часто ими пользуюсь, но у меня где-то есть пара ATmega2560.
Итак, у него может не быть всех наворотов, но он должен выполнять свою работу.
О, ленточный кабель примерно 2 фута в длину. Он ДОЛЖЕН быть достаточно длинным, но на мой вкус все же кажется коротковатым. Это тоже довольно легко исправить.
Информация о продукте База данных устройств® Загрузки Тестирование на соответствие Дистрибьюторы | На главную / База данных устройств®Список устаревших устройствПоиск базы данных устройств MDK5
Новинка! Отмечает фишки, добавленные за последние 60 дней. Эту информацию можно найти на веб-сайте Keil по адресу: http://www.keil.com/dd/ |
Могу ли я заменить Atmega8 на Atmega328?
Atmega8 – отличный микроконтроллер, обладающий множеством функций и возможностей.
Это также один из наиболее часто используемых микроконтроллеров, используемых любителями и инженерами во многих электронных устройствах.
Но можно ли заменить Atmega8 на Atmega328? Да вы можете заменить Atmega8 на Atmega328, поскольку оба микроконтроллера имеют одинаковое количество контактов (28) и имеют одинаковое рабочее напряжение (2,7 – 5,5 В). Atmega8 и Atmega328 также имеют почти идентичный набор периферийных устройств, таких как таймеры, аналого-цифровой преобразователь и последовательная связь.
Однако между этими двумя микроконтроллерами есть небольшие различия, из-за которых вы можете выбрать Atmega328 вместо Atmega8.
Я выделю эти различия позже в этой статье.
Причина, по которой вы захотите заменить существующую Atmega8 на Atmega328, может быть столь же простой, как у вас есть только Atmega328.
Независимо от того, что не беспокойтесь, вы можете без проблем их заменить.
Являются ли Atmega8 и Atmega328 частью одного семейства микроконтроллеров?
В мире микроконтроллеров в вашем распоряжении множество вариантов.
Существует множество производителей микроконтроллеров, включая Atmel, Intel, Texas Instruments, National Semiconductor и Microchip.
Эти компании производят большинство микроконтроллеров, используемых сегодня.
Сюда входят:
Среди этого набора микроконтроллеров наиболее широко используется семейство AVR из-за его низкой цены, доступности, общности и простоты использования.
Они были произведены компанией Atmel, которая позже была приобретена Microchip.
AVR – это тип архитектуры, на которой построены эти микроконтроллеры.
Семейство AVR делится на подмножество семейств:
Atmega8 и Atmega328 производятся Microchip и являются частью семейства megaAVR.
Причины, по которым вы хотели бы заменить Atmega8 на Atmega328
Возможно, вы уже давно используете Atmega8 и хотите перейти на новый микроконтроллер, или у вас есть только запасной Atmega328.
Независимо от вашей причины, Atmega328 – отличный выбор, поскольку он обладает многими аналогичными атрибутами, что и Atmega8, и может использоваться в качестве прямой замены.
Он имеет одинаковое количество контактов, тактовую частоту, рабочее напряжение и набор периферийных устройств.
Но есть некоторые очень незначительные различия, которые могут побудить вас выбрать Atmega328 вместо Atmega8 в зависимости от ваших потребностей.
Причина №1: Дополнительные
каналы ШИМШиротно-импульсная модуляция (PWM) используется для многих приложений управления, включая управление двигателями постоянного тока, регулирующими клапанами, насосами, гидравликой и другими механическими деталями.
Он также используется в приложениях для управления яркостью света, например светодиодов.
И Atmega8, и Atmega328 имеют каналы ШИМ, однако Atmega328 имеет три дополнительных канала ШИМ.
Но действительно ли вам нужно еще 3 канала ШИМ?
Да!
Наличие дополнительных каналов ШИМ определенно является преимуществом. Чем больше, тем лучше.
Допустим, ваш следующий проект – манипулятор, в котором вам нужно управлять 4 или более сервоприводами.
Если вы выберете Atmega8, у вас будет доступ только к трем каналам ШИМ, и вы ограничены тем, сколько сервоприводов вы можете контролировать.
Вместо этого, если вы выберете Atmega328, у вас будет доступ к шести каналам PWM, что означает, что вы сможете добавить больше сервоприводов, чтобы ваша рука робота могла больше двигаться.
Причина № 2:
ПамятьВсе микроконтроллеры имеют встроенную память. Это одна из многих вещей, которая отличает их от микропроцессоров.
Так же, как мы, люди, полагаемся на память во многих аспектах жизни, микроконтроллер полагается на свою память для множества различных аспектов своих операций.
Он использует память для хранения вещей, включая программу, постоянные и переменные времени выполнения, а также другие важные данные.
Микроконтроллер имеет три основных типа памяти:
- Флэш-память
- Статическая оперативная память (SRAM)
- Электрически стираемая программируемая постоянная память (EEPROM)
Флэш-память
Этот тип памяти является «энергонезависимой», что означает, что при отключении питания от микроконтроллера все данные, хранящиеся во флэш-памяти, сохраняются и не теряются.
Программа, которая сообщает микроконтроллеру, что делать, хранится во флэш-памяти.
Статическая оперативная память (SRAM)
SRAM – это «энергозависимая» память.
Таким образом, в отличие от флэш-памяти, когда питание микроконтроллера отключается, все данные, хранящиеся в SRAM, теряются.
Переменные и константы, которые генерируются во время выполнения программы, хранятся в SRAM.
электрически стираемая программируемая постоянная память (EEPROM)
Последний тип памяти – EEPROM.
EEPROM – это «энергонезависимая» память.
Он используется для хранения постоянных данных, которые могут быть вызваны позже.
Постоянные данные, такие как параметры устройства и данные датчиков.
Ниже приведена таблица, показывающая, сколько памяти (Flash, EEPROM, SRAM) у Atmega328 по сравнению с Atmega8:
Atmega328 | Atmega8 | |||
Флэш-память | 32 Кбайт | 8 Кбайт | ||
EEPROM | 512 | 512 байт SRAM | 2 Кбайта | 1 Кбайт |
Как видите, Atmega328 превосходит Atmega8, когда дело доходит до объема памяти для всех трех типов памяти.
Наличие большего объема памяти является несомненным преимуществом для многих различных приложений, поскольку позволяет писать программы большего размера, хранить больше данных и иметь больше констант и переменных времени выполнения.
Причина № 3:
Дополнительный спящий режимХотя это не большая разница, тем не менее, разница есть.
Каждый микроконтроллер имеет возможность переходить в режимы для экономии энергии.
Это так называемые «спящие режимы».
Спящий режим Atmega8:
- Неактивный
- Снижение шума АЦП
- Энергосбережение
- Выключение
- Ожидание
Спящий режим Atmega328:
- Ожидание
- Снижение шума АЦП
- Энергосбережение
- Выключение питания
- Ожидание
- Расширенный режим ожидания
Atmega328 имеет на один спящий режим больше, чем Atmega8.
Еще один сон может показаться не таким уж большим делом, но он дает вам больше возможностей для экономии энергии, что может иметь жизненно важное значение для продления срока службы батареи.
Причина № 4:
ЦенаПоследнее различие между Atmega328 и Atmega8 – их цена.
Цены, указанные ниже, указаны на веб-сайте Microchips.
Atmega328 | Atmega8 | |
Цена | $ 1.38 | 1,75 доллара |
И снова Atmega328 становится победителем, когда дело касается цены.
Вы можете подумать, что разница в цене незначительна. Вы экономите всего 0,37 доллара.
Но подумайте, купите ли вы 100 Atmega328 по сравнению со 100 Atmega8.
В конечном итоге вы сэкономите 37 долларов!
Могу ли я использовать один и тот же программатор и IDE для программирования Atmega8 или Atmega328?
Теперь вы знаете, что можете заменить Atmega8 на Atmega328, вам понадобится способ написать код и запрограммировать его.
Хорошая новость заключается в том, что, поскольку оба этих микроконтроллера производятся одной компанией и являются частью одного семейства, их можно программировать с использованием одного и того же программатора и интегрированной среды разработки (IDE).
Список IDE, которые вы можете использовать в программе Atmega328, включает
- Codevision AVR
- Atmel Studio
- WinAVR
- AVR-GCC
Список программистов AVR, которые можно использовать для записи кода на Atmega328:
- AVRISP
- AVR Dragon
- STK500
- Программатор / отладчик JTAG
Другие микроконтроллеры, которые могут заменить Atmega8?
Когда дело доходит до вариантов замены Atmega8, у вас есть много вариантов.
Atmega328 – не единственный микроконтроллер, доступный в вашем распоряжении.
Приведенная ниже таблица взята с веб-сайта Microchip и содержит список всех микроконтроллеров, которые вы можете использовать для замены Atmega8.