Почему бы я не рекомендовал Atmel или о непонимании успеха Arduino / Хабр
Хочу немного поделиться негативным опытом использования микроконтроллеров Atmel в промышленной разработке.
Atmel как целевую платформу выбрал заказчик, хотя мы его и отговаривали (еще даже не зная, что нам предстоит — интуиция, что ли?). Ну что же, «заказчик всегда прав».
В продукте было два контроллера — 32-битный UC3A3 и 8-битный ATMega164. В качестве дебаггера выбрали AVR One!, в качестве среды разработки — AVR Studio 5.0 (последняя версия на момент старта).
И началось!
У двух из трех купленных AVR One! в течении первого же месяца отвалились JTAG-коннекторы. У одного из них пропадал контакт питания. Каждый дебаггер, к слову, стоит около 600 евро!
При первом подключении дебаггера к компу с установленной AVR Studio 5.0 последняя захотела обновить ему прошивку. И не просто захотела, а отказывалась работать без этого. Процедура обновления прошивки благополучно зациклилась в «обновление — ожидание готовности устройства — обновление завершено неуспешно — обновление…», произвести ее удалось только после долгих танцев с бубнами.
На начальной стадии работа ведется на Evaluation платах. Были такие и у Атмела. Вот только на «готовых» эвалкитах к большинству пинов процессора банально не было доступа! А универсальный пакет STK600, позволяющий «воткнуть» в него практически любой контроллер при помощи переходника (решение реально супер, если бы не одно но), имел маленький недостаток — его схема была недоступна ни в открытом доступе, ни за деньги! Блин, вот реально — тулкит, предназначенный для экспериментов с платформой, поставлялся без схемы! И схема его охранялась очень и очень тщательно, судя по многочисленным веткам на AVR freaks. Поскольку мы не могли представить себе, как же можно работать без наличия схемы, мы разумно отказались от покупки этого тулкита (который ни разу не дешевый, к слову!).
Еще веселее стало, когда приступили собственно к написанию и отладке кода.
Самым веселым оказалось то, что пошаговая отладка оказалась в принципе невозможной. Дело в том, что поставив где-нибудь в коде брейкпоинт, дождавшись остановки программы в этом месте и выполнив «шаг вперед», ты оказывался… в обработчике прерывания! (Естественно, в прерывании при этом никаких брейкпоинтов не было!). А поскольку прерывания в системе были всегда (таймеры и т.п.), процесс отладки выглядел следующим образом: приходилось ставить следующий брейкпоинт на следующей строке и нажимать Run вместо Step Over. Особенно весело это было, когда надо было отследить if или switch. Или же выполнить Step Into, а не Step Over…
Вторым радостным моментом оказалось то, что когда ты останавливался в прерывании, ты не видел стека вызовов. Особенно радовало, когда этим прерыванием было исключение процессора. На предыдущем проекте на контроллере от Freescale в аналогичной ситуации ты отлично видел весь стек вызовов — в каком месте произошло исключение процессора и что к нему привело. Здесь же все, что ты видел — это то, что исключение произошло. А где и почему — оставалось только догадываться.
Третьим радостным моментом оказалось, например, вот что: код
int a[4];
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 4;
категорически отказывался работать на ATMega! Элемент a[1] после этого кода оставался равным 0!
И особенно порадовал ответ техподдержки Atmel «Да, данный процессор имеет указанную проблему, попробуйте заменить его на другой!». Ага, а ничего, что уже как бы плата с ним произведена? Следующим ответом техподдержки было «Попробуйте заменить в AVR Studio родной AVR toolchain на open source WinAVR. Это, как ни странно, помогло, массив стал инициализироваться как надо. Правда, заголовочные файлы этого toolchain представляли из себя местами кашу, и часть заголовков пришлось брать от „родного“…
Плюс вся система работала крайне нестабильно. Дебаггер мог просто перестать видеть контроллер. Студия могла перестать видеть дебаггер. Или перестать запускать код на выполнение.
К счастью, на AVR freaks часть проблем была описана и решения найдены. Например, вместо 600-евровых AVR One! были куплены 50-евровые AVR Dragon, работающие гораздо стабильнее — с ними разработка стала в принципе возможной. (Из серии „Зачем, блин, платить больше?“).
И пришлось перейти с AVR Studio 5.0 на более старую AVRStudio32, поскольку первая была настолько глючно-сырой, что работать в ней было невозможно. Интерфейс, конечно, у пятой студии был удобным, ничего не скажешь, но когда удобная в использовании среда банально не работает — удобство оказывается бессмысленным, увы.
AVRStudio32 c точки зрения интерфейса оказалась очень специфической штукой. То ли Eclipse-based сыграло свою роль, то ли Atmel внес свою лепту… Приведу лишь один пример.
Нам понадобилось изменить точку запуска, которая по умолчанию выставлена в среде разработки на начало flash контроллера. В AVRStudio32 за это отвечает так называемая „конфигурация запуска“ (найти которую, кстати, отнюдь не очевидная задача). Так мало того, что параметры конфигурации запуска не сохраняются в проекте (а это означает, что изменения должен был вносить каждый разработчик „ручками“ и их нельзя было коммитить в репозиторий), так кроме этого студия могла в какой-то из моментов по своему желанию создать новую конфигурацию, с параметрами по умолчанию, сделав ее текущей. Нет, когда это все уже знаешь, то исправить это не вопрос. Но вот когда не знаешь, а выглядит все так, что после очередного изменения вдруг все перестало работать, то становится очень даже невесело…
То, что примерно за год разработки дебаггеры банально три или четыра раза выходили из строя, уже было просто досадной мелочью.
Еще одной такой досадной мелочью был прикол с тем, что Atmel называет Fuses — специальные биты, управляющие поведением микроконтроллера, доступные при помощи специальных команд. Неосторожное движение или ошибка — и процессор оказывался непригодным к дальнейшему использованию без очень сложных телодвижений. Можно было, например, переключить его с использования внутренней тактовой частоты на внешнюю. Поскольку внешней, конечно же, в наличии не было, процессор переставал работать. Вернуть этот бит без подачи внешней синхронизации было невозможно в принципе. А еще можно было, например, „выключить“ JTAG — после чего к контроллеру невозможно было подключиться дебаггером.
Вполне естественно, что во время разработки возникают ошибки. Но когда такая ошибка приводит к остановке процесса на непонятно сколько времени — мягко говоря, совсем невесело.
Одна из последних проблем оказалась не менее веселой — по какой-то из причин микроконтроллеры один за одним переставали работать, и дебаггеры тоже переставали их видеть. Времени на анализ было потрачено прилично, оказалось же вот что.
Немного доп. информации: каждый контроллер от Atmel имеет так называемый Device Code, однозначно идентифицирующий семейство. Есть спец. команда, чтобы этот код прочитать. Дебаггер и студия как раз его и используют для идентификации того, что подключено. По идее, значение это read only, и нигде в спецификации не указано обратное. Оказалось, что это не так.
Цитата из Errata:
Signature may be Erased in Serial Programming Mode
If the signature bytes are read before a chiperase command is completed, the signature may be erased causing the device ID and calibration bytes to disappear. This is critical, especially, if the part is running on internal RC oscillator.
Особенно же впечатлило решение проблемы:
Problem Fix / Workaround:
Ensure that the chiperase command has exceeded before applying the next command.
То есть, если Device ID уже оказался стертым, записать его назад возможности не предоставляется. Хуже всего то, что вместе с ним стирается еще и калибровка внутренней частоты, которая также невосстановима, насколько я понял из доступной информации.
Должен сказать, что после команды Chip Erase в коде стояла задержка в два раза больше, чем того требовала спецификация. Однако Device ID волшебным образом стирался по непонятной причине…
Что же, негативный опыт — тоже опыт. Вряд ли я по доброй воле выберу теперь Atmel для чего-либо.
А что касается Arduino — понятно, конечно, что те, кто решает с ней поиграться, с большинством проблем банально не столкнутся, но — после всего описанного выше я все же не понимаю столь высокой ее популярности.
И кстати, выбор заказчиком платформы, похоже, как раз и был обусловлен популярностью Ардуино…
UPD: Вот, кстати, из последних глюков: на ATMega164 есть три группы фьюзов: fuse, fuse_high, fuse_ext. Так вот, по неизвестной причине изменить fuse_high не получается. При этом изменить fuse — получается, и что самое интересное — после любого изменения fuse (даже ничего не значащего, например, включение-выключение вывода тактовой частоты наружу на пин, который висит в воздухе) начинает работать и изменение fuse_ext.
Семейство микроконтроллеров AVR со сверхнизким энергопотреблением picoPower
Платформа AVR остается популярной уже многие годы благодаря постоянному совершенствованию технологии, появлению новых версий микроконтроллеров и активному развитию отладочных средств. Одним из направлений современного развития AVR-контроллеров является разработка микросхем со сверхнизким энергопотреблением.
В 2006 году компания Atmel представила новое семейство экономичных AVR-контроллеров. Семейство получило обозначение picoPower. Контроллеры этого семейства способны длительное время работать от батарейного источника питания в таких приложениях, как приборы с ЖКИ, управление освещением, системы безопасности, бытовая автоматизация, ZigBee-решения. Новые AVR-микроконтроллеры являются обновленной версией популярных микроконтроллеров серий ATmega. В обозначении этих микросхем появится суффикс «P». Новые микросхемы являются совместимыми функционально и pin-to-pin с микросхемами ATmega без суффикса «P». Первыми микроконтроллерами этой серии стали ATmega169P с 4×25-сегментным контроллером ЖКИ и ATmega165P — микроконтроллер общего применения. До конца 2007 года планируется расширение серии picoPower.
Характеристики микроконтроллеров этой серии приведены в таблице 1.
Таблица 1. Характеристики микроконтроллеров серии picoPower
Микросхемы, выполненные по технологии picoPower, обладают рядом преимуществ, которые позволяют экономить расходуемую энергию в активном и энергосберегающем режимах:
- напряжение питания от 1,8 В;
- минимизированный ток утечки;
- автоматически отключаемый модуль слежения за уровнем напряжения питания;
- часовой кварцевый генератор 32 768 Гц с повышенной экономичностью;
- сниженная потребляемая мощность модуля Flash-памяти;
- отключение цифровых портов ввода/вывода в аналоговом режиме;
- интеллектуальное управление потребляемой мощностью;
- расширенные возможности по управлению тактированием периферийных модулей.
Ниже более подробно рассмотрены особенности нового семейства.
Питание 1,8 В для всех модулей кристалла
В отличие от микроконтроллеров прежних поколений, технология picoPower подразумевает напряжение 1,8 В для питания абсолютно всех модулей кристалла, включая аналоговые модули (АЦП, компаратор, источник опорного напряжения), а также модулей памяти (Flash-ПЗУ, EEPROM и ОЗУ).
Минимизация токов утечки
Потребление тока в режимах энергосбережения в большей степени определяется токами утечки кристалла. Разработанные технологии фирмой Atmel были объединены под общим названием picoPower. Кристаллы, изготовленные по технологии picoPower, позволяют получить токи утечки в режиме Standby при напряжении питания 1,8 В не более 100 нА (для ATmega165P).
Концепция «спящий BOD»
Практически все современные микроконтроллеры имеют на кристалле модуль слежения за уровнем напряжения питания — BOD (Brown Out Detector). Есть два подхода к снижению потребления этого модуля. Первый — сделать модуль очень экономичным. Плата за экономичность — резкое снижение быстродействия. Второй — использовать быстродействующий BOD, однако отключать этот модуль на время пребывания контроллера в режиме ожидания. Именно этот подход используется в микроконтроллерах серии picoPower. При этом время срабатывания модуля составляет 2 мкс. Естественно, для надежной работы контроллера модуль BOD отключается после перехода в режим ожидания, а включается до выхода из этого режима.
Ультранизкопотребляющий генератор на 32 кГц
При переходе контроллера в режим Standby существенный вклад в общее энергопотребление контроллера вносят цепи генератора. Применение новой версии модуля генератора, работающего с «часовым» кварцем, позволяет получить ток не более 650 нА (для ATmega165P) при работающем модуле BOD.
Снижение энергопотребления периферийных узлов в активном режиме
Потребление КМОП-микросхем в активном режиме напрямую зависит от количества одновременно переключаемых вентилей и частоты их переключения вследствие перезаряда паразитных емкостей кристалла. Таким образом, если запретить подачу тактовых импульсов на некоторые модули контроллера, можно снизить потребляемую мощность. Эта технология получила название Clock Gating. Существует три уровня работы Clock Gating — Analog Domain, CPU Domain и In/Out Domain.
Первый уровень отвечает за тактирование каждого энергопотребителя в зависимости от текущего режима работы контроллера.
Второй уровень задается программированием специального регистра снижения потребляемой мощности (Power Reduction Register, PRR). Известно, что в конкретной программе, выполняемой контроллером, не все периферийные модули могут быть активными постоянно. Некоторые модули задействуются на определенные интервалы времени, а какие-то — вообще не используются. Регистр PRR управляет включением и выключением периферийных модулей.
При отключении модуля его текущий статус запоминается, и все его регистры становятся недоступными для модификации. Как показывает статистика, использование такого механизма позволяет снизить суммарную потребляемую мощность на 5–10% в активном режиме и на 10–20% в режиме Idle.
Третий уровень Clock Gating отвечает за адаптивное тактирование регистров. Известно, что не все регистры модифицируются в каждом такте. Таким образом, можно не подавать тактирующие импульсы на регистры, состояние которых не требуется модифицировать в данном цикле процессора.
Снижение потребления модуля Flash-памяти
Как правило, блок Flash-памяти во время работы контроллера всегда активен. Однако следует учесть, что в ряде случаев контроллер используется не на максимальной тактовой частоте, следовательно, время выборки команды из Flash-ПЗУ меньше одного периода тактовой частоты. Когда AVR-контроллер работает на частоте не выше нескольких мегагерц, используется техника «Flash sampling» — модуль памяти активизируется только на время, необходимое для выборки команды, а затем отключается.
Снижение токов утечки по входам
Многие AVR-контроллеры имеют модуль АЦП, который использует некоторые порты как аналоговые входы. Мультиплексирование выводов контроллера для цифровых или аналоговых операций повышает функциональность, однако приводит к увеличению энергопотребления. Это объясняется следующим.
Входной каскад КМОП-логики состоит из двух комплементарных МДП-транзисторов. При изменении уровня входного напряжения, в моменты, когда на вход подается уровень, примерно равный половине питания, оба транзистора «приоткрыты», и через входной каскад протекает сквозной ток. Для цифровых сигналов с крутыми фронтами это время пренебрежимо мало, однако если вывод используется как вход АЦП, на нем «неудобное» напряжение может оставаться сколь угодно долгое время, что приводит к увеличению уровня потребляемого тока. Для снижения потребления нужно отключать цифровой вход на время работы АЦП. Для этого введен специальный регистр DIDR (Dedicated Input Disable Register), который выборочно запрещает цифровые входы при работе АЦП.
Также этот регистр запрещает неиспользуемые входы контроллера при переходе в ждущий режим.
Для управления потребляемой мощностью контроллер имеет шесть режимов энергосбережения:
- Холостой режим (Idle mode) — в этом режиме блокируется подача тактовых импульсов на CPU и Flash-память.
- Режим снижения шума АЦП (ADC noise reduction mode)— холостой режим, плюс блокируется тактирование портов ввода/вывода.
- Расширенный дежурный режим (Extended Standby mode) — режим снижения шума АЦП, плюс запрещается работа АЦП и EEPROM.
- Дежурный режим (Standby mode) — расширенный дежурный режим, плюс запрещается работа таймера 2.
- Режим отключения (Power Down mode) — дежурный режим, плюс запрещается работа генератора.
- Экономичный режим (Power Save mode) — самый низкопотребляющий режим, активны только асинхронные модули — прерывания и порт TWI.
Совокупность мер по уменьшению тока потребления как в активном режиме, так и в режимах ожидания позволила создать производительный процессор, который отличается малыми токами потребления. Для систем с автономным питанием наиболее популярны микроконтроллеры со сверхнизким потреблением, среди которых можно выделить продукцию компаний Texas Instruments Inc (серия MSP430), Microchip (серия nanoWatt), Renessas (серия H8/38076R) и Atmel (серия picoPower).
В таблицах 2, 3 для сравнения приведены параметры низкопотребляющих микроконтроллеров этих компаний.
Таблица 2. Потребление в режиме Power Save с включенным генератором 32 кГц
Таблица 3. Потребление в режиме Power Down
Примеры применения
Поскольку микроконтроллеры серии picoPower являются совместимыми pin-to-pin и функционально со своими собратьями семейства ATmega, переход на новые контроллеры достаточно прост. Основное различие заключается в том, что появился новый регистр управления снижением потребляемой мощности.
Линейка контроллеров picoPower включает в себя устройства, которые могут использоваться в автомобилестроении: ATmega164P, ATmega324P и ATmega644P. Они прошли сертификацию по стандарту AEC-Q100 (возможность эксплуатации в жестких условиях) и доступны как в общем, так и в автомобильном исполнении. Во втором случае рабочий температурный диапазон этих контроллеров— от –40 до + 125 °С, а диапазон рабочих напряжений — от 2,7 до 5,5 В.
Микроконтроллеры со встроенным драйвером ЖКИ поддерживают такие возможности, как экономичная генерация сигналов управления ЖКИ, встроенное управление контрастностью, гибкий выбор длительностей сигналов управления и частоты обновления, формирование напряжения питания ЖКИ и продолжение работы после перевода микроконтроллера в экономичный режим работы. По сравнению с существующими аналогичными решениями наличие встроенного источника питания позволит снизить количество внешних компонентов. Для работы с 3,3-вольтовыми ЖКИ потребуется один внешний конденсатор и источник питания напряжением не менее 1,8 В. В типичных приложениях с ЖКИ технология picoPower совместно со встроенным контроллером ЖКИ позволят на годы продлить ресурс батареи питания. При этом себестоимость конечного изделия будет ниже за счет уменьшения количества внешних компонентов.
Многолетний срок службы батарей становится необходимым условием во многих приложениях. Микроконтроллеры семейства picoPower предназначены для средств управления осветительными системами, средств безопасности, ZigBee-приложений и других устройств, которые большую часть срока эксплуатации находятся в режиме ожидания. В технических требованиях к ZigBee-приложениям особо оговаривается срок службы батарей. Конечная ZigBee-продукция должна работать от одной батареи не менее 2 лет, иначе она не будет сертифицирована. Спецификация ZigBee разработана для создания дешевых беспроводных сетей передачи небольших объемов данных с низким энергопотреблением. Областями применения таких сетей являются:
- автоматизация зданий, где технология ZigBee используется для связи с датчиками температуры, влажности, освещения, вентиляции и т. д.;
- системы промышленного контроля и автоматизация производственных процессов;
- домашняя автоматизация и система «умный дом».
Компания Atmel довольно часто использует при разработке беспроводных сетей комбинированный подход, основанный на объединении радиочастотного прибора с традиционным или специализированным контроллером. Решение компании Atmel для сетей ZigBee получило название AVR Z-Link и представляет собой связку 802.15.4-совместимого приемопередатчика AT86RF230 с микроконтроллером семейства AVR ATmega644(P), ATmega1281 или ATmega2561.
Atmel ZigBee является гибкой системой. Она поддерживается семейством микроконтроллеров Atmel AVR 8-битовый RISC с объемом внутренней Flash-памяти от 32 до 256 кбайт. Система Atmel Z-Link при рабочем напряжении 1,8 В потребляет ток 17 мА в режиме передачи, 15 мА — в режиме приема и 0,7 мкА — в спящем режиме. Это наилучшие показатели среди систем 802.15.4, предлагаемых на рынке.
Упрощенный выбор нужного универсального микроконтроллера для конкретного приложения из относительно небольшого, но сбалансированного семейства AVR, хорошая совместимость микроконтроллеров по коду и расположению выводов, отличное соотношение «цена — производительность — энергопотребление» для 8-разрядных микроконтроллеров являются хорошими аргументами в их пользу. Общие тенденции развития AVR показывают, что данная платформа еще долго будет удерживать положительную динамику роста продаж и удовлетворять пожеланиям большого числа конечных пользователей.
Литература
- Горелков Р. AVR-микроконтроллеры picoPower компании Atmel с ультранизким потреблением. // Компоненты и технологии. 2006. № 12.
- Королев Н., Шабынин А. Архитектура AVR: развитие вширь и в глубь. Часть 1. // Компоненты и технологии. 2007. № 2.
- www.atmel.com/products/AVR/picopower
- www.atmel.com/products/AVR/z-link/
Atmel atmega
The device can be used in a wide range of applications, such as building, industrial, motor, board, and climate control; hand-held battery applications; factory automation; power tools; HVAC; networking, metering, large home appliances, and optical and medical devices. This ATxmega series features pin packages. More to come! Our most affordable debugger has power to impress.
Поиск данных по Вашему запросу:
Схемы, справочники, даташиты:
Прайс-листы, цены:
Обсуждения, статьи, мануалы:
Дождитесь окончания поиска во всех базах.
По завершению появится ссылка для доступа к найденным материалам. ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: AVR ATmega Fusebit DOCTOR , What should we do when ATmega Dies Due To Fuse Bit Wrong ?
Высокопроизводительные 8-разрядные RISC микроконтроллеры семейства AVR
Хабр Geektimes Тостер Мой круг Фрилансим. Мегапосты: Криминальный квест HR-истории Путешествия гика. Войти Регистрация. Почему бы я не рекомендовал Atmel или о непонимании успеха Arduino Программирование микроконтроллеров Хочу немного поделиться негативным опытом использования микроконтроллеров Atmel в промышленной разработке. Atmel как целевую платформу выбрал заказчик, хотя мы его и отговаривали еще даже не зная, что нам предстоит — интуиция, что ли?
В качестве дебаггера выбрали AVR One! И началось! У двух из трех купленных AVR One! У одного из них пропадал контакт питания. Каждый дебаггер, к слову, стоит около евро! При первом подключении дебаггера к компу с установленной AVR Studio 5. И не просто захотела, а отказывалась работать без этого. На начальной стадии работа ведется на Evaluation платах. Были такие и у Атмела. Блин, вот реально — тулкит, предназначенный для экспериментов с платформой, поставлялся без схемы! И схема его охранялась очень и очень тщательно, судя по многочисленным веткам на AVR freaks.
Поскольку мы не могли представить себе, как же можно работать без наличия схемы, мы разумно отказались от покупки этого тулкита который ни разу не дешевый, к слову! Еще веселее стало, когда приступили собственно к написанию и отладке кода. Самым веселым оказалось то, что пошаговая отладка оказалась в принципе невозможной.
Естественно, в прерывании при этом никаких брейкпоинтов не было! А поскольку прерывания в системе были всегда таймеры и т. Особенно весело это было, когда надо было отследить if или switch. Или же выполнить Step Into, а не Step Over… Вторым радостным моментом оказалось то, что когда ты останавливался в прерывании, ты не видел стека вызовов.
Особенно радовало, когда этим прерыванием было исключение процессора. На предыдущем проекте на контроллере от Freescale в аналогичной ситуации ты отлично видел весь стек вызовов — в каком месте произошло исключение процессора и что к нему привело.
Здесь же все, что ты видел — это то, что исключение произошло. А где и почему — оставалось только догадываться. Элемент a[1] после этого кода оставался равным 0! Ага, а ничего, что уже как бы плата с ним произведена?
Это, как ни странно, помогло, массив стал инициализироваться как надо. Дебаггер мог просто перестать видеть контроллер. Студия могла перестать видеть дебаггер. Или перестать запускать код на выполнение. К счастью, на AVR freaks часть проблем была описана и решения найдены. Например, вместо евровых AVR One! И пришлось перейти с AVR Studio 5. Интерфейс, конечно, у пятой студии был удобным, ничего не скажешь, но когда удобная в использовании среда банально не работает — удобство оказывается бессмысленным, увы.
AVRStudio32 c точки зрения интерфейса оказалась очень специфической штукой. То ли Eclipse-based сыграло свою роль, то ли Atmel внес свою лепту… Приведу лишь один пример. Нам понадобилось изменить точку запуска, которая по умолчанию выставлена в среде разработки на начало flash контроллера. Нет, когда это все уже знаешь, то исправить это не вопрос. Но вот когда не знаешь, а выглядит все так, что после очередного изменения вдруг все перестало работать, то становится очень даже невесело… То, что примерно за год разработки дебаггеры банально три или четыра раза выходили из строя, уже было просто досадной мелочью.
Еще одной такой досадной мелочью был прикол с тем, что Atmel называет Fuses — специальные биты, управляющие поведением микроконтроллера, доступные при помощи специальных команд. Неосторожное движение или ошибка — и процессор оказывался непригодным к дальнейшему использованию без очень сложных телодвижений. Можно было, например, переключить его с использования внутренней тактовой частоты на внешнюю.
Поскольку внешней, конечно же, в наличии не было, процессор переставал работать. Вернуть этот бит без подачи внешней синхронизации было невозможно в принципе. Вполне естественно, что во время разработки возникают ошибки. Но когда такая ошибка приводит к остановке процесса на непонятно сколько времени — мягко говоря, совсем невесело. Одна из последних проблем оказалась не менее веселой — по какой-то из причин микроконтроллеры один за одним переставали работать, и дебаггеры тоже переставали их видеть.
Времени на анализ было потрачено прилично, оказалось же вот что. Немного доп. Есть спец. Дебаггер и студия как раз его и используют для идентификации того, что подключено. По идее, значение это read only, и нигде в спецификации не указано обратное. Оказалось, что это не так. Цитата из Errata: Signature may be Erased in Serial Programming Mode If the signature bytes are read before a chiperase command is completed, the signature may be erased causing the device ID and calibration bytes to disappear.
This is critical, especially, if the part is running on internal RC oscillator. То есть, если Device ID уже оказался стертым, записать его назад возможности не предоставляется. Хуже всего то, что вместе с ним стирается еще и калибровка внутренней частоты, которая также невосстановима, насколько я понял из доступной информации. Должен сказать, что после команды Chip Erase в коде стояла задержка в два раза больше, чем того требовала спецификация.
Однако Device ID волшебным образом стирался по непонятной причине… Что же, негативный опыт — тоже опыт. Вряд ли я по доброй воле выберу теперь Atmel для чего-либо. А что касается Arduino — понятно, конечно, что те, кто решает с ней поиграться, с большинством проблем банально не столкнутся, но — после всего описанного выше я все же не понимаю столь высокой ее популярности. Источник бесперебойного питания на источнике бесперебойной подачи информации Читайте на Хабре. Читают сейчас.
Поделиться публикацией. Похожие публикации. Заказы Перенести шаблон на CMS get simple 2 отклика 25 просмотров. Разработать ПО «Просмотрщик сайтов» 3 отклика 93 просмотра. Портировать на iOS открытый проект голосового ассистента 8 откликов 56 просмотров. Разработка системы компенсации падения напряжения на микроконтроллере 4 отклика 78 просмотров. Нужен программист 1С-Битрис 8 откликов 56 просмотров. Все заказы Разместить заказ. НЛО прилетело и опубликовало эту надпись здесь.
А я вот в своё время намучался с Microchip-ами. Вот мой старый комментарий на эту тему: habrahabr. Keroro 4 июля в 0. Везде свои нюансы есть. У меня, к примеру, на PICKit-2 стабильно раз в месяц слетает прошивка, на ровном месте. Это хорошо, что она у меня есть, а если бы не было? Плюс архитектуру 8и битных PIC-ов не пинал только ленивый, плюс ценовая политика, доступность свободных компиляторов GCC , и т. Форум микрочипа изобилует темами, подобными этой, мол, прощай, гадкий микрочип, ухожу от тебя навечно.
Нет в мире совершенства. Собственно, и написал все это потому, что было с чем сравнивать. Понятно, что идеала не существует и баги есть везде, но не таких же и не столько же!
В принципе в любом контроллере есть ошибки и всегда возникают ситуации, когда приходиться дико колдовать над кодом и вчитываться в даташиты. Возможно автору так неповезло, что он собрал все возможные грабли. Теперь не в жизнь не захочу по своей воле работать с PIC исключительно из-за плохих воспоминаний. STM32 щупали, но по какой-то причине решили не применять. С STM8 тоже случаются иногда непонятные глюки, но очень редко. На любительском уровне работаю с атмелами 16й и 8й и ардуино, вышеобозначенных проблем не имел.
А что дебаггеры некачественно собраны — это прескорбно. Меня кстати иногда в этих случаях спасает волшебный палец … Вообще кажется Atmel болт положила на создание нормальной IDE, лично мне пока приходится юзать VMLAB для 8-ми биток, вроде все бы ничего, но практически нулевая подсветка синтаксиса. Только КРВЕ1 , только хардкор! Вы похоже собрали все косяки начинающих на AVR какие только можно. Даже ряд сами раскопали.
Может дело не в бобине, а в плохом танцоре? Не знаю насчет танцора.
Программирование Atmel ATMega 32-16pu с использованием малины PI
Богатый набор функций и лучшая производительность в своём классе микроконтроллеров Atmel AVR обеспечиваются наличием встроенных блоков цифровой обработки сигналов с фиксированной запятой DSP , портом SRAM, контроллером прямого DMA, продуманной архитектурой, построенной на проверенных и инновационных решениях Atmel. Палитра устройств включает несколько серий, каждая из которых заслуживает детального рассмотрения. Серия L. Архитектура МК разрабатывалась для портативных устройств. Для взаимодействия с пользователем в микросхеме встроен CAT-контроллер на 17 аппаратных каналов. Безопасное хранение программ во флэш-памяти обеспечивается технологией FlashVault. Серия D.
3 дн. назад AVR микроконтроллеры – это тип устройств, разработанный компанией Atmel, которые имеют определенное преимущество перед.
Как прошить микроконтроллер ATmega, AVR
Однако команда call для подпрограммы не работает, когда я использую симулятор и пошаговое выполнение программы. Он полностью игнорирует инструкцию call и переходит к следующей строке. Чтобы проверить инструкцию call я написал простую программу, которая выглядит следующим образом:. Но даже это не работает! Он просто продолжает выполнять mov R1, R0. Что может быть причиной? Это так раздражает, когда call не работает! Я использую r16, r17 и r18, потому что его общие регистры использования, используйте его только для отладки. Загрузите прямое значение «1» в r18 4.
МОДЕЛИ МИКРОКОНТРОЛЛЕРОВ AVR
Как сделать робота. Простейший робот Схема и описание простого робота на одной микросхеме. Робот может двигаться на свет или следовать за рукой. Схема и описание первого проекта на микроконтроллере AVR «Hello, world! Робот на микроконтроллере AVR Схема робота на микроконтроллере.
Я пробовал это несколько раз, и я понял, что ATMegapu нуждается в 5v и 5v, может сломать мой малиновый PI, поэтому я купил триггер schmitt, чтобы сдвинуть напряжения сигналов, которые возвращаются к PI.
Я пишу сборку AVR в atmel, но инструкция «call» не работает
Нажимая на кнопку «Отправить», Вы соглашаетесь на обработку персональных данных. AVR микроконтроллеры — это тип устройств, разработанный компанией Atmel, которые имеют определенное преимущество перед обычными микросхемами , но, сначала, давайте разберемся, что такое микроконтроллер? Самый простой способ понять это — сравнить микроконтроллер с вашим компьютером, в котором установлена материнская плата. В микроконтроллере все эти возможности встроены в один чип, а это значит, что отсутствует потребность в материнской плате и многих других компонентах, например, светодиод может быть подключен напрямую к AVR. В микропроцессорах нет такой возможности! AVR микроконтроллеры выпускаются в нескольких корпусах , некоторые предназначены для монтажа в отверстия , некоторые для поверхностного.
Как в Atmel Studio инвертировать бит порта
Компилятор работает с исходными файлами, содержащими инструкции, метки и директивы. Инструкции и директивы, как правило, имеют один или несколько операндов. Любая строка может начинаться с метки, которая является набором символов заканчивающимся двоеточием. Метки используются для указания места, в которое передаётся управление при переходах, а также для задания имён переменных. Позиции в квадратных скобках необязательны.
Объявление о продаже Микроконтроллер Atmel Atmega PU DIP в Республике Татарстан на Avito.
В году Боген и Воллен решили предложить американской корпорации Atmel , которая была известна своими чипами с Flash-памятью , выпускать новый 8-битный RISC -микроконтроллер и снабдить его Flash-памятью для программ на одном кристалле с вычислительным ядром. Идея была одобрена Atmel Corp. В конце года был выпущен опытный микроконтроллер AT90S, а во второй половине го корпорация Atmel приступила к серийному производству нового семейства микроконтроллеров, к их рекламной и технической поддержке.
В году Боген и Воллен решили предложить американской корпорации Atmel , которая была известна своими чипами с Flash-памятью , выпускать новый 8-битный RISC-микроконтроллер и снабдить его Flash-памятью для программ на одном кристалле с вычислительным ядром. Идея была одобрена Atmel Corp. В конце года был выпущен опытный микроконтроллер AT90S, а во второй половине г. Новое ядро было запатентовано и получило название AVR.
Также разрабатывает и производит небольшие модули энергонезависимой памяти для электронных изделий, ПЛИС , цифровые микросхемы-радиоприёмники и передатчики, сканеры отпечатков пальцев.
Хабр Geektimes Тостер Мой круг Фрилансим. Мегапосты: Криминальный квест HR-истории Путешествия гика. Войти Регистрация. Почему бы я не рекомендовал Atmel или о непонимании успеха Arduino Программирование микроконтроллеров Хочу немного поделиться негативным опытом использования микроконтроллеров Atmel в промышленной разработке. Atmel как целевую платформу выбрал заказчик, хотя мы его и отговаривали еще даже не зная, что нам предстоит — интуиция, что ли?
Новый клиент? Начинать здесь. Помощь Cвязаться с нами Центр поддержки.
AVR® XMEGA™ — 8/16-битные Flash-микроконтроллеры с высокими рабочими характеристиками и малым электропотреблением
Автор: admin23 Дек
Новое семейство XMEGA™ компании Atmel составляют 8/16-битные микроконтроллеры с более высоким уровнем системных рабочих характеристик. Вычислительная мощность 32-битной архитектуры востребована не во всех применениях. В то же время ее использование часто приводит к ухудшению характеристик электромагнитной совместимости, а также к повышению затрат на разработку программного обеспечения и системы в целом. Применение 4-канального прямого доступа к памяти (ПДП) совместно с 8-канальной системой событий способно разгрузить процессор и, как результат, снизить энергопотребление и высвободить большее время ЦПУ для выполнения других частей программы. За один подход ПДП позволяет передать от 1 байта до 16 Мбайт данных между любыми участками памяти, расположенных в пространстве памяти данных. В свою очередь, система событий позволяет связать между собой сигналы встроенных устройств ввода-вывода в целях получения предсказуемой и избавленной от задержек системы.
Для применений с аналоговой обработкой сигналов в микроконтроллеры XMEGATM встроены 12-битный АЦП (частота дискретизации 2МГц), 12-битный ЦАП (частота дискретизации 1МГц) и как минимум два аналоговых компаратора. Микроконтроллеры XMEGA также могут использоваться в портативной электронике. Благодаря выполнению по технологии picoPower 2-го поколения, микроконтроллеры XMEGA могут работать при напряжении 1.6В с производительностью 12MIPS при потреблении мощности всего лишь 6.3 мВт. После перевода микроконтроллера в экономичный режим работы с работающим кварцевым генератором 32 кГц потребляемый ток снижается до 2 мкА, при этом, остаются в работе счетчик реального времени, сторожевой таймер (если был активизирован прежде) и супервизор питания (BOD) с временем реагирования не более 1 мс.
Микроконтроллеры XMEGA используют набор инструкций, идентичный существующим микроконтроллерам AVR, что позволяет повторно использовать имеющиеся коды программ. В качестве среды для программирования и отладки любого микроконтроллера AVR рекомендуется использовать программу AVR Studio совместно со стартовым набором STK600.
Существующий ассортимент XMEGA включает микроконтроллеры с числом выводов от 44 до 100 и с объемом Flash-памяти от 16 до 384 кБайт.
Отличительные особенности
- Быстродействие: до 12 МГц при VCC = 1.6 В, 32 Мгц при VCC = 2.7 В
- От 16 до 84 кБайт FLASH-памяти
- Высокоскоростной модуль криптографии AES и DES
- Интерфейсы USART, ITW (двухпроводной, I2C-совместимый), SPI
- Интегрированный модуль EEPROM-памяти
- 16-битные часы реального времени
- Детектор падения напряжения
- Сторожевой таймер
- Калиброванный внутренний RC-генератор
- До 78 линий ввода/вывода
Запросить образцы, средства разработки или техническую поддержку
Руководство пользователя отладочного комплекта Xplain (англ.)
Брошюра: AVR-микроконтроллеры XMEGA (англ.)
vak | Ностальгия по архитектуре AVR
К архитектуре Atmel AVR я давно неравнодушен. Тёплая ламповая восьмибитность покорила меня ещё двадцать лет назад. Мы начали применять AT90 и ATmega в Крониксе в конце 90-х, перейдя на них с серии Microchip PIC17. Именно для AVR я тогда сделал первую версию операционной системы реального времени uOS. Позже добавлял ARM, MIPS и другие, но первое впечатление осталось именно от AVR.Для AVR я делал отладчик GDB, стартовый загрузчик через COM-порт, дорабатывал утилиты прошивки, паял USB-программаторы. Ну и собственно кучу софта написал: до сих пор большинство коммуникационного оборудования, выпускаемого Крониксом, имеет ATmega в качестве сервисного процессора. К примеру, удалённый мониторинг сетевых портов по протоколу SNMP микроконтроллер ATmega128 вполне тянет.
Вот моя коллекция отладочных плат для микроконтроллеров ATmega, ATtiny и AT90S в разных корпусах.
(1) Плата ATmega 128 с набором разнообразной периферии. Цена €34 евро на сайте Olimex. Плата поставляется с тестовой прошивкой, которая по нажатиям кнопок управляет светодиодом и реле, пищит динамиком, пишет сообщение на дисплее LCD и отправляет строку в порт RS-232. Исходные тексты этой прошивки с использованием операционной системы uOS можно посмотреть здесь: test_olimex.c
(2) Плата для восьминогих чипов ATtiny13A и аналогичных. Куплена за $7 на Aliexpress. Будьте внимательны с питанием: подавать можно не больше 5V, иначе чип накроется.
(3) Плата для 28-ногих чипов ATmega328P, ATmega8 и аналогичных. Стоит два с лишним доллара на Aliexpress.
(4) Плата для сороканогих чипов AT90S и других (с питанием от ножки 40). Цена около $3 на Aliexpress. Не перепутайте: есть похожие платы для чипов с питанием от ножки 10 (ATmega32, ATmega163L и подобных). Это не то же самое. Смотрите принципиальную схему этой платы.
(5) Плата для более современных чипов в корпусе DIP-40, типа ATmega32, ATmega16 и подобных (с питанием от ножки 10). Имеется за $3 на Ebay.
Все эти платы имеют 10-контактный разъем ICSP для подключения программатора, а плата Olimex — ещё и разъём JTAG для отладчика. Но про них я расскажу в следующем посте.
Atmel AVR
Atmel AVR Показано 1-3 из 3Сохраняйте продукты в своем списке желаний, чтобы купить их позже или поделиться с друзьями.
Товар добавлен в список желаний
Товар добавлен для сравнения.
На нашем интернет-сайте используются файлы куки. Файлы куки помогают обеспечивать надлежащее функционирование интернет-страницы и ее совершенствование, поэтому необходимые файлы куки (технические, функциональные и аналитические) устанавливаются автоматически. Чтобы индивидуализировать ваш опыт поиска в интернете и предоставлять предложения, которые будут актуальны именно для Вас, на интернет-странице также используются целевые файлы куки. Нажатием клавиши «соглашаюсь» Вы соглашаетесь с установкой и использованием целевых файлов куки. Вы сможете отозвать свое согласие в любое время, изменив установки своего интернет-браузера или стерев записанные файлы куки. Более подробная информация предоставляется — в политике файлов куки
ПринятьОтладочная плата Atmel AVR XPlain board | avr
Плата Atmel AVR XPlain в основном предназначена для отладки и написания программ для ATxmega128A1.
Плата AVR XPlain в бывает в разных модификациях, из которых наиболее распространены AVR XMEGA-A1 Xplain Rev.4 и AVR XMEGA-A1 Xplained Rev.09. Платка недорогая, учитывая мощную начинку; её можно купить в России по цене примерно $60, на digikey $41.
Мне на растерзание попалась AVR XMEGA-A1 Xplained Rev.7 (вторая на фото). На плате установлено 2 микроконтроллера: ATxmega128A1 (используется для написания и отладки программ) и AT32UC3B1256 (используется как мост USB-USART, в его память записана программа USB CDC, виртуальный USB COM порт). Также на плате установлены 8 кнопок SW0..SW7 вместе с установленными рядом с ними светодиодами LED0..LED7, динамик, коннектор USB, коннектор JTAG, коннекторы портов XMEGA J1..J4, микросхема SDRAM, стабилизатор напряжения питания, датчик освещенности и другие компоненты.
Комментарии к рисунку:
JTAG and PDI — основной коннектор для подключения программатора и отладчика.
Power jumper — перемычка, через которую приходит питание на микроконтроллер ATxmega128A1 (удобно использовать, например, для измерения тока потребления).
USB (COM and PSU) — коннектор miniUSB, через который подается питание на плату (PSU расшифровывается как Power SUpply), и через который реализован USB-USART мост до порта USART микроконтроллера ATxmega128A1 (подключение по USB после установки информационного файла видно в операционной системе Windows как виртуальный COM-порт).
XMEGA PORT A, C, D/R, F — коннекторы для подключения к портам ввода вывода GPIO микроконтроллера ATxmega128A1.
Light sensor — датчик освещенности.
Temp. sensor — датчик температуры.
Audio amp. — усилитель звука для динамика.
Speaker — динамик.
AT32UC3B1256 — микроконтроллер AVR с аппаратным USB, используемый в качестве моста USB-USART (в его firmware реализован USB CDC, класс виртуального COM-порта).
DataFlash footprint — посадочные места на печатной плате, куда можно впаять микросхемы памяти FLASH с последовательным интерфейсом (энергонезависимая память).
SDRAM — микросхема динамической оперативной памяти.
[Мост USB на AT32UC3B1256]
Мост на микроконтроллере AT32UC3B1256 заслуживает особого внимания, так как он соединен с микроконтроллером ATxmega128A1 через целых 3 интерфейса:
USART — традиционный TTL RS232 (RXD, TXD). Через этот интерфейс работает бутлоадер Atmel (см. далее использование BatchISP), а также возможен отладочный текстовый ввод и вывод.
PDI — через этот интерфейс можно прошивать ATxmega128A1 стандартным образом. В библиотеке LUFA есть проект XPLAINBridge [5], который предназначен для микроконтроллера AT90USB1287. На AT32UC3B1256 этот проект к сожалению покак не портирован. XPLAINBridge работает и как стандартный программатор Atmel AVRISP-MKII programmer, полностью совместимый с AVRStudio, и как мост USB-USART (режим выбирается перемычкой). То есть, покупая плату AVR XPLAIN, с этой прошивкой Вы автоматически сразу получаете еще и программатор AVRISP-MKII, уже установленный на плате.
SPI — этот интерфейс позволяет организовать при необходимости высокоскоростной обмен данными между микроконтроллерами AT32UC3B1256 и ATxmega128A1.
[Чем прошивать AVR xplain board]
1. JTAG, для этого понадобится AVR JTAGICE mkII [3] или Atmel AVR ONE!. Через JTAG возможна также и полноценная пошаговая отладка.
2. PDI, для этого нужен программатор наподобие AVRISP-MKII [4].
3. С помощью USART-бутлоадера, который записан в память чипа ATxmega128A1. Для этого нужна утилита командной строки BatchISP, которая находится в пакете Atmel FLIP version 3.4.2 или более поздней (см. c:\Program Files\ATMEL\Flip 3.4.5\bin\).
Последний способ не требует никаких дополнительных аппаратных устройств, ни программаторов, ни отладчиков, только компьютер и подключение по USB. Для этого необходимо скачать и установить последнюю версию программы Atmel Flip (для прошивки памяти ATxmega128A1 из пакета Flip понадобится программа batchisp.exe), а также нужно установить драйвер (информационный файл) для USB CDC моста на микроконтроллере AT32UC3B1256. При первом подключении по USB операционная система Windows запросит этот файл, который можно взять из архива AVR1927_XMEGA-A1_Xplained_Example_Applications.zip [2]. Укажите путь на папку Driver (там находится информационный файл XPLAINED_Virtual_Com_Port.inf). На запрос/предупреждение об отсутствии сертификата нужно ответить «все равно продолжить». После этого установится драйвер, и в системе Windows появится новый COM-порт. Обратите внимание на последний скриншот Диспетчера Устройств — в названии появившегося устройства XPLAINED Virtual Com Port присутствует номер COM-порта (COM10). Номер COM-порта важен для указания в опции -port командной строки утилиты batchisp.exe.
На фото показано подключение AVR XPlained к различным типам популярных программаторов AVR Dragon, AVR JTAGICE mkII, AVR ONE! (можно также использовать клон AVRISP-mkII [4]).
[USART-бутлоадер Atmel для ATxmega128A1]
В память чипа ATxmega128A1 (он установлен на плату AVR XMAGA-A1 XPlained) записан USART-загрузчик, который активируется при включении питания, если удерживать кнопку SW0. Как только загрузчик будет активирован, то можно использовать для загрузки программ утилиту командной строки BatchISP. Так было написано в руководстве, однако на деле все получилось совсем не так гладко.
После установки последней версии Flip 3.4.7 в ней почему-то не оказалось поддержки чипа ATxmega128A1. То есть ни GUI-утилита flip.exe, ни программа batchisp.exe в упор не хотели программировать ATxmega128A1 (в программе Flip невозможно было выбрать Device -> Select… -> ATxmega128A1, а консольная утилита batchisp.exe ругалась «Device does not exist» в ответ на команду -device ATxmega128A1.
Интенсивное гугление подсказало решение проблемы. Оказывается, все описания чипов хранятся в XML-файлах, находящихся в папке C:\Program Files\ATMEL\Flip 3.4.7\bin\PartDescriptionFiles\. Все чипы, с которыми может работать GUI-утилита Flip, и утилита командной строки batchisp.exe, описаны в одноименных XML-файлах, которые лежат в этом каталоге. Имя файла должно совпадать с типом чипа (в нашем случае ATxmega128A1.xml), и команда -device должна совпадать с именем файла без расширения (-device ATxmega128A1). Так вот, файла ATxmega128A1.xml в каталоге PartDescriptionFiles почему-то не было (пламенный привет разработчикам Atmel, которые делают кривую документацию и недоработанные утилиты!). Пришлось этот файл ATxmega128A1.xml сделать самому (содержимое нашел на форуме avrfreaks), и положить в папку PartDescriptionFiles. Этот файл ATxmega128A1.xml также можно найти в пакете AVR1927_XMEGA-A1_Xplained_Example_Applications.zip [2], см. папку Bootloader.
< ?xml version="1.0"? > <!DOCTYPE Part SYSTEM "part.dtd"> < Part NAME="ATxmega128A1" > <PageSize SIZE="512" /> <Memory NAME="FLASH" SIZE="131072" ADDR="0" INDEX="0"/> <Memory NAME="EEPROM" SIZE="2048" ADDR="0" INDEX="1"/> <Memory NAME="BOOTLOADER" SIZE="3" INDEX="3"/> <Memory NAME="SIGNATURE" SIZE="4" INDEX="6"/> <Memory NAME="USER" SIZE="512" INDEX="11"/> <Protocol FILE="RS232_I03.xml" /> < /Part >
После этого и Flip, и batchisp.exe заработали без проблем, точно так, как описано в руководстве (см. %ProgramFiles%/ATMEL/Flip 3.4.7/help/overview.htm -> BatchIsp User’s Manual). Вот так, например, я считал тест-программу Atmel, которая была записана в FLASH-память чипа ATxmega128A1 платы AVR XPlained (не забывайте кнопкой SW0 активировать USART-загрузчик ATxmega128A1):
C:\Program Files\ATMEL\Flip 3.4.7\bin>batchisp.exe -device ATxmega128A1 -hardware RS232 -port COM23 -baudrate 115200 -operation read savebuffer «C:\temp\ATxmega128A1-test.hex» HEX386
Тест-программа кстати любопытная — как только подано питание, светодиоды начинают по очереди зажигаться и гаснуть, а при нажатиях на кнопки звучат интересные синтезированные музыкальные звуки. К сожалению, исходный код этого теста Atmel зажала, опубликованы только бинарники.
[Ссылки]
1. AVR1927: XMEGA-A1 Xplained Getting Started Guide site:atmel.com.
2. AVR1927_XMEGA-A1_Xplained_Example_Applications.zip site:atmel.com — драйвер для xplained cdc, примеры программ.
3. Atmel AVR JTAGICE mkII.
4. AVR-USB162MU: макетирование и изготовление программатора AVRISP-MKII в домашних условиях.
5. XPLAIN Bridge (2010) site:fourwalledcubicle.com.
6. 170407AVR-xplain.zip.
— Введение — Руководство для начинающих по Atmel AVR Atmega32
Микроконтроллер — Руководство для начинающих — Введение
Это первое из длинной череды руководств, предназначенных для начинающих. и учебник, основанный на микроконтроллере Atmel AVR Atmega32. Я покажу тебе, через примеры и проекты, как программировать и обеспечивать функции для этого микроконтроллера и каковы виды использования и применения.
Что касается микроконтроллеров в целом, полезно знать, что эти маленькие микросхемы встречается повсюду. Вы можете найти их в микроволновых печах, новых приборах, автомобилях, телевизоры и т. д. Эти микроконтроллеры контролируют и воспринимают окружающую электронику и окружающая среда. Например, микроконтроллеры могут выводить данные на дисплей. двигатель, светодиоды и т. д., распознающие окружающую среду, например, наклон с помощью акселерометра, свет, угловая скорость с использованием гироскопа MEMS (микроэлектромеханическая система), звук, энкодеры для движения, температуры и ввода с помощью кнопок или клавиатуры.
Чтобы дать вам общее представление о микроконтроллере, микроконтроллер AVR Atmega32 считается компьютером на чипе. Микроконтроллер может выполнять набор инструкций в виде программы. Язык программы, который я буду для этих проектов используется C++. Чтобы дать пользователям этого сайта наилучшие возможности чтобы узнать, программы C++ будут объяснены очень подробно.
Самое классное в микроконтроллерах то, что вы можете контролировать все булавки.Для новичка это может быть трудным для понимания, особенно без опыта работы с электроникой. Не волнуйтесь, я проведу вас через каждую малюсенькая деталь. Каждый контакт имеет специальное назначение или может использоваться как вход или выход. имеют, за некоторыми исключениями, контакты питания.
С левой стороны чипа, если смотреть на него, образуют вершину и маленький треугольник. находится вверху слева, там 20 контактов (это 40-контактный микроконтроллер).Первый начиная сверху слева идут контакты PB0-7. Это в общей сложности 8 контактов, как индекс этих выводов и почти все в программе начинается с индекса 0. Этот набор контактов называется «Порт B», и есть 3 других порта, помеченных от A до D. Эти порты могут быть настроены на получение информации и называются INPUT и они могут быть настроены на отправку напряжения в некоторой форме, называемой OUTPUT. Общие контакты питания чтобы получить питание для чипа, называемого VCC и GND.Все, кроме одного контакта порта D (PD0-6) также находится с левой стороны (нижняя секция). PD7 (контакт 7 порта D) в одиночку запускает правую сторону микроконтроллера.
Продолжая движение по правой стороне, и окончание порта D, порт C продолжается от нижний угол вверх. С этого момента, пусть любимые контакты продолжаются, аналоговый в цифровой булавки. Эти контакты имеют возможность ощущать окружающую среду с помощью компонентов. которые подают на эти контакты аналоговое напряжение.Не беспокойтесь о непонимании аналоговый или даже цифровой, это будет объяснено более подробно позже. Эти контакты аналого-цифрового преобразователя составляют порт A.
.Одним из примеров использования аналого-цифрового преобразования может быть, скажем, определение температура. Вы можете подключить компонент, который преобразует температуру в уровень напряжения, называемого термистором, к одному из контактов порта A и микроконтроллеру. преобразует это напряжение в число от 0 до 255 (8-битное число — более высокое разрешение возможно при 10 битах).Программа, которая записывается и хранится в микроконтроллере. может использовать эту температуру и реагировать определенным образом. Например, если у вас есть термистор против кипящего котла, микроконтроллер может реагировать и обеспечивать выход на другой контакт, который издает звуковой сигнал или мигает светом.
Другие особенности этого и других микроконтроллеров, кроме собственно программирования это пространство для программирования (где программа хранится в чипе и сколько места у вас есть), память или пространство для данных и переменных, которые будет использовать программа, и наконец, в микросхему встроены часы, которые считают.Подсчет может быть в много разных скоростей в зависимости от скорости чипа и делителя, который выбирается по скорости. Это начинает усложняться, поэтому я поддержу. Счет может вестись в секундах, миллисекундах, микросекундах или как вы определите. для выбранной программы и приложения.
Поскольку эта серия руководств основана на примерах, я предоставлю много подробностей. Конечно, подробности для введения были бы невозможны, и если вы очень приключения, вы можете взглянуть на техническое описание и руководство для этого микропроцессора, но не позволяйте этому огромному документу отвратить вас от желания изучить этот самый невероятный технология.Как только вы узнаете, нет предела применению, от крошечных роботов, до чрезвычайно масштабных архитектурных чудес, которые движутся и излучают впечатляющие световые эффекты, иногда взаимодействующие с окружающей средой.
ATMEGA328P-МУР |
68Т2942 |
8-битный MCU, AVR, микроконтроллеры AVR семейства ATmega серии ATmega328, 20 МГц, 32 КБ, 2 КБ, 32 контакта МИКРОЧИП |
Каждый (Поставляется на полной катушке) Не подлежит отмене/возврату |
Запрещенный предмет
Минимальный заказ 6000 шт. Только кратные 6000 Пожалуйста, введите действительное количество ДобавлятьМин.: 6000 Мульт: 6000 |
АТмега | Семейство AVR ATmega Микроконтроллеры серии ATmega328 | 20 МГц | 32 КБ | 2 КБ | 32 контакта | КФН | 23 входа/выхода | I2C, SPI, USART | 1.8В | 5,5 В | АВР АТмега | ATmega328 | Катушка | — | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АТМЕГА328П-15АЗ |
68Т2945 |
8-битный микроконтроллер, низкое энергопотребление, высокая производительность, микроконтроллеры семейства AVR ATmega серии ATmega328, 16 МГц МИКРОЧИП |
Каждый (Поставляется на полной катушке) Не подлежит отмене/возврату |
АВР МЕГА | Семейство AVR ATmega Микроконтроллеры серии ATmega328 | 16 МГц | 32 КБ | 2 КБ | 32 контакта | TQFP | 23 входа/выхода | I2C, SPI, UART, USART | 2.7В | 5,5 В | АВР АТмега | ATmega328 | Катушка | — | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATMEGA328P-AU |
68Т2935 |
8-битный микроконтроллер, низкое энергопотребление, высокая производительность, микроконтроллеры семейства AVR ATmega серии ATmega328, 20 МГц МИКРОЧИП |
Каждый |
Запрещенный предмет
Минимальный заказ 1 шт. Только кратные 1 Пожалуйста, введите действительное количество ДобавлятьМин: 1 Мульт: 1 |
АТмега | Семейство AVR ATmega Микроконтроллеры серии ATmega328 | 20 МГц | 32 КБ | 2 КБ | 32 контакта | TQFP | 23 входа/выхода | I2C, SPI, UART | 1.8В | 5,5 В | АВР АТмега | ATmega328 | Каждый | — | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АТМЕГА328П-15АЗ |
72Т3141 |
8-битный микроконтроллер, низкое энергопотребление, высокая производительность, микроконтроллеры семейства AVR ATmega серии ATmega328, 16 МГц МИКРОЧИП |
Каждый (поставляется на отрезной ленте) Не подлежит отмене/возврату |
АТмега | Семейство AVR ATmega Микроконтроллеры серии ATmega328 | 16 МГц | 32 КБ | 2 КБ | 32 контакта | TQFP | 23 входа/выхода | I2C, SPI, UART, USART | 2.7В | 5,5 В | АВР АТмега | ATmega328 | Разрезать ленту | — | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATMEGA328P-ПУ |
68Т2944 |
8-битный микроконтроллер, низкое энергопотребление, высокая производительность, микроконтроллеры семейства AVR ATmega серии ATmega328, 20 МГц МИКРОЧИП |
Каждый |
Запрещенный предмет
Минимальный заказ 1 шт. Только кратные 1 Пожалуйста, введите действительное количество ДобавлятьМин: 1 Мульт: 1 |
АТмега | Семейство AVR ATmega Микроконтроллеры серии ATmega328 | 20 МГц | 32 КБ | 2 КБ | 28 контактов | ОКУНАТЬ | 23 входа/выхода | I2C, SPI, UART | 1.8В | 5,5 В | АВР АТмега | ATmega328 | Каждый | — | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATMEGA328-AU |
68Т2926 |
8-битный микроконтроллер, низкое энергопотребление, высокая производительность, микроконтроллеры семейства AVR ATmega серии ATmega328, 20 МГц МИКРОЧИП |
Каждый Не подлежит отмене/возврату |
Запрещенный предмет
Минимальный заказ 250 шт. Только кратные 250 Пожалуйста, введите действительное количество ДобавлятьМин: 250 Мульт: 250 |
АТмега | Семейство AVR ATmega Микроконтроллеры серии ATmega328 | 20 МГц | 32 КБ | 2 КБ | 32 контакта | TQFP | 23 входа/выхода | I2C, SPI, UART | 1.8В | 5,5 В | АВР АТмега | ATmega328 | Каждый | — | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATMEGA328P-PN |
68Т2943 |
AVR ATmega Family Микроконтроллер серии ATmega328, 8 бит, 20 МГц, 32 КБ, 1.от 8 В до 5,5 В, DIP-28 МИКРОЧИП |
Каждый |
Запрещенный предмет
Минимальный заказ 1 шт. Только кратные 1 Пожалуйста, введите действительное количество ДобавлятьМин: 1 Мульт: 1 |
АТмега | Семейство AVR ATmega Микроконтроллеры серии ATmega328 | 20 МГц | 32 КБ | 2 КБ | 28 контактов | ОКУНАТЬ | 23 входа/выхода | I2C, SPI, USART | 1.8В | 5,5 В | АВР АТмега | ATmega328 | Каждый | — | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATMEGA328P-MU |
68Т2941 |
8-битный микроконтроллер, низкое энергопотребление, высокая производительность, микроконтроллеры семейства AVR ATmega серии ATmega328, 20 МГц МИКРОЧИП |
Каждый |
Запрещенный предмет
Минимальный заказ 1 шт. Только кратные 1 Пожалуйста, введите действительное количество ДобавлятьМин: 1 Мульт: 1 |
АТмега | Семейство AVR ATmega Микроконтроллеры серии ATmega328 | 20 МГц | 32 КБ | 2 КБ | 32 контакта | КФН | 23 входа/выхода | I2C, SPI, UART | 1.8В | 5,5 В | АВР АТмега | ATmega328 | Каждый | — | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АТМЕГА328-ПУ |
68Т2932 |
8-битный микроконтроллер, низкое энергопотребление, высокая производительность, микроконтроллеры семейства AVR ATmega серии ATmega328, 20 МГц МИКРОЧИП |
Каждый |
Запрещенный предмет
Минимальный заказ 1 шт. Только кратные 1 Пожалуйста, введите действительное количество ДобавлятьМин: 1 Мульт: 1 |
АТмега | Семейство AVR ATmega Микроконтроллеры серии ATmega328 | 20 МГц | 32 КБ | 2 КБ | 28 контактов | ОКУНАТЬ | 23 входа/выхода | I2C, SPI, UART | 1.8В | 5,5 В | АВР АТмега | ATmega328 | Каждый | — | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATMEGA328P-AN |
68Т2933 |
8-битный микроконтроллер, низкое энергопотребление, высокая производительность, микроконтроллеры семейства AVR ATmega серии ATmega328, 20 МГц МИКРОЧИП |
Каждый |
Запрещенный предмет
Минимальный заказ 1 шт. Только кратные 1 Пожалуйста, введите действительное количество ДобавлятьМин: 1 Мульт: 1 |
АТмега | Семейство AVR ATmega Микроконтроллеры серии ATmega328 | 20 МГц | 32 КБ | 2 КБ | 32 контакта | TQFP | 23 входа/выхода | I2C, SPI, USART | 1.8В | 5,5 В | АВР АТмега | ATmega328 | Каждый | — | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATMEGA328P-АНР |
68Т2934 |
8-битный микроконтроллер, низкое энергопотребление, высокая производительность, микроконтроллеры семейства AVR ATmega серии ATmega328, 20 МГц МИКРОЧИП |
Каждый (поставляется на отрезной ленте) |
Запрещенный предмет
Минимальный заказ 1 шт. Только кратные 1 Пожалуйста, введите действительное количество ДобавлятьМин: 1 Мульт: 1 |
АТмега | Семейство AVR ATmega Микроконтроллеры серии ATmega328 | 20 МГц | 32 КБ | 2 КБ | 32 контакта | TQFP | 23 входа/выхода | I2C, SPI, USART | 1.8В | 5,5 В | АВР АТмега | ATmega328 | Каждый | — | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATMEGA328PB-AU |
58Y6083 |
8-битный микроконтроллер, AVR ATmega, семейство микроконтроллеров серии ATmega328, 20 МГц, 32 КБ, 2 КБ, 32 контакта, TQFP МИКРОЧИП |
Каждый |
Запрещенный предмет
Минимальный заказ 1 шт. Только кратные 1 Пожалуйста, введите действительное количество ДобавлятьМин: 1 Мульт: 1 |
— | Семейство AVR ATmega Микроконтроллеры серии ATmega328 | 20 МГц | 32 КБ | 2 КБ | 32 контакта | TQFP | 27 входов/выходов | I2C, SPI, USART | 1.8В | 5,5 В | АВР АТмега | ATmega328 | — | — | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATMEGA328P-AUR |
87W8111 |
8-битный микроконтроллер, низкое энергопотребление, высокая производительность, микроконтроллеры семейства AVR ATmega серии ATmega328, 20 МГц МИКРОЧИП |
Каждый (поставляется на отрезной ленте) |
Запрещенный предмет
Минимальный заказ 1 шт. Только кратные 1 Пожалуйста, введите действительное количество ДобавлятьМин: 1 Мульт: 1 |
АТмега | Семейство AVR ATmega Микроконтроллеры серии ATmega328 | 20 МГц | 32 КБ | 2 КБ | 32 контакта | TQFP | 23 входа/выхода | I2C, SPI, USART | 1.8В | 5,5 В | АВР АТмега | ATmega328 | Разрезать ленту | — | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATMEGA328PB-МУ |
58Y6088 |
8-битный микроконтроллер, AVR ATmega, семейство микроконтроллеров серии ATmega328, 20 МГц, 32 КБ, 2 КБ, 32 контакта, VQFN МИКРОЧИП |
Каждый |
Запрещенный предмет
Минимальный заказ 1 шт. Только кратные 1 Пожалуйста, введите действительное количество ДобавлятьМин: 1 Мульт: 1 |
— | Семейство AVR ATmega Микроконтроллеры серии ATmega328 | 20 МГц | 32 КБ | 2 КБ | 32 контакта | ВКФН | 27 входов/выходов | I2C, SPI, USART | 1.8В | 5,5 В | АВР АТмега | ATmega328 | — | — | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATMEGA328PB-AN |
58Y6081 |
8-битный микроконтроллер, AVR ATmega, семейство микроконтроллеров серии ATmega328, 20 МГц, 32 КБ, 2 КБ, 32 контакта, TQFP МИКРОЧИП |
Каждый |
Запрещенный предмет
Минимальный заказ 1 шт. Только кратные 1 Пожалуйста, введите действительное количество ДобавлятьМин: 1 Мульт: 1 |
— | Семейство AVR ATmega Микроконтроллеры серии ATmega328 | 20 МГц | 32 КБ | 2 КБ | 32 контакта | TQFP | 27 входов/выходов | I2C, SPI, USART | 1.8В | 5,5 В | АВР АТмега | ATmega328 | — | — | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATMEGA328P-МУР |
50Ач4256 |
8-битный микроконтроллер, AVR ATmega, семейство микроконтроллеров серии ATmega328, 20 МГц, 32 КБ, 2 КБ, 32 контакта, MLF МИКРОЧИП |
Каждый (поставляется на отрезной ленте) Не подлежит отмене/возврату |
Запрещенный предмет
Минимальный заказ 1 шт. Только кратные 1 Пожалуйста, введите действительное количество ДобавлятьМин: 1 Мульт: 1 |
— | Семейство AVR ATmega Микроконтроллеры серии ATmega328 | 20 МГц | 32 КБ | 2 КБ | 32 контакта | мамаша | 23 входа/выхода | I2C, SPI, USART | 1.8В | 5,5 В | АВР АТмега | ATmega328 | — | — | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АТМЕГА328-МУ |
68Т2930 |
8-битный микроконтроллер, низкое энергопотребление, высокая производительность, микроконтроллеры семейства AVR ATmega серии ATmega328, 20 МГц МИКРОЧИП |
Каждый Не подлежит отмене/возврату |
Запрещенный предмет
Минимальный заказ 490 шт. Только кратные 490 Пожалуйста, введите действительное количество ДобавлятьМин.: 490 Мульт: 490 |
АТмега | Семейство AVR ATmega Микроконтроллеры серии ATmega328 | 20 МГц | 32 КБ | 2 КБ | 32 контакта | ВКФН | 23 входа/выхода | I2C, SPI, USART | 1.8В | 5,5 В | АВР АТмега | ATmega328 | Каждый | — |
Канда — Микроконтроллер Atmel ATmega16 AVR
ATMEL AVR ATmega16 — 40-контактная часть (DIP40)
CMOS RISC, микроконтроллер AVR ATmega16, внутрисистемное программирование с флэш-памятью, возможность перепрограммирования до 1000 раз.Особенности 32 рабочих регистра, выполнение за один такт
Доставка в Российскую Федерацию
Заказная авиапочта: 15,50 долларов США
Fedex Express: 39,00 долларов США
Код заказа
ATMEGA16
Цена: $5,48
В наличии
Сопутствующие товары
Подробная информация о продукте |
ATMEL AVR ATmega16 — 40-контактная часть (DIP40)
Один из новых микроконтроллеров AVR из линейки ATmega.
CMOS RISC, AVR ATmega16, 8-разрядный микроконтроллер, внутрисистемно программируемый с памятью флэш-кода, перепрограммируется до 1000 раз. Имеет 32 рабочих регистра, выполнение за один такт, что дает до 1 MIP/МГц.
Характеристики ATmega16
- 16 КБ внутрисистемно программируемой флэш-памяти
- 512 БАЙТ внутрисистемно программируемой EEPROM
- 1 Кбайт SRAM
- Аналоговый компаратор
- Сторожевой таймер
- СПИ
- 2 8-битных таймера плюс предварительный делитель
- 16-битный таймер с дополнительными функциями
- 4 ШИМ
- 8-канальный 10-разрядный АЦП
- УАПП
- СПИ
- 2-проводной байт-ориентированный последовательный интерфейс
- Режимы низкого энергопотребления и режима ожидания, внешние и внешние прерывания, выбор встроенного генератора
Программаторы и стартовые наборы
Kanda производит как стартовые комплекты, так и программаторы для микроконтроллеров AVR.Независимо от того, являетесь ли вы полным новичком, ищете недорогих программистов AVR или вам нужны программисты на местах или в производстве, у Kanda есть что-то для вас.Программаторы AVR
Учебные комплекты AVR
Информация для заказа
Информация для заказа | Код заказа: ATMEGA16 | Цена: 5,48$ |
Доставка в РФ: | Заказная авиапочта — 15$.50 | Экспресс-доставка Fedex — $39,00 |
Atmel AVR для начинающих — программирование Light Snakes и Air display
Atmel AVR для начинающих — программирование Light Snakes и Air display
Недавно я начал программировать микроконтроллеры Atmel AVR. Купил несколько штук ATmega и ATtiny.
Я создал простой программатор, подключенный по LPT. По сути это соединительный кабель, несколько резисторов
и питание 5В (с 7805 конечно).В качестве среды разработки и моделирования я использую AVR Studio, загруженную с Atmel, а для программирования я использую PonyProg.
Программирование осуществляется подключением сигналов MISO, MOSI, SCK и RESET к соответствующим контактам микропроцессора, а также подключением источника питания.
Первые эксперименты привели к легким змейкам с ATmega8, AVR с 28 контактами и 8кБ памяти. Я использую порт D, который
имеет все 8 контактов и остается свободным даже во время разработки.
В порту C отсутствует бит PC7, а PC6 используется как RESET, поэтому у него всего 6 свободных контактов.Порт B используется для программирования и кристалла для точной синхронизации, поэтому свободными остаются только 3 контакта.
После экспериментов со световыми змеями я пришел к воздушному световому шоу. это матричный дисплей
при механическом сканировании линейка светодиодов визуализирует текст или изображения в воздухе благодаря постоянству зрения человеческого глаза или камеры.
Сначала я попробовал параллельное сканирование, при котором все светодиоды могут гореть одновременно, но это не сработало. Следовательно
Я перенес последовательное сканирование, характерное тем, что всегда горит не более одного светодиода одновременно и таким образом
дисплей четкий (не создают горизонтальные линии, а точки).Еще одним преимуществом является использование одного резистора для всех светодиодов.
Схему программирования и разработки с ATmega8 AVR и подобными вы можете увидеть на диаграмме ниже.
Я также протестировал змей и воздушный дисплей с помощью небольшого 8-контактного ATtiny13, который имеет 1 КБ памяти и только 5 используемых контактов (порт B).
Выходы используются совместно с выводами программирования, поэтому во время программирования необходимо отключать светодиоды.
Сначала я делал это вручную, но потом нашел автоматический способ сделать это:
RESET будет регистрировать 0 во время программирования, поэтому NPN-транзистор закрывается и отключает светодиоды.В остальном все примерно так же
Как и в других AVR. Эту схему я мог бы использовать для отображения чисел с помощью 5 светодиодов разных цветов. Даже это
дисплей использует последовательное сканирование, при котором одновременно загорается только один светодиод.
Наконец я добрался до схемы ATmega32. Это большой 40-контактный микропроцессор со всеми четырьмя 8-контактными портами и памятью 32 КБ.
В качестве порта программирования используется только порт B. Вход RESET отдельный, не используется совместно с другими функциями. Эта схема
Я использовал для эфирного дисплея 16 светодиодов на портах C и D.Необходимо было отключить бит настройки JTAGEN, который связывал пины.
PC2…5 с альтернативными функциями. В этой схеме я использовал двойное последовательное сканирование. На каждом из двух портов всегда горит не более одного светодиода.
Каждый 8 светодиод имеет общий резистор. Помимо ручного сканирования (схема витала в воздухе), я пробовал прикрепить плату к двигателю и раскрутить ее.
для формирования пропеллерного дисплея. Я использовал двигатель от 8-сантиметрового ПК-вентилятора и механическую передачу мощности. Для этого мотора это была большая нагрузка и крутился он довольно медленно.В следующий раз планирую использовать более мощный двигатель и индуктивную передачу напряжения с помощью катушек. Схема программатора ATmega32 аналогична этой
ATmega8, но есть еще неиспользуемые контакты. Распиновку можно найти в даташите.
Программное обеспечение: Среду разработки AVR Studio скачать можно здесь .
Для записи программы в микропроцессор вам понадобится PonyProg, который вы можете скачать здесь .
В PonyProg нужно выставить правильный тип микропроцессора (сверху) и в настройках выбрать параллельный порт LPT1.Если у вас возникли проблемы с доступом к LPT с помощью PonyProg, вам поможет UserPort .
Как записать программу в AVR с помощью PonyProg Описываю здесь .
Ниже приведены некоторые из моих простых программ для загрузки в ASM. Примечание для профессионалов: они написаны грязно :).
Схема подключения ATmega8 для программирования и разработки. Используется весь порт D.
Схема подключения для программирования и разработки ATtiny13.В приложениях, где одновременно горит не более одного светодиода, можно использовать одно сопротивление.
Входы программирования и тестовые выходы имеют одни и те же контакты, поэтому во время программирования необходимо отключить светодиод. Первоначально
Я сделал это с помощью ручного переключателя, но позже заменил его транзистором NPN, который делает это автоматически.
Новый программатор в макетной плате с кабелем LPT и настенным адаптером.
Эксперименты с ATmega8-16PU
Первый успех с «воздушным показом».Отображение все еще не идеально 🙂
Теперь я добавил в макетную плату 8-контактный ATtiny13V-10PU с 5 светодиодами.
2 аэродинамических дисплея, работающих одновременно (независимо). Вверху ATmega8, внизу ATtiny13.
Улучшено отображение ATmegy8 (теперь одновременно горит только один светодиод).
Улыбка 🙂
ATtiny с синими и белыми светодиодами.
и с зелеными светодиодами
Моя коллекция микроконтроллеров (ATmege32-16PU, ATmega8-16PU, ATmega88-20PU и ATtiny13V-10PU)
И теперь я начинаю с ATmega32
Воздушные дисплеи с 16 светодиодами.
ATmega32 с 16 светодиодами на пропеллере
и в движении
Воздушный дисплей ATmega32 и 16 светодиодов | Светодиод RGB с ATtiny13
Воздушные змейки с ATmega8 и ATtiny13.
легкие качели с ATtiny13 | «падающие кирпичи» с ATmega8.
Некоторые программы для ATmega8 скачать:
Программа для отображения воздуха — DANYK.WZ.CZ (мой старый домен) и смайл1 светодиодная змейка
4 светодиодная змейка
7 светодиодная змейка
Падающие кирпичи
Бинарный счетчик
2 блохи, бегущие друг против друга
Световая змейка (1 горящий светодиод) с плавным движением (яркость с ШИМ-модуляцией)
Усовершенствованная плавная змейка с ШИМ, горит 3 светодиода
Для ATtiny13:
Воздушный дисплей с цифрами от 0 до 9Воздушный дисплей с цифрами 1-7, написано расточительно 🙂
Двоичный счетчик
Световая змейка
Световая качелька
Яркость ШИМ плавно переходящая от одного светодиода к другому — на ПБ3 и 4
и то же в в обе стороны
Радуга ШИМ для RGB LED
5 LED змейка
Улучшенная радуга PWM для RGB LED — светодиод на PB2,3,4
А для ATmega32:
Двухстрочный воздушный дисплей с 16 светодиодами на портах C и D, отображает то, что вы видите выше 🙂Внимание для лам:
При неправильном подключении можно повредить LPT-порт или весь ПК.
Следующая статья — Прерывания и двоичный счетчик
главная
avr-libc: AVR Libc
Последняя версия этого документа всегда доступна по адресу http://savannah.nongnu.org/projects/avr-libc/
.Пакет AVR Libc предоставляет подмножество стандартной библиотеки C для 8-битных RISC-микроконтроллеров Atmel AVR. Кроме того, библиотека предоставляет базовый код запуска, необходимый большинству приложений.
В этом документе содержится огромное количество информации, выходящей за рамки простого описания интерфейсов и подпрограмм, предоставляемых библиотекой.Мы надеемся, что в этом документе содержится достаточно информации, чтобы новый разработчик AVR быстро освоился с использованием свободно доступных инструментов разработки: binutils, gcc, avr-libc и многих других.
Если вы обнаружите, что столкнулись с проблемой, которую этот документ не полностью описывает, вы можете опубликовать сообщение в списке рассылки avr-gcc. Большинство разработчиков портов AVR binutils и gcc, а также разработчики avr-libc подписываются на этот список, так что вы, как правило, сможете решить свою проблему.Вы можете подписаться на список по адресу http://lists.nongnu.org/mailman/listinfo/avr-gcc-list. Прежде чем публиковать сообщения в списке, вы можете попробовать прочитать главу «Часто задаваемые вопросы» этого документа.
- Примечание
- Если вы считаете, что нашли ошибку или у вас есть предложение по улучшению либо в этой документации, либо в самой библиотеке, воспользуйтесь системой отслеживания ошибок по адресу https://savannah.nongnu.org/bugs. /?group=avr-libc, чтобы проблема не была забыта.
В целом, при внедрении этой библиотеки мы стремились как можно лучше придерживаться установленных стандартов.Обычно это относится к библиотеке C, как описано в стандарте ANSI X3.159-1989 и ISO/IEC 9899:1990 («ANSI-C»), а также в частях их преемника ISO/IEC 9899:1999 («C99 «). Некоторые дополнения были вдохновлены другими стандартами, такими как IEEE Std 1003.1-1988 («POSIX.1»), в то время как другие расширения являются чисто специфичными для AVR (например, весь строковый интерфейс программного пространства).
Если не указано иное, функции этой библиотеки , а не гарантированно являются повторно входящими. В частности, известно, что любые функции, которые хранят локальное состояние, не являются реентерабельными, а также функции, которые манипулируют регистрами ввода-вывода, такие как подпрограммы доступа к EEPROM.Если эти функции используются как в стандартном контексте, так и в контексте прерывания, результатом будет неопределенное поведение. См. FAQ для более подробного обсуждения.
Ниже приведен список устройств AVR, поддерживаемых в настоящее время библиотекой. Обратите внимание, что фактическая поддержка некоторых новых устройств зависит от способности компилятора/ассемблера поддерживать эти устройства во время компиляции библиотеки.
- Устройства megaAVR:
- atmega103
- atmega128
- atmega128a
- atmega1280
- atmega1281
- atmega1284
- atmega1284p
- atmega16
- atmega161
- atmega162
- atmega163
- атмега164а
- atmega164p
- atmega164pa
- atmega165
- атмега165а
- atmega165p
- atmega165pa
- atmega168
- атмега168а
- atmega168p
- atmega168pa
- атмега16а
- atmega2560
- atmega2561
- atmega32
- atmega32a
- atmega323
- atmega324a
- atmega324p
- atmega324pa
- atmega325
- атмега325а
- atmega325p
- atmega325pa
- atmega3250
- атмега3250а
- atmega3250p
- atmega3250pa
- atmega328
- atmega328p
- атмега48
- атмега48а
- atmega48pa
- atmega48pb
- atmega48p
- atmega64
- atmega64a
- atmega640
- atmega644
- atmega644a
- atmega644p
- atmega644pa
- atmega645
- атмега645а
- atmega645p
- atmega6450
- атмега6450а
- atmega6450p
- atmega8
- atmega8a
- atmega88
- atmega88a
- atmega88p
- atmega88pa
- atmega88pb
- atmega8515
- atmega8535
- Устройства tinyAVR:
- attiny4
- аттини5
- аттини10
- attiny11 [1]
- attiny12 [1]
- аттини13
- аттини13а
- attiny15 [1]
- аттини20
- аттини22
- аттини24
- аттини24а
- аттини25
- аттини26
- аттини261
- аттини261а
- attiny28 [1]
- аттини2313
- аттини2313а
- аттини40
- аттини4313
- аттини43у
- аттини44
- аттини44а
- аттини441
- аттини45
- аттини461
- аттини461а
- аттини48
- attiny828
- аттини84
- аттини84а
- attiny841
- аттини85
- attiny861
- attiny861a
- аттини87
- аттини88
- аттини1634
- Автомобильные AVR-устройства:
- atmega16m1
- atmega32c1
- atmega32m1
- atmega64c1
- atmega64m1
- аттини167
- ата5505
- ата5272
- ата5702м322
- ата5782
- ата5790
- ата5790н
- ата5831
- ата5795
- ата6612с
- ата6613с
- ата6614q
- ата6616с
- ата6617с
- ата664251
- Устройства CAN AVR:
- at90can32
- at90can64
- at90can128
- ЖК-устройства AVR:
- atmega169
- атмега169а
- atmega169p
- atmega169pa
- atmega329
- atmega329a
- atmega329p
- atmega329pa
- atmega3290
- atmega3290a
- atmega3290p
- atmega3290pa
- atmega649
- atmega649a
- atmega6490
- atmega6490a
- atmega6490p
- atmega649p
- Осветительные устройства AVR:
- at90pwm1
- at90pwm2
- at90pwm2b
- at90pwm216
- at90pwm3
- at90pwm3b
- at90pwm316
- at90pwm161
- at90pwm81
- Устройства Smart Battery AVR:
- atmega8hva
- атмега16хва
- атмега16хва2
- atmega16hvb
- atmega16hvbrevb
- atmega32hvb
- atmega32hvbrevb
- atmega64hve
- atmega64hve2
- атмега406
- USB-устройства AVR:
- at90usb82
- at90usb162
- at90usb646
- at90usb647
- at90usb1286
- at90usb1287
- atmega8u2
- atmega16u2
- atmega16u4
- atmega32u2
- atmega32u4
- atmega32u6
- Устройства XMEGA:
- atxmega8e5
- atxmega16a4
- atxmega16a4u
- atxmega16c4
- atxmega16d4
- atxmega32a4
- atxmega32a4u
- atxmega32c3
- atxmega32c4
- atxmega32d3
- atxmega32d4
- atxmega32e5
- atxmega64a1
- atxmega64a1u
- atxmega64a3
- atxmega64a3u
- atxmega64a4u
- atxmega64b1
- atxmega64b3
- atxmega64c3
- atxmega64d3
- atxmega64d4
- atxmega128a1
- atxmega128a1u
- atxmega128a3
- atxmega128a3u
- atxmega128a4u
- atxmega128b1
- atxmega128b3
- atxmega128c3
- atxmega128d3
- atxmega128d4
- atxmega192a3
- atxmega192a3u
- atxmega192c3
- atxmega192d3
- atxmega256a3
- atxmega256a3u
- atxmega256a3b
- atxmega256a3bu
- atxmega256c3
- atxmega256d3
- atxmega384c3
- atxmega384d3
- Беспроводные устройства AVR:
- atmega644rfr2
- atmega64rfr2
- атмега128рфа1
- атмега1284рфр2
- атмега128рфр2
- атмега2564рфр2
- атмега256рфр2
- Прочие устройства:
- at94K [2]
- at76c711 [3]
- at43usb320
- at43usb355
- ат86рф401
- at90scr100
- ата6285
- ата6286
- ата6289
- м3000 [4]
- Классические устройства AVR:
- at90s1200 [1]
- at90s2313
- at90s2323
- at90s2333
- at90s2343
- at90s4414
- at90s4433
- at90s4434
- at90s8515
- at90c8534
- at90s8535
- Примечание
- [1] Только сборка.Не существует прямой поддержки для программирования этих устройств на C, поскольку они не имеют стека на основе оперативной памяти. Тем не менее, их можно запрограммировать на C, см. FAQ для опции.
- Примечание
- [2] Устройства at94K представляют собой комбинацию микроконтроллера FPGA и AVR. [TRoth-2002/11/12: Не уверен в уровне их поддержки. Будет приветствоваться дополнительная информация.]
- Примечание
- [3] at76c711 — это микросхема моста USB-быстрого последовательного интерфейса, использующая ядро AVR.
- Примечание
- [4] m3000 — это контроллер двигателя AVR ASIC от Intelligent Motion Systems (IMS) / Schneider Electric.
avr-libc можно свободно использовать и распространять при соблюдении следующих условий лицензии.
Части avr-libc защищены авторским правом (c) 1999-2016. Вернер Бёльманн, Дин Камера, Питер Конради, Брайан Дин, Кит Гаджер, Воутер ван Гулик, Бьорн Хааз, Стейнар Хауген, Питер Янсен, Рейнхард Джессих, Магнус Йоханссон, Харальд Кипп, Карлос Ламас, Клифф Лоусон, Артур Липовски, Марек Михалкевич, Тодд С.Миллер, Рич Несволд, Колин О'Флинн, Боб Пэддок, Андрей Пащенко, Райнер Патоммель, Флорин-Виорел Петров, Александр Попов, Майкл Рикман, Теодор А. Рот, Юрген Шиллинг, Филип Соберг, Анатолий Соколов, Нильс Кристиан Стром, Майкл Штумпф, Стефан Свейнпол, Гельмут Вальнер, Эрик Б. Веддингтон, Йорг Вунш, Дмитрий Хмельков, Корпорация Атмел, egnite Software GmbH, Регенты Калифорнийского университета. Все права защищены. Распространение и использование в исходном и бинарном виде, с или без модификации разрешены при соблюдении следующих условий: * Распространение исходного кода должно сохранять указанные выше авторские права. обратите внимание, этот список условий и следующий отказ от ответственности.* Распространение в бинарной форме должно воспроизводить указанное выше авторское право уведомление, этот список условий и следующий отказ от ответственности в документации и/или других материалов, предоставленных вместе с распределение. * Ни имена правообладателей, ни имена участники могут быть использованы для поддержки или продвижения продуктов, полученных из этого программного обеспечения без специального предварительного письменного разрешения. ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ОБЛАДАТЕЛЯМИ АВТОРСКИХ ПРАВ И УЧАСТНИКАМИ "КАК ЕСТЬ" И ЛЮБЫЕ ЯВНЫЕ ИЛИ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ, ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ КОММЕРЧЕСКОЙ ПРИГОДНОСТИ И ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ ОТКАЗЫВАЮТСЯ.НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ ИЛИ УЧАСТНИКИ НЕ ДОЛЖНЫ БЫТЬ НЕСУТ ОТВЕТСТВЕННОСТЬ ЗА ЛЮБЫЕ ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, ОСОБЫЕ, ОБРАЗЦОВЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ (ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРИОБРЕТЕНИЕ ЗАМЕНЯЮЩИЕ ТОВАРЫ ИЛИ УСЛУГИ; ПОТЕРЯ ИСПОЛЬЗОВАНИЯ, ДАННЫХ ИЛИ ПРИБЫЛИ; ИЛИ БИЗНЕС ПРЕРЫВАНИЕ) ОДНАКО ВЫЗВАННАЯ И НА ЛЮБОЙ ТЕОРИИ ОТВЕТСТВЕННОСТИ, БУДУТ В ДОГОВОР, СТРОГАЯ ОТВЕТСТВЕННОСТЬ ИЛИ ДЕЛИКТ (ВКЛЮЧАЯ ХАЛАТНОСТЬ ИЛИ ИНОЕ) КАКИМ-ЛИБО ОБРАЗОМ ВОЗНИКАЮЩИЕ В РЕЗУЛЬТАТЕ ИСПОЛЬЗОВАНИЯ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ДАЖЕ ЕСЛИ УВЕДОМЛЕН О ВОЗМОЖНОСТЬ ТАКОГО ПОВРЕЖДЕНИЯ.
Разница между Arduino и ATmega328 AVR
Дата создания: 9 мая 2017 г.
Новички слышат об Arduino и ATmega328 AVR и могут не понять разницу или взаимосвязь между ними.
В этой статье объясняется разница между Arduino и ATmega328. Это также объясняет разницу между микроконтроллерами Arduino и AVR в целом и то, как микроконтроллеры ATmega328 и ATmega2560 связаны с платами Arduino Uno и Arduino MEGA.
Разница между Arduino и ATmega328 AVR
Короче говоря, ATmega328 — это микросхема микроконтроллера, установленная на платах Arduino Uno.Микроконтроллеры ATmega328 относятся к семейству 8-битных микроконтроллеров AVR. На изображении ниже показана микросхема микроконтроллера AVR ATmega328. Точный номер этой микросхемы — ATMEGA328P-PU, указанный на верхней части микросхемы.
Чип микроконтроллера ATmega328 AVRМикроконтроллер ATmega328 подключается к разъему Arduino Uno, как показано на рисунке ниже. Некоторые платы Arduino Uno имеют микросхему ATmega328 для поверхностного монтажа. В данном случае это небольшой квадратный чип, припаянный поверх Arduino.
Arduino Uno с микроконтроллером ATmega328 AVRЧто делает микроконтроллер
В Arduino микроконтроллер является основным компонентом, выполняющим всю работу. Когда скетч Arduino загружается в Arduino, он фактически загружается в память микросхемы микроконтроллера. Затем микроконтроллер запускает или выполняет скетч, когда Arduino включается или сбрасывается после программирования.
Производитель АРН
МикроконтроллерыAVR ранее производились компанией Atmel.Компания Atmel была выкуплена компанией Microchip, поэтому микроконтроллеры AVR больше не являются продуктом Atmel, а продуктом Microchip. То, что было микроконтроллером Atmel AVR ATmega328, теперь является микроконтроллером Microchip AVR ATmega328.
Разница между Arduino и ATmega2560 AVR
Микроконтроллер ATmega2560 — это микроконтроллер, установленный на платах Arduino MEGA 2560. Микроконтроллер ATmega2560 также относится к семейству 8-битных микроконтроллеров AVR. Он отличается от ATmega328 тем, что доступен только в корпусе для поверхностного монтажа, поэтому его нельзя вставлять и вынимать из разъема на Arduino.Он также имеет больше памяти, больше контактов и больше встроенных аппаратных периферийных устройств, чем ATmega328.
На изображении ниже показана плата Arduino MEGA 2560 с микросхемой микроконтроллера ATmega2560.
Arduino MEGA 2560 с микроконтроллером ATmega2560 AVRКниги, которые могут вас заинтересовать:
(PDF) Обзор микроконтроллеров ATmega AVR, используемых в научных исследованиях и промышленных приложениях
Согласно алгоритму RK4, заданному уравнениями (7) и
(8), оценивается последующая точка дискретной траектории численного решения
По формуле:
112
(2
(2
II
KK
+
= + ⋅ +
(6)
, где Ki
(для i
= 1
…
4 ) – коэффициенты аппроксимации производной
в различных точках траектории в интервале времени
[ti, ti+1], h – шаг интегрирования по времени.
Коэффициенты аппроксимации применяемого метода
определяются по формулам:
(7)
В табл. 1 приведено сравнение выходных данных численных и аналитических решений. Принимаются следующие параметры:
: шаг численного интегрирования по времени h = 0,001 и
начальные условия:
Наблюдаемая переменная представляет собой угловое смещение
маятника. Как можно заметить, оба графика идентичны
и перекрываются.Разницу между полученными значениями в обоих методах
иможно наблюдать с точностью до шестого десятичного знака. Данные серии
, использованные для построения графика, были получены от контроллера микро-
по протоколу связи 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. Чжан Д.Г., Донг Д.К., Пэн Х.Т., Исследования по разработке встроенной системы бесперебойного питания
для мобильных услуг на базе Интернета вещей, «Компьютеры и электротехника
», Vol.38, № 6, 2012, 1377–1387. DOI:
10.1016/j.compeleceng.2012.04.001.
4.
Kioumars A., Tang L., ATmega и XBee-Based Wire-
меньше Sensing, [in:] Proceedings of the 5
th
International
and Applications, Automation, Robotics Conference
6–8 декабря 2011 г., Веллингтон, Новая Зеландия. DOI: 10.1109/
ICARA.2011.6144908.
5.
Лу Ю., Лю Ю., Ли Г., Сун Г., Лю М., Лю В., Дизайн
и применение контроллера автоматической упаковочной машины
на базе ATmega 128, [in:] 2-я Международная конференция
по вычислительной технике и технике автоматизации
(ICCAE), 2010, Сингапур.
6.
Шах Дж., Моди Б., Сингх Р., Система управления беспроводной бытовой техникой
ces, Международная конференция
Electronics and Communication Systems (ICECS), 2014 г., Coim-
batore, Индия. ДОИ: 10.1109/ECS.2014.6892520.
7. Сямсяна И.Н., Путри Р.И., Генератор высоковольтных импульсов
конструкция с управлением напряжением для импульсного электрического поля (ИМП)
пастеризация, [в:] Международная конференция по электротехнике
Инженерия и информатика, 17–19 июля 2011, Бандунг,
Индонезия. DOI: 10.1109/ICEEI.2011.6021712.
8. Croitoru B., Tulbure A., Abrudean M., Microcontroller-
многоплатформенные процедуры генерации сигналов PWM
для промышленного использования, [in:] Международная конференция IEEE по
Автоматизация, качество и тестирование , Robotics, Клуж-Напока,
Румыния, 2014 г.DOI: 10.1109/AQTR.2014.6857891.
9.
Юэ С., Го С., Ли М., Ши Л., Проектирование электрической системы
сферического подводного робота (SUR-II), [в:] Материалы
Международной конференции IEEE по информации
и автоматизации, 2013, Иньчуань, Китай. DOI: 10.1109/
ICInfA.2013.6720479.
10.
Сибер А., Джонс Н., Стоун Б., Пайл Р., Косс Б., Сьоблом К.,
Встроенные системы ребризера Poseidon MK6, [in:]
7-й семинар по интеллектуальным решения во встроенных системах —
, Анкона, глава 3, Италия, 2009 г.DOI: 10.1007/978-
94-007-0638-5_3.
11.
Цзоу Дж.Т., Су К.Л., ЦоХ., Моделирование и реализация трехроторного летательного робота, Springer, «Artif Life
Robotics», Vol. 17, № 1, 2012, 86–91. DOI: 10.1007/
s10015-012-0028-2.
12.
Червински Э., Шевц М., Войтуник И., Аврейцевич Ю.,
Олейник П., Математическая модель, автоматизированное проектирование
и программирование многофункционального летучего объекта, Taylor & Francis
7 90 , Авиация, Том.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.
Kunikowski W., Awrejcewicz J., Olejnik P., Эффективность
ПИ-регулятора на базе ПЛК при стабилизации вращательного
движения под влиянием хаотических возмущений, [in: ] Dynamical
Systems – Applications, Eds.Й. Аврейцевич, М. Казмер-
чак, П. Олейник, Й. Мрозовски, Издательство Лодзинского технологического университета
, 2013, 173‒184.
15.
Аврейцевич Дж., Олейник П.