Программирование микроконтроллеров atmel (micro chip) — arduino+

Почему бы я не рекомендовал 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.

Источник: https://habr.com/post/147025/

Программирование микроконтроллеров AVR с Microchip PicKit2

Если вы, как и я, используете в своих конструкциях как микроконтроллеры PIC, так и чипы AVR, было бы удобно для программирования обеих линеек микросхем использовать один и тот же программатор.

Кстати, не так давно Microchip приобрела компанию Atmel и фактически сейчас  обе линейки выпускаются одной и той же компанией. Посему можно предположить окончание многолетнего холивара на тему что же лучше.

Оба типа контроллеров имеют свои недостатки и преимущества, но это тема для другой статьи или видеоролика. Случилось так что когда-то давно я, как и многие другие, начал знакомство с миром микроконтроллеров с какой-то конструкции на микроконтроллере PIC16F84.

Через много лет я купил свой первый фабричный программатор для контроллеров PIC. Это был фирменный (оригинальный) PicKit2, который я привез с международной конференции Microchip, которая проходила в Питере в 2009 году.

Оригинальный PicKit2.

Купил я его тогда на конференции с хорошей скидкой в 50 процентов. Сейчас можно купить клон такого программатора на Алиэкспресс очень дешево и он будет работать не хуже оригинального. Или, в крайнем случае сделать клон программатора самому, например как описано в этой статье.

  

Китайский клон PicKit2. Можно заказать здесь.

Нужно сказать, что программатор PicKit2 уже не поддерживается компанией Microchip (в плане обновления прошивки или управляющей программы) но это не мешает ему отлично работать и по сей день. Сейчас Microchip продвигает более новую версию — PicKit3, который внешне выглядит почти также как и вторая версия.

С третьим я пока не имел дела, для моих задач мне вполне хватает второго. Обычно если мне нужно запрограммировать микроконтроллер Pic я использую программатор PicKit2 с его родной программой PicKit2.

61, а если я хочу прошить, например, контроллер ATMega16, то делаю это через программатор USBAsp который можно купить в Китае за полтора доллара.
  

Китайский UsbAsp

Однако сейчас появилась возможность использовать для прошивки как PIC так и AVR один программатор — Microchip PicKit2 или его клон.  с использованием Бесплатной программы AVRDude, которая сейчас поддерживает PicKit2.

Несмотря на то, что AVRDude — это консольное приложение и в чистом виде требует от пользователя навыков работы с командной строкой, но сейчас есть очень хорошая программа — оболочка для AVRDude, которая называется   AVRDUDESHELL и позволяет очень удобно работать с AVRDude, не заморачиваясь с командной строкой.

Фактически, работая  в AVRDUDESHELL вы можете вообще не знать о существовании AVRDude. Скачать программу AVRDUDESHELL  можно здесь. Сама AVRDude уже входит в состав AVRDUDESHELL  и отдельно ее устанавливать не нужно.

Программатор PicKit2 имеет шестиконтактный разъем.

Для программирования микроконтроллеров PIC используются первые пять контактов. Шестой — дополнительный, при программировании пиков он не задействован.

Разъем программирования PicKit2.

Назначение выводов:VPP / MCLRVDD напряжение питания целевого устройстваVSS земляICSPDAT / PGDICSPCLK / PGCAUX
 

Для программирования контроллеров AVR нам потребуется сделать специальный шлейф и использовать все шесть контактов PicKit2. Шлейф делаем в соответствии с таблицей ниже:
   

Шлейф может выглядеть например так:

Для работы подключаем PicKit2, шлейфом соединяем его с программируемым устройством (или адаптером микроконтроллера с Zif панелькой), Запускаем AVRDUDESHELL и выбираем в списке программаторов нужный нам PicKit2. Загружаем файл прошивки и программируем контроллер. Всё предельно просто.

Читайте также:  Умная кружка на основе ардуино и светодиодов

Возможно вам потребуется USB драйвер программатора PicKit2. ВЫ можете скачать его по это ссылке. Он входит в состав родной программы Microchip PicKit2 V2.61. На сайте Microchip вы ее уже не найдете, но можете скачать здесь (см. ниже). Эта небольшая программка пригодится вам и для прошивки контроллеров PIC.
Загрузки:
   ПрограммаAVRDUDESHELL
   Программа Microchip PicKit2 V2.61 со встроенным USB драйвером
   
  

Источник: https://musbench.com/e_digital/avr_pickit2.html

Программирование микроконтроллеров фирмы Microchip

Изучение программирования я начал с контроллеров фирмы Microchip, мне они показались проще в освоении и интереснее. Я не собираюсь сейчас выяснять какие микроконтроллеры лучше, а какие хуже, потому что в этом нет никакого смысла и подобные разговоры заведомо обречены.

Разжигание «религиозных войн» вообще дело не благодарное, поэтому каждый должен решать для себя самостоятельно, что ему лучше.

От себя скажу, все контроллеры по-своему хороши и я не собираюсь останавливаться на одной единственной фирме, поэтому через некоторое время появятся заметки по программированию микроконтроллеров Atmel и Texas Instruments, а может и еще каких-нибудь.

Итак…. Для работы нам потребуется средство разработки, в которой мы будет писать программы для микроконтроллеров.

У каждой фирмы есть свой инструмент, сочетающий в себе функции разработки и отладки исходного кода, например, для программирования микроконтроллеров Microchip применяется специализированная программа MPLAB.

Последнюю версию установочного файла можно скачать на официальном сайте http://www.microchip.com.

Скачали? Запускаем инсталлятор.

Некоторое время он производит необходимые настройки, распаковывает нужные библиотеки, после чего появляется основное окно установки среды разработки MPLAB. Все выглядит довольно аскетично, без каких либо изысков и украшательств, да и к лучшему, ведь MPLAB можно без проблем установить на самый старый и медленный компьютер.

В этом окне нам говорят — «Добро пожаловать», бла, бла, бла… И приглашают установить сей замечательный программный продукт. Без лишнего промедления нажимаем кнопку «Next» (Далее).

Соглашаемся с лицензией и снова нажимаем «Next» (Далее). Помните анекдот про то, что у русских самая высокая скорость чтения в мире, потому что на прочтение всего лицензионного соглашения у них уходит меньше секунды?

MPLAB уже изначально грамотно собран и настроен так что забивать себе голову выбором, что нам может потребоваться, а что нет я не вижу смысла, так что снова жмем «Next» (Далее).

Каталог инсталяции уже выбран по умолчанию, поэтому менять его тоже нет смысла, если конечно вы не заядлый переустановщик Windows.

Но сразу оговорюсь, что некоторые компиляторы отказываются устанавливаться в каталоги отличные от тех что выбраны по умолчанию, либо устанавливаются, но потом проявляются самые невероятные глюки связанные с неправильным обращением к той или иной библиотеке. В MPLAB такого не выявлено, но чем черт не шутит… Жмем «Next» (Далее).

Очередная лицензия. Проявляем чудеса скорочтения и опять жмем «Next» (Далее).

И снова «Next» (Далее). 

В этом окне выводится конечная информация о каталоге установки, устанавливаемых модулях и прочее, прочее… Также жмем «Next» (Далее). 

Процесс установки довольно длительный и занимает в среднем от 5 до 15 минут (зависит от быстродействия вашего компьютера). В это время можно сходить, навести себе чай или кофе.

Установка проходит автоматически, сначала он распаковывает части архива, проверяет дисковое пространство, копирует файлы, регистрирует модули и т.д. Каких либо эксцессов не наблюдается… Ну разве что только этот.

В процессе инсталяции обнаружилось что установщик не ладит с программой Total Commander. Выяснить причину мне не удалось, да и фиг с ним, я не ленивый, могу и закрыть Total Commander на некоторое время.

Если у вас появилось подобное окно, устраняем причину конфликта и жмем «Retry» (Повторить).

Чаще всего вместе с дистрибутивом MPLAB поставляется облегченная версия Hi-tech PICC компилятора, предназначенная больше для ознакомления, чем для написания чего либо, так как обрезана по самое не балуйся и поддерживает только пару самых старых микроконтроллеров. Так что я всегда нажимаю «Нет».

На этом установка закончена, жмем «Finish» (Финиш) и можно приступать к работе.

Последнее окно, которое отделяет нас от программы. В принципе оно несет ознакомительную информацию и нам оно не интересно, закрываем его.

Ура, все поставили. Можно приступать? Пока еще нет.

К сожалению, в MPLAB по умолчанию, программы можно писать только на языке Ассемблер. Ассемблер это конечно сильный язык и для микроконтроллеров он является родным, но писать на нем очень сложно, а для начинающего практически невозможно. Мы будем писать на языке более высоко уровня – Си.

Си более понятен рядовому пользователю, да к тому же программа, написанная на Си жестко не привязана к конкретному микроконтроллеру и спокойно переносится на другие. Поэтому кроме MPLAB нам потребуется компилятор Hi-tech C Compiller, который встраивается в основную среду разработки и функционирует с ней как одно целое.

Фирма Хайтек производит компиляторы для широкого круга микроконтроллеров так что на официальном сайте  http://www.htsoft.co, вы можете найти программы не только для Microchip, но и для Atmel, Texas Instruments и многих других.

Демо-версию последнего компилятора можно скачать на все том же официальном сайте или же воспользовавшись помощью великого Гугла найти полноценную версию без каких либо ограничений.

Выкладывать здесь взломанную версию я не стану по известным причинам, скажу лишь что: компиляторы бывают трех видов (Lite, STD и PRO) — брать лучше STD так как эта версия сочетает в себе все необходимые функции и код получаемый на выходе более оптимизирован чем у остальных версий; для каждого семейства необходим свой компилятор (Hi-tech PICC Compiler — для 8-ми битных микроконтроллеров до PIC16 включительно, Hi-tech PICC18 Compiler — для 8-ми битных микроконтроллеров PIC18, Hi-tech dsPICC Compiler — для 16-ти битных PIC24 и производительных сигнальных контроллеров dsPIC30 и dsPIC33, Hi-tech PICC32 Compiler — для 32-х битных монстров PIC32).

Как устанавливать компиляторы фирмы Hi-tech я покажу на примере Hi-tech PICC Compiler STD 9.60. Скачали? Отлично, значит поехали дальше. Запускаем инсталятор.

Первое диалоговое окно информирует нас о начале установки компилятора PICC версии стандарт. Здесь мы ничего не выбираем, а просто нажимаем «Next» (Далее).

Компиляторы Hi-tech жутко дорогие, поэтому воспользуемся пока демонстрационной версией, 45 дней более чем достаточно для изучения всех возможностей данного компилятора. Ставим галочку «Off-line», чтобы наша программа не лезла в интернет и не портила нам установку демоверсии и нажимаем «Next» (Далее).

Проверяем установлена ли галочка «User manual» и нажимаем «Next» (Далее). Мануал вещь полезная и всегда может выручить в трудную минуту, тем более что с помощью у Hi-tech откровенно слабовато, а в этом руководстве описаны все директивы и функции компилятора.

Здесь ничего выбирать не надо, русского языка там все равно нет. Снова жмем «Next» (Далее).

Допиваем кофе и пока идет копирование файлов бежим на кухню за новой порцией напитка.

По возвращении с гордостью наблюдаем вот такое окно. Нажимаем «Finish» и облегченно вздыхаем. Вот в принципе и все что я хотел рассказать в данной статье. В переди у нас еще целых 45 дней спокойного программирования.

Источник: http://anubis-system.ucoz.com/publ/programmirovanie_mikrokontrollerov/programmirovanie_pic_mikrokontrollerov/programmirovanie_mikrokontrollerov_firmy_microchip/9-1-0-1

На новый уровень с микроконтроллерами PICMicro и Atmel AVR

Ни один мало-мальски стоящий обзор современных микроконтроллеров нельзя назвать полноценным без упоминания семейств PICMicro от компании Microchip и AVR от Atmel.

Как в тех, так и в других устройствах встроенный языковый интерпретатор отсутствует, и поэтому они программируются при помощи специального аппаратного модуля и определенного пакета программного обеспечения (подробнее см.

в подразделе «Микроконтроллер — персональному компьютеру: «Пожалуйста, помоги!»).

Такой подход к программированию имеет одно важное преимущество: пользователь может практически свободно выбирать из ряда разных языков программирования и пакетов для разработки ПО.

Это очень удобно, если человек уже разобрался в особенностях какого-то конкретного языка программирования и чувствует себя комфортнее при работе с ним — тогда ему не понадобится изучать другой язык при смене микроконтроллера, однако такой метод гораздо более труден для дилетантов.

Мы не рекомендуем идти по такому пути новичкам и не знакомым с основами программирования читателям. Креме всего прочего, е зависимости от конкретного микроконтроллера, могут понадобиться те или иные дополнительные схемные элементы, чтэбы запустить его. Так, очень, часто к микросхеме контроллера подключает кеарцевый генератор, несколько конденсаторов и стабилизатор напряжения.

Если же вы решили начать с распространенных микроконтроллеров, PICMicro и AVR, то лучше сразу же приобрести отладочный модуль, на котором уже есть все, что может понадобиться для комфортной гябсты с устройством: сам микроконтроллер, модуль для прогреммирозания (программатор), необходимое ПО и кабели для соединения платы с компьютером.

Такие макеты продают не только сами производители, но и многие мелкие продавцы электроники, включая интернет-магазины. Благодаря такому подходу разобраться в функциях микроконтроллера, имея на руках отладочную плату, значительно легче. Более подробно узнать о двух указанных выше семействах микроконтроллеров можно по Web-адресам их производителей.

Поскольку сами Microchip и Atmel не занимаются розничной продажей своих микросхем конечным покупателям, на сайтах можно найти достаточно подробную информацию о дистрибьюторах в разных регионах мира. Кроме того, там, естественно, содержится море спецификаций, инструкций по применению и даже примеров готовых схем, собранных на выпускаемых микроконтроллерах.

• PICMicro: microchip.com, microchip.ru

• AVR: www. atmel. com (www. atmel.. ru)

Если у вас уже давно был микроконтроллер BASIC Stamp и программный редактор, проверьте версию своего программного обеспечения. В том случае, если оно устарело, желательно заменить его более новым, всегда доступным на сайте производителя (компании Parallax). В более новых версиях ПО нередко появляются новые функции, которые определенно покажутся очень удобными.

Знакомство с семейством OOPic

Микроконтроллер OOPic (произносится «оу-пик») — относительно новый член сообщества процессоров для начинающих радиолюбителей. Но даже при этом он быстро завоевывает популярность. В микроконтроллере OOPic используется принципиально другой метод программирования — с использованием объектов.

Основная идея этого подхода к программированию заключается в использовании отдельных объектов, а не обычных функций и процедур, для описания которых нужно создать множество строк кода.

Благодаря новой структуре программы многие экспериментаторы для решения некоторых специфических задач предпочитают использовать именно такие микроконтроллеры; к числу этих задач относятся: управление двигателями или чтение положений электронных ключей.

При использовании объектно-ориентированного программирования (ООП) (По-английски: Object-oriented programming— отсюда и название микроконтроллера OOPic. — Примеч. ред.) отпадает необходимость отдельно описывать каждую задачу несколькими строками кода. В результате часто можно сэкономить уйму времени на написание программы.

В микроконтроллере OOPic инженерам удалось встроить эту функциональность в полупроводниковый кристалл, который и составляет мозг микросхемы. В результате достаточно указать микроконтроллеру OOPic, к какому устройству он присоединен, и запрограммировать его, после чего система начнет функционировать полностью самостоятельно, управляя подключенным исполнительным элементом.

Такой подход, в принципе, не нов для знакомых с программированием специалистов, но в свое время являлся уникальным в мире микроконтроллеров. Скорее всего, от вас потребуется какое-то время на освоение этого нового метода программирования, но, ознакомившись с его структурой, вы сэкономите массу времени при решении рутинных задач. Подробнее познакомиться с OOPic можно на сайте www.oopic.com.

«Все включено», или Весь мир на кристалле

Как и BASIC Stamp, микроконтроллеры OOPic имеют несколько разных версий. Можно купить его как в составе отладочного модуля (рис. 13.6), так и отдельно, в виде 24-выводной платы, как в Basic Stamp 2.

На отладочной плате присутствует пищалка, несколько переключателей и светодиодов, которые работают в качестве индикаторов, а также море разных разъемов и контактов для подключения периферийных компонентов.

Правильный язык программирования

Программную оболочку для микроконтроллеров OOPic можно настроить таким образом, чтобы использовать любой из трех наиболее популярных языков программирования: Бейсик, Си или Java. Сам пакет ПО можно бесплатно скачать с сайта www.oopic.com.

Кроме всего, не стоит забывать, что сам сайт время от времени обновляется, и там можно найти новые функциональные улучшения.

Знакомимся с Basic Stamp 2

А теперь самое время взглянуть поближе на один из описанных выше микроконтроллеров — а именно BASIC Stamp 2, чтобы попробовать собрать на его основе парочку простых электронных проектов.

Хочется напомнить, что настоящая мощь микроконтроллера лежит вне пределов нашей книги для начинающих в электронике, но даже эти простенькие задачи явно вскроют размах и великолепие, которые скрываются под пластмассой одной из этих крошек.

После того как вы ознакомитесь с этими простыми примерами, в главе 15 вы сможете найти настоящий проект на основе того же BASIC Stamp 2 — вам предстоит самому построить робота!

Читайте также:  Сравнение микроконтроллеров arduino и stm32

Этап 1: разработка схемы

Хотя микроконтроллер BASIC Stamp сам по себе и является вполне самодостаточным, к нему все равно нужно как-то подключать другие узлы схемы, которые разработчик хочет увидеть в своем устройстве.

Предположим, что радиолюбитель желает, чтобы микроконтроллер управлял индикацией при помощи светоизлучающего диода. Такая схема, хоть она и предельно проста, отлично справляется с демонстрационной функцией — во-первых, для нее требуется всего лишь два внешних компонента (резистор и сам светодиод), а во-вторых, всегда можно сразу сказать, работает схема или нет.

Давайте взглянем на рис. 13.7; на нем изображена принципиальная схема нашего демонстрационного стенда. Для того чтобы собрать такую простую схему, достаточно присоединить к выводу микроконтроллера резистор и светодиод, что и показано на рисунке.

Если под рукой имеется отладочная плата с полем для беспаечного монтажа, наподобие той, что была изображена на рис. 13.5 (учебная плата), то собрать предлагаемое устройство становится еще легче.

Кроме того, отладочная плата обеспечит еще и удобный способ подключения микроконтроллера BASIC Stamp к персональному компьютеру посредством последовательного или универсального портов, да еще и стабилизированное питание.

Ну, и, наконец, на плате все выводы микроконтроллера пронумерованы методом трафаретной печати и выведены на разъемы; так, вывод 0 ввода-вывода можно найти на разъеме рядом с полем для беспаечного монтажа под надписью Р0.

Отладочная плата с подключенным светодиодом изображена на фотографии на рис. 13.8.

Этап 2: программирование микроконтроллера

Как только демонстрационная схема собрана, все готово к программированию микроконтроллера BASIC Stamp. Мы будем исходить из того, что необходимое программное обеспечение для написания программы и программирования как такового уже установлено на вашем ПК, поэтому сразу начнем с места в карьер. (Если же еще не все готово, то мы никуда не спешим и можем подождать…)

Готово? Тогда откройте редактор программ и наберите в нем приведенную ниже коротенькую программку. Как только закончите с ней, сравните окно редактора с рис. 13.9.

Теперь распишем подробно, что же делает программа — шаг за шагом.

> Строка 1. Программа сообщает редактору о типе используемого микроконтроллера BASIC Stamp. В данном случае это BASIC Stamp 2, что и зафиксировано в строке кода {$STAMP BS2}.

> Строка 2. Этот операнд называется меткой (label). Он используется здесь и в конце программы для образования бесконечного цикла

> Строка 3. Операнд HIGH о переводит вывод 0 микроконтроллера в состояние с высоким уровнем напряжения. Вследствие того, что светодиод подключен именно к этому выводу, он зажигается.

> Строка 4. Команда PAUSE 250 предписывает микроконтроллеру ждать в течение интервала 250 мс. Как вы помните, 1 миллисекунда — это одна тысячная секунды, следовательно, 250 миллисекунд составляет 250/1000 или четверть секунды.

> Строка 5. LOW 0 переводит вывод 0 микроконтроллера в состояние с низким уровнем сигнала, светодиод выключается.

> Строка 6. Следующая команда PAUSE 250 снова заставляет микроконтроллер подождать 250 миллисекунд.

> Строка 7. Операнд GOTO с аргументом loop предписывает микроконтроллеру BASIC Stamp перейти к метке под соответствующим названием (loop) в тексте программы. Именно эта команда заставляет программу снова и снова возвращаться по циклу, и так до тех пор, пока никто не перепрограммирует микроконтроллер другой программой.



Источник: https://infopedia.su/16×11000.html

MICROCHIP (ATMEL) | Transfer Multisort Elektronik — электронные детали

Microchip Technology Inc. является ведущим производителем микроконтроллеров (PIC, AVR, SAM, 8051), памяти (EEPROM, EERAM, FLASH, SRAM), аналоговых микросхем, дискретных элементов и схем „mixed-signal”. Компания предлагает также микросхемы и модули беспроводной связи (MiWi, ZigBee, LoRa, SIGFOX, Bluetooth, WiFi).

Компания Microchip была создана в 1989 году, а ее головной офис находится в г. Чандлер в США. Microchip обеспечивает широкую гамму продукции, благодаря чему делает возможным создание любых приложений при минимизации времени проектирования и уменьшение конечных затрат.

Компания предоставляет различные инструменты для разработки, а также техническую поддержку.

Постоянно расширяется ассортимент предлагаемой продукции, – как за счет развития собственных линий, так и приобретения других компаний, в том числе Silicon Storage Technology (SST), Supertex, Micrel или Atmel.

Микроконтроллеры

В ассортименте Microchip имеется несколько тысяч микроконтроллеров различного типа. Начиная от самых простых 8-разрядных, через 32-разрядные микроконтроллеры с архитектурой ARM/MIPS32, вплоть до передовых микросхем DSP.

Имеются микросхемы в различных вариантах корпусов и для различных диапазонов рабочих температур. Они могут обладать развитой и разнообразной периферией, в том числе и периферией независимой от ядра (CORE INDEPENDENT PERIPHERALS-CIP) и многочисленными интерфейсами связи (в том числе CAN, Ethernet, USB, RF).

Microchip предлагает поддержку в виде многочисленных стартовых и демонстрационных наборов, программаторов и отладчиков (PICKit, MPLAB), как и среду программирования MPLAB X, компиляторы C/C++, предназначенные для конкретных семейств микроконтроллеров, а также библиотеки.

Наиболее важные семейства:

  • архитектура 8051 (AT89),
  • 8-разрядные PIC и AVR (PIC10, PIC12, PIC16, PIC18, tinyAVR и megaAVR),
  • 16-разрядные PIC24, XMEGA и dsPIC30/dsPIC33 с ядром DSP,
  • 32-разрядные PIC32 и AVR UC3 (UC3),
  • с ядром ARM7, ARM9, Cotex-A, Cortex-M.

Память

Microchip предлагает широкую гамму последовательной энергонезависимой памяти (Serial EEPROM, Serial Flash), параллельной энергонезависимой памяти (Parrallel Flash), последовательной памяти SRAM (Serial SRAM) и NVSRAM.

Аналогово-цифровые преобразователи

Microchip специализируется на производстве аналогово-цифровых преобразователей (АЦП), цифро-аналоговых преобразователей (ЦАП) и цифровых потенциометров. Это решения с низким энергопотреблением и с разрешением 8, 10 или 12 разрядов. Имеются версии с интерфейсом I2C либо SPI, с энергонезависимой памятью и внутренним источником опорного напряжения.

Линейные микросхемы

Среди линейных микросхем компании Microchip доминируют решения для промышленности, а также предназначенные для медицинского, бытового и автомобильного применения, в т. ч. операционные усилители и компараторы.

Интерфейсы

Микросхемы Microchip позволяют применять решения, ограничивающие затраты при сохранении высокой функциональности и устойчивости к помехам встречающимся в промышленных условиях, в т. ч. микросхемы CAN, Ethernet, LIN, последовательной передачи данных и USB.

Драйверы и решения Power Managment

Эти микросхемы предназначены для управления питанием с целью эффективного управления и экономии электроэнергии. Предлагаются регуляторы напряжения, контроллеры батарей, транзисторы PowerMOSFET и драйверы PowerMOSFET, контроллеры двигателей и ШИМ (в том числе для вентиляторов) и микросхемы датчиков приближения и касания (HMI).

Модули связи

Компания Microchip является одним из лидеров в области беспроводной передачи данных. В ассортименте имеются модули Wifi и Bluetooth, однако, внедрены также технологии LoRa, MiWi, ZigBee, Sigox и другие.

Источник: https://www.tme.eu/ru/linecard/p/1235,microchip-atmel.html

Макетирование и программирование ATmega328P и ATtiny45 в Atmel Studio 7

В данной статье мы соберем схемы для программирования двух разных микроконтроллеров Atmel и обсудим необходимые настройки программного обеспечения.

В данной статье будет описано построение двух очень похожих схем: одна для программирования ATmega328P, другая для программирования ATtiny45. В статье приведены полные схемы программирования, а также подробные фотографии макетов на беспаечных макетных платах. Кроме того, также приведено введение в интегрированную среду разработки Atmel Studio 7.

Во-первых, аппаратное обеспечение

ATmega328P – это 28-контактный микроконтроллер от Atmel, один из линейки AVR. Вероятно, он наиболее известен, как наиболее часто используемый микроконтроллер в отладочных платах Arduino, но AT328P способен на гораздо большее, чем то, насколько он используется в Arduino. Если вы хотите увидеть некоторые доказательства этого утверждения, посмотрите на 660-страничное техническое описание.

ATtiny45 – 8-выводный микроконтроллер, который может считаться «младшим братом» ATmega328P. Он обладает многими из тех же функций, но у него не так много контактов ввода/вывода.

Для программирования ATmega328P и ATtiny45 используется последовательный периферийный интерфейс SPI; это трехпроводная (плюс общий провод) шина, состоящая из сигналов «Выход ведущего, вход ведомого» (Master Out, Slave In – MOSI), «Вход ведущего, выход ведомого» (Master In, Slave Out – MISO) и «Тактовый сигнал» (Serial Clock – SCK). Тактовый сигнал генерируется ведущим устройством (мастером) и используется для обеспечения синхронной связи между ведущим и ведомым (или ведомыми); поэтому SPI является «синхронной» шиной связи.

Схемы программирования

Схемы программирования показаны ниже. Обратите внимание, что резистор R2 и LED1 не требуются для программирования, но включены в схемы для тестирования, что будет описано ниже.

Схема программирования ATmega328P с помощью AVR Pocket программатораСхема программирования ATtiny45 с помощью AVR Pocket программатора

Выбор программатора

Доступно несколько программаторов, работающих с ATmega328P и ATtiny45; Atmel-ICE находится в верхней части списка, является прекрасным программатором и будет рассмотрен в следующей статье.

Пока что у нас есть менее дорогостоящие варианты, и скупым автором статьи использовался программатор Sparkfun AVR Pocket Programmer. Если вы предпочитаете что-то другое, не стесняйтесь выбирать тот, который соответствует вашим предпочтениям и вашему кошельку.

Просто убедитесь, что он использует SPI интерфейс, как описано выше, и будьте готовы внести соответствующие изменения в информацию в этой статье.

ВНИМАНИЕ! Обязательно загрузите и установите на компьютер соответствующий драйвер для AVR Pocket Programmer, прежде чем подключать программатор в первый раз. Если Windows будет разрешено установить неправильный драйвер, то это будет сложно исправить. Инструкции для получения драйвера AVR Pocket Programmer приведены ниже.

AVR Pocket Programmer поставляется с шлейфовым кабелем, который должен быть подключен к микроконтроллеру Atmel.

Он оснащен тремя разъемами: разъем 2×5 (мама), который вставляется в штырьковый разъем на AVR Pocket Programmer, еще один разъем 2×5 (мама) ниже на кабеле примерно через 23 см (в данной статье не используется), плюс разъем 2×3 (мама) на другом конце кабеля. Распиновка разъемов показана ниже.

Распиновка разъемов на кабеле программатора AVR Pocket Programmer

Сборки схем программирования на макетных платах

На следующих фотографиях показаны сборки схем программирования ATmega328P и ATtiny45 на беспаечных макетных платах. Шесть коротких перемычек используются для подключения необходимых проводов от разъема 2×3 (мама) к соответствующим контактам микроконтроллера на макете. Обратите внимание, что цвета проводов на фотографиях соответствуют обозначениям на схемах.

Схема программирования ATmega328P с помощью AVR Pocket программатораСхема программирования ATtiny45 с помощью AVR Pocket программатора

Список комплектующих

Кроме нескольких перемычек, для сборки схемы программирования понадобятся следующие комплектующие.

Перечень элементов

Обозначение элементаОписание
U1 Микросхема, ATmega328P-PU, флеш 32 КБ, DIP-28, 1,8–5,5 В
U1 Микросхема, ATtiny45-PU, флеш 4 КБ, DIP-8, 2,7–5,5 В
R1 Резистор, 10 кОм, 0,25 Вт
R2 Резистор, 470 Ом, 0,25 Вт
LED1 Светодиод, T1 3/4, желтый
C1 Конденсатор керамический, 0,1 мкФ, 50 В
нет Программатор, AVR Pocket, PGM-09825
нет Макетная плата, беспаечная, 400 контактов

А теперь программное обеспечение

Драйвер программатора AVR Pocket

Драйвер Windows для программатора AVR Pocket – тот же, что используется программатором Adafruit USBTiny. Перейдите на страницу Adafruit и нажмите на ссылку для подписанного драйвера USBtinyISP, созданного с помощью libusb v1.

12. Это позволит вам загрузить zip-файл, содержащий два файла installer.exe: один для 32-разрядных систем, второй для 64-разрядных. Дважды кликните по тому, что подходит для вашего компьютера с ОС Windows, и драйвер будет установлен.

Только после установки правильного драйвера Windows вы можете в первый раз подключить программатор AVR Pocket к компьютеру. Вам понадобится кабель USB-A на miniUSB-B.

Когда вы подключитесь, загорится синий светодиод PWR и красный светодиод Stat1; два синих светодиода могут также загореться и/или замигать. Windows попытается найти драйвер, при необходимости, вы должны указать Windows расположение правильного драйвера.

После правильной установки программатор AVR Pocket появится в диспетчере устройств в устройствах libusb-winXX как «USBtiny»; он не будет перечисляться как COM-порт. Смотрите скриншот ниже:

Программатор AVR Pocket в диспетчере устройств Windows

Atmel Studio 7

Как и многие фирмы-разработчики микроконтроллеров, Atmel имеет собственную интегрированную среду разработки (IDE), которая работает с их аппаратными предложениями: Atmel Studio 7.

Хотя это не единственный способ программирования микроконтроллеров Atmel, но это наиболее полнофункциональный способ для Windows 7, 8 и 10 (и для 32-х, и для 64-х разрядных вервий); к сожалению, она не может использоваться с операционными системами Linux и Mac.

Читайте также:  Самый полный каталог всех профессий будущего - arduino+

Количество опций в Atmel Studio 7 может показаться для нового пользователя огромным. Таким образом, поэтапный подход, представленный в данной статье, значительно упростит процесс знакомства. Начните с загрузки и установки IDE на ваш компьютер. Руководство пользователя Studio 7 и большое количество дополнительной информации также доступны для загрузки.

В Studio 7 включена поддержка нескольких аппаратных программаторов, но точный выбор зависит от того, какой микроконтроллер Atmel вы собираетесь использовать. На скриншоте ниже справа перечислены программаторы, поддерживающие ATmega328P.

Программаторы, поддерживающие ATmega328P

Как вы можете видеть, программатор AVR Pocket отсутствует в списке. Однако его всё еще можно использовать с Studio 7 с помощью программного обеспечения под названием AVRDude.

AVRDude

AVRDude – это утилита командной строки, которая используется для скачивания и загрузки данных с микроконтроллеров Atmel. Существуют версии, доступные и на Linux, и на Windows. На момент написания статьи последняя доступная версия – 6.3; ее можно скачать здесь. Пользователи Windows должны скачать avrdude-6.

3-mingw32-zip (нажатие на ссылку запустит скачивание zip-файла!), распаковать файлы и установить AVRDude. Обратите внимание, что установка программы в корневой каталог диска необязательна, но упростит ее использование с Atmel Studio 7. Если доступна версия, более новая, чем 6.3, то вы можете установить ее по своему усмотрению.

Руководство пользователя AVRDude доступно здесь.

Чтобы проверить правильность установки и работы AVRDude, выполните следующие действия:

  1. нажмите кнопку «Пуск» Windows;
  2. в поле поиска введите cmd и нажмите Enter. Откроется окно командной строки DOS;
  3. в командной строке перейдите в каталог, в котором установили AVRDude;
  4. введите avrdude -c USBtiny и нажмите Enter. Если всё хорошо, AVRDude вернет список поддерживаемых устройств Atmel.

Смотрите скриншот ниже для примера процедуры. Обратите внимание, что скриншот был усечен и отображает только часть списка поддерживаемых устройств Atmel.

Список поддерживаемых устройств

Собираем всё вместе

Предположим, что программатор подключен к AVR на вашей макетной плате, как было описано выше, и вы почти готовы запрограммировать ваш AVR микроконтроллер. Для примера воспользуемся простым примером мигания светодиодом.

//New Blink.c #define F_CPU 1000000UL #include #include int main(void) { DDRB |= 0b00000001; while (1) { PORTB = 0b00000001; _delay_ms(500); PORTB = 0b00000000; _delay_ms(500); } return 0; }

Теперь следуйте следующим инструкциям:

  1. Запустите Atmel Studio 7.
  2. В стартовом окне слева нажмите New Project. Откроется окно нового проекта.Стартовое окно Atmel Studio 7
  3. В окне нового проекта нажмите GCC C Executable Project, назовите проект New Blink, как показано выше, и нажмите OK. Откроется окно выбора устройства Device Selection.Окно выбора устройства Device Selection
  4. В окне выбора устройства выберите AVR устройство, которое вы используете: ATmega328P или ATtiny45, как показано ниже. Нажмите OK. Будет создан новый проект, и будет открыто окно проекта New Blink.Окно проекта New Blink
  5. Нажмите на меню Tools, выберите External Tools…, и нажмите кнопку Add.
  6. В поле Title введите название инструмента, которой создаете; хорошо, если название описывает устройство. Например, вы можете ввести комбинацию названия программатора и названия устройства.
  7. В поле Comand введите путь к месту, куда установили AVRDude, плюс команду для запуска AVRDude.
  8. В поле Arguments введите одну из двух следующих строк, в зависимости от AVR контроллера, который используете.
    Для ATmega328P введите:-c usbtiny -p m328p -v -U flash:w:$(TargetDir)$(TargetName).hex:iДля ATtiny45 введите:-c usbtiny -p t45 -v -U flash:w:$(TargetDir)$(TargetName).hex:i
  9. В поле Initial directory введите путь к месту, куда установили AVRDude.
  10. Убедитесь, что поставлена галочка Use Output window, а в двух других чекбоксах галочки не стоят. Состояние окна должно быть похоже на скриншот ниже, но с учетом AVR контроллера, который вы используете.Окно добавления внешнего инструмента
  11. Нажмите Apply, а затем OK. Окно внешних инструментов должно закрыться.
  12. Скопируйте код программы, приведенный выше.
  13. Перейдите к окну New Blink.c в окне Atmel Studio 7 и вставьте в него код, приведенный выше.Код программы
  14. Если в правом верхнем углу Atmel Studio 7 не открыто окно менеджера проекта Solution Explorer, нажмите на выпадающее меню View и нажмите Solution Explorer. В правом верхнем углу должно появиться окно Solution Explorer.
  15. Кликните правой кнопкой на main.c и выберите «переименовать». Переименуйте файл main.c в New Blink.c.
  16. Нажмите на меню File и нажмите Save All.
  17. Нажмите на меню Build и нажмите Build Solution (собрать проект).
  18. Нажмите на меню Tools (инструменты) и нажмите на название инструмента, созданного в шагах с 5 по 11. Скомпилированный код New Blink должен будет быть загруже в AVR контроллер на вашей макетной плате, а светодиод LED1 должен начать мигать: ½ секунды включен, ½ секунды выключен, 60 раз в минуту.

Начало

По общему мнению, это был долгий процесс для простого мигания светодиода, но на самом деле вы успешно устранили четыре основных препятствия: создание аппаратной платформы для программирования микроконтроллеров AVR, установка интегрированной среды разработки Atmel Studio 7, интеграция внешней программы AVRDude и определение инструмента программирования для AVR микроконтроллера по вашему выбору. Будьте уверены, что в будущих проектах на AVR микроконтроллерах вам станет легче, что намного веселее.

Оригинал статьи:

Источник: https://radioprog.ru/post/286

Восьмиразрядные RISC микроконтроллеры ATMEL и MICROCHIP: два подхода. — Технический форум разработчиков электроники

  • Общеизвестен факт, что наиболее “ узкими “ местами архитектуры MCS-51 являются медленное АЛУ на базе аккумулятора, через который вынуждены “ просачиваться “ все операнды и безмерно долгое время выполнения инструкций (12 машинных тактов). Кроме этого стандартный 51 микроконтроллер позволял себе даже такую роскошь как холостые командные циклы.

    Были изобретены различные способы повышения производительности как то: увеличение тактовой частоты, уменьшение количества тактов на инструкцию, исключение холостых циклов и даже такой хитроумный способ как совмещение в одном микроконтроллере двух систем команд — подсемейство MCS-251 .

    Но за подобное ускорение приходилось платить повышенными энергопотреблением и стоимостью, что совершенно лишало семейство MCS-51 всех преимуществ в низкостоимостных и критичных к потреблению применениях.
    Еще в 1975 году фирма GI разработала периферийный контроллер (Peripheral Interface Controller или PIC) , предназначенный для поддержки ввода-вывода 16-разрядного процессора.

    В нем не требовалась сложная обработка , поэтому набор его команд был сильно ограничен , но почти все команды выполнялись в нем за один машинный цикл . Этот контроллер с RISC архитектурой и стал прообразом современной архитектуры микроконтроллеров PIC выпускаемых с конца 80-х годов дочерней GI компанией Arizona Microchip Technology Ltd.

    Первые промышленные микроконтроллеры семейства PIC16C5X , были до безобразия простыми, но быстрыми. Основной представитель семейства PIC16C54A-20 выпускался в 18-выводном корпусе, имел память программ объемом 512 байт и память данных 25 байт, всего 33 команды со временем исполнения инструкции 200 нс.

    и одноуровневым конвейером команд (тактовая частота 20 Мгц), причем потреблял он при этом всего 10 ma . На частоте 1 Мгц напряжение питание можно понизить до 2. В. с током потребления ниже 1 ma. Вкупе с низкой стоимостью ,в среднем меньше 1 $ в США , все эти качества сделали PIC16C54A и его вариации весьма популярными .

    В итоге новое семейство PIC контроллеров несколько потеснило со своих позиций микроконтроллеры MC68C05 компании MOTOROLA и ряда других производителей обосновавшихся в нише низко стоимостных применений.

    Результатом дальнейших усилий в области миниатюризации и удешевления стало появление таких необычных контроллеров как 12C508 и 12C509 имевших всего по 512 байт и 1 Кбайт памяти программ соответственно и всего по восемь выводов, шесть из которых являются портами ввода-вывода. Не так давно был анонсирован очередной такой “малыш”, но уже со встроенным АЦП. В настоящее время MICROCHIP выпускает три основных серии PIC контроллеров.

    PIC16C5X — базовое семейство с 12-разрядными командами.

    PIC16C6X/7X/8X –расширенное семейство средней производительности с 14-разрядными командами.
    PIC17CXX семейство high-end высокопроизводительные микроконтроллеры с 16-разрядными командами. Большинство PIC контроллеров сделано по OTP технологии (однократно программируемые микросхемы) — тяжелое наследие 80-х годов. Для целей отладки предлагается использование микросхем с ультрафиолетовым стиранием и довольно высокой стоимостью . Все PIC контроллеры оборудованы внутренними схемами сброса по питанию и сторожевыми таймерами, многие модели имеют возможность внутрисхемного программирования.

    Все последовательно произведенные серии PIC контроллеров являются логическими продолжениями единого базового ядра и как горделиво заявляют представители компании MICROCHIP перекрывают весь диапазон применений 8-разрядных микроконтроллеров.

    Делая упор на низкую стоимость своих изделий, MICROCHIP пришлось отказаться от универсальных микроконтроллеров с разнообразной и развитой периферии (одно из исключений PIC14000 , правда он является полу заказной микросхемой) и “ распределить“ периферийные устройства по всем выпускаемым семействам.

    Иными словами если разработчику в контроллере требуются компараторы, то как раз для этого выпускается серия PIC16CX , если необходимо АЦП, сгодится серия PIC16C7X и так далее. Но то, что является благом для инженера в Америке, оборачивается проблемой для отечественного разработчика .

    К сожалению ни один отечественный дистрибьютор не в состоянии держать на складе всю номенклатуру PIC контроллеров , что неудивительно , это более двухсот наименований и ограничивается самыми распространенными изделиями, которыми и приходится довольствоваться мелкосерийным производителям.

    В отличие от MICROCHIP компания ATMEL взяла старт по производству RISC микроконтроллеров несколько позднее уже в 90-х годах, используя все новейшие технические решения накопленные к этому времени.

    Золотой ключик ATMEL — использование FLASH технологии которой компания владеет совершенстве , став в начале 90-х одним из мировых лидеров по производству микросхем энергонезависимой памяти и микроконтроллеров семейства MCS-51 оснащенных FLASH ПЗУ.

    Замысел создания новых скоростных микроконтроллеров родился в светлых головах группы разработчиков исследовательского центра ATMEL в Норвегии, инициалы которых и сформировали название AVR.

    Из архитектуры процессора был изгнан регистр-аккумулятор (оставшийся даже в PIC контроллерах) и заменен регистровым файлом, в котором каждый из 32 регистров соединен с АЛУ и может работать в роли аккумулятора. Это позволяет в сочетании с конвейерной обработкой выполнять большинство инструкций за один машинный цикл.

    Система команд AVR весьма развита и насчитывает 120 различных инструкций с 16-разрядной сеткой, причем почти все команды (кроме команд перехода ) имеют длину в 16 бит . В результате компания ATMEL установила новый стандарт производительности для микроконтроллеров 1 MIPS (миллион инструкций в секунду ) на 1 Мгц.

    Это означает, к примеру, что микроконтроллеры, работающие при тактовой частоте 12 Мгц будут иметь производительность 12 MIPS соответственно.

    Первые AVR микроконтроллеры серии AT90SXXXX предназначались для прямой замены микросхем AT89C5X и AT89CX051 представлявших собой версии 51 микроконтроллеров с FLASH ПЗУ и имея одинаковое назначение выводов.

    Тактовая частота в отдельных типах AVR достигает 12 Мгц при токе потребления около 12-15 ma .Микроконтроллеры упомянутой серии оснащены FLASH памятью программ емкостью от 1 до 8 Кб с возможностью внутрисхемного программирования и EEPROM данных емкостью от 64 до 512 байт соответственно.

    Периферия микроконтроллеров включает: таймеры-счетчики, ШИМ, аналоговые компараторы, интерфейсы, интерфейсы UART и SPI сторожевой таймер , etc. Все эти качества превращают AVR микроконтроллеры в мощный и, что очень важно недорогой инструмент для построения современных, высокопроизводительных и экономичных контроллеров различного назначения . AVR микроконтроллеры отличает относительно небольшое количество моделей – четыре основных типа, причем два из них просто расширенные версии. Правда , в 1998 г. наметилась тенденция к “расползанию “ , появились AVR микроконтроллеры в 8-выводном исполнении такие как AT90S2323/AT90S2343 и микроконтроллеры со встроенным АЦП AT90S4434 и AT90S8535.

    В середине 1998 г. ATMEL произвела на свет первую модель микроконтроллера нового семейства megaAVR получившего обозначение AVRmega103/603 , который имеет память программ емкостью 128 Кб, энергонезависимую память данных емкостью 4 Кб и развитую периферию включающую в себя 10 разрядный 8-канальный АЦП. Правда стоит это “чудо” на российском рынке порядка 12 $ при оптовых поставках. Надо отметить также, что все AVR микроконтроллеры легкодоступны в России и отличаются в среднем невысокой стоимостью (к примеру, AT90S1200 стоит всего 1,9 $) , успешно конкурируя с изделиями компании MICROCHIP. Коротко резюмируя вышесказанное, можно отметить, что позиции PIC контроллеров наиболее сильны в сфере применений критичных к стоимости и потреблению. При построении высокопроизводительных, универсальных систем становятся предпочтительными AVR микроконтроллеры имеющие более высокое соотношение “цена-производительность “.

Источник: https://www.eham.ru/articles/mikrokontrollery-aa/1846-vosmirazryadnye-risc-mikrokontrollery-atmel-i-microchip-dva-podhoda

Ссылка на основную публикацию