Что такое микроконтроллеры AVR. Какие особенности имеют микроконтроллеры семейства AVR. Где применяются микроконтроллеры AVR. Как программировать микроконтроллеры AVR. Какие преимущества имеют микроконтроллеры AVR перед другими.
Что представляют собой микроконтроллеры AVR
Микроконтроллеры AVR — это семейство 8-битных микроконтроллеров, разработанных компанией Atmel (сейчас принадлежит Microchip Technology). AVR расшифровывается как Advanced Virtual RISC или Alf and Vegard’s RISC processor. Основные особенности микроконтроллеров AVR:
- 8-битная RISC-архитектура
- Гарвардская архитектура с раздельной памятью для программ и данных
- Большой набор команд (от 90 до 133 инструкций)
- 32 8-битных регистра общего назначения
- Встроенная флэш-память программ и EEPROM для данных
- Множество периферийных устройств (таймеры, АЦП, интерфейсы и др.)
- Низкое энергопотребление и несколько режимов сна
Эти особенности делают микроконтроллеры AVR мощными и универсальными устройствами для широкого спектра применений.
История и линейки микроконтроллеров AVR
Первый микроконтроллер AVR был разработан в 1996 году двумя студентами Норвежского технологического института — Альфом-Эгилем Богеном и Вегардом Воланом. Вскоре после этого компания Atmel приобрела права на архитектуру AVR и начала ее коммерческое производство.
Семейство AVR включает несколько линеек микроконтроллеров:
- tinyAVR — компактные и недорогие микроконтроллеры с ограниченным функционалом
- megaAVR — универсальные микроконтроллеры общего назначения
- XMEGA — высокопроизводительные микроконтроллеры для сложных приложений
- AVR UC3 — 32-битные микроконтроллеры на базе архитектуры AVR32
Каждая линейка предлагает микроконтроллеры с различным объемом памяти, количеством выводов и набором периферии, что позволяет подобрать оптимальный вариант для конкретной задачи.
Архитектура и особенности микроконтроллеров AVR
Микроконтроллеры AVR имеют ряд архитектурных особенностей, которые обеспечивают их высокую производительность:
- RISC-архитектура с оптимизированным набором инструкций
- Большинство инструкций выполняется за один тактовый цикл
- Конвейерная обработка инструкций
- Гарвардская архитектура с раздельными шинами для программ и данных
- 32 регистра общего назначения, напрямую связанных с АЛУ
- Аппаратный умножитель в АЛУ
Эти особенности позволяют микроконтроллерам AVR достигать производительности до 1 MIPS на МГц тактовой частоты, что делает их одними из самых быстрых 8-битных микроконтроллеров.
Память и периферийные устройства AVR
Микроконтроллеры AVR имеют несколько типов встроенной памяти:
- Флэш-память программ — от 1 до 256 КБ
- Оперативная память SRAM — от 32 байт до 16 КБ
- Энергонезависимая память EEPROM — от 64 байт до 4 КБ
Кроме того, AVR оснащены богатым набором периферийных устройств:
- 8- и 16-битные таймеры/счетчики
- Аналого-цифровые преобразователи (до 16 каналов)
- Аналоговые компараторы
- Интерфейсы UART, SPI, I2C/TWI
- Сторожевой таймер
- Порты ввода-вывода общего назначения
Такой набор периферии позволяет создавать на базе AVR законченные системы управления без использования дополнительных внешних компонентов.
Применение микроконтроллеров AVR
Благодаря своей универсальности, микроконтроллеры AVR нашли применение в самых разных областях:
- Бытовая техника (стиральные машины, холодильники, кондиционеры)
- Автомобильная электроника (панели приборов, системы управления двигателем)
- Промышленная автоматика (программируемые логические контроллеры, датчики)
- Портативная электроника (MP3-плееры, фотоаппараты, игрушки)
- Системы «умного дома» (управление освещением, климатом, безопасностью)
- Медицинское оборудование
- Робототехника и образовательные проекты
Широкий модельный ряд позволяет выбрать оптимальный микроконтроллер для задач любой сложности — от простых бытовых устройств до сложных промышленных систем управления.
Программирование микроконтроллеров AVR
Для программирования микроконтроллеров AVR используются различные языки и среды разработки:
- Ассемблер AVR — низкоуровневый язык, обеспечивающий максимальный контроль над микроконтроллером
- Язык C — наиболее популярный вариант, сочетающий удобство разработки и эффективность кода
- BASIC — упрощенный язык, подходящий для начинающих разработчиков
- Arduino — популярная платформа с простым языком на основе C++
Для загрузки программ в микроконтроллер используются программаторы — специальные устройства, подключаемые к компьютеру. Многие микроконтроллеры AVR также поддерживают внутрисхемное программирование, позволяющее обновлять прошивку без извлечения микросхемы из устройства.
Преимущества микроконтроллеров AVR
Микроконтроллеры семейства AVR имеют ряд преимуществ перед конкурентами:
- Высокая производительность при низком энергопотреблении
- Богатый набор периферийных устройств
- Удобство программирования на языке C
- Хорошая документация и поддержка от производителя
- Наличие недорогих средств разработки и отладки
- Популярность в любительских проектах (Arduino)
Эти факторы делают микроконтроллеры AVR привлекательным выбором как для профессиональных разработчиков, так и для любителей электроники.
Заключение
Микроконтроллеры AVR представляют собой мощную и гибкую платформу для создания встраиваемых систем. Их архитектура, производительность и богатый набор периферийных устройств позволяют решать широкий спектр задач — от простых бытовых устройств до сложных промышленных систем управления. Удобство программирования и доступность средств разработки делают AVR отличным выбором как для профессионалов, так и для начинающих разработчиков.
Что такое AVR микроконтроллер?
AVR микроконтроллеры – это тип устройств, разработанный компанией Atmel, которые имеют определенное преимущество перед обычными микросхемами, но, сначала, давайте разберемся, что такое микроконтроллер?
Самый простой способ понять это – сравнить микроконтроллер с вашим компьютером, в котором установлена материнская плата. На этой плате стоит микропроцессор (на чипе Intel или AMD), который обеспечивает устройство вычислений, память RAM и EEPROM, и интерфейсы остальных систем, например, серийные порты (в настоящее время в основном USB), жесткие диски и графические интерфейсы. В микроконтроллере все эти возможности встроены в один чип, а это значит, что отсутствует потребность в материнской плате и многих других компонентах, например, светодиод может быть подключен напрямую к AVR. В микропроцессорах нет такой возможности!
AVR микроконтроллеры выпускаются в нескольких корпусах, некоторые предназначены для монтажа в отверстия, некоторые для поверхностного. AVR бывают 8-ми и 100-пиновыми, хотя все, что выше 64-х пинов только для монтажа в отверстия. Большинство людей начинают с DIL (Сдвоенный в линию) 28—х пинового чипа, например, ATmega328 или 40-ка пинового ATmega16 или ATmega32.
Компьютерные микропроцессоры бывают минимум 32-х битными, а теперь чаще 64-х битные. Это означает, что они могут обрабатывать данные 32-х битными или 64-х битными блоками, если они подключены к шине. AVR гораздо проще и работает с 8-ми битными блоками, пропускная ширина потока 8 бит, хотя сейчас стали появляться AVR32 с 32-х битной шиной.
На компьютере установлена операционная система (Windows или Linux), и именно в ней запускаются программы, такие, как Word, InternetExplorer или Chrome. На 8-ми битном микроконтроллере, например, на таком, как AVR обычно нет установленной операционной системы, хотя, при необходимости, она может быть установлена. Вместо этого реализована возможность запуска одной программы.
Также, как и ваш компьютер, который будет бесполезным, если на нем не установлена ни одна программа, также, и AVR требует установки программ. Программа хранится во встроенной памяти AVR, а не на внешнем жестком диске, как на компьютере. Загрузка этой программы вAVR происходит при помощи программатора AVR, обычно, когда AVR является частью системы, и программируется разработчиком или системным программистом.
Так что же это за программа? Она состоит из серии инструкций, очень простых, и направленных на обработку данных. В большинстве приложений, которые вы будете использовать с AVR, например, в контроллере промышленного оборудования, необходимо, чтобы считывалась информация со входов, проводилась проверка состояния и, соответственно, происходило переключение на выходы. Иногда вам нужно менять данные, управлять ими, или передавать их на другое устройство, например, на ЖК дисплей или на серийный порт. Чтобы выполнять эти простые задачи, используется серия простых бинарных инструкций, каждая из которых соответствует команде на ассемблере, понятной пользователю. Самый простой способ написать программу для AVR – использовать ассемблер (хотя, если хотите оставаться педантичным, можете записывать двоичные числа).
Использование ассемблера позволяет вам понять больше о том, как действует AVR, и как это все соединено воедино. Также, это дает возможность использовать очень маленький и быстрый код. Недостаток в том, что вы, как программист, должны делать все сами, включая управление памятью и структурой программ, что может быть очень утомительно.
Чтобы этого избежать, для написания программ для AVR были использованы языки программирования более высокого уровня, основным считается Cи, а также, можно использовать Basic и Java. Высокий уровень означает, что каждая строка Cи (или Basic, или Java) кода может переводиться в множество строк ассемблера. Компилятор также разбирается со структурой программы и управлением памятью, так что все становится гораздо проще. Наиболее часто используемые процессы, например, задержки или вычисления, могут храниться в библиотеках, и доступ к ним очень простой.
Мне кажется, что написание программ на Си для AVR сравнимо с управлением автомобилем. Да, вы очень легко можете это делать, но, если что-то идет не так, то вы понятия не имеете, как быть, и как справиться со сложной ситуацией, например, со скользкой дорогой. Написание простейших программ на ассемблере дает вам понять, что происходит «под капотом», как это работает, и что с этим можно сделать. Потом вы переходите на Си, но, к этому моменту, вы уже знаете, как функционирует AVR, и знаете его ограничения.
Также, как у вашей программы есть в памяти код, также у AVR есть вторая память, которая называется EEPROM, где вы можете хранить данные, например, серийные номера, данные калибровок и другую, необходимую под рукой, информацию. Доступ туда осуществляется по инструкциям в вашей программе.
У AVR также есть I/O, которое используется, чтобы контролировать аппаратные средства микроконтроллера. К аппаратным средствам относятся порты, АЦП (ADC), коммуникационные интерфейсы, например, I2C (2—х проводной интерфейс), SPI и UART (серийный порт), таймеры и система watchdog, которая восстанавливает систему после сбоя. Все эти периферийные устройства контролируется из-под программы, используя специальные инструкции. Большая часть кода программирования AVR посвящена тому, как устанавливать и контролировать эти аппаратные интерфейсы.
Примеры работ
Услуги
Контакты
Время выполнения запроса: 0,00885391235352 секунд.
AVR микроконтроллер и его применение в компьютере
В статье про порты ввода-вывода ПК упоминались такие устройства, как микроконтроллеры AVR. Возможно, многим читателям хотелось бы узнать подробнее, что это такое.
Содержание статьи
Что такое микроконтроллер
Прежде всего, разберемся с самим понятием «микроконтроллер». Микроконтроллер можно определить как миниатюрный компьютер на базе одного-единственного чипа, включающий, помимо процессора ряд вспомогательных элементов, таких, как ОЗУ, ППЗУ, таймер, и.т.д. Микроконтроллер предназначен для выполнения каких-либо заранее определенных заданий.
Проще всего сравнить микроконтроллер с персональным компьютером. Как и ПК, микроконтроллер имеет процессор, оперативную и постоянную память. Однако, в отличие от ПК, все эти элементы расположены на одном-единственном чипе.
Но означает ли это, что микроконтроллер равноценен персональному компьютеру? Разумеется, нет. ПК создан для того, чтобы выполнять задачи общего назначения. Например, вы можете использовать компьютер, для набора текста, хранения и запуска мультимедиа-файлов, серфинга в Интернет, и.т.д. Микроконтроллеры предназначены для выполнения специальных заданий, например, выключения кондиционера, когда температура в комнате опускается ниже определенного значения, или наоборот, его включения, когда температура повышается.
Существует несколько популярных семейств микроконтроллеров, которые используются для различных целей. Наиболее распространенными из них являются семейства микроконтроллеров 8051, PIC и AVR. И о последнем семействе мы и собираемся вам рассказать подробнее.
История семейства
Семейство микроконтроллеров AVR было создано в 1996 г. корпорацией Atmel, а разработчиками архитектуры микроконтроллеров являются Alf-Egil Bogen и Vegard Wollan. Отсюда и происходит название семейства – от первых букв имен разработчиков – A и V, и первой буквы аббревиатуры RISC – типа архитектуры, на которой базируется архитектура микроконтроллера. Также эту аббревиатуру часто расшифровывают как Advanced Virtual RISC (модернизированный эффективный RISC).
Первым микроконтроллером в серии был AT90S8515, однако первым микроконтроллером, выпущенным на рынок, стал AT90S1200. Это случилось в 1997 г.
На сегодняшний день доступны 3 линейки микроконтроллеров:
- TinyAVR – небольшой объем памяти, небольшие размеры, подходит для самых простых задач.
Внешний вид микроконтроллера TinyAVR
- MegaAVR – наиболее распространенная линейка, имеющая большой объем встроенной памяти (до 256 КБ), множество дополнительных устройств и предназначенная для задач средней и высокой сложности.
Внешний вид микроконтроллера MegaAVR
- XmegaAVR – используется в сложных коммерческих задачах, требующих большого объема памяти и высокой скорости.
Пример микроконтроллера XmegaAVR
Сравнительные характеристики различных линеек:
Название серии | Число контактов | Объем флэш-памяти | Особенность |
TinyAVR | 6-32 | 0,5 – 8 КБ | Небольшой размер |
MegaAVR | 28-100 | 4-256 КБ | Периферийные устройства |
XmegaAVR | 44-100 | 16-384 КБ | Система прерываний, поддержка DMA |
Особенности семейства
Прежде всего, микроконтроллеры этой серии являются быстрыми. Большинство инструкций процессор микроконтроллера выполняет за один цикл. Микроконтроллеры AVR примерно в 4 раза быстрее, чем PIC. Кроме того, они потребляют немного энергии и могут работать в 4 режимах экономии энергии.
Большинство контроллеров AVR являются 8-разрядными, хотя сейчас существует и 32-разрядная разновидность контроллеров AVR32. Кроме того, как уже упоминалось выше, AVR принадлежат к типу RISC-микроконтроллеров. Архитектура RISC (Complex Instruction Set Computers) означает, что набор инструкций, которые может выполнять процессор устройства, является ограниченным, но, в то же время, подобная архитектура дает преимущество в скорости. Противоположностью архитектуры RISC является архитектура CISC (Complex Instruction Set Computers).
32-разрядная разновидность контроллеров AVR32
8-битность контроллера означает, что он способен передавать и принимать 8-битные данные. Доступные регистры ввода/вывода также являются 8-битными.
Архитектура контроллера основана на регистрах. Это означает, что для хранения исходных данных операции и ее результата в контроллере используются регистры.
Процессор контроллера берет данные из двух входных регистров, выполняет логическую операцию и сохраняет результат в выходном регистре. Все это занимает 1 исполняемый цикл.
Архитектура контроллера
Всего контроллер AVR имеет 32 8-битных регистра общего назначения. В течение цикла процессор берет данные из двух регистров и помещает их в арифметико-логическое устройство (АЛУ), которое производит операцию над данными и помещает их в произвольный регистр. АЛУ может выполнять как арифметические, так и логические действия над операндами. Также АЛУ может выполнять и действия с одним операндом (регистром). При этом контроллер не имеет регистра-аккумулятора, в отличие от контроллеров семейства 8051 – для операций могут использоваться любые регистры, и результат операции также может быть помещен в любой регистр.
Контроллер соответствует Гарвардской вычислительной архитектуре, согласно которой компьютер имеет отдельную память для программ и данных. Поэтому в то время, пока выполняется одна инструкция, происходит предварительное извлечение из памяти следующей инструкции.
Котроллер способен выполнять одну инструкцию за цикл. Отсюда следует, что если тактовая частота контроллера составляет 1 МГц, то его производительность составит 1 млн. оп./c. Чем выше тактовая частота контроллера, тем выше будет его скорость. Однако при выборе тактовой частоты контроллера следует соблюдать разумный компромисс между его скоростью и энергопотреблением.
Помимо флэш-памяти и процессора контроллер имеет такие устройства, как порты ввода-вывода, аналого-цифровой преобразователь, таймеры, коммуникационные интерфейсы – I2C, SPI и последовательный порт UART. Все эти устройства могут контролироваться программно.
Типовая архитектура микроконтроллеров AVR
Программы для микроконтроллера
Как уже упоминалось выше, микроконтроллер подобен ПК, а это значит, что, как и ПК, AVR также может выполнять какую-либо программу, хотя и всего одну в какой-либо момент времени.
Программа микроконтроллера может храниться во встроенной памяти контроллера и представляет собой серию очень простых команд, которые выбирают данные и осуществляют с ними операции. В большинстве случаев это означает считывание входящих данных, проверка их состояния и вывода соответствующих выходных данных. Иногда может потребоваться изменение данных и совершение с ними некоторых операций, а также передача данных какому-либо внешнему устройству, например, индикатору, или последовательному порту.
Для таких элементарных задач используются наборы двоичных команд, каждая из которых имеет аналог на более доступном человеческому восприятию языке ассемблера. Поэтому наиболее распространенным способом написания программ для контроллера является написание их на языке ассемблера.
Преимуществом ассемблера является очень быстрый, компактный и эффективный код, но создание таких программ одновременно требует и глубоких знаний работы процессора контроллера, ручного управления памятью и контроля структуры программы. Поэтому зачастую для написания программ используются и языки высокого уровня, такие, как С, Basic и Java. В этом случае задачу по контролю структуры программы и управлению памятью берет на себя компилятор. Кроме того, часто используемые функции могут быть при этом помещены в библиотеки и извлекаться из них по мере надобности.
Заключение
Микроконтроллеры семейства AVR на сегодняшний день повсеместно используются в компьютерах, для автоматизации управления электронной аппаратурой, различными приборами и механизмами, применяемыми в промышленных, коммерческих, а также бытовых целях. Невысокая стоимость, широкий ассортимент и богатые возможности микроконтроллеров этой серии способствовали их большой популярности.
Порекомендуйте Друзьям статью:
Друзья | MEGA-AVR
Добавить свой ресурс сюда можно здесь Обмен ссылками
— Онлайн журнал радиотехники, электротехники и схемотехники. Рассматриваются различные радиотехнические устройства, а также электроизмерительные приборы, основы схемотехники усилителей, трансформатор и др.
— Магия. Целительство. Ясновидение. —
Невозможное возможно!!!
— Радиотехника студентам, инженерам и радиолюбителям по старым учебникам «Основы радиотехники.
— Проекты на микроконтроллерах AVR.
— Очень много не сложных конструкций, статей по обучению программированию и по изучению микроконтроллеров.
РадиоКОТ — популярно об электронике. Авторские схемы, новые разработки. Обучение по электронике, микроконтроллерам, ПЛИС.
Цель проекта — совместными усилиями Участников, облегчить и улучшить качество ремонта методом обмена технологией, советами, необходимой документацией, помощи и поддержки молодых специалистов.
— Масса различным материалов для начинающих любителей, справочных материалов по радиолюбительской схемотехнике, аппаратуре и очень большой файловый архив радиолюбительских программ и схем.
— РадиоЛоцман — поисковая машина схем в www.
– Электротехнический портал об услугах и товарах электроники, электротехники, электрооборудования.
—Здесь можно скачать схемы и сервисные инструкции телевизоров, DVD-проигрывателей и другой бытовой техники известных мировых брэндов.
— Схемы, технические описания и сервисные инструкции измерительных приборов, медицинской техники, источников питания и др.
— Поставщик электронных компонентов, релейной автоматики и устройств промышленной автоматизации.
Сайт о микроконтроллерах AVR и др.
— Сайт посвящён конструкциям на микроконтроллерах AVR.
— Установка видеодомофонов и систем видеонаблюдения — Форум — Блог
— «Электрические схемы» — справочная информация в помощь радиолюбителю-конструктору.
Радиотехника, электроника и схемотехника. Радиотехнические приборы и устройства, создание антенн, усилителей, радиолюбительской аппаратуры.Схемы, описания и иллюстрации.
— Блог об электронике и прочем.
Радиоэлектроника как хобби [Good-chip.in.ua] — цифровая и аналоговая радиоэлектроника.
— Полезная информация и простые самоделки в
помощь начинающему радиолюбителю.
— Блог о создании медиацентра на основе компьютера.
— Сайт для начинающих радиолюбителей. Большой каталог схем, программы для моделирования схем. Проектирование роботов, и многое другое!
-Полезные изобретения на микроконтроллерах.
Простые устройства на микроконтроллерах своими руками. Частотный преобразователь для асинхронного двигателя на 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 МГц.
Страница не найдена
Тактовая частота, МГцот
до
Блок арифметики с плавающей точкой (FPU) не важно да нет
Поддержка DSP-инструкций не важно да нет
Графический ускоритель, аппаратное декодирование видео не важно да нет
Блок управления памятью (MMU) не важно да нет
Каналы DMAот
до
Блок защиты памяти (MPU) не важно да нет
Аппаратный блок шифрования не важно да нет
10 практических устройств на AVR-микроконтроллерах
Информация\Микроконтроллеры\Микроконтроллеры фирмы Atmel\10 практических устройств на AVR-микроконтроллерах
Здесь представлена информация по микроконтроллерам фирмы Atmel, в основном по микроконтроллерам AVR. Представлены для свободного скачивания книги и справочники. Вы можете здесь же заказать бумажный вариант книги.
10 практических устройств на AVR-микроконтроллерах. Кравченко А.В., 2008г. — 7496 Кб — скачать
Год издания : 2008
Объем : 224 страниц
Издательство: Додэка — XXI, МК — Пресс
Язык: Русский
Формат файла: DJVU
Размер файла: 6,78 Мб
Данная книга открывает серию сборников с практическими примерами применения микроконтроллеров. В ней рассмотрены десять завершенных устройств на базе микроконтроллеров AVR, которые можно легко собрать в домашних условиях и применять в быту или профессиональной деятельности: генератор световых эффектов; счетчик событий, музыкальный звонок; индикатор уровня звука; повышающий преобразователь, схема управления шаговым двигателем; цифровой термометр и др.
Благодаря подробному анализу аппаратной и программной части устройств, книга будет интересна и полезна как начинающим, так и опытным радиолюбителям, желающим изучить методы эффективного применения микроконтроллеров.
Содержание
1. Введение 20
Архитектура RISC 20
Представители базовой серии AVR 23
2. Обзор 24
Основные характеристики семейства микроконтроллеров AVR 24
Блок-схема микроконтроллеров AT90S1200 и AT90S8515 28
Конструктивное исполнение корпусов и расположение выводов 28
Генерирование такта системной синхронизации
в микроконтроллерах AVR 33
Программирование для AVR на языке высокого уровня С 35
Стендовые испытания для сравнения микроконтроллеров
AVR с главными конкурентами 36
3. Центральный процессор и внутренняя память 41
Система управления и АЛУ 41
Статическая память RAM (SRAM) 41
Память команд (технология Flash-EPROM) 59
Память для энергонезависимых данных (технология EEPROM) 64
Различные способы адресации команд и данных 72
Сброс и обработка прерываний 84
«Спящие» режимы центрального процессора 97
4. Таймеры/счетчики микроконтроллеров базовой серии
семейства AVR 100
Предварительный делитель частоты и схема
управления таймером 100
Восьмиразрядный таймер/счетчик T/C0 102
Шестнадцатиразрядный таймер/счетчик T/C1 104
5. Сторожевой таймер 120
Регистр управления WDTCR 121
6. Асинхронная передача данных через приемопередатчик UART 123
Распространенные стандарты асинхронной передачи данных 123
Формат передачи по асинхронному интерфейсу 127
Физическое устройство приемопередатчика UART 129
Регистры UART 134
7. Синхронная передача данных через
последовательный интерфейс (SPI) 139
Входы и выходы интерфейса SPI 141
Протокол передачи 144
Системные конфликты SPI 147
Регистр управления SPCR 148
Регистр состояния SPSR 149
Регистр данных SPDR 149
8. Последовательная передача данных по шине I2C 151
Принцип действия шины I2C 152
Режимы работы блоков, подсоединенных с помощью шины I2C 154
Электрические свойства 155
Протокол шины 155
Адресация ведомых устройств 158
Особые случаи 161
Арбитраж шины при работе с несколькими ведущими
устройствами 164
Синхронизация шины I2C 165
Обращение микроконтроллеров семейства AVR к шине I2C 165
9. Интегрированный аналоговый компаратор 166
Регистр управления и состояния ACSR 167
10. Порты ввода/вывода 169
Порт А 172
Порт В 173
Порт С 175
Порт D 176
Выход с открытым коллектором 178
11. Программирование памяти 179
Разряды блокировки памяти программ LB1 и LB2 179
Разряды предохранения RCEN, FSTRT и SPIEN 179
Байты сигнатуры 180
Процесс программирования 180
12. Система команд 199
Разряды условий (флаги) микроконтроллеров AVR 200
Обзор команд микроконтроллеров AVR 206
Описание команд микроконтроллеров AVR 222
13. Ассемблер 275
Установка AVR-ассемблера 279
Синтаксис ассемблера 280
Работа с AVR-ассемблером 281
Поиск ошибок 283
Директивы ассемблера 284
Выражения 293
14. Отладка программ в среде AVR Studio 298
Установка AVR-Studio 298
Обзор 299
Окна AVR-Studio 300
Меню AVR-Studio 308
Модули ввода/вывода симулятора 312
15. Набор STK200 для тестирования и записи в память
собственных программ 314
Описание аппаратной части STK200 315
Программное обеспечение для STK200 323
16. Применение микроконтроллеров семейства AVR 327
Средства двоично-десятичной арифметики 327
Базовые операции ввода/вывода 334
Подключение ЖК-модулей 341
Формирование импульсов определенной длины с помощью T/C0 357
Программная реализация автоматической перезагрузки T/C0 360
Выработка с помощью T/C1 импульсов с частотой 50 Гц
и коэффициентом заполнения 0,025 364
Трехканальный ЦАП с разрешением 10 разрядов 369
Четырехканальный АЦП с двойным интегрированием 381
Программная реализация UART для модели AT90S1200 392
Подключение к микроконтроллеру AT90S8515
микросхемы ЦАП MAX5154 через интерфейс SPI 399
Расширение портов ввода/вывода AT90S4414 с помощью SPI 407
Программная реализация SPI для AT90S1200 (подключение АЦП) 413
Подключение к шине I2C датчика температуры LM75 419
Подключение к шине I2C схемы управления светодиодным табло 425
Использование AVR в качестве ведущего устройства I2C 430
17. Приложение 444
Технические характеристики микроконтроллеров AVR 444
Документированные компанией Atmel ошибки и пути их устранения 444
caxapa.ru :: Начинать надо, конечно же, с чтения правильных книг. Владейте! Мой совет
Начинать надо, конечно же, с чтения правильных книг. Владейте! Мой совет — скачайте все книги, а потом выберите ту, которая понравилась. Название: Программирование на языке C для AVR и PIC микроконтроллеров Автор: Ю.А. Шпак Издательство: МК-Пресс Год: 2006 Страниц: 400 Формат: djvu Размер: 9.20 Мб В книге рассмотрено программирование на языке С микроконтроллеров AVR с использованием компилятора WinAVR, а также микроконтроллеров PIC с использованием компилятора CCS-PICC. Кратко рассмотрена архитектура и аппаратное обеспечение микроконтроллеров AVR и PIC. Дано описание средств программной разработки в среде WinAVR и CCS-PICC, включая эмуляцию программ с помощью AVR Studio и MPLAB. Кратко рассмотрен стандартный синтаксис языка С и директивы препроцессора, а также особенности программирования на этом языке для микроконтроллеров. Книга содержит множество программных примеров на С, а также справочник с описанием системы ассемблерных команд микроконтроллеров AVR и PIC. http://slil.ru/22955074 http://rapidshare. …144815/000947.rar.html архив в двух частях http://lord-n.naro …ss.Kiev.2006.part1.rar http://lord-n.naro …ss.Kiev.2006.part2.rar архив в двух частях http://lord-n.naro …ss.Kiev.2006.part1.rar http://lord-n.naro …ss.Kiev.2006.part2.rar Версия с OCR http://up.spbland.ru/files/06080289/ Исходники с CD, приложенного к книге http://pikazoid.na …_na_C_PIC_AVR-disk.rar Источник информации: http://www.natahau …mikrokontrollerov.html ================================================================================ Микроконтроллеры семейства AVR фирмы Atmel В. В. Гребнев Издательство: РадиоСофт Год: 2002 Страниц: 174 Формат: djvu Размер: 3.8 Mb ISBN 5-93037-091-5 Книга предназначена для разработчиков аппаратуры различного назначения, содержащей встроенные однокристальные микро-ЭВМ-микроконтроллеры. Микроконтроллеры семейства AVR отличаются высоким быстродействием и низким энергопотреблением. В книге рассматриваются структура, система команд, периферийные устройства и работа микроконтроллеров, выпускаемых фирмой Atmel и поступающих в продажу по состоянию на конец 2001 г. Изложенный материал позволяет выбрать микроконтроллер определенного типа, разработать функциональную схему устройства, содержащего микроконтроллер, и программу работы микроконтроллера на языке AVR Ассемблера фирмы Atmel. http://rapidshare. …/18471407/avr.rar.html http://slil.ru/22697739 Источник информации: http://www.natahau …atmel_v_v_grebnev.html ================================================================================ Микроконтроллеры AVR семейства Tiny и Mega фирмы ATMEL. А. В. Евстифеев Издательство: Додэка XXI, 2005 г. Мягкая обложка, 560 стр. ISBN 5-94120-099-4 Тираж: 2000 экз. Формат: 60×90/16 От издателя Книга посвящена вопросам практического применения однокристальных микроконтроллеров AVR семейств Tiny и Mega фирмы ATMEL. Рассмотрена архитектура, ее особенности. Приведены основные электрические параметры и временные характеристики. Подробно описано внутреннее устройство микроконтроллеров, системы команд, периферия, а также способы программирования с примерами реализации некоторых алгоритмов для конкретных цифровых устройств. Книга предназначена для разработчиков радиоэлектронной аппаратуры, инженеров, студентов вузов и радиолюбителей. Название файла: Evstifeev.Atmel.AVR(natahaus.ru)..rar Размер файла: 7.17 MB http://www.megaupload.com/?d=SVEDBOHB http://rapidshare. …_natahaus.ru_.rar.html Источник информации: http://www.natahau …mega_firmy_atmel_.html ================================================================================ М. С. Голубцов Микроконтроллеры AVR: от простого к сложному (+ CD-ROM)Серия: Библиотека инженера Издательство: Солон-Пресс Год:2003 Страниц:288 Формат:djvu Размер:2.46 MB ISBN 5-98003-034-4 От издателя Прочитав эту книгу, читатели познакомятся с микроконтроллерами семейства AVR, программным обеспечением, необходимым для конструирования и программирования схем на основе этих микроконтроллеров, а при желании познакомятся с их применением на практике, собрав какую-либо из описанных в книге практических конструкций. Большая часть программ, описанных в книге, имеется на прилагаемом к книге компакт-диске. Книга может быть полезна радиолюбителям, студентам, а также всем, кто интересуется применением микроконтроллеров семейства AVR. http://rapidshare. …2/000468_djvu.rar.html Источник: http://www.natahau …stogo_k_slozhnomu.html ================================================================================ Автор: Баранов В.Н. Применение микроконтроллеров AVR: схемы, алгоритмы, программы. Издательство: Додэка, 2004 год. ISBN: 5-94120-075-7 Страниц: 289 с., мягкая обложка. Формат:djvu Какой микроконтроллер выбрать? Где найти его описание? Где взять программу, обеспечивающую написание, отладку и редактирование программ для микроконтроллера? Где взять программатор и програмное обеспечение для него? Как приступить к работе, когда все это уже есть? Как все сделать с минимальными затратами средств и времени? Автор делится опытом работы с 8-разрядными микроконтроллерами AYR корпорации Atmel. Книга знакомит с действиями, необходимыми для начала применения микроконтроллеров. Показаны все этапы разработки устройств на микроконтроллерах. Особое внимание уделено связи предлагаемых схемных решений с программным обеспечением разрабатываемых устройств. В каждой главе предлагаются электрические схемы устройств — контроллеров на базе микроконтроллеров AVR, а также несколько программ, определяющих функционирование этих контроллеров. Все устройства с приведенными программами вполне работоспособны и могут быть повторены. Функциональные узлы микроконтроллеров описаны в объеме, достаточном для понимания программ. Приведенные в книге программы отлаживались в среде AVR Studio версии 4.08, работе с которой посвящена отдельная глава книги. Материал основан на рассмотрении реально работающих устройств и излагается по принципу «от простого к сложному». Поэтому книга представляет интерес как для начинающих «электронщиков», так и для специалистов. http://rapidshare. …_AVR_Baranov_.rar.html http://slil.ru/22594141 Источник: http://www.natahau …oritmy_programmy..html ================================================================================типов микроконтроллеров AVR — ATmega32 и ATmega8, их работа
ATmega32 — 8-битный микроконтроллер AVR
Микроконтроллеры AVR основаны на усовершенствованной архитектуре RISC. ATmega32 — это 8-разрядный КМОП-микроконтроллер с низким энергопотреблением, основанный на архитектуре RISC, улучшенной AVR. AVR может выполнять 1 миллион инструкций в секунду, если частота цикла составляет 1 МГц.
40-контактный DIP Фотография ATmega32Основные характеристики:
- 32 x 8 регистров общего назначения.
- 32 Кбайт внутрисистемной самопрограммируемой флеш-памяти программ
- 2 Кбайт внутренней SRAM
- 1024 байта EEPROM
- Доступен в 40-контактном DIP, 44-выводном QTFP, 44-контактном QFN / MLF
- 32 программируемых линии ввода / вывода
- 8-канальный, 10-битный АЦП
- Два 8-битных таймера / счетчика с отдельными предварительными делителями и режимами сравнения
- Один 16-битный таймер / счетчик с отдельным предварительным делителем, режимом сравнения и режимом захвата.
- 4 канала ШИМ
- В системном программировании с помощью встроенной программы загрузки
- Программируемый сторожевой таймер с отдельным встроенным генератором.
- Программируемый последовательный USART
- Ведущий / ведомый последовательный интерфейс SPI
Особенности специального микроконтроллера:
- Шесть спящих режимов: холостой ход, шумоподавление АЦП, энергосбережение, отключение питания, режим ожидания и расширенный режим ожидания.
- Внутренний калиброванный RC-генератор
- Внешний и внутренний источники прерываний
- Сброс при включении и программируемое обнаружение пониженного напряжения.
Все 32 регистра напрямую подключены к арифметико-логическому устройству (ALU), что позволяет обращаться к двум независимым регистрам в одной инструкции, выполняемой за один такт.
Отключение питания сохраняет содержимое регистра, но останавливает генератор. Все остальные функции микросхемы будут отключены до появления следующего внешнего прерывания. Асинхронный таймер позволяет пользователю поддерживать таймер в режиме энергосбережения, пока остальная часть устройства находится в спящем режиме.
Режим шумоподавления АЦП останавливает ЦП и все модули ввода / вывода, кроме АЦП и асинхронного таймера. В режиме ожидания, кроме кварцевого генератора, остальная часть устройства находится в спящем режиме. И основной генератор, и асинхронный таймер продолжают работать в расширенном режиме ожидания.
ATmega32 — это мощный микроконтроллер, поскольку он сам программируется в системе на монолитной микросхеме и обеспечивает гибкое и экономичное решение для многих встраиваемых приложений управления.
44-контактный TQFP / MLF
Описание контактов:
VCC: Источник цифрового напряжения
GND: Земля
Порт A (PA7-PA0): Этот порт служит аналоговыми входами к аналого-цифровому преобразователю. Он также служит 8-битным двунаправленным портом ввода-вывода, если аналого-цифровой преобразователь не используется.
Порт B (PB7-PB0) и порт D (PD7-PD0): Это 8-битный двунаправленный порт ввода-вывода. Его выходные буферы обладают симметричными характеристиками возбуждения с высокой пропускной способностью как приемника, так и источника. В качестве входов они становятся крайне низкими, если активированы подтягивающие резисторы. Он также обслуживает различные специальные функции ATmega32.
Порт C (PC7-PC0): Это 8-битный двунаправленный порт ввода-вывода. Если интерфейс JTAG включен, подтягивающие резисторы на контактах PC5 (TDI), PC3 (TMS) и PC2 (TCK) будут активированы.
Взаимодействие с JTAG через порт C ATmega32Сброс: Это вход.
XTAL1: Это вход для усилителя инвертирующего генератора и вход для рабочей схемы внутренних часов.
XTAL2: Это выходной сигнал усилителя инвертирующего генератора.
AVCC: Это вывод напряжения питания для порта A и аналого-цифрового преобразователя. Он должен быть подключен к VCC.
AREF: AREF — это аналоговый опорный вывод для аналого-цифрового преобразователя.
ATmega32 Memories:
Он имеет две области основной памяти: память данных и область памяти программ. Кроме того, он имеет память EEPROM для хранения данных.
В системной программируемой флеш-памяти для программ:
ATmega32 содержит 32 Кбайт встроенной в систему перепрограммируемой флеш-памяти для хранения программ. Флэш-память организована как 16k X 16, и ее память разделена на две секции, секцию загрузочной программы и секцию прикладной программы. Схема программатора ISP
Память данных SRAM:
Файл регистров, память ввода-вывода и внутренняя SRAM данных адресуются из 2144 нижних ячеек памяти данных.Первые 96 ячеек адресуют файл регистров и память ввода / вывода, а внутренняя SRAM данных адресуется следующими 2048 ячейками. Прямой, косвенный со смещением, косвенный, косвенный с пре-декрементом и косвенный с пост-декрементом — это 5 различных режимов адресации для покрытия памяти данных. При использовании этих режимов адресации доступны 32 регистра общего назначения, 64 регистра ввода / вывода и 2048 байтов внутренней SRAM данных.
Блок-схема ATmega32EEPROM Память данных:
Содержит 1024 байта памяти EEPROM данных.Доступ к нему можно получить как к отдельному пространству данных, в котором можно читать и записывать отдельные байты.
Память ввода-вывода:
Все устройства ввода-вывода и периферийные устройства размещаются в области ввода-вывода. Доступ к ячейкам ввода-вывода осуществляется командами IN и OUT, передавая данные между 32 регистрами общего назначения и пространством ввода-вывода. Регистры ввода-вывода с адресом 00-1F доступны напрямую по битам с использованием инструкций SBI и CBI.
ATmega8
Введение
Это 8-битный КМОП микроконтроллер из семейства AVR (разработан Atmel Corporation в 1996 году) и построен на архитектуре RSIC (компьютер с сокращенным набором команд).Его основное преимущество в том, что он не содержит аккумулятора, а результат любой операции может быть сохранен в любом регистре, определенном инструкцией.
Архитектура
АрхитектураПамять
Состоит из 8 КБ флэш-памяти, 1 КБ SRAM и 512 байтов EEPROM. Флэш-память 8K разделена на 2 части: нижняя часть используется как секция загрузочной флэш-памяти, а верхняя часть используется как секция флэш-памяти приложения. SRAM содержит 1 Кбайт вместе с 1120 байтами регистров общего назначения и регистров ввода-вывода.32 младших адреса используются для 32 8-битных регистров общего назначения. Следующие 64 адреса используются для регистров ввода / вывода. Все регистры подключены напрямую к АЛУ. EEPROM используется для хранения данных, определенных пользователем.
Порты ввода / вывода
Он состоит из 23 линий ввода / вывода с 3 портами ввода / вывода, названных B, C и D. Порт B состоит из 8 линий ввода / вывода, порт C состоит из 7 каналов ввода / вывода линий, а порт D состоит из 8 линий ввода / вывода.
Регистры, соответствующие любому порту X (B, C или D):
DDRX : Регистр направления данных порта X
PORTX : Регистр данных порта X
PINX : Входной регистр порта X
Таймеры Счетчики
иСостоит из 3-х таймеров с сопоставимыми режимами.Два из них 8-битные, а третий 16-битный.
Генераторы
Он включает в себя внутренний сброс и генератор, что позволяет исключить необходимость во внешнем входе. Внутренний RC-генератор способен генерировать внутренние часы, которые могут работать на любой частоте 1 МГц, 2 МГц, 4 МГц или 8 МГц в соответствии с программой. Он также поддерживает внешний генератор с максимальной частотой 16 МГц.
Связь
Обеспечивает как синхронные, так и асинхронные схемы передачи данных через USART (универсальный синхронный и асинхронный приемный передатчик), т.е.е. связь с модемами и другими последовательными устройствами. Он также поддерживает SPI (последовательный периферийный интерфейс), используемый для связи между устройствами на основе метода ведущий-ведомый. Другой поддерживаемый тип связи — TWI (двухпроводной интерфейс). Это позволяет коммутировать между любыми двумя устройствами, используя 2 провода вместе с общим заземлением.
Он также имеет модуль компаратора, встроенный в микросхему, чтобы обеспечить сравнение двух напряжений, подключенных к двум входам аналогового компаратора через внешние микросхемы.
Он также содержит 6-канальный АЦП, из которых 4 имеют точность 10 бит, а 2 — точность 8 бит.
Регистр состояния : Он содержит информацию о текущем выполняемом наборе арифметических инструкций.
Схема выводов ATmega :
Схема выводов ATmegaОдной из важных особенностей ATmega8 является то, что все остальные выводы, кроме 5, поддерживают два сигнала.
- Контакты 23,24,25,26,27,28 и 1 используются для порта C, тогда как контакты 9,10,14,15,16,17,18,19 используются для порта B и контактов 2,3 , 4,5,6,11,12 используются для порта D.
- Контакт 1 также является контактом сброса, и подача сигнала низкого уровня в течение времени, превышающего минимальную длину импульса, приведет к сбросу.
- Контакты 2 и 3 также используются для последовательной связи для USART.
- Контакты 4 и 5 используются как внешние прерывания. Один из них сработает, когда установлен бит флага прерывания в регистре состояния, а другой будет срабатывать, пока преобладает условие прерывания.
- Контакты 9 и 10 используются в качестве внешнего генератора, а также в качестве генераторов счетчиков таймера, где кристалл подключается непосредственно между контактами.Контакт 10 используется для кварцевого генератора или кварцевого генератора низкой частоты. Если внутренний откалиброванный RC-генератор используется в качестве источника синхронизации и включен асинхронный таймер, эти выводы можно использовать как выводы генератора таймера.
- Контакт 19 используется как выход Master Clock, вход Slave Clock для канала SPI.
- Контакт 18 используется как вход тактовых импульсов главного устройства, выход тактового сигнала подчиненного устройства.
- Контакт 17 используется как выход данных Master, вход данных Slave для канала SPI. Он используется как вход, когда разрешен ведомым устройством, и является двунаправленным, когда разрешается ведущим устройством.Этот вывод также можно использовать в качестве выхода сравнения сравнения, который служит внешним выходом для сравнения таймера / счетчика.
- Контакт 16 используется как вход выбора ведомого. Его также можно использовать в качестве сравнения таймера / счетчика1, настроив вывод PB2 как выход.
- Контакт 15 может использоваться как внешний выход для сравнения таймера / счетчика A.
- Контакты 23–28 используются для каналов АЦП. Контакт 27 может также использоваться как часы последовательного интерфейса, а контакт 28 может использоваться как данные последовательного интерфейса.
- Контакты 13 и 12 используются как входы аналогового компаратора.
- Контакты 11 и 6 используются в качестве источников таймера / счетчика.
Микроконтроллер работает в 6 спящих режимах.
- Режим ожидания: Он останавливает работу ЦП, но разрешает работу SPI, USART, ADC, TWI, таймера / счетчика и сторожевого таймера и системы прерываний. Это достигается установкой битов SM0 в SM2 флага регистра MCU в ноль.
- Режим снижения шума АЦП : Останавливает ЦП, но позволяет функционировать АЦП, внешним прерываниям, таймеру / счетчику2 и сторожевому таймеру.
- Power down Mode : Включает внешние прерывания, 2-проводный последовательный интерфейс, сторожевой таймер при отключении внешнего генератора. Он останавливает все сгенерированные часы.
- Режим энергосбережения : Используется, когда таймер / счетчик синхронизируется асинхронно. Останавливает все часы, кроме clk ASY.
- Режим ожидания : В этом режиме генератору разрешено работать, останавливая все остальные операции.
Приложения с участием Atmega8
Мигающий светодиод
Схема мигающего светодиодаПрограмма написана на языке C и сначала компилируется как.c файл. Программный инструмент ATMEL преобразует этот файл в двоичный объектный файл ELF. Затем он снова конвертируется в шестнадцатеричный файл. Затем шестнадцатеричный файл передается в микроконтроллер с помощью программы AVR dude.
Фото предоставлено:
1 | Вентилятор постоянного тока с контролем температуры с использованием микроконтроллера : Основной принцип схемы состоит в том, чтобы включать вентилятор, подключенный к двигателю постоянного тока, когда температура больше порогового значения.Это можно использовать в домашних условиях и в процессоре для уменьшения нагрева. |
2 | Биометрическая система посещаемости с использованием микроконтроллера : Эта система посещаемости на основе отпечатков пальцев разработана с использованием микроконтроллера AVR. Это может быть использовано в промышленности, школах, колледжах и т. Д. |
3 | Управление скоростью двигателя постоянного тока на основе ШИМ с использованием микроконтроллера : Вот простая схема управления скоростью двигателя постоянного тока, разработанная с использованием микроконтроллера AVR.Здесь мы используем метод, называемый ШИМ (широтно-импульсная модуляция), для управления скоростью двигателя постоянного тока. |
4 | Система сигналов трафика на основе плотности с использованием микроконтроллера : В этой системе мы используем ИК-датчики для измерения плотности трафика. Нам нужно установить по одному ИК-датчику на каждую дорогу; эти датчики всегда определяют движение на этой конкретной дороге. Все эти датчики подключены к микроконтроллеру. На основе этих датчиков контроллер определяет трафик и контролирует систему движения. |
5 | Роботизированная схема следования по линии с использованием микроконтроллера ATMega8: Этот робот-последователь линии представляет собой базовый робот, который следует определенному пути, обозначенному линией определенной ширины. |
6 | Солнечная панель с отслеживанием солнца: В этой статье описывается схема, которая вращает солнечную панель. Эта солнечная панель слежения за солнцем состоит из двух LDR, солнечной панели, шагового двигателя и микроконтроллера ATMEGA8. |
7 | Уличные фонари, которые светятся при обнаружении движения транспортного средства: В этой статье описывается схема, которая включает уличные фонари при обнаружении движения транспортного средства и остается выключенным по истечении определенного времени.Эта система управляет уличным освещением с помощью резистора, зависимого от освещенности, и датчика PIR. |
8 | Автоматическое управление яркостью уличных фонарей: Это простая схема, которая автоматически регулирует интенсивность уличных фонарей, разработанная с использованием микроконтроллера и светодиодов. |
9 | Система посещаемости на основе RFID: Эта простая система посещаемости на основе RFID разработана с использованием микроконтроллера ATmega8 и в основном используется в образовательных учреждениях, промышленности и т. Д.где требуется аутентификация. |
10 | Цифровой датчик температуры: Основным принципом этой схемы является отображение цифрового значения температуры. Они в основном используются в экологических приложениях. |
11 | Двухразрядный счетчик вверх-вниз: Главный принцип этой схемы — увеличивать значения на семи сегментных дисплеях нажатием кнопки. Эта схема в основном может использоваться в табло. |
12 | Схема системы домашней автоматизации на основе DTMF : Это простая и очень полезная схема в нашей реальной жизни, называемая системой бытовой техники, управляемой DTMF.Это помогает управлять бытовой техникой с помощью технологии DTMF. |
13 | Индикатор уровня воды : В этом проекте индикатора уровня воды используется простой механизм, который помогает определять и указывать уровень воды в верхнем резервуаре или любом другом резервуаре для воды. Его можно использовать в отелях, фабриках, жилых домах, коммерческих комплексах, канализации и т. Д. |
14 | Сопряжение ЖК-дисплея 16X2 с микроконтроллером AVR : Это схема, которая помогает сопрягать ЖК-дисплей 16X2 с микроконтроллером AVR.Atmega16 принадлежит к семейству микроконтроллеров AVR. |
15 | Контроллер автоматических железнодорожных ворот с высокоскоростной системой оповещения : Основная цель этого проекта — надлежащим образом управлять беспилотными железнодорожными воротами и управлять ими, чтобы избежать аварий на беспилотном железнодорожном переезде. |
16 | Калькулятор логической алгебры : Этот калькулятор логической алгебры — интересный проект, который более полезен в нашей реальной жизни, поскольку он работает как портативный калькулятор для упрощения логических выражений на лету.В нашей схеме мы используем методы упрощения логической алгебры, такие как алгоритм Куайна-Маккласки, чтобы упростить логическое выражение и отобразить результат на дисплее. |
Rahix / avr-device: Крейт доступа к регистрам для микроконтроллеров AVR
Автоматически генерируемые оболочки регистров для микроконтроллеров AVR.
Использование
Добавьте следующее в Cargo.toml
:
[dependencies.avr-device] версия = "0.3.0" features = ["atmega32u4"]
С помощью функции вы можете выбрать, для какой микросхемы вы хотите получить спецификации регистра.В настоящее время поддерживается следующий список:
-
атмега1280
-
атмега168
-
атмега 2560
-
атмега8
-
атмега8у2
-
атмега328p
-
атмега32u4
-
атмега4809
-
атмега48p
-
атмега64
-
атмега644
-
attiny84
-
attiny841
-
attiny85
-
attiny861
-
attiny88
Инструкции по сборке
Версия на ящиках.io
предварительно собран. Следующее необходимо только при попытке собрать этот ящик из исходников.
У вас должны быть установлены atdf2svd, svd2rust, form, rustfmt (для набора инструментов nightly ) и svdtools (> = 0.1.9):
грузовая установка atdf2svd грузовая установка svd2rust форма установки груза компонент rustup добавить --toolchain nightly rustfmt pip3 install --user svdtools
Затем клонируйте это репо и создайте определения устройств:
git clone https: // github.com / Rahix / avr-device cd avr-device делать # Вы можете построить только один конкретный чип, используя # make atmega32u4 # Я также предлагаю строительную документацию Cargo + nightly doc --features--open
Внутреннее устройство
avr-device создается с использованием atdf2svd
и svd2rust
. Предоставляемые поставщиком файлы atdf можно найти в каталоге vendor /
. Промежуточные файлы svd исправлены файлом svdpatch.py
(адаптировано из svdpatch.py
в stm32-rs) с зависящими от устройства патчами в patch /
, в основном для улучшения неописуемых имен и отсутствующих описаний.
Добавление нового чипа
Чтобы добавить новый чип, загрузите atdf с http://packs.download.atmel.com/ (или avr-mcu / packs /) и поместите его в vendor /
. Обязательно назовите его как модуль Rust, который должен быть сгенерирован. Затем вам нужно интегрировать его в базовую систему ящиков и сборки. Следуйте тому, что было сделано в коммите 2
Затем вы, , должны создать
в патче /
, который имеет как минимум следующее содержимое:
_svd: ../svd/<имя микросхемы>.svd
Если нужно применить другие патчи (скорее всего!), Их тоже нужно добавить в этот файл. Формат исправлений задокументирован в README svdtools
. В идеале попробуйте повторно использовать существующие патчи в patch / common /
или patch / timer /
.
Наконец, попробуйте собрать ящик для вашего MCU с помощью команды make
.
Лицензия
avr-device под лицензией
на ваше усмотрение.
Продаваемые файлы atdf находятся под лицензией Apache License, версия 2.0 (ЛИЦЕНЗИЯ-ПОСТАВЩИК).
(PDF) Обзор микроконтроллеров ATmega AVR, используемых в научных исследованиях и промышленных приложениях
В соответствии с алгоритмом RK4, заданным уравнениями (7) и
(8), оценивается следующая точка дискретной траектории численного решения
по формуле:
112
(2
ii
kk
+
= + ⋅ +
(6)
, где ki
(для i
= 1
… 9000 ) — коэффициенты аппроксимации производной
в разных точках траектории во временном диапазоне
[ti, ti + 1], h — временной шаг интегрирования.
Коэффициенты аппроксимации применяемого метода равны
, которые задаются формулами:
(7)
В таблице 1 показано сравнение выходных данных числового и аналитического решений. Предполагаются следующие параметры
: временной шаг численного интегрирования h = 0,001 и
начальные условия:
Наблюдаемая переменная — угловое смещение маятника
. Как видно, оба графика идентичны
и перекрываются.Разницу между полученными значениями в обоих методах
можно наблюдать по шестому знаку после запятой. Данные серии
, использованные для построения графика, были получены от контроллера micro-
по протоколу связи UART.
Выводы
Как было показано на многих примерах, микроконтроллеры семейства
ATmega нашли множество практических
применений, как в научных исследованиях, так и в промышленности.
Микропроцессоры Atmel предлагаются в широком диапазоне стилей корпусов
, они имеют низкое энергопотребление в широком диапазоне рабочих напряжений и обеспечивают отличную плотность кода.Встроенные преобразователи
AD / DA, улучшенная поддержка протоколов связи и более гибкое программирование оказались более эффективными во многих случаях реальных приложений по сравнению даже с
для небольших контроллеров ПЛК. Во второй части статьи
подробно показано, что ATmega644PA может управлять даже сложными многомерными динамическими системами, а
обладает достаточной вычислительной мощностью для проведения численных расчетов
—
.В обоих тестах юзабилити были достигнуты удовлетворительные результаты
.
Благодарности
Эта работа была поддержана Польским национальным научным центром
, MAESTRO 2, № 2012/04 / A / ST8 / 00738.
Ссылки
1.
http://www.atmel.com/products/microcontrollers/avr/
default.aspx
2. http://www.arduino.cc
3. Zhang DG, Dong DC, Peng HT., Исследование разработки
встроенной системы бесперебойного питания
для мобильных услуг на основе Интернета вещей, «Компьютеры и электрика
cal Engineering», Vol.38, № 6, 2012, 1377–1387. DOI:
10.1016 / j.compeleceng.2012.04.001.
4.
Kioumars A., Tang L., ATmega and XBee-Based Wire-
less Sensing, [in:] Proceedings of the 5
th
International
Conference on Automation, Robotics and Applications,
6–8 декабря 2011 г., Веллингтон, Новая Зеландия. DOI: 10.1109 /
ICARA.2011.6144908.
5.
Лу Ю., Лю Ю., Ли Г., Сун Г., Лю М., Лю В., Дизайн
и применение контроллера автоматической упаковочной машины
на базе ATmega 128, [in:] 2-я Международная конференция
по вычислительной технике и автоматизации
(ICCAE), 2010, Сингапур.
6.
Шах Дж., Моди Б., Сингх Р., Wireless Home Applian-
ces Controlling System, Международная конференция по электронике и коммуникационным системам
(ICECS), 2014 г., Коим-
, Индия. DOI: 10.1109 / ECS.2014.6892520.
7. Сямсиана И.Н., Путри Р.И., Генератор импульсов высокого напряжения
Конструкцияс контролем напряжения для импульсного электрического поля (PEF)
пастеризация, [in:] Международная конференция по электротехнике
Инженерия и информатика, 17–19 июля 2011, Бандунг,
Индонезия. DOI: 10.1109 / ICEEI.2011.6021712.
8. Кроитору Б., Тулбуре А., Абрудин М., Многоплатформенные процедуры генерации ШИМ-сигналов на основе микроконтроллера
для промышленного использования, [в:] Международная конференция IEEE по
Автоматизация, качество и тестирование , Robotics, Клуж-Напока,
Румыния 2014.DOI: 10.1109 / AQTR.2014.6857891.
9.
Юэ К., Го С., Ли М., Ши Л., Проектирование электрической системы
сферического подводного робота (SUR-II), [in:] Труды
Международной конференции IEEE по информации
и автоматизации, 2013, Иньчуань, Китай. DOI: 10.1109 /
ICInfA.2013.6720479.
10.
Сибер А., Джонс Н., Стоун Б., Пайл Р., Косс Б., Сджоблом К.,
Встроенные системы в ребризере Poseidon MK6, [in:]
7-й семинар по интеллектуальным технологиям решения в Embedded Sys-
tems, Анкона, глава 3, Италия 2009.DOI: 10.1007 / 978-
94-007-0638-5_3.
11.
Zou JT., Su KL., TsoH., Моделирование и реализация трехроторного подвижного робота, Springer, «Artif Life
Robotics», Vol. 17, № 1, 2012, 86–91. DOI: 10.1007 /
s10015-012-0028-2.
12.
Czerwiński E., Szewc M., Wojtunik I., Awrejcewicz J.,
Olejnik P., Математическая модель, компьютерное проектирование
и программирование многофункционального подвижного объекта, Taylor
& Francis , Авиация, Том.18, № 1), 2014, 28–39. DOI:
10.3846 / 16487788.2014.865941.
13.
[www.atnel.pl/download/elektronika/atb_instrukcja/
Instrukcja-zestawu-ATB_v102.pdf] — Документация для
платы тестирования ATB1.03.
14.
Куниковски В., Аврейцевич Дж., Олейник П., Эффективность
ПИ-регулятор на основе ПЛК в стабилизации вращательного движения
, вызванного хаотическими возмущениями, [в: ] Dynamical
Systems — Applications, Eds.Я. Аврейцевич, М. Kaźmier-
czak, П. Олейник, Я. Мрозовски, Издательство Лодзи
Технологический университет, 2013, 173–184.
15.
Awrejcewicz J., Olejnik P., Моделирование пар трения с помощью системы 2-dof
: численные и экспериментальные исследования, Интер-
национальный журнал бифуркации и хаоса, World Scien-
tic ”, Vol. 15, № 6, 2005, 1931–1944. DOI: 10.1142 /
S021812740501306X.
16.
Awrejcewicz J., Olejnik P., Возникновение феномена прерывистого скольжения
—
Menon, «Журнал теоретической и прикладной механики»,
Vol. 45, № 1, 2007, 33–40.
19
Войцех Куниковски, Эрнест Червиньски, Павел Олейник, Ян Аврейцевич
Устройство Ethernet на базе микроконтроллера AVR
tuxgraphics.org: Устройство Ethernet на основе микроконтроллера AVR домой | электроника | ящик для инструментов | научный клуб | tuxtalk | фотографии | электронные открытки | интернет магазинУстройство Ethernet на базе микроконтроллера AVRАннотация : Ethernet традиционно был довольно сложным интерфейсом.Все Ethernet микросхемы до сегодняшнего дня имели 100 контактов или более, что трудно найти в небольших количество и трудно использовать с небольшого микроконтроллера с небольшим объем памяти. Компания Microchip изменила мир, выпустив новый чип Ethernet ENC28J60! ENC28J60 — это небольшой чип с 28 контактами, имеющий интерфейс SPI, который легко использовать с любого микроконтроллера. Это открывает целый мир совершенно новых приложений. Вы можете легко построить небольшие устройства, которые можно разбросать по всему дому и просто подключить к сети Ethernet. Вам больше не нужно отдельное последовательное соединение или другая шина. Все легко подключается через Ethernet. Расстояние больше не является ограничивающим фактором. Возможно даже подключение к WIFI, потому что вы можете подключать устройства к беспроводной мост. Все компоненты оборудования доступны по адресу shop.tuxgraphics.org .
Программное обеспечение и электрические схемы доступны бесплатно (лицензия GPL V2). |
Знакомство с контроллером Ethernet ENC28J60
ENC28J60 от Microchip — фантастический чип.Он имеет Tx / Rx, MAC и PHY в одной маленькой микросхеме. Внешних деталей очень мало. В основном просто кристалл и Ethernet трансформатор, он же магнетик. Все это выполнено в удобном 28-выводном DIP-корпусе. Легкий для пайки и идеально подходит для хобби-приложений.Рисунок 1: Принципиальная блок-схема.
Затем микроконтроллер может управлять любым оборудованием, которое вам нравится: прикрепить какой-нибудь датчик (свет, температура), можно что-нибудь выключить можно прикрепить ЖК-дисплей и т. д…
План
В этой первой статье мы создадим общее оборудование с большим количеством операций ввода-вывода. интерфейсы и входы аналого-цифрового преобразователя. Однако мы будем только управлять небольшим реле, чтобы включить или выключить что-либо. В последующих статьях Затем мы можем использовать то же оборудование и делать более сложные вещи.Основная цель — показать здесь принципиальную схему и объяснить программное обеспечение. Мы используем приложение UDP для отправки команд микроконтроллеру. Эти команды тогда микроконтроллер включит или выключит реле.
Думаю, можно будет даже реализовать TCP. Текущее программное обеспечение UDP менее 3 Кбайт, а это даже не половина объема памяти Atmega88. Тогда TCP позволит нам управлять устройством через веб-браузер. Однако у меня есть еще не пробовал.
Принципиальная схема
Вот принципиальная схема. Большинство из них очень простые и стандартные. для ENC28J60. Полярность светодиода-B важна, поскольку она определяет дуплексный режим. работа микросхемы. Стандартный полудуплекс — это то, что имеет смысл для устройство, которое будет отправлять и получать очень небольшой трафик.Рисунок 2: Принципиальная схема (щелкните рисунок, чтобы получить версию в формате pdf для печати). Принципиальную схему предыдущей версии оборудования можно найти в разделе загрузок.
К разъему CONN3 можно подключить реле. Обратите внимание на диод D1. Это не бесполезно, и в этом нет ничего плохого. принципиальная схема хоть и выглядит так. Это для тех, кто планирует подключите к этому выходу небольшое реле на 6 В. Он защищает всю цепь от возможно очень высокое напряжение, которое может быть вызвано катушкой реле.
Если вы используете реле с большой катушкой, вам также следует добавить резистор в параллельно реле (например, 1K или 2.2K). Диоды имеют конечное время отклика и такой резистор предотвратит слишком быстрое повышение напряжения перед диодом. режет их.
Если вы планируете использовать 9V raw-DC (или, возможно, больше) в сочетании с реле 6V на CONN3, вы можете добавить небольшой резистор (например, 33 Ом, вам нужно поэкспериментировать) последовательно к реле. для компенсации более высоких напряжений.
Разъемы с именами «IO-ports» и «Analog-IN» на данный момент не используются.Они есть предназначен для будущих функций, которые будут описаны в следующих статьях. Мы будет использовать только CONN3 в этом проекте.
Ethernet требует довольно больших токов, потому что он может использоваться с довольно длинными
кабели. Вышеупомянутая схема потребляет около 200 мА при 3,3 В. LM2937-33 требует
следовательно, охлаждение, если напряжение питания больше 5 В (на Raw-DC-In).
Обычно достаточно небольшого кусочка алюминия.
Змеевик фильтра L1 | Magjack: RJ45 со встроенным магнетики и светодиоды |
Магниты и фильтры Ethernet
Для ENC28J60 требуется трансформатор с коэффициентом трансформации 1: 1, сертифицированный для 10base-T.Есть несколько очень хороших разъемов RJ45 под названием «Magjack», которые имеют уже интегрированные магнетики и опционально интегрированные светодиоды. Кроме того, вам понадобится небольшая фильтрующая катушка (L1 на схеме). Феррит 5 мм бусинка с 5-7 витками тонкой проволоки вроде подойдет.Обновления оборудования 2007
По состоянию на первый квартал 2007 года я обновил оборудование в отношении следующих точки:- Диод D1 был неправильно подключен к GND вместо Vdd. Что интересно, этой неисправности никто не заметил.Неправильно подключенный диод был защита транзистора от отрицательного напряжения, но не от пиков напряжения, вызванных катушкой реле. Если вы все же последовали моей рекомендации и использовали дополнительный резистор в параллельно катушке, то эта уже будет поддерживать ток, протекающий через катушки после отключения питания, и кажется, что этого достаточно, чтобы защитить схема.
- ENC28J60 имеет тактовый выход. Я хотел использовать его прямо с запускается, но возникла проблема с прерыванием сигналов часов при сбросе, который иногда приводил к неисправности АРН.Я связался со службой поддержки микрочипов по этому поводу, но они, похоже, не понять проблему. Возможно, микрочип-контроллеры PIC менее чувствителен к прерывистым тактовым сигналам. Я наконец понял, что это работает, если я не использую программный и аппаратный сброс во время инициализации микросхемы. Сейчас использую просто выполните сброс через программное обеспечение, и это хорошо работает. ENC28J60 может обеспечивать частоту 12,5 МГц. тактовый сигнал. Это дает небольшое увеличение скорости по сравнению с 8 МГц по сравнению с atmega88. внутренние часы. Atmel указывает, что atmega88 может обрабатывать 0-20 МГц @ 4.5-5,5 В и 0-10 МГц при 2,7-5,5 В. Это говорит о том, что мы должны использовать максимальную частоту 10 МГц, но это не может быть бинарным поведением, внезапно начинающимся с 2,7 В. Можно предположить, что это должно быть что-то среднее между 10 МГц и 20 МГц. Мои тесты показывают, что 12,5 МГц стабильно и надежно работает при 3,3 В.
Пошаговая инструкция: сборка и тестирование
Проблема всей электроники на базе микроконтроллеров в том, что она сложна. разрабатывать впервые. Обычно по какой-то причине ничего не работает и тогда большой вопрос в том, где же ошибки. Ошибки обычно допускаются в как программное, так и аппаратное.У вас есть то преимущество, что у вас уже есть надежная база. Вы хотя бы знаете, что программа работает и что принципиальная схема верна, потому что вы можете основываться на моей работе. Тем не менее, есть смысл создавать оборудование. шаг за шагом и тест после каждого шага. Таким образом вы можете сузить область возможной неисправности.Шаг первый:
Припаяйте регулятор напряжения LM2937-33 и необходимые конденсаторы на плату. Подключите Raw-DC-In к лабораторному источнику питания 5 В и используйте измеритель напряжения для убедитесь, что на выходе 3.3В. Теперь возьмите небольшую лампочку для фонарика на 3,5 В или велосипед на 6 В. лампочку и подключите ее тоже к выходу. Убедитесь, что у вас все еще 3,3 В с немного нагрузки.
Шаг второй:
Припаяйте ENC28J60, magjack и все другие детали вокруг ENC28J60 на плата, а не микроконтроллер Atmega88. Снова подключите схему к питанию 5 В на Raw-DC-IN (ограничьте ток примерно до 300 мА, убедитесь, что вы снова получите 3,3 В). Теперь подключите кабель Ethernet от концентратора или коммутатора к цепи.Зеленый светодиод на Magjack должен загореться и остаться включенным. Светодиод ссылки на вашем Хаб / коммутатор тоже должен включиться.
Ethernet имеет протокол согласования канала на основе импульсов (FPL, Fast Link Pulse). Зеленый светодиод указывает на то, что согласование соединения работает и прошло успешно.
Шаг третий:
Припаяйте Atmega88 к плате. Снова включите схему. Распаковать программу eth_rem_dev-1.X (скачать в конце статьи) и запустите команду «make test0.hex «из оболочки. Это скомпилирует test0.hex файл. Загрузите этот файл в микроконтроллер (например, с помощью «avrdude -p m88 -c avrusb500 -e -U flash: w: text0.hex «или используйте цель make» make load_test0 «). Если у вас есть один из программистов tuxgraphics, тогда вы можете просто набрать «make load_test1» под Linux. Обратите внимание, что для Atmega88 требуется как минимум avr-glibc-1.4.X.
Это заставит красный светодиод (D2) мигать с частотой 1 Гц.
Теперь мы проверили все основные компоненты схемы и есть хороший шанс, что он будет работать с финальной версией программного обеспечения.В процессе разработки я использовал еще несколько тестовых программ, которые также включен в пакет eth_rem_dev-1.X.
- test1: позволяет проверить связь с цепью.
- test2: отправляет строку обратно
Последний шаг:
Отредактируйте файл main.c и измените 2 строки:
статический uint8_t mymac [6] = {0x54,0x55,0x58,0x10,0x00,0x24}; статический uint8_t myip [4] = {10,0,0,24};Для первого созданного вами устройства вам не нужно будет изменять строку mymac.Но вам, вероятно, потребуется изменить IP-адрес (myip). Это должно быть свободный адрес из диапазона адресов в вашей сети.
Существует ряд частных адресов (не маршрутизируемых в общедоступном Интернете) которые вы можете использовать:
Сетевые адреса сетевой маски 255.0.0.0 10.0.0.0 - 10.255.255.255 255.255.0.0 172.16.0.0 - 172.31.255.255 255.255.255.0 192.168.0.0–192.168.255.255Пример: у вашего WIFI-роутера может быть 192.168.1.1, у вашего ПК может быть 192.168.1.2. Это означает, что вы можете e.g используйте 192.168.1.10 и оставьте несколько место для дополнительных компьютеров. Если вы используете DHCP, убедитесь, что адрес не указан. выделено дважды (исключить из диапазона DHCP).
Теперь скомпилируйте программу с помощью команды «make». Загрузите файл eth_rem_dev.hex в микроконтроллер и отправьте свой первый пинг из шелла.
ping Ip.Addr.you.assignedВы должны получить ответ с потерей пакетов 0% (остановите команду с помощью crtl-c).
Использование eth_rem_dev для включения или выключения чего-либо
Единственная поддерживаемая полезная функция в коде микроконтроллера в этом первом выпуске — это включение или выключен транзистор, подключенный к PD7 (разъем CONN3).Больше функциональности будет приходите позже.Я написал небольшую программу под названием udpcom, которая отправляет строку через UDP и дождитесь строки ответа. udpcom также включен в eth_rem_dev-1.X упаковка. Программа очень маленькая и должна быть переносится на многие операционные системы с небольшими изменениями. Если вы перенесли код на еще не поддерживаемую ОС, пришлите мне код и я включу его в следующий выпуск.
Для компиляции команды udpcom перейдите в каталог eth_rem_dev-1.X / udpcom
и скомпилируйте нужную версию udpcom в одном из подкаталогов
командой «make».
Команда на включение: t = 1 Команда на выключение: t = 0 Запросить статус: t =?
Синтаксис: пароль udpcom, X = Y IP-адрес
Пароль по умолчанию для eth_rem_dev-1.X — «секретный». Вы можете это изменить в том же файле main.c, в котором вы изменили IP-адрес.
Вот пример:
./udpcom/unix/udpcom secret, t = 1 10.0.0.24 II: данные: секрет, t = 1, ip: 10.0.0.24 порт: 1200 ОК: 10.0.0.24: t = 1 Теперь транзистор, подключенный к PD7, должен быть включен, и если у вас есть реле подключенное к этому транзистору реле тоже должно быть включено. ./udpcom/unix/udpcom secret, t =? 10.0.0.24 II: данные: секрет, t = ?, ip: 10.0.0.24 порт: 1200 ОК: 10.0.0.24: t = 1 Здесь мы запрашиваем статус, и ответ «OK: 10.0.0.24: t = 1» указывает, что транзистор включен. ./udpcom/unix/udpcom секрет, t = 0 10.0.0.24 II: данные: секрет, t = 0, ip: 10.0.0.24 порт: 1200 ОК: 10.0.0.24: t = 0 Теперь транзистор, подключенный к PD7, должен снова выключиться.
Готовое устройство удаленного коммутатора Ethernet
Вот две фотографии с устройства, которое я построил.Вид спереди с открытой коробкой: вы можете увидеть два светодиода над Magjack. и 3 дополнительных. Зеленый цвет означает включение питания, красный цвет меняется при отправке пакета UDP. обработано, желтый цвет указывает на текущее состояние реле (включено или выключено). Разъемы на задней панели — это питание и выход реле. Под белый пластик На крышке слева изображена небольшая схема импульсного блока питания на 9 В.
Вид сверху с открытой коробкой: справа вы видите маленькую плату Ethernet с микроконтроллер.Слева (изолированы и не особо видны): реле и питание. поставлять. LM2937 крепится с помощью одного винта к серой алюминиевой передней панели. Боковины деревянные, а верх / низ коробки — пластик.
Структура программного обеспечения
Прежде чем мы посмотрим на программное обеспечение микроконтроллера мы должны изучить, как программирование сетевых сокетов работает в Linux. На стороне микроконтроллера мы можем (и должны) создавать каждый бит кадра Ethernet. Под Linux (или любой другой хорошей ОС) мы находимся в гораздо более цивилизованная среда, и мы не можем просто делать то, что хотим.У хоста есть один Ethernet-адрес (MAC-адрес) на каждый интерфейс и один или более IP-адресов на интерфейс. Эти MAC-адреса распространены по всему миру уникально, но это сделано для упрощения распределения оборудования. Они просто должны быть уникальными в вашей местной среде. То есть: ваши компьютеры, ваш (WIFI) маршрутизатор и маршрутизатор вашего интернет-провайдера должны иметь разные MAC-адреса.
Сетевые приложения на хосте различаются по номерам портов. Одновременно может быть активен только один номер порта.То есть: у вас не может быть два веб-сервера, работающие на порту 80 на одном хосте. Когда вы отправляете сообщение затем назначается номер локального (случайного) порта, и запрос отправляется на удаленный IP и хорошо известный номер порта (например, 80 = Интернет).
Если у вас есть процесс приложения, который прослушивает порт X локально на предмет подключений (сервер), то вы не можете запустить второе приложение, отправляющее на тот же порт. Однако одна и та же программа может отправлять и получать через один и тот же порт.
Номера портов ниже 1024 — это зарезервированные номера.Мы просто выбираем номер порта: 1200
Сетевой интерфейс ПК Устройство AVR Ethernet MAC1, IP1 src.port = 34256 -> MAC2, IP2 dest.port = 1200 Отвечать: MAC1, IP1 dest.port = 34256 <- MAC2, IP2 src.port = something (например, 1200)
UDP ненадежен ?? Это не совсем так. В локальной сети почти нет потери пакетов, если у вас нет проблем с аппаратной дуплексной конфигурацией, но это это другая проблема, и ее нужно исправить как можно скорее. Коэффициент потери пакетов на локальная незагруженная локальная сеть лучше, чем 10EE-9 или один из 100000000.При нормальных объемах домашнего трафика на Круглосуточная сеть Linux, что намного меньше одного пакета в месяц.
UDP находится в локальной сети очень надежно, и все это означает, что мы должны иметь возможность повторно отправить данные, не причиняя вреда. Мы не должны реализовывать «тумблер», а только одну команду для включения и одну для выключить. Если мы повторно отправим команду включения (потому что она была потеряна), результат будет все еще быть "включенным". Это все.
Сейчас я перечислю имена файлов исходного кода микроконтроллера AVR, чтобы вам было проще изменять и модифицировать вещи:
основной.c - здесь начинается все исполнение. Он запускает всю инициализацию и имеет также основной цикл. enc28j60.c, enc28j60.h - вещи, зависящие от оборудования enc28j60 net.h - сетевые константы, позиции байтов, заголовки ip_arp_udp.c, ip_arp_udp.h - функции стека IP, ARP, ICMP и UDP traffic.txt - полностью декодированные сообщения сообщения, взятые с сетевой анализатор. Так легче понять, что происходит в коде.
Фильтры
Как вы понимаете, проблема заключается в том, что Ethernet может обеспечить много больше данных, чем этот маленький микроконтроллер может обработать через последовательный SPI интерфейс, даже если этот интерфейс работает с частотой в несколько МГц.Eсть буфер в контроллере Ethernet, но он может заполниться легко с мусором в шумной сети Windows. Поэтому ENC28J60 имеет фильтры.Нам нужен трафик UDP с получателем нашего MAC-адреса. Кроме того, мы должны обработать пинг (пакеты IP / ICMP для нашего MAC-адреса). и пакеты ARP на наш MAC или для широковещательной рассылки. Нет IP сеть возможна без ARP. Все остальные пакеты, особенно широковещательные IP-пакеты, можно игнорировать. В ENC28J60 имеет ряд простых фильтров, которые мы будем использовать для этого.
Есть uni-cast фильтр (только пакеты с нашим MAC в качестве пункта назначения). Единственные другие пакеты, которые нам нужны, - это широковещательный ARP. Есть совпадение пакетов фильтр, и мы программируем его на адрес назначения MAC = FF: FF: FF: FF: FF: FF (широковещательный) и только тип содержимого Ethernet = ARP. Это делается во время инициализации в файл enc28j60.c.
Заключение
Это небольшое удаленное устройство Ethernet открывает совершенно новый мир фантастические приложения. Он маленький, его легко построить и есть бесконечное множество возможности его использования.Связь быстрая! Здесь нет задержка между отправкой команды и ответом. Это сильно отличается от RS232 со стандартной скоростью 9600 бод, что используется для большинства связь микроконтроллера.
Мне было очень интересно создать это оборудование и заставить его работать. На данный момент это простое приложение для включения / выключения, но схема все порты ввода-вывода уже готовы к большему.
Записка о ценной бумаге
Если вы планируете переключать основное питание (230 В или 120 В) с помощью реле, тогда приобретите хорошую термоусадочную трубку и изолируйте такие предметы, к которым нельзя прикасаться любые детали, несущие электросеть, даже если коробка открыта.Это экономия для вас и все оборудование в вашей сети.Скачать и ссылки
© Гвидо Сочер, tuxgraphics.org
3 августа 2008 г., создано tuxgrparser версии 2.55
Все о микроконтроллерах - код, схемы и конструкция
См. Также примечания Дэна О’Салливана о микроконтроллерах. Мои записи сильно заимствованы из записей Дэна.
Микроконтроллер - это небольшой недорогой компьютер, обычно используемый для считывания ввода из реального мира и управления устройствами на основе этого ввода.Большинство электронных устройств, которые вы используете сегодня, имеют микроконтроллер той или иной формы. Микроконтроллеры просты в использовании с простыми датчиками и устройствами вывода, и они также могут довольно просто взаимодействовать с настольными компьютерами. Когда вы создаете какую-либо форму настраиваемого датчика или устройства вывода, использование микроконтроллера - отличный способ отделить настраиваемую часть вашего проекта от той, которую лучше всего выполнять на настольном компьютере. Они также очень полезны, когда вы разрабатываете простое интерактивное устройство, которое не требует полной мощности настольного компьютера, но должно быть меньше или дешевле.
Как и любой другой компьютер, микроконтроллер должен иметь порты ввода для обнаружения действий пользователя и порты вывода, через которые он выражает результаты своих программ. Выводы, торчащие из микроконтроллеров, являются входами и выходами. К этим контактам прикреплены другие устройства, такие как датчики света, тепла или движения, двигатели, свет, наши звуковые устройства, чтобы микроконтроллер был чувствителен к окружающему миру и самовыражался.
Существует несколько различных уровней микроконтроллеров и микроконтроллерных систем.Некоторые из них представляют собой очень маленькие устройства размером с микросхему, к которым вам нужно подключать собственную электронику. Другие больше по размеру, состоят из нескольких компонентов и портов для ввода-вывода, готовых к подключению прямо к другим устройствам.
Микроконтроллеры более высокого уровня будут иметь простой аппаратный интерфейс для других устройств (обычно вилку или пару проводов) и более простой язык программирования, если вообще будет. Они также обычно будут самыми дорогими из микроконтроллеров, потому что кто-то другой сделал эту работу за вас.Для работы контроллеры более высокого уровня должны быть подключены к персональному компьютеру через последовательный порт или USB. Для микроконтроллеров более низкого уровня потребуется больше работы, как с точки зрения аппаратных соединений (вам придется создавать свои собственные схемы, чтобы связывать их с другими устройствами), и с точки зрения программирования (вам нужно будет использовать язык программирования более низкого уровня, такой как C или ассемблер). Однако процессоры более низкого уровня, как правило, дешевле и гибче с точки зрения того, что вы можете заставить их делать.
Некоторые типичные примеры микроконтроллеров разного уровня:
Высокий уровень: Гейнер
контроллер гейнераЧто это такое: модуль интерфейса микроконтроллера, который позволяет создавать собственные схемы интерфейса датчика и исполнительного механизма и управлять ими из обычной среды программирования мультимедиа.
Язык программирования: ActionScript, Max / MSP, Processing. Сами модули предварительно запрограммированы и используют последовательный протокол с открытым исходным кодом. К ним можно обратиться через серию интерфейсов прикладного программирования (API) для разных языков программирования.
Аппаратный интерфейс: USB
Стоимость: Стартовые комплекты варьируются от 130 долларов за базовый интерфейсный комплект до 530 долларов за заводские
Высокий уровень: Phidgets
Контроллер PhidgetЧто это такое: серия интерфейсных модулей, которые позволяют пользователю подключать датчики, двигатели, свет, MIDI-устройства и многое другое с минимальной работой электроники или без нее.
Язык программирования: C / C ++, Java, ActionScript и т. Д. Сами модули предварительно запрограммированы и используют собственный последовательный протокол USB. К ним можно обратиться через серию интерфейсов прикладного программирования (API) для разных языков программирования.
Аппаратный интерфейс: USB
Стоимость: Стартовые комплекты варьируются от 130 долларов за базовый интерфейсный комплект до 530 долларов за заводские
Микроконтроллеры среднего уровня обычно программируются путем подключения последовательного кабеля от ПК, на котором записан код, к самому микроконтроллеру.Кроме того, дополнительное оборудование не требуется.
Разнообразные модули среднего уровня и микроконтроллеры низкого уровня.
Средний уровень: проводка и Arduino
Модуль ArduinoЧто это: электронный модуль с микроконтроллером, блок питания, интерфейс USB-to-serial, контакты интерфейса ввода / вывода
Язык программирования: Wiring, более простой вариант языка C, очень похожий на Processing.
Аппаратный интерфейс: простой интерфейс цифровых и аналоговых цепей с выводами ввода / вывода.
Стоимость: Электромонтаж: 80,00 $. Arduino: 30 долларов США. Оба могут быть получены от Sparkfun в США.
Как и другие микроконтроллеры среднего уровня, Wiring и Arduino подключаются напрямую к компьютеру для программирования. Однако, в отличие от других, у них есть встроенный USB-последовательный интерфейс, поэтому они подключаются прямо к вашему USB-порту. Кроме того, дополнительное оборудование не требуется.
Как программное обеспечение, так и оборудование для Wiring и Arduno имеют открытый исходный код, а планы доступны в Интернете.Так что, если вам нравится работать на низком уровне, вы можете использовать их как мост, чтобы добраться туда. Оба они основаны на семействе микроконтроллеров Atmel.
Существует несколько вариаций Arduino, некоторые из которых созданы исходной командой, а некоторые - другими производителями. Различный дизайн отражает множество различных вариантов применения или личные вкусы производителя. Список нескольких вариаций Arduino можно найти на сайте Arduino.
Средний уровень: модуль микроконтроллера NetMedia BX-24
Модуль BX-24Что это: электронный модуль с микроконтроллером, блок питания, последовательный интерфейс, память, контакты интерфейса ввода / вывода
Язык программирования: BX BASIC, очень близок к Visual Basic.
Аппаратный интерфейс: простой интерфейс цифровых и аналоговых цепей с выводами ввода / вывода.
Стоимость: 50,00 $
Микроконтроллеры нижнего уровня не имеют некоторых основных схем модулей среднего уровня. Обратите внимание, например, что на PIC выше отсутствует тактовый кристалл, который есть у BX-24 выше (длинная трубка в нижней части BX-24). Точно так же отсутствуют некоторые другие микросхемы, такие как стабилизатор напряжения, внешняя память EEPROM и буфер последовательного порта.При необходимости они должны быть добавлены пользователем.
Микроконтроллеры нижнего уровня обычно требуют внешнего аппаратного программатора для программирования. Обычно программатор подключается к ПК через последовательный, параллельный или USB-кабель, а микроконтроллер помещается в программатор для его перепрограммирования. У некоторых программистов есть кабели, позволяющие им подключаться к схеме, в которую встроен микроконтроллер, для его перепрограммирования. Это называется внутрисхемное программирование .
Низкий уровень: микроконтроллер AVR Atmel
Что это: Микроконтроллер Микросхема
Язык программирования: Ассемблер, C, BASIC, Wiring
Аппаратный интерфейс : для работы требуется программатор для создания схемы питания и синхронизации; после этого схемы ввода / вывода аналогичны BX-24 и другим схемам среднего и нижнего уровня.
Стоимость: 1–15 долларов в зависимости от модели.
Контроллеры Atmel - это контроллеры, лежащие в основе модулей Wiring, Arduino и BX-24.Â В семействе AVR есть множество контроллеров с различными функциями.  Некоторые из них имеют больше контактов ввода-вывода, некоторые имеют больше памяти, некоторые могут разговаривать по USB изначально и т. Д. Существует хороший компилятор C с открытым исходным кодом для Микросхемы AVR, AVR-GCC. Это основа для сред разработки Wiring и Arduino, доступная в Windows, OSX и Linux. Objective Development имеет хороший пакет AVR-GCC для пользователей OSX.
Низкий уровень: микроконтроллер Microchip PICMicro
Что это: Микроконтроллер Микросхема
Язык программирования: Ассемблер, C, BASIC
Аппаратный интерфейс : для работы требуется программатор для создания схемы питания и синхронизации; после этого схемы ввода / вывода аналогичны BX-24 и другим схемам среднего и нижнего уровня.
Стоимость: 1–15 долларов в зависимости от модели.
На что следует обратить внимание при выборе микроконтроллера:
Затраты
Сколько я хочу потратить? Чем выше уровень, тем выше стоимость. Но если это сократит время между настройкой и самовыражением, возможно, стоит потратить дополнительные деньги.
Время
Сколько работы я хочу делать? контроллер более высокого уровня обычно минимизирует объем работы, которую вы выполняете для создания интерфейса с миром.Контроллеры нижнего уровня потребуют больше работы, прежде чем у вас все заработает.
Какие языки программирования / протоколы связи / электронику я уже знаю? При прочих равных выберите систему, о компонентах которой вы что-то знаете.
На что похожа база знаний? У большинства микроконтроллеров есть несколько веб-сайтов и списков, посвященных их использованию и программированию. Довольно часто ссылки на лучшие из них размещаются прямо на сайте производителя или дистрибьютора.Ознакомьтесь с ними, посмотрите примеры кода и заметки по применению. Прочтите несколько обсуждений. Поищите в Интернете нужную среду микроконтроллера. Доступен ли большой объем собранных знаний в той форме, которую вы понимаете? Это важный фактор, который следует учитывать. Иногда конкретный процессор может показаться лучшим в мире, но если никто, кроме вас, его не использует, вам будет намного труднее научиться.
Расширяемость / совместимость
С какими еще компонентами совместим микроконтроллер? Можете ли вы добавить модули к своему микроконтроллеру? Например, совместимы ли с ним их контроллеры двигателей? Контроллеры дисплея? Датчики или сенсорные модули? Часто эти модули дороги, но они просто встают на место без каких-либо специальных схем.Если ваше время дорого стоит, то эти модули - хорошая покупка. Иногда, даже если вы знаете, как построить систему с контроллером более низкого уровня, система более высокого уровня стоит своих затрат, поскольку экономит время на строительство и обслуживание.
К чему мне нужно подключиться? Вы подключаетесь к MIDI-синтезатору? Плата освещения DMX-512? Настольный компьютер? Телефонная система? Интернет? У разных микроконтроллеров будут разные возможности интерфейса. Убедитесь, что вы можете соединить все вместе.Иногда для этого требуются некоторые творческие комбинации контроллеров, если ни один контроллер не может разговаривать со всеми устройствами, с которыми вы хотите, чтобы он разговаривал.
Физические и электрические характеристики
Сколько входов / выходов мне нужно? Каждая система имеет определенное количество входов и выходов. Если можете, решите, сколько вещей вы хотите ощущать или контролировать, прежде чем выбирать контроллер.
Какие типы входов и выходов мне нужны? Вам нужны аналоговые входы и выходы для определения изменяющихся значений или вам нужны только цифровые входы и выходы, чтобы определять, включено или выключено что-то?
Какая мощность мне доступна? Требуется ли питание от аккумулятора? Должно ли оно соответствовать напряжению другого устройства? Должен ли он потреблять очень небольшую силу тока?
Как быстро мне нужно обрабатывать данные? Процессоры более низкого уровня обычно обеспечивают большую скорость.
Сколько памяти мне нужно? Если вы планируете сложную обработку или регистрацию данных, вам может потребоваться микропроцессор с большим объемом памяти или возможностью взаимодействия с внешней памятью.
Насколько он должен быть маленьким? Контроллер нижнего уровня обычно позволяет создавать собственные схемы, что позволяет уменьшить размер необходимого оборудования.
Экономика разработки микроконтроллеров
Один из первых вопросов, который обычно задают люди, когда они узнают, что контроллеры низкого и среднего уровня могут выполнять многие из одних и тех же вещей, - почему разница в стоимости? Почему BX-24 или Basic Stamp стоит 50 долларов и выше, а PIC или SX micro - менее 10 долларов? Кроме того, почему программное обеспечение для разработки контроллеров среднего уровня является бесплатным, а программное обеспечение для контроллеров низкого уровня - нет? Ответ, как и следовало ожидать, заключается в целях людей, которые их продают.
Компании, которые производят модули микроконтроллеров среднего уровня (NetMedia для BX-24, Parallax для Basic Stamp, Basic Micro для Basic Atomm), занимаются аппаратным бизнесом. Они зарабатывают деньги, продавая вам модули. Обычно они обслуживают клиентов с небольшими объемами продаж, которые покупают иногда один, иногда дюжину, но редко более сотни модулей за раз. Чтобы этот клиент продолжал возвращаться, они также разрабатывают проприетарные среды разработки, чтобы вы не могли перепрограммировать их модули с помощью программного обеспечения другого парня.Однако, чтобы вы не расстраивались по этому поводу, они раздают его бесплатно. Они убеждены, что уникальное сочетание микроконтроллера, вспомогательных схем и среды разработки, которое они предлагают, является лучшим способом использования микроконтроллеров и стоит очень дорого. Для новичков они часто оказываются правы.
Движение за оборудование с открытым исходным кодом вносит некоторые интересные изменения в эту модель с помощью таких проектов, как Gainer, Wiring, Arduino и других. Производители оборудования с открытым исходным кодом признают ценность сред программирования среднего и высокого уровня для контроллеров более низкого уровня, а также желание некоторых пользователей перейти на низкий уровень, когда они поймут больше, чем основы.Они также видят ценность совместной работы нескольких групп над совместимыми системами. Хотя компании, производящие эти модули, конкурируют друг с другом за клиентов, они также сотрудничают, чтобы улучшить свое оборудование и программное обеспечение. Иногда это может быть трудным сотрудничеством, но в конечном итоге в результате все инструменты становятся лучше. .
Инструменты среднего уровня с открытым исходным кодом являются многообещающими, поскольку они сочетают в себе лучшее из обоих миров. Они позволяют вам учиться на среднем или высоком уровне, а затем, когда вы знаете, что делаете, вы можете взять низкоуровневую внутренность устройства (контроллер Atmel в случае этих двух инструментов) и получить экономическую выгоду. рабочего низкого уровня.Подобные гибридные проекты с открытым исходным кодом постоянно появляются в сети. Некоторые из них были представлены на семинаре «Создание эскизов в оборудовании» в 2006 году, и ссылки на ресурсы были собраны в Интернете по этой ссылке, если вы хотите узнать больше.
С другой стороны, компании, производящие контроллеры низкого уровня (Microchip, Atmel, Ubicom), привыкли продавать очень большие объемы. Они продают контроллеры крупным производителям, которые используют их в автомобилях, игрушках, выключателях, микроволновых печах и т. Д.Их клиентам необходимо сократить все лишние расходы, чтобы получить прибыль от конечного продукта. Эти заказчики готовы обучать инженеров низкоуровневому программированию, разрабатывать собственные программные инструменты и т. Д., Чтобы получить недорогой чип большого объема. Фактически, процессоры низкого уровня - это сердце процессоров среднего уровня. Обратите внимание на большую фишку на Basic Stamp 2; это ПОС. Производители на низком уровне не тратят много времени на создание сред разработки, поэтому они могут специализироваться на создании широкого спектра хороших микросхем.Фактически, они привыкли работать с такими большими объемами, что несколько фишек более или менее не имеют большого значения. Большинство из них даже предлагают ограниченное количество бесплатных образцов на своих веб-сайтах для потенциальных клиентов.
Так что, если вы новичок или маленький парень, который хочет использовать чипы низкого уровня? У вас, вероятно, нет времени или опыта, чтобы разработать для него собственный компилятор, и вам лучше не использовать ассемблер контроллера, если вы можете этого избежать. Здесь на помощь приходят сторонние разработчики программного обеспечения.Такие компании, как CCS, Microengineering Labs, Crownhilll, Hi-Tech и другие, создают и продают настраиваемые среды разработки более высокого уровня для контроллеров низкого уровня. Они занимаются программным бизнесом. Поскольку маржа прибыли от контроллеров низкого уровня уже настолько низка, они предпочитают не разрабатывать дополнительное оборудование для продажи вам оборудования премиум-класса, а вместо этого создают действительно хорошие программные инструменты, чтобы вам было легко программировать контроллеры низкого уровня. Многие из них также делают специальных программаторов для аппаратного обеспечения, что также упрощает работу с аппаратным обеспечением.
Итак, что же это даст вам, любителю или новичку в микроконтроллерах? Что выбрать?
Использование микроконтроллеров среднего уровня обойдется вам относительно недорого с точки зрения периферийных устройств. Программное обеспечение бесплатное, а последовательный кабель стоит около 5 долларов. Различные компоненты, которые вам понадобятся для создания типичного проекта, обойдутся вам, возможно, от 50 до 75 долларов. Микроконтроллер обойдется вам еще в 50 долларов. Если вы разбираетесь в схеме и достаточно уверены, что не повредите свой микроконтроллер, это неплохой вариант.Вы всегда можете сохранить проект в неизменном виде и повторно использовать микроконтроллер для других проектов. Вы сэкономите время, не узнавая, как работает аппаратный программист, какой компилятор выбрать или как его настраивать. Для новичка, ищущего немедленного удовлетворения, средний уровень - это путь.
Единственным недостатком является то, что если вы хотите построить еще много проектов, вы каждый раз получаете эти 50 долларов сверх затрат на любой другой проект. А если вы повредите микроконтроллер, еще 50 долларов.И еще, и еще, пока вы не научитесь быть осторожными со своими схемами.
С другой стороны, использование контроллеров нижнего уровня вызывает больше затруднений. Вам нужно выбрать среду разработки и заплатить за нее, выбрать программиста аппаратного обеспечения и заплатить за него и научиться настраивать все необходимое. На приличный компилятор и приличного, но дешевого программиста вы, вероятно, выложите около 300 долларов. На раннем этапе вы потратите много времени на проклятия и пожелания, чтобы вы купили Basic Stamp 2 или BX-24.Преимущество приходит немного позже, когда все настроено и вы начинаете делать проекты. Во-первых, если вы зажарите чип, у вас будет всего несколько долларов на его замену. Чем дольше вы продолжаете заниматься проектами микроконтроллеров, тем лучше. Вам не нужно тратить больше денег на среду разработки, а микросхемы дешевы. Если вы можете немного поработать ради удовольствия и вам предстоит долгий путь, это хороший способ.
Все, что вам нужно знать- (Часть 1/46)
Микроконтроллер: Микроконтроллер можно назвать однокристальным компьютером, который включает ряд периферийных устройств, таких как RAM, EEPROM, таймеры и т. Д., требуется для выполнения некоторой предопределенной задачи.
Рис. 1: Блок-схема, показывающая архитектуру микроконтроллера AVR
]]> Означает ли это, что микроконтроллер - это другое название компьютера…? Ответ - нет! Компьютер, с одной стороны, предназначен для выполнения всех задач общего назначения на одной машине, например, вы можете использовать компьютер для запуска программного обеспечения для выполнения вычислений, или вы можете использовать компьютер для хранения какого-либо мультимедийного файла или для доступа в Интернет через браузер, тогда как микроконтроллеры предназначены для выполнения только определенных задач, например, e.g., автоматическое выключение кондиционера, когда температура в помещении упадет до определенного предела, и повторное включение, когда температура поднимется выше определенного предела. Существует ряд популярных семейств микроконтроллеров, которые используются в различных приложениях в зависимости от их возможностей и возможностей для выполнения желаемой задачи, наиболее распространенными из них являются микроконтроллеры 8051, , AVR, и PIC. В этой статье мы познакомим вас с семейством микроконтроллеров AVR .История АРН
AVR был разработан в 1996 году корпорацией Atmel. Архитектура AVR была разработана Альф-Эгилем Богеном и Вегардом Волланом. AVR получил свое название от своих разработчиков и означает A lf-Egil Bogen V egard Wollan R ISC микроконтроллер , также известный как A dvanced V irtual R . AT90S8515 был первым микроконтроллером, который был основан на архитектуре AVR , однако первым микроконтроллером, появившимся на коммерческом рынке, стал AT90S1200 в 1997 году.
Микроконтроллеры AVR доступны в трех категориях:
1. TinyAVR - Меньше памяти, небольшой размер, подходит только для более простых приложений
2. MegaAVR - это самые популярные из них, имеющие хороший объем памяти (до 256 КБ), большее количество встроенных периферийных устройств и подходящие для умеренных и сложных приложений.
3. XmegaAVR - Используется в коммерческих целях для сложных приложений, требующих большой памяти программ и высокой скорости.
В следующей таблице сравниваются микроконтроллеры упомянутой выше серии AVR:
Название серии | Штифты | Флэш-память | Специальная функция |
TinyAVR | 6-32 | 0,5-8 КБ | Маленький |
MegaAVR | 28-100 | 4-256 КБ | Расширенная периферия |
XmegaAVR | 44-100 | 16-384КБ | DMA, система событий включена |
Важность AVR
Что особенного в AVR?
Они быстрые: Микроконтроллер AVR выполняет большинство инструкций за один цикл выполнения.AVR примерно в 4 раза быстрее, чем PIC, они потребляют меньше энергии и могут работать в различных режимах энергосбережения. Давайте сравним три наиболее часто используемых семейства микроконтроллеров.
8051 | ПИК | АРН | |
СКОРОСТЬ | Медленная | Умеренная | Быстро |
ПАМЯТЬ | Малый | Большой | Большой |
АРХИТЕКТУРА | CISC | RISC | RISC |
АЦП | Отсутствует | встроенный | встроенный |
Таймеры | встроенный | встроенный | встроенный |
Каналы ШИМ | Отсутствует | встроенный | встроенный |
Давайте посмотрим, что все это значит. Что такое 8 бит? Это означает, что микроконтроллер может передавать и принимать 8-битные данные.Доступные регистры ввода / вывода 8-битные. Контроллеры семейства AVR имеют архитектуру на основе регистров, что означает, что оба операнда для операции хранятся в регистре, а результат операции также сохраняется в регистре. На следующем рисунке показан простой пример выполнения операции ИЛИ между двумя входными регистрами и сохранения значения в выходном регистре.
Рис. 2: Блок-схема, показывающая простой пример выполнения операции ИЛИ между двумя входными регистрами и сохранения значения в выходном регистре
]]>CPU принимает значения из двух входных регистров INPUT-1 и INPUT-2, выполняет логическую операцию и сохраняет значение в регистре OUTPUT.Все это происходит за 1 цикл выполнения.
В нашем путешествии с AVR мы будем работать над микроконтроллером Atmega16, который представляет собой 40-контактную ИС и принадлежит к категории megaAVR семейства AVR. Некоторые особенности Atmega16:
· 16 КБ флэш-памяти
· 1 КБ SRAM
· 512 байт EEPROM
· Доступен в 40-контактном корпусе DIP
· 8-канальный 10-разрядный АЦП
· Два 8-битных таймера / счетчика
· Один 16-битный таймер / счетчик
· 4 канала ШИМ
· Системный программист (ISP)
· Последовательный USART
· Интерфейс SPI
· Цифро-аналоговый компаратор.
Архитектура AVR
Микроконтроллеры AVR основаны на усовершенствованной архитектуре RISC и состоят из 32 x 8-битных рабочих регистров общего назначения. В течение одного такта AVR может принимать входные данные из двух регистров общего назначения и помещать их в ALU для выполнения запрошенной операции и передавать результат обратно в произвольный регистр. ALU может выполнять как арифметические, так и логические операции
по входам из регистра или между регистром и константой.Операции с одним регистром, такие как взятие дополнения, также могут выполняться в ALU. Мы видим, что AVR не имеет регистра, как аккумулятор, как в семействе микроконтроллеров 8051; операции могут выполняться между любыми регистрами и могут храниться в любом из них.
AVR следует формату Гарвардской архитектуры, в котором процессор оснащен отдельной памятью и шинами для информации о Программе и данных. Здесь, когда инструкция выполняется, следующая инструкция предварительно выбирается из памяти программ.
Рис. 3: Блок-схема архитектуры памяти в AVR
]]>Поскольку AVR может выполнять выполнение за один цикл, это означает, что AVR может выполнять 1 миллион инструкций в секунду, если частота цикла составляет 1 МГц. Чем выше рабочая частота контроллера, тем выше будет скорость его обработки. Нам необходимо оптимизировать энергопотребление со скоростью обработки и, следовательно, необходимо соответствующим образом выбрать рабочую частоту.
Существует две разновидности микроконтроллера Atmega16:
1. Atmega16 : - Диапазон рабочих частот 0 - 16 МГц.
2. Atmega16L : - Диапазон рабочих частот 0-8 МГц.
Если мы используем кристалл 8 МГц = 8 x 10 6 Гц = 8 миллионов циклов, тогда AVR может выполнить 8 миллионов инструкций.
Соглашение об именах.!
AT обозначает производителя Atmel, Mega означает, что микроконтроллер принадлежит к категории MegaAVR, 16 обозначает память контроллера, которая составляет 16 КБ.
Рис. 4: Соглашение об именах микроконтроллера AVR
]]> Архитектурная схема: Atmega16Следующие пункты объясняют строительные блоки архитектуры Atmega16 :
· Порты ввода-вывода : Atmega16 имеет четыре (PORTA, PORTB, PORTC и PORTD) 8-битных портов ввода-вывода .
· Внутренний калиброванный генератор : Atmega16 оснащен внутренним генератором для управления часами.По умолчанию Atmega16 настроен на работу с внутренним откалиброванным генератором с частотой 1 МГц. Максимальная частота внутреннего генератора 8 МГц. В качестве альтернативы ATmega16 может работать с внешним кварцевым генератором с максимальной частотой 16 МГц. В этом случае вам необходимо изменить биты предохранителей. (Биты-предохранители будут объяснены в отдельном руководстве).
· Рис. 5: Блок-схема , поясняющая архитектуру AVR
]]>
Интерфейс АЦП : Atmega16 оснащен 8-канальным АЦП (аналого-цифровой преобразователь , ) с разрешением 10 бит.АЦП считывает аналоговый вход, например, вход датчика, и преобразует его в цифровую информацию, понятную микроконтроллеру.· Таймеры / счетчики : Atmega16 состоит из двух 8-битных и одного 16-битного таймера / счетчика. Таймеры полезны для создания точных действий, например, для создания временных задержек между двумя операциями.
· Сторожевой таймер : Сторожевой таймер присутствует с внутренним генератором.Сторожевой таймер непрерывно отслеживает и сбрасывает контроллер, если код застревает при выполнении любого действия дольше определенного интервала времени. · Прерывания : Atmega16 состоит из 21 источника прерываний, четыре из которых являются внешними. Остальные - это внутренние прерывания, которые поддерживают периферийные устройства, такие как USART, ADC, таймеры и т. Д. · USART : Универсальный синхронный и асинхронный интерфейс приемника и передатчика доступен для взаимодействия с внешним устройством, способным к последовательной связи (побитовая передача данных).·
Архитектура Продолжение
Регистры общего назначения : Atmega16 оснащена 32 регистрами общего назначения, которые напрямую связаны с арифметико-логическим блоком (ALU) ЦП.
· Память : Atmega16 состоит из трех различных разделов памяти:
1. Flash EEPROM : Flash EEPROM или простая флэш-память используется для хранения программы, выгруженной или записанной пользователем на микроконтроллер.Его можно легко стереть электрически как единое целое. Флэш-память энергонезависима, т. Е. Сохраняет программу даже при отключении питания. Atmega16 доступен с 16 КБ встроенной программируемой Flash EEPROM.
2. Байт-адресуемая EEPROM : Это также энергонезависимая память, используемая для хранения данных, таких как значения определенных переменных. Atmega16 имеет 512 байт EEPROM, эта память может быть полезна для хранения кода блокировки, если мы разрабатываем такое приложение, как электронный дверной замок.
3. SRAM : Статическая память с произвольным доступом, это энергозависимая память микроконтроллера, т.е. данные теряются при отключении питания. Atmega16 имеет 1 КБ внутренней SRAM. Небольшая часть SRAM предназначена для регистров общего назначения, используемых ЦП, а часть - для периферийных подсистем микроконтроллера.
· ISP : Семейство контроллеров AVR имеет Программируемую в системе флэш-память , которая может быть запрограммирована без удаления ИС из схемы, ISP позволяет перепрограммировать контроллер, пока он находится в схеме приложения.
· SPI : Последовательный периферийный интерфейс , порт SPI используется для последовательной связи между двумя устройствами на общем источнике синхронизации. Скорость передачи данных SPI больше, чем у USART.
· TWI : двухпроводной интерфейс (TWI) может использоваться для создания сети устройств, многие устройства могут быть подключены через интерфейс TWI, образуя сеть, устройства могут одновременно передавать и принимать и иметь свои собственные уникальный адрес.
· ЦАП : Atmega16 также оснащен интерфейсом цифро-аналогового преобразователя (ЦАП), который может использоваться для обратного действия, выполняемого АЦП. ЦАП можно использовать, когда необходимо преобразовать цифровой сигнал в аналоговый.
Семейство MegaAVR
Различные микроконтроллеры серии MegaAVR:
ATmega8 и Atmega32 являются другими членами контроллеров серии MegaAVR.По архитектуре они очень похожи на ATmega16. Контроллеры MegaAVR с низким энергопотреблением также доступны на рынках. В следующей таблице показано сравнение между различными членами семейства MegaAVR: