Очень маленькое, но очень полезное устройство.
РадиоКот >Схемы >Цифровые устройства >Игрушки >Очень маленькое, но очень полезное устройство.
Здравствуй, дорогой Кот! Позволь поздравить тебя с Днём рождения и от всей души пожелать рабочего вдохновения, творческих успехов ну и чтоб, как говорится, «всё Коту было Масленица»! А также преподнести тебе очень маленький скромный подарочек. Ой, а где же он? В кармане затерялся? Мяу-миу-рауж… О! Вот же он, «МИРАЖ»!!!
Надеюсь, он тебе понравится и станет твоим верным спутником.
Каждый день мы куда-то торопимся, не успеваем, опаздываем. К сегодняшнему дню человечество изобрело массу всевозможных хронометров. От примитивных песочных и солнечных часов, до сложнейших, основанных на процессах квантовых переходов элементарных частиц, сверхточных атомных. Человечество даже научилось «из времени делать деньги», но, к сожалению, так и не освоило обратный процесс. Одним словом время – это то, чего нам всегда критически не хватает. И особенно для того, чтобы просто, никуда не спеша, свернуться калачиком и от всей души «придавить хорька». Конечно же, данный прибор не «растянет» вам время, но поможет его подсчитать, а значит экономно и с умом его использовать, с пользой для себя и окружающих.
Итак, что же за хронометр сегодня у нас? Идея систем отображения с механической развёрткой, отнюдь, не нова. Данные часы были разработаны чуть больше полугода назад, когда один из приднестровских котов опубликовал здесь свою статью с подобным прибором. Целью моей разработки было создать некое совершенное во всех отношениях устройство подсчёта времени, основанное на подобных принципах, но лишённое всех недостатков модели приднестровского товарища. Во избежание «переноса недостатков» как принципиальная схема, так и программный код разрабатывались с нуля. Да и не было желания «ковыряться» в чужом коде, хотелось разработать что-то своё, новое и совершенно отличное. Так, после двух месяцев творческих поисков и двух неудачных образцов появился «МИРАЖ». Уникальность данного устройства счёта времени заключается в его неимоверной простоте, дешевизне и столь модных сегодня минималистических тенденциях. Как говорят: «Всё гениальное должно быть просто!». Но, не смотря на это, данный хронометр умеет считать секунды, минуты, часы, числа, месяцы, годы, вычисляет дни недели по дате и добавляет по дню в високосные годы. Кроме того этот «малыш» довольно точен и экономичен. За полгода его работы уход времени составил не более двух минут, а элемент питания до сих пор не требует замены.
Из чего же он состоит? «Сердцем» устройства является излюбленный посетителями данного сайта 8-ми битный Flash микроконтроллер фирмы Atmel – ATmega8. Секрет сверхнизкого энергопотребления устройства заключается в том, что большую часть времени МК, как и положено всем порядочным котам, «дрыхнет»! Причём столь глубоко, что его ток потребления составляет при этом немногим более 8мкА! «А кто же тогда время считает?» – спросите вы. А всё дело в том, что в его составе имеется хитрый таймер-счётчик TC2, имеющий в своём составе независимый генератор тактовых импульсов с предделителем и возможностью подключения внешнего кварцевого резонатора. Вот он-то как раз и считает генерируемые генератором импульсы с частотой 32 786Гц, которая задаётся внешним опорным «часовым кварцем». Один раз в секунду происходит переполнение таймера и по данному событию он формирует сигнал прерывания, способный «разбудить» вычислительное ядро микроконтроллера. При пробуждении запускается внутренний калиброванный RC-осциллятор с делителем на 8, от которого и происходит тактирование ядра частотой порядка 1,2 МГц. При этом ток потребления скачком возрастает до полутора миллиампер. Ядро производит математические действия и снова уходит в спящий режим. Переполнение таймера – не единственное условие для пробуждения МК. Это также происходит и по нажатию кнопки «Wake». При этом МК в течение 5 секунд не уходит в спящий режим, ожидая действий пользователя, и выполняя алгоритмы пользовательского интерфейса. Если по истечению 5 секунд никаких действий не последует, МК снова уйдёт в режим сна.
Как пользоваться данным устройством? Элементарно! Держите устройство в руке горизонтально батареей к себе. Кратковременно нажмите кнопку «Wake» и начните совершать взмахи влево-вправо с частотой от 3 до 5 взмахов в секунду. Перед вами появится «виртуальное табло» с отображением текущего времени.
Ещё одно кратковременное нажатие, и на «табло» появится текущая дата.
Затем год.
И, наконец, эмблемка «МИРАЖ».
Для установки времени необходимо в режиме отображения времени нажать и удерживать не менее 2 секунд кнопку «Wake» до засвечивания нижнего светодиода. При взмахах появится:
Каждое кратковременное нажатие будет увеличивать отображаемый параметр на единицу. Ещё одно нажатие с удерживанием переключит в режим установки минут:
Отображаемый параметр изменяется аналогично. Следующее нажатие с удержанием сохранит установленное время и переключит в режим отображения времени. Если вы не желаете сохранять установленное время – просто не производите с устройством никаких действий в течение промежутка времени длительностью не менее пяти секунд. Устройство без сохранения перейдёт в спящий режим.
Аналогично устанавливается и дата. Необходимо перейти в режим отображения даты, далее нажатием с удержанием войти в режим установки даты. Далее производятся действия, аналогичные описанным выше как и при установке времени:
Ну чтож, без внимания остался лишь самый загадочный элемент устройства – это «датчик взмахов». Для удобства назовём его «акселерометр», хотя это и не совсем корректно.
Данный компонент изготавливается вручную. Для этого вам понадобятся напильник, паяльник, шило, кусачки-бокорезы ну и, конечно же, пара не очень кривых рук. За основу корпуса берётся планка штыревая типа PLD-80. От неё очень аккуратно откусываются 2 отрезка по 8 штырей. Все штыри вынимаются. В результате получается 16 штырей и 2 пластиковые детали. Далее 4 штыря изгибаются под прямым углом с отступом около 2мм от края и вставляются в одну из пластиковых деталей со стороны без углубления (см. фото).
Из тонкой медной жести вырезается маленький прямоугольник, прокалывается шилом в двух точках так, чтобы при помощи полученных отверстий надеть его на одну из пар штырей. Надевается до упора, вдавливается, облуживается и припаивается к штырям.
Сам чувствительный элемент «акселерометра» представляет собой грузик-контакт удерживаемый пружинкой. Под действием сил, вызванных ускоренем, он должен свободно двигаться между двух штырей-контактов и быть подпружиненным к контакту, расположенному по направлению взмаха, то есть влево, если представить плату в руке (на фотографии нижний справа).
В качестве грузика используется кусочек медной или латунной проволоки сечением около 1,5мм с золотым или серебряным покрытием – идеально подходят кусочки контактов некоторых старых «совковых» разъёмов. В качестве пружинки применена струнка, выпаянная из оптической головки лазерного CD/DVD привода. На таких струнках подвешиваются подвижные пластиковые рамки с обмотками и микролинзами. Пружинка должна иметь 1-1,5 витка (подбирается экспериментально), навивается на оправке диаметром около 1мм (вывод какого-нибудь выводного элемента с соответствующим сечением). Одним кончиком пружинка припаивается к грузику, на другом формируется «петелька», которая припаивается к медному прямоугольнику. Далее на штыри надевается вторая пластиковая деталь углублением вниз, образуя таким образом «крышечку коробочки» со всей «механикой» внутри. Далее «крышечку» необходимо снять, аккуратно подгибая пружинку тонким пинцетом, необходимо добиться, чтобы груз не касался верхней или нижней стенки коробочки, а был слегка прижат к левому контакту («крышечка» для проверки периодически устанавливается на место). Таким образом в собранной конструкции при взмахах грузик будет ударяться только о боковые штыри-контакты.
После регулировки и сборки верхние выступы штырей обкусываются кусачками и стачиваются напильником. Далее акселерометр ставится всеми четырьмя контактами на напильник и производится стачивание контактов до толщины не более 0,3-0,5мм, после чего он готов к пайке на плату. После пайки акселерометр необходимо самым тщательным образом промыть средством для удаления флюса и грязи. При определённой сноровке пластиковые детали корпуса также можно очень сильно утонить, получив акселерометр почти крохотных размеров.
Жёсткость пружинки и сила прижима грузика окончательно доводятся после сборки и прошивки устройства по корректности развёртки изображения. При очень мягкой пружинке левая или правая сторона растра «сминается», при слишком жёсткой акселерометр перестаёт реагировать на взмахи, растр появляется не при каждом взмахе или не появляется вообще.
Номинал резисторов R1-R8 выбирается в соответствии цвета устанавливаемых светодиодов (точнее от заявленного напряжения их переходов). Для синих, белых, и ultra bright зелёных – 8-16 Ом, для красных, жёлтых и зелёных обычных – порядка 47-56Ом. Также хочу обратить ваше особое внимание на то, что микроконтроллер ATmega8A-AU по ряду его архитектурных особенностей в данной конструкции не применим. Устройство будет корректно работать только с МК ATmega8-16AU и ATmega8L-8AU.
Также напомню об обязательном соблюдении правил антистатической безопасности при работе с микроэлектроникой. После сборки и монтажа не забывайте тщательно мыть платы специализированными средствами для удаления флюса и грязи. Перед включением проверьте плату на наличие непропаев, обрывов и закороток. Готовую плату можно покрыть лаком, например «Цапонлак» или «Plastik». Следите, чтобы остатки паяльного материала и лак не попали в акселерометр.
Всем желаю удачи, хорошего настроения и побольше свободного времени!
«Кино» можно посмотреть по адресу: https://youtu.be/4j5wauVHah0
Фузы, прошивка и плата(SL5.0) находятся в архиве.
Файлы:
PCB, прошивка, фузы
Все вопросы в Форум.
Как вам эта статья? | Заработало ли это устройство у вас? |
Эти статьи вам тоже могут пригодиться:
www.radiokot.ru
Atmega8 — Меандр — занимательная электроника
Реле времени или, в современной терминологии, таймеры, широко используют для управления электроприборами, которые требуется включить или выключить через определённый промежуток времени. Однако простейшие операции типа «включить/выключить свет» — лишь малая часть области применения подобных устройств. Сегодня встроенные таймеры — практически обязательные элементы почти любой электронной аппаратуры, а те, что выполнены как отдельные узлы, позволяют проводить …
Читать далее
Постоянная ссылка на это сообщение: http://meandr.org/archives/34952
Автор поставил перед собой задачу создать простое универсальное устройство для зарядки любых малогабаритных аккумуляторов и их батарей различных типов, ёмкости и номинального напряжения. Аккумуляторы сегодня очень распространены, но зарядные устройства для них, имеющиеся в продаже, как правило, не универсальны и слишком дороги. Предлагаемое устройство предназначено для зарядки аккумуляторных батарей и отдельных аккумуляторов (в дальнейшем используется …
Читать далее
Постоянная ссылка на это сообщение: http://meandr.org/archives/34074
Емкостной датчик — это такой вид датчиков, в которых для измерения уровня жидкости не используют механические элементы (поплавка нет!). Измеряется даже не сама жидкость, а диэлектрическая проницаемость вещества между электродами, которая прямо пропорциональна количеству жидкости между ними (или не очень прямо, в физику углубляться не будем). Без поплавка? Как это возможно? Вместо поплавка ставим две …
Читать далее
Постоянная ссылка на это сообщение: http://meandr.org/archives/33634
При проверке силовых электрических цепей часто возникает необходимость в измерении силы тока. Чтобы измерить величину постоянного тока, как правило, применяют резисторный шунт, включенный последовательно с нагрузкой, напряжение на котором пропорционально току. Однако, если возникнет необходимость в измерении больших токов, то потребуется шунт внушительной мощности, поэтому целесообразнее использовать другие методы измерения. В связи с этим у …
Читать далее
Постоянная ссылка на это сообщение: http://meandr.org/archives/31340
Рассмотрим схему, представляющую собой дверной звонок (хотя применение может не ограничиваться этой сферой, просто основная задумка подразумевает именно дверной звонок). Но звонок не простой, а с возможностью проигрывать несколько различных аудио файлов в зависимости от нажатой кнопки. При этом одну из кнопок можно сделать тайной или спрятанной относительно основной кнопки дверного звонка. Идея такого финта …
Читать далее
Постоянная ссылка на это сообщение: http://meandr.org/archives/29777
meandr.org
Схемы, устройства и проекты на микроконтроллерах AVR
GPS модули широко используются в современной электронике для определения местоположения, основываясь на координатах долготы и широты. Системы мониторинга транспортных средств, часы GPS, системы предупреждения о чрезвычайных происшествиях, системы наблюдения – это лишь небольшой список приложений, в которых может потребоваться технология … Читать далее →
Как показывают многочисленные исследования в современном мире люди более склонны доверять машинам нежели другим людям. Сейчас, когда в мире активно развиваются такие технологии как искусственный интеллект, машинное обучение, чат-боты, синергия (совместная деятельность) между людьми и роботами с каждым годом все … Читать далее →
Двигатели постоянного тока относятся к числу наиболее часто используемых двигателей. Их можно встретить где угодно – начиная от простейших конструкций до продвинутой робототехники. В этой статье мы рассмотрим подключение двигателя постоянного тока к микроконтроллеру ATmega16 (семейство AVR). Но сначала немного … Читать далее →
Принцип действия датчиков Холла основан на так называемом «эффекте Холла», открытым Эдвином Холлом (Edwin Hall) в 1869 году. Этот эффект гласит: «эффект Холла основан на явлении возникновения поперечной разности потенциалов (называемой также холловским напряжением) при помещении проводника с постоянным током … Читать далее →
Широтно-импульсная модуляция (сокр. ШИМ, от англ. PWM — Pulse Width Modulation) является технологией, позволяющей изменять ширину импульсов в то время как частота следования импульсов остается постоянной. В настоящее время она применяется в разнообразных системах контроля и управления, а также в … Читать далее →
ATmega16 (семейство AVR) является дешевым 8 битным микроконтроллером и имеет достаточно большое число интерфейсов ввода-вывода общего назначения. Он поддерживает все часто используемые в настоящее время протоколы связи такие как UART, USART, SPI и I2C. Он достаточно широко применяется в робототехнике, … Читать далее →
Существует несколько способов программирования микроконтроллеров семейства AVR. В данной статье мы рассмотрим один из наиболее популярных в настоящее время способов программирования данных микроконтроллеров – с помощью программатора USBASP v2.0 и программы Atmel Studio 7.0. Хотя на нашем сайте уже есть … Читать далее →
Создание робота – это всегда волнующее событие для всех энтузиастов, увлекающихся электроникой. И это волнение усиливается если создаваемый робот может автоматически делать некоторые вещи без внешних команд. Одним из широко известных подобных роботов, доступных для создания новичками, является робот, движущийся … Читать далее →
Часто во многих конструкциях, использующих микроконтроллеры AVR, используется аналогово-цифровой преобразователь (АЦП) данных микроконтроллеров. Он используется везде где необходимо преобразовать какое-нибудь аналоговое значение в цифровое. Обычно это конструкции с датчиками температуры, датчиками наклона, датчиками тока, гибкими датчиками и т.п. На нашем … Читать далее →
Шаговые двигатели – это бесщеточные двигатели постоянного тока, которую могут вращаться от 00 до 3600 дискретными шагами. С каждым управляющим сигналом ось такого двигателя поворачивается на фиксированное значение (шаг). Управление вращением подобных двигателей осуществляется последовательностью специальных сигналов. В отличие от … Читать далее →
microkontroller.ru
Схемы, устройства и проекты на микроконтроллерах AVR
В этой статье мы рассмотрим пожарную сигнализацию на микроконтроллере ATmega8 (семейство AVR) и датчике огня. Датчик огня может быть любого типа, мы в нашей схеме будем использовать инфракрасный датчик огня – он не отличается точностью, но зато он самый дешевый … Читать далее →
В этой статье мы подключим фоторезистор к микроконтроллеру ATmega8 (семейство AVR) и с его помощью будем измерять интенсивность света. Для этой цели мы будем использовать 10 битный аналого-цифровой преобразователь микроконтроллера (АЦП). Общие сведения о фоторезисторах Фоторезистор представляет собой преобразователь, чье … Читать далее →
В этой статье мы рассмотрим низкодиапазонный амперметр на микроконтроллере ATmega8 (семейство AVR). Для реализации этой идеи мы задействуем 10 битный аналого-цифровой преобразователь (АЦП) данного микроконтроллера. Для упрощения схемы используем резистивный метод, являющийся самым простым способом определения нужных нам параметров. В … Читать далее →
В этой статье мы рассмотрим процесс взаимодействия двух микроконтроллеров ATmega8 (семейство AVR) через последовательный порт. Взаимодействие будет осуществляться с помощью универсальных асинхронных приемопередатчиков (UART — Universal Asynchronous Receiver Transmitter), имеющихся в микроконтроллерах. Подобное взаимодействие часто бывает востребовано в различных системах. … Читать далее →
В этой статье мы рассмотрим сигнализацию на микроконтроллере ATmega8 (семейство AVR), основанную на анализе колебаний. Данную сигнализацию можно использовать для защиты от воров. Сигнализация основана на использовании датчика наклона (tilt sensor), внешний вид которого показан на следующем рисунке. Одним из … Читать далее →
В этой статье будет описано подключение джойстика к микроконтроллеру ATmega8 (семейство AVR), приведена схема подключения и код программы на языке C с комментариями к ней. Общие принципы работы джойстика Джойстик представляет собой модуль ввода, достаточно часто использующийся для коммуникаций. В … Читать далее →
В этой статье мы рассмотрим подключение и взаимодействие гибкого датчика (FLEX sensor) к микроконтроллеру ATmega8 (семейство AVR). Для решения этой задачи мы задействуем 10 битный аналого-цифровой преобразователь (АЦП), имеющийся в данном микроконтроллере. Что такое гибкий датчик? Гибкий датчик (FLEX sensor) … Читать далее →
В этой статье будет рассмотрена схема подключения углового кодера к микроконтроллеру AVR ATmega8 и приведена программа на языке C (с пояснениями), обеспечивающая взаимодействие этих устройств. Микроконтроллер ATmega8 (семейство AVR) был специально спроектирован для применения во встраиваемых приложениях (embedded applications). Принципы … Читать далее →
В этой статье мы рассмотрим схему для измерения расстояний, построенную с использованием ультразвукового датчика HC-SR04 и микроконтроллера ATmega32 (семейство AVR). Датчик HC-SR04 использует технологию под названием “ECHO” (эхо), то есть испускает ультразвуковой сигнал и потом анализирует отраженный от препятствий сигнал. … Читать далее →
В этой статье мы рассмотрим схему на микроконтроллере ATmega32A (семейство AVR), реализующую цифровой вольтметр с пределами измерений от 0 до 25В. Для этого мы задействуем 10-битный аналого-цифровой преобразователь (АЦП), имеющийся в данном микроконтроллере. Поскольку АЦП микроконтроллера ATmega32A не может на … Читать далее →
microkontroller.ru
Даташит на русском Atmega8 | Практическая электроника
Что такое даташит
Даташит – это техническое описание на какой-либо радиокомпонент. Где его найти? Ну, конечно же, в интернете! Так так почти вся радиоэлектронная продукция выпускается “за бугром”, то и описание на них, соответственно, “забугорское”, а точнее, на английском языке. Те, кто хорошо дружит с разговорным английским, не факт, что сможет прочитать технические термины в даташитах.
Даташит на английском на Atmega8
Давайте попробуем пролить свет истины на основные характеристики МК ATmegа8. Для этого качаем даташит. В нашей статье мы будем рассматривать только основные сведения нашего подопечного.
Вот что мы видим на первой странице даташита:
Даташит на русском Atmega8
Запоминаем правило: в фирменном описании нет ни одного лишнего слова! (иногда информации не хватает, но это уже другой случай)
Features. Переводится как “функции”. В среде электронщиков просто “фичи”.
– High Performance, Low Power AVR® 8-Bit Microcontroller
Высокопроизводительный, потребляющий мало энергии, 8-битный микроконтроллер.
Понимаем как рекламу, единственно полезное то, что данный микроконтроллер — 8 битный.
– Advanced RISC Architecture
Расширенная RISC архитектура.
RISC и CISC — технологии построения процессорных систем. Но нам это не важно, по крайней мере, пока.
– 130 Powerful Instructions – Most Single Clock Cycle Execution
130 команд, большинство из них выполняются за один цикл.
А вот это уже интереснее! Во-первых, такое большое количество команд (например, у микроконтроллеров PIC всего 35 команд) уже подразумевает ориентацию этого МК под языки высокого уровня. Во-вторых, узнаем, что одна команда выполняется за один такт генератора. Т.е., при тактовой частоте 1 МГц одна команда будет выполняться 1 микросекунду (1 мкс, одну миллионную часть секунды — 10^-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 интерфейс связи, режимы Мастер/Подчиненный.
– 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 Вольт для обычных, не низковольтных моделей МК)
www.ruselectronic.com
Схема USB программатора на Atmega8 своими руками
Данная схема USB программатора, построенного на микроконтроллере Atmega8, довольно проста в изготовлении, ее можно собрать своими руками буквально за один вечер.
Фактически это AVR-910 популярной схемы Prottoss-a. USB программатор надежен и имеет в своем арсенале функцию, позволяющая восстанавливать микроконтроллеры с неверно установленными фьюзами.
Следует отметить, что для прошивки самого микроконтроллера Atmega8 программатора понадобится простой LPT-программатор.
Печатную плату можно сделать своими руками по известной технологии ЛУТ. Поэтому на описании изготовления платы останавливаться не будем, а перейдем сразу к описанию.
Итак, у нас все детали схемы припаяны без ошибок и коротких замыканий, плата очищена от остатков флюса. Теперь переводим переключатель SA2 в положение «МОД», подсоединяем наше устройство к простому LPT-программатору и включаем питание.
Теперь необходимо занести программу в память Atmega8. В качестве программного обеспечения можно применить Uniprof или Code Vision AVR. Перед программированием необходимо выставить следующие фьюзы (для Uniprof):
По завершению прошивки Atmega8, переводим переключатель SA2 в положение «НОРМ», подсоединяем программатора к USB разъему компьютера. Если все шаги выполнены верно, то компьютер должен без проблем обнаружить новое подключенное устройство.
Система предложит найти драйвер — отказываемся и указываем драйвер из нашего архива. По завершению установки драйвера для программатора, он полностью готов к работе.
Поговорим о программном обеспечении которое необходимо для работы с данным программатором. Он поддерживает такие оболочки как: AVR Prog, AVR Studio, ChipBlasterAVR и, конечно же, Code Vision AVR.
Достаточно удобной программой, я считаю, является Code Vision AVR, пример работы, которой подробно написано здесь.
Для справки, приведем типовую распиновку USB:
Список необходимых деталей:
- Atmega8 — 1 шт.
- Кварц 12МГц — 1 шт.
- Диод 1N4007 – 2 шт.
- Светодиод — 3 шт.
- Резисторы: 68 Ом — 2 шт., 330 Ом — 8 шт., 1,5 Ом — 1 шт., 100 Ом -1 шт., 1,5 кОм -1 шт., 10 кОм -1 шт., 1 мОм -1 шт.
- Конденсаторы: 0,1мк — 3 шт., 22мк х 10В — 1 шт., 22p — 2 шт.
Скачать прошивку, драйвера и печатную плату (853,5 Kb, скачано: 17 839)
Источник: http://www.tehnari.ru/f115/t71649/
www.joyta.ru
Зарядное устройство для автомобильных аккумуляторов на 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 платы МК и силовой платы, а также прошивка.
Файлы:
Протеус, прошивка
Все вопросы в Форум.
Как вам эта статья? | Заработало ли это устройство у вас? |
Эти статьи вам тоже могут пригодиться:
www.radiokot.ru