Принцип работы программы на МК ATtiny2313
Сама программа состоит из 3-х классов (USART, Queue, CmdExecutor) и основного файла main.cpp, который содержит функцию main(). Класс USART отвечает за инициализацию протокола и получения данных, в нашем случае данные — это команды. После получения, команда добавляется, push(cmd), в очередь Queue. Класс Queue, он же очередь, имеет два метода push(cmd) и pop(cmd). С помощью первого метода, как мы уже сказали, добавляем команды в очередь, а вторым, соответственно берём первую команду из очереди. В функции main() и проверяется если в очереди есть команды. Если команда нашлась main() берёт её и передаёт классу CmdExecutor, он же исполнитель команд, выполняет её — execute(cmd).
Для чего нужна была очередь команд, нельзя было просто выполнять команды сразу после получения, а не тратить время и ресурсы не очень-то и мощного ATtiny2313? Да, можно было, можно было вообще сделать этот пример из двух функций: main() и ISR(USART_RX_vect), и гуляй Вася. Однако не так, во первых, если одна команда выполняется очень много времени, а другая уже на подходе, то как тут быть? Во вторых, если микроконтроллер помимо команд выполняет ещё и другую работу, тоже очень важную, а мы эту работу будем остановить очень часто, тогда может выйти так, что результат будет не тот, да и команды не правильно могут выполнятся, особенно тогда, когда и команда и работа используют те же ресурсы.
Тактирование микроконтроллеров
Тактовый генератор это своего рода сердце микроконтроллера. По кажлому «тику» или импульсу тактового генераора происходи какая нибудь операция — передаются какие либо данные по шинам и регистрам, работают таймеры, переключаются порты ввода/вывода. Чем больше тактовая частота тем больше энергии нужно микрокнтроллеру.
Импульсы формируются тактовым генератором с определенной скоростью (частотой). Сам генерато может быть как может быть как внутренний так и внешний. Все это гибко настраивается.
Микроконтроллер можно тактировать от:
- внутреннего генератора с внутренней задающей RC цепочкой. При таком тактировании никакой обвязки не нужно. К выводам XTAL1 и XTAL2 можно ничего не подключать, их можно использовать как обычные порты ввода/вывода. Внутренний RC генератор можно настроить на 4 значения частоты;
- внутреннего генератора с внешней задающей RC цепочкой. Тактирование аналогично предидущему способоу, только вот задающая RC цепочка находится не внтури МК, а снаружи, такая схема позволяет изменять частоту прямо на ходу. Изменение задающей частоты происходит путем изменения значения сопротивления;
- внутреннего с внешним задающим кварцем. В этом случае снаружи МК цепляют кварцевый резонатор с небольшой обвязкой кварца из двухконденсаторов. Если используется кварц(резонатор) с частотой менее 1 МГц то конденсаторы можно и не ставить.
- внешнего генератора. Это когда импульсы поступают на вход МК от внешнего генератора. Такое тактирование применяют когда нужно чтобы несколько независимых микроконтроллера работали синхронно от одного генератора.
У каждого способа тактирование есть свои достоинства. Если мы используем внутренюю или внешнюю RC цепочку то у нее есть один недостаток — » плавание частоты в зависимости от температуры. И мы не можем максимально развить максимальную частоту. Если использовать кварц то он занимает 2 ножки микроконтроллера. На кварце можно развить максимальную частоту. Частота тактирования микроконтроллера зависит от того какой кварц мы подключили.
Посмотреть способы тактирования МК можно в даташите System Clock and Clock Options. Если в кратце, то выбор способа тактирования осуществлятеся путем выставления определенных Fuse битов. Но если вы пока еще не ознакомились с ними, то лучше пока туда не лезть и использовать выбранный по умолчанию способ тактирование. По умолчанию в МК выбран внутренний генератор. Если не правильно выставить Fuse биты можно «залочить» МК и он превратиться в мертвеца и вернуть его к жизни будет совсем не просто, но все же возможно.
GSM сигнализация сделанная своими руками
Не всегда есть возможность купить дорогую промышленную модель охранной системы. В таком случае многие предпочитают собрать сигнализацию самостоятельно. Конечно, в этом вопросе есть множество нюансов, и от того, насколько правильно он будет решен, зависит эффективность работы собранного оборудования.
Благо в сети есть множество моделей GSM сигнализации и схем с подробным описанием. Причем, собранное на их основе оборудование практически не уступает по своей эффективности промышленным образцам. Одну из таких простых систем GSM сигнализаций, выполненных своими руками мы и рассмотрим в этой статье.
Смотрим видеообзор, сигнализация за 10-50 рублей;
Итак, установить сигнализацию в квартире, гараже или на даче – это правильное решение. При этом не нужно покупать оборудование, его вы сможете собрать сами. Для этого понадобятся небольшие познания в электронике, набор деталей и паяльник, а также руководство по монтажу gsm сигнализация инструкции.
В качестве комплектующих для такой системы нужны:
- Кнопочный мобильный телефон, которым вы уже не пользуетесь
- Магнит
- Геркон
- Провода и обычный выключатель
Как видите, набор деталей совсем небольшой и не потребует значительных вложений. Обычно все это уже есть в каждом доме, где владелец любит собирать различные устройства. Так что сигнализация получится практический бесплатной.
Смотрим видео, реально рабочая схема:
Теперь, что касается процесса сборки. Он состоит их нескольких несложных шагов.
Сначала нужно настроить вызов абонента, а именно текущий номер телефона владельца, одной кнопкой.
Затем придется снять лицевую панель, чтобы получить доступ к плате и выполнить подключение контактов. Оно зависит от модификации прибора. Если в нем функции отбоя и выключения относятся к одной кнопке, то один провод необходимо припаять к ней, а другой к цифровой клавише, отвечающей за вызов. Такая GSM сигнализация представлена на схеме ниже. В случае использования отдельных кнопок под каждую функцию, припаиваются отдельные провода к каждой из них и используется геркон с тремя контактами.
Наглядно этот процесс можно изобразить в виде двух, несколько отличающихся схем:
Если внимательно изучить представленные материалы, то можно увидеть, что такой подход позволяет выключать телефон одновременно с сигнализацией. Это дает возможность сэкономить ресурс батареи и не потребуется частая подзарядка.
А далее остается самое простое, после того как цепь смонтирована, на дверь устанавливается магнит и выполняется настройка геркона. Работа такой GSM сигнализации, собранной своими руками, мало чем отличается от промышленных моделей. При открытии двери контакты геркона замыкаются и с телефона выполняется звонок по запрограммированному номеру.
Постановка на охрану и снятие выполняются при помощи дополнительного выключателя. Место его расположения и других приборов вы может выбрать самостоятельно, главное, чтобы они не были видны посторонним.
Собранная GSM сигнализация своими руками получается полностью автономной. Единственным условием ее работы является периодическая подзарядка батареи телефона. Можно зарядное устройство вмонтировать в электросеть помещения. В таком случае сигнализация будет работать батареи только при отключении электричества.
Единственным недостатком такой системы является тот факт, что для срабатывания потребуется пару секунд, пока будет установлено соединение с номером. Если воры за это время успеют войти и закрыть дверь, то цепь разомкнется и тревожное сообщение к вам не придет.
Смотрим еще одну рабочую схему:
Однако этого можно избежать, если снабдить магнит дополнительным устройством, не позволяющим ему повторно размыкать цепь. Вариантов выхода из такой ситуации множество. Самым простым из них является установка магнита таким образом, чтобы при открытии двери он немного сдвигался. В этом случае при быстром закрытии ничего не произойдет, так как не будет контакта. Выключается цепь при возвращении магнита в исходное состояние. Установка собранной самостоятельно GSM сигнализации доступна каждому.
PIC
Открывает наш парад компания Microchip Technology с серией PIC. Эти МК отличаются между собой разрядностью (8/16/32), набором периферии и корпусом чипа. Восьмибитные варианты же делятся на четыре семейства: baseline, mid-range, enhanced mid-range и PIC18. Более подробная информация приведена в таблице.
Также есть 16-битные «пики» — PIC24F и DsPIC30/33F. Ну и 32-битные — PIC32MX. Эти непонятные сочетания букв и цифр — часть идентификатора чипа. То же, что и марки у машин. Например, широко распространенный камень PIC16F628A расшифровывается так: семейство PIC16F6 (Mid-range), а остальная часть имени — указатель на конкретный камень. У рассмотренных далее МК в имени может содержаться еще больше информации.
Цена и содержимое
Микроконтроллер PIC16F628A
Эти микроконтроллеры имеют среднюю стоимость. Например, камень PIC6F628 в Chipdip стоит около 150 рублей, а PIC18F2550 — 620 рублей.
Более дешевые экземпляры имеют в своем составе минимум периферии. У упомянутого ранее PIC6F628 следующие характеристики: встроенный тактовый генератор для работы с частотой 4 или 8 МГц; 18 пинов, из них 16 — ввод/вывод, а 2 — питание; для работы на более высоких частотах можно подключить кварцевый резонатор; Flash-память объемом 2048 слов; 4 аналоговых входа; два 8-битных таймера и один 16-битный; 224 байта ОЗУ (самому смешно); 128 байт EEPROM (это программно перезаписываемая энергонезависимая память, вроде жесткого диска); интерфейс UART.
Программирование и использование PIC
Программируют для микроконтроллеров, как правило, на ассемблере и на Си. Есть множество сред разработки: MPASM и MPLAB, MicroC, JALedit (язык JAL, сам про него впервые слышу). Скачать MPLAB
Как правило, на таких МК собирают простенькие устройства вроде мигалки или таймера. Эти контроллеры долго имели монополию на постсоветском пространстве, и в результате в интернете есть огромное множество русскоязычных сервисов и статей, посвященных этим моделям МК. При сборке устройства часто можно даже не писать прошивку, ведь она легко находится в интернете, даже в нескольких вариантах.
Вторым плюсом можно указать встроенные независимые (от тактового генератора) счетчики. Благодаря этому факту семейство зарекомендовало себя в качестве «мозгов» для частотомеров. Пара таких контроллеров лежит у меня в мастерской на черный день. Из минусов можно выделить только высокую стоимость оригинальных программаторов, которые зовутся PICkit.
PICKIT3
В интернете есть множество статей по сборке достойных аналогов таких программаторов. Но вся соль в том, что для сборки программатора тебе нужно что? Правильно, программатор. На этот случай был разработан программатор Громова. Для его сборки почти ничего не нужно, а работает он от COM-порта компьютера. На момент его разработки популярность этой серии МК была высока, да и COM-порты были у всех ПК. Сейчас все это уже редкость, так что придется преодолеть порог вхождения либо раскошелиться.
Применение микроконтроллеров для быта (Микроэлектроника в быту)
Двухканальный стабилизированный диммер (с подробнейшим описанием) (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
Перенос МК с Arduino на свою плату
Напомню, что источник тактирования играет важную роль при загрузке прошивки. Микроконтроллер может быть настроен на тактирование от внутреннего генератора на 8 МГц, либо на тактирование от внешнего.
- При работе от внутреннего генератора МК запускается и работает просто при подаче напряжения, готов прошиваться как через UART (при наличии загрузчика), так и через ISP.
- При настройке на работу от внешнего генератора МК сможет работать и прошиваться только при подключении внешнего генератора. То есть если генератор физически не подключен к МК – его нельзя будет прошить даже через ISP.
Это же касается переноса микроконтроллера с платы Ардуино на свою плату: на Ардуино стоит кварц. Если на вашей плате есть кварц для МК – всё будет работать сразу. Если на вашей плате нет кварца – перепаянный с Ардуино МК не будет работать и прошиваться. Для переноса МК с платы Ардуино на свою плату (без кварца) нужно настроить МК на внутреннее тактирование, об этом мы говорили в прошлом уроке. Для этого нужно подключить к плате программатор (USB-ASP или Arduino as ISP) и прошить фьюзы
- Вручную через , выставив нужное во встроенном калькуляторе фьюзов.
- Вручную через , сконфигурировав и выставив фьюз-байт вручную в boards.txt.
- Автоматически через конфигурацию ядра. Для Arduino Nano это может быть GyverCore или , там в меню платы есть пункт Clock -> Internal 8 MHz. В Arduino IDE жмём “Записать загрузчик” и прошиваются новые фьюзы, после чего можно выпаивать МК и запускать/прошивать его уже без кварца.
Интегрированные функции защиты данных
Робототехника, IoT и Industry 4.0 в основном используют стандартные микроконтроллеры, созданные для промышленного и бытового применения (их общее название — «микроконтроллеры общего назначения»). Но также уже доступны и модели со встроенными функциями безопасности. Например, семейство микроконтроллеров STM32 (семейство 32-битных микроконтроллеров производства STMicroelectronics), которое имеет множество встроенных функций, обеспечивающих их защиту, в том числе:
- защиту от кражи личных данных (защита от манипуляций, защита целостности, отслеживаемость движения продукта);
- отказ в обслуживании данных (регулирование);
- защиту от отслеживания и манипулирование данными и кодом (защита памяти, управление правами доступа, уровень отладки, защита от манипуляций, защита целостности, безопасные обновления прошивки);
- защиту от физического (механического) вмешательства (защита от манипуляций на кристалле).
Эти функции в основном реализуются их интеграцией непосредственно на кристалле микроконтроллера. Они обеспечивают надежную проверку подлинности (верификацию), целостность платформы и постоянную защиту данных, включая защиту конфиденциальности конечных пользователей, а также комплексную защиту данных, IP-адресов и брендинга и отвечают самым высоким требованиям безопасности данных для стандартных продуктов. Типичные целевые приложения таких микроконтроллеров — это, например, принтеры, компьютеры, шлюзы, конечные точки IoT и различные датчики.
Электроника для лаборатории на микроконтроллерах (Лаборатория)
Цифровая паяльная станция своими руками (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
Описание опубликовано в журналах «Радио» № 7 за 2004 г., стр. 26, 27 Измеритель LC и «Радиолюбитель» № 8 за 2005 г., стр. 35…37 Измеритель…
Просмотров: 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
Проект на голом МК
Зачем делать проект на своей плате и голом микроконтроллере?
Конечно же размер, своя плата получится компактнее в большинстве случаев.
Энергопотребление. Ни для кого не секрет, что всякие удобные штуки на плате ардуино потребляют огромный по меркам энергосбережения ток, и для автономного устройства лучше взять голый камушек.
Работая с голым камнем мы можем выбрать микроконтроллер под свои задачи. Например для мелкого проекта необязательно брать 328 мегу, если с задачей справится аттини13, которая стоит 20 рублей.
Возможная экономия. Ардуино нано стоит условно 170 рублей без доставки. Голая 328 мега на том же алиэкспресс – 100 рублей. Если брать десяток. В дорогущем российском чип и дип – 190 рублей. То есть если очень приспичит – можно и тут купить без особых потерь, потому что оригинальная нано стоит 3 тысячи рублей в том же ЧИДе.
Удобство разводки платы. Микросхема в корпусе под поверхностный монтаж находится на одном слое и не мешает дорожкам на другом слое.
Удобство монтажа. Даже если делать свою плату прототип лутом, то припаять на неё чип в 100 раз удобнее и быстрее, чем сверлить три десятка отверстий под ардуину, а потом их запаивать.
Мелкосерийное производство готовых или почти готовых плат, для себя если нужно несколько или на продажу
На том же jlcpcb можно заказать изготовление плат с распайкой внимание smd компонентов. То есть ардуину вам никто не припаяет, а вот ту же 328 мегу припаяют за 100 рублей, тиньку 13ю – за 35 рублей, а чем больше партия – тем дешевле
К этому вопросу мы вернёмся ближе к концу этого урока.
Итак, я на личном опыте убедился, что МК способен работать вообще без какой-либо обвязки. Это был проект “Читалка файлов с SD карты” на базе ATmega328. Проект достаточно непростой: МК читал текстовые файлы с карты памяти microSD и выводил их на OLED дисплей. Никаких лишних компонентов на плате нет, МК тактируется от внутренних 8 МГц и всё работает отлично. Даже карта памяти подключена напрямую к МК =) Но в надёжных устройствах делать так не рекомендуется! Минимальная обвязка для МК и полезные советы:
Соединять все ноги питания (GND, VCC) максимально толстыми и короткими дорожками между собой:
- GND обычно делают полигоном на всю поверхность платы
- Я где то читал, что VCC рекомендуется соединять дорожками “внутри шелкографии”, то есть под МК. Оно и логично, так они получатся короче всего
Поставить керамический конденсатор ~100 нФ/nF (0.1 мкФ/uF) по питанию МК: между VCC и GND для сглаживания микропульсаций напряжения
- Располагать максимально близко к пинам питания МК
- Также параллельно ему можно поставить электролит (алюминиевый цилиндр) или танталовый конденсатор (компактный SMD чип) на 10-47 мкФ/uF, для сглаживания более серьёзных пульсаций напряжения. Особенно если МК питается от одного источника с другими потребителями, или используется некачественный источник питания.
Если нужна кнопка сброса (reset), подключаем её к RST и GND, т.е. кнопка должна подать на RST низкий сигнал. Внутри МК уже присутствует подтягивающий резистор на пин RST
При наличии кнопки и дорожки от пина RST рекомендуется подтягивать пин к VCC резистором на 10 кОм, потому что внутренний подтягивающий резистор имеет довольно большое сопротивление и наведённые на дорожку помехи (она выступает в роли антенны) могут привести к сбросу МК
Если нужен внешний тактовый генератор – подключаем его между пинами XTAL1 и XTAL2 (см. распиновку своего МК), и оба пина подключаем к GND через керамические конденсаторы на 18-22 pF/пФ. Более точный номинал конденсатора можно узнать из даташита на генератор, но в 99% это 22 пФ
Существуют генераторы со встроенными конденсаторами, например вот такие. На принципиальной схеме эти конденсаторы видно
Не забываем в настройках платы или напрямую во фьюзах поставить внешнее тактирование
ВНИМАНИЕ! Если фьюзы настроены на внешнее тактирование и внешний генератор не подключен к пинам – вы не сможете прошить МК даже при помощи ISP программатора!
Если нужна удобная прошивка по ISP – выводим штекер для подключения. Вот тут можно открыть мой модуль такого штекера для EasyEDA
Если нужна прошивка по UART – выводим RX, TX, GND. Для автоматического сброса МК перед началом прошивки у USB-TTL преобразователя должен быть выведен пин DTR. Его подключаем к RST через конденсатор на 0.1 мкФ. Также подключаем, VCC если нужно запитать МК от UART преобразователя. Прошивать можно любым USB-TTL преобразователем с выходом DTR. В показанной схеме подключение к преобразователю будет RX->TX, TX->RX!
Я думаю теперь вы готовы к созданию проекта на своей плате!
Программатора для микроконтроллеров (Программаторы)
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
Питание микроконтроллера
Микроконтроллеры в зависимости от модели и серии питаются от напряжения величиной от 1.8 до 5 Вольт. Все микроконтроллеры AVR работают от напряжения в 5 Вольт. Поэтому можно считать что практически у всех микроконтроллеров напряжение питания 5 В, плюсовой вывод на микроконтроллере обозначается как Vcc. Нулевой вывод или еще его называют земля корпус, минусовой вывод обозначается как GND. Если взять блок питания от компьютера то черный провод это GND, а красный это +5 В это и есть Vcc. Если питаем от батареек то минус батарее это GND а плюс это Vcc. Главное чтобы напряжение питания с батареек было в диапазоне напряжения микроконтроллера, это интервал можно посмотреть в документации на МК.
На пример:
• Operating Voltages
- –1.8 — 5.5V (ATtiny2313V)
- –2.7 — 5.5V (ATtiny2313)
• Speed Grades
- –ATtiny2313V: 0 — 4 MHz @ 1.8 — 5.5V, 0 — 10 MHz @ 2.7 — 5.5V
- –ATtiny2313: 0 — 10 MHz @ 2.7 — 5.5V, 0 — 20 MHz @ 4.5 — 5.5V
Operating Voltage это как раз и есть тот диапазон напряжения в котором возможно нормальная работа МК. Существуют низковольтные серии (ATtiny2313V) у которой минимальное напряжение заметно ниже.
Speed Grades это максимально возможные частоты работы МК в зависимости от напряжения которое к нему подвели. Здесь видно, чем ниже напряжение тем меньше максимальная работа МК.
Для того чтобы нам МК начал работать то на него достаточно подать напряжение в 5 В. Как и говорилось ранее один провод кидаем на Vcc а другой на землю — к выводу GND. Некоторые микроконтроллеры имеют несколько выводов Vcc и также несколько GND. Это сделано не для того чтобы вам было делать печатные платы и удобства монтажа а для того чтобы подвести напряжение к камню равномерно, т.е. равномерно запитать весь кристалл. Это делается для того чтобы внутренний линии кристалла не перегружались. К примеру вы взяли МК с квадратным корпусов TQFP у него выводы Vcc и GNВ находятся со всех сторон. С одной стороны вы подвели питание, т.е. задействовали всего лишь 2 вывода питания а с другой стороны вы подключили на порты кучу светодиодов и взяли и зажгли их разом. Получается что внутренние линии МК перегружены, в результате камень офигеф от такой нагрузки выходит из строя. Поэтому если у контроллера есть несколько выводов питания то запитать нужно все выводы Vcc и GND.
Помимо выводов предназначенных для питания МК есть еще выводы AGND и AVCC — это выводы питания АЦП (аналого-цифрового преобразователя). АЦП это довольно точный измеритель напряжения, по этой причине его можно запитать через фильтры. Для того чтобы помехи которые довольно часто бывают в цепях питания не влияли на результаты измерения. По этой причине в некоторых схемах производят разделение земли, а на вывод AVCC подается напряжение через фильтрующий дроссель. А если вы не планируете пользоваться АЦП и вам не нужны точные измерения, то на AVCC можно подать те же +5 В что и на Vcc, а вывод AGND подключить к земле. Подключать выводы AVCC и GND нужно обязательно!
Ahtung!
В микроконтроллере Atmega8 есть одна ошибка на уровне топологии чипа — выводы VCC и AVCC связаны друг с другом на уровне кристалла и между ними сопротивление 5 Ом. К примеру, в чипах Atmega16 и Atmega168 выводы VCC и AVCC связаны между собой и их сопротивление составляет порядка десяток МОм. В документации по этому поводу ничего не сказано. Поддержка Atmel на это ответила что в чипе есть недочет и выводы VCC и AVCC соединенны между собой внутри камня. По этой причине ставить фильтрующий дроссель на AVCC для ATmega8 нет смысла, но запитывать вывод AVCC нужно в любом случае.
Преимущества. Недостатки
- Минимальная стоимость исходных комплектующих по сравнению с промышленными вариантами.
- Автономное функционирование (только периодическая подзарядка телефона).
- Оперативное реагирование.
- Возможность подключить несколько абонентских номеров.
- Варианты подключения сенсорных датчиков.
- Беспроводной монтаж.
Минусы:
- Система легко блокируется при обнаружении. Требуется скрытая установка.
- Локальное срабатывание.
- Подавление, изменение сигнала.
Использование GSM системы, сделанной своими руками, оправдано, когда необходимо установить охранное устройство минимальными средствами, а значимость объекта не является высокой. Для дома, квартиры, офиса лучше всего использовать промышленные охранные модификации, отличающиеся большей надежностью, эффективностью, функциональным разнообразием.
UART и ISP
Для подключения прошиваторов к голому чипу нам нужно будет изучить распиновку (pinout) на нужный микроконтроллер. Распиновки бывают цветные и красивые (часто с ошибками), а бывают более серьёзные и правильные. Лучше всего открыть даташит на нужный МК и на второй же странице найти 100% правильную распиновку. Например для ATmega328, ATtiny85 и ATtiny13:
На данных “схемах” подписаны все функции пинов МК. Чтобы загрузить прошивку через USB-TTL, то есть при помощи “живущего в памяти” загрузчика (bootloader), МК должен иметь на борту аппаратный UART, то есть пины RX и TX. Если таких пинов нет – прошивку можно загрузить только через ISP программатор. Вы спросите, а как же Digispark? Там стоит МК ATtiny85, у которого нет UART, но прошивка загружается через USB! Верно, но там хитрые разработчики сделали не менее хитрый загрузчик, который имитирует USB, и прошивка на Digispark загружается при помощи специальной программы, которая запускается в фоне, когда вы нажимаете кнопку “Загрузить” в Arduino IDE. Резюмируя для общего случая:
- Если в МК прошит загрузчик (bootloader) и на борту имеется аппаратный UART (пины RX TX), прошивку можно загрузить через USB-TTL “загружатор”, также через него можно заниматься отладкой кода при помощи Serial.
- Если в МК нет пинов RX TX, значит прошивку можно загрузить только при помощи ISP программатора, да и о загрузчике в целом можно забыть, не нужен он. Отладкой всё ещё можно пользоваться, подключив USB-TTL и подняв на МК “программный” UART. Например в ядре для ATtiny85 (об этом ниже) уже идёт встроенный SoftwareSerial и можно им пользоваться.