Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[0]

Микроконтроллеры AVR. Ступень 1

СМ. Рюмик, г. Чернигов

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

Электронщики в шутку говорят, что после третьей изученной МК-плат-формы легко перейти на четвертую. Тем же, кто добросовестно выполнял задания из цикла статей об МК семейства MCS-51 (РА 3-12/2004), можно поставить галочку за первую пройденную платформу. "Пройденную" - это не значит "забытую" или "устаревшую", скорее, прибавившую знания в схемотехнике и программировании.

Если представить процесс изучения МК в виде покорения горной вершины, то первые "10 шагов" были сделаны по "равнине" платформы MCS-51. На очереди подъем по ступеням "предгорья" платформы AVR фирмы Atmel.

Почему в качестве второй выбрана именно платформа AVR? Специалисты определили ряд здоровых принципов выбора МК: не гнаться за экзотикой, не связываться с единственным семейством, не экономить на средствах отладки и программирования. Для платформы AVR все перечисленное выполняется. Вдобавок, соблюдается преемственность, поскольку ранее пройденный 8-разрядный МК AT89C2051 тоже был разработан на фирме Atmel.

Начинать изучение МК сразу с "модных" AVR, означало бы отход от основных педагогических принципов - постепенности и последовательности. К примеру, лет 20...30 назад среди вузов электронного профиля Украины существовало понятие "школа". Солидные преподавательские составы "школ" Харьковского института радиоэлектроники, радиофакультетов Киевского политехнического и Харьковского авиационного институтов гарантировали базовые знания студентов. Молодые специалисты, прошедшие "школу", легко становились программистами, разбирающимися в схемотехнике, или радиоинженерами, умеющими составлять программы.

Точно так же и в изучении МК. Без прохождения "школы" платформы MCS-51 трудно будет понять нюансы в архитектуре AVR, поскольку не с чем сравнивать, не имея опыта.

История появления AVR

Фирма Atmel была основана в 1984 г. в знаменитой Кремниевой долине (Калифорния, США). В середине 90-х годов ее основной продукцией стали микросхемы памяти и перепрограммируемые МК платформы MCS-51. По сравнению с аналогичными изделиями фирм Intel, Philips, Temic, OKI, Siemens, микросхемы Atmel были дешевле, ни в чем не уступая им по качеству. Одна из составляющих успеха - создание филиалов производства в странах Юго-Восточной Азии.

Всем хороши были МК платформы MCS-51 за исключением энергопотребления и производительности. Там, где использовалось маломощное (батарейное) питание и требовалась высокая скорость обработки данных, разработчики предпочитали PIC-контроллеры фирмы Microchip Technologies, МК серии H8/300 фирмы Hitachi и МК фирмы Dallas Semiconductor.

Ситуация в корне изменилась в 1996 г., когда было объявлено о начале серийного производства принципиально новых 8-разрядных контроллеров платформы AVR.

У архитектуры AVR скандинавская родословная. В 1995 г. два норвежских изобретателя Альф Боген и Вегард Воллен предложили фирме Atmel концепцию нового МК. Идея была принята. Базовые принципы и система команд разрабатывались в норвежском отделении фирмы Atmel совместно со шведскими программистами фирмы IAR Systems. Имена разработчиков вошли в название платформы в виде двух первых заглавных букв - Alf Bogen / Vergard Wollan / Risc architecture.

Достоинства AVR: быстродействующий RISC-процессор, FLASH-па-мять с низковольтным напряжением программирования, внутреннее перезаписываемое ЭСПЗУ, мощные выходные порты, широкий диапазон питающего напряжения. И все это при малом потреблении тока, высокой скорости, а главное, при низкой цене. По совокупному интегральному параметру "энергопотребление - производительность - цена" AVR-контроллеры оказались лучшими в мире.

Классификация AVR

Платформа AVR насчитывает 4 семейства: "classic", "tiny", "mega", "LCD". В 1997 г. в каталоге фирмы Atmel впервые появились четыре "classic-МК с маркировкой AT90Sxxxx. В каталогах 1999 г. были представлены уже три семейства: "classic" (AT90S), "tiny" (ATtiny), "mega" (ATmega). В дальнейшем развитие "классического" семейства было заморожено в связи с большой номенклатурой МК и их самодостаточ-

Тот, кто мягко ступает, далеко продвинется на своем пути.

Китайская пословица

С 2000 г. начался перевод производства с технологических норм 0,5 мкм на 0,35 мкм. Изменения коснулись в основном семейств "tiny" и "mega". Разработчики не только уменьшили размеры кристаллов, но заодно увеличили тактовые частоты, объем ПЗУ, ввели новые интерфейсы, снизили удельное энергопотребление и исправили некоторые ошибки, проявлявшиеся при эксплуатации. Новые МК получили другие обозначения и позиционировались в качестве замены один к одному устаревшим микросхемам.

В 2004 г. МК, имеющие выводы для подключения ЖК-индикаторов, были выделены в отдельное семейство "LCD AVR". В октябре 2004 г. последним двум микросхемам семейства "classic" присвоен статус EOL (End-Of-Life), т.е. они не рекомендуются для новых разработок и в середине 2005 г. окончательно уйдут с производства. Из четырех семейств остались только три (табл.1), зато какие!

Первоначально все микросхемы AVR заметно различались друг от друга по числу выводов корпуса: "tiny" - 8 выводов, "classic" - 40-44 вывода, "mega" - 64 вывода. В дальнейшем грани стерлись, но тенденция осталась. Для DIP-микросхем, которые чаще всего применяются в любительской практике, действует ряд: 8, 20, 28, 40 выводов.

Еще один нюанс. Первые цифры в названии AVR-контроллеров обозначают объем FLASH-ПЗУ в килобайтах. Например, ATtiny15L (1

Кб), ATtiny26 (2 Кб), AT90S4414 (4 Кб), ATmega8515 (8 Кб), ATmega162 (16 Кб), ATmega32 (32 Кб), ATmega 6450 (64 Кб), ATmega128 (128 Кб).

Программатор AVR

Практически все AVR-контроллеры имеют функцию внутрисистемного программирования ISP (In-System Programming). Это означает, что для зашивки кодов программы не требуется извлекать МК из платы и устанавливать его в панель программатора. Теперь "гора сама идет к Магомету", т.е. компьютер через специальный адаптер подключается к разъему ISP, установленному на плате изделия (рис.1 ). Адаптер нередко устроен таким образом, что по окончании программирования он автоматически отключается от выводов МК, не мешая работе остальных узлов. Процесс многократных экспериментов и перепроши-вок, по сравнению с AT89C2051, теперь идет гораздо быстрее.

Шина связи МК с адаптером содержит 6 сигналов (табл.2): три входных, один выходной и два по питанию. Информация передается в последовательном виде по протоколу SPI (Serial Programming Interface). Чтобы не запутаться в обозначениях, надо запомнить простое мнемоническое правило: выходной сигнал MISO единственный, который имеет в конце букву "O" (output). А слово "MOSI" по звучанию похоже на японское приветствие телефонных абонентов (вместо "Алло").

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

Таблица 7

Семейство AVR

Обозначения микросхем

Параметры

"tiny"

ATtiny13, 15L, 2313, 25, 26, 28L, 45, 85

1-8 Кб ПЗУ, 64-512 байт ОЗУ, DIP8-TQFP32

"mega"

Atmega48, 8, 88, 8515, 8535, 16, 162, 165, 168, 32, 325, 3250, 64, 645, 6450, 128

4-128 Кб ПЗУ, 256-4096 байт ОЗУ, DIP28-TQFP64

"LCD"

Atmega169, 329, 3290, 649, 6490

16-64 Кб ПЗУ, 1024-4096 байт ОЗУ, TQFP64-TQFP100

Таблица 2

Расшифровка

Функция

Назначение

Serial ClocK

Вход МК

Тактовый сигнал в МК

Master Out - Slave In

Вход МК

Информационный сигнал в МК

Master In - Slave Out

Выход МК

Информационный сигнал из МК

Общий провод

Вход МК

Лог."0" - программирование

Voltage Common Collector

Питание

Напряжение питания 2,7...5,5 В

ностью.


звание MISO, MOSI или SCK (табл.3). Двойное назначение выводов заимствовано из платформы MCS-51. При всем разнообразии микросхем AVR, выводы SPI у них строго закреплены, даже два варианта корпусов DIP-40 имеют различие только по выводам питания.

Разъемы ХР1, XS1 (рис.1) 10-контактные, соответственно вилка на плату ВН-10 и розетка на плоский кабель IDC-10F. К сожалению, унификация в распайке выводов отсутствует. В табл.4 приведены наиболее часто встречающиеся варианты. Первый из них разработан фирмой Altera для программирования ПЛИС через адаптер ByteBlaster. Два последующих варианта применяются в отладочном комплексе STK200 (STK300) фирмы Atmel и в ее внутрисистемном программаторе AVR910 [1].

Практическое следствие: если на чужой плате с AVR-контроллером находится 10-контактный разъем под ISP, то не надо спешить подключать к нему свой программатор, ведь цоколевка может не совпадать.

Преимущество распайки а-ля "ByteBlaster" заключается в универсальности, поскольку одним и тем же устройством можно прошивать МК и программировать ПЛИС. Однако это требует специального программного обеспечения. Чтобы отделить "зерна от плевел", предлагается использовать две другие распайки (рис.2,а, б). Название "STK200" стало "де-факто" промышленным стандартом. Вариант "AVR910" позволяет использовать разъемы с меньшим числом контактов (жаль, что IDC-6 не существует!). Кроме того, он абсолютно безвреден при случайной установке 10-контактного разъема "задом наперед": ни МК, ни адаптер гарантированно не выйдут из строя.

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

Выбор схемы адаптера

Первым делом напрашивается мысль изготовить фирменный адаптер по схеме, приведенной в [1]. Однако наличие в нем контроллера AT90S1200, который надо предварительно запрограммировать на каком-то другом программаторе, плюс неунифицированное программное обеспечение делают эту работу малопривлекательной.

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

Выбор электрической схемы адаптера зависит от трех факторов:

управляющей компьютерной программы, предназначенной для прошивки МК;

типа порта, используемого в компьютере (COM или LPT);

требуемого уровня сервисных и защитных функций.

Управляющих программ, допускающих работу с AVR, известно много. Например, AVreal (http: www.ln.com.ua/~real/avreal), IC-Prog (http: www.ic-prog.com), PonyProg (http: www.lancos.com), Willem Eprom (http: www.willem.org). Все они бесплатные и поддерживают широкую номенклатуру AVR-контроллеров. Любую из них можно использовать в дальнейшей работе, изготовив адаптер по приводимым на сайтах схемам. И все-таки, придется взять одну базовую программу, хотя бы для того, чтобы у читателей меньше возникало вопросов: "А почему не работает?".

Выбор остановим на программе PonyProg (автор Claudio Lanconelli, Италия). Во-первых, поддержка PonyProg заложена в Си-компиляторах и отладчиках. Во-вторых, с этой программой читатели уже работали в "Шаге 9", РА 11/2004, файл "mk9.zip", http: www.ra-publish.sea.com.ua.

Тип порта подключения к компьютеру определяется системной конфигурацией. Если LPT-порт постоянно занят под принтер, то выбирают COM-порт, и наоборот. Дополнительные аргументы. Длина соединительного кабеля между адаптером и COM-портом может составлять 5...8 м, а для LPT-порта - только 1,5...2 м. С другой стороны, схемы LPT- 12 адаптеров проще в конструкции и содержат меньше деталей. Для справки, существуют промышленные адаптеры AVR с подключением к USB (ориентировочная цена 50-100 дол.), но в "гаражных условиях" такой прибор не сделаешь.

Сервисные и защитные функции предоставляют пользователю альтернативу выбора. Что лучше, сделать более простой или более сложный адаптер - решать каждому для себя. Критерий истины - это практика. Хотя именно она подсказывает, что лучше иметь не один адаптер, а два - на смену и для перепроверки.

Электрические схемы адаптеров

На сайте разработчика PonyProg http: www.lan- 118-25 4-cos.com/siprogsch.html размещены схемы LPT- и СОМ- \"программирование"

Таблица 3

Сигналы интерфейса SPI и выводы МК

микросхемы

DIP-40 (1)

DIP-40 (2)

Таблица 4

Контакт

Интерфейс

разъема

Blaster

STK200/300

VCC MISO

GND SCK

GND RES

GND NC

GND NC

11 <J

XP1 DB-25M

DD1 К555АП6

АЛ307Б г HL1 /f L

><

R9 33 res

R10 33Sck

R11 20 к

C1 0,1 мк

XS1 IDC-10F

<4 <3


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

Простейший вариант LPT-адаптера (рис.3) содержит резисторы R1-R4, которые ограничивают экстратоки и уменьшают "звон" на фронтах импульсных сигналов. Закороченные выводы 2, 12 и 3, 11 разъема XP1 позволяют программе идентифицировать наличие аппаратной части.

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

На рис.4 показана схема более интеллектуального LPT-адаптера, выходы которого автоматически переводятся в высокоимпедансное состояние по окончании программирования. Путь прохождения управляющего сигнала: контакт 5 разъема ХР1, резистор R5, вывод 19 микросхемы DD1. Смену уровней лог."0" или лог."1" производит сама программа PonyProg. Она же в процессе программирования выставляет лог."0" на контакте 4 разъема XP1, заставляя светиться индикатор HL1.

Наличие мощных буферных повторителей в микросхеме DD1, с одной стороны, улучшает крутизну фронтов сигналов, а с другой - косвенно защищает компьютер от аварийных перенапряжений. Резисторы R1-R5, R8-R10 улучшают согласование импедансов, а в критической ситуации могут послужить еще и плавкими предохранителями.

Резистор R6 обеспечивает уровень лог."1" на входе Е микросхемы DD1 при отстыковке кабеля от LPT-порта. Тем самым выходы буферов переводятся в отключенное состояние от линий интерфейса SPI в МК. Питание микросхемы DD1 (VCC=5 В) подается от платы программируемого устройства. Конденсатор С1 блокировочный. Он должен располагаться вблизи выводов 10, 20 микросхемы DD1.

Адаптер с буферной логической микросхемой хорошо применять в условиях повышенных индустриальных помех. Впервые подобное устройство было разработано фирмой Kanda Systems в противовес отладочным комплектам STK200, STK300, совпадая с ними по распайке выходного разъема. С тех пор подобные адаптеры часто называют Kanda STK200/300.

На рис.5 показан простой адаптер для COM-порта. Назначение элементов: резисторы R1, R3-R5 ограничивают токи, стабилитроны VD2-VD4 ограничивают напряжение (4,7 В), резистор R2 закрывает транзистор VT1 при отсоединении кабеля от компьютера. Диод VD1 ограничивает напряжение отрицательной полярности, поступающее из COM-порта. В других аналогичных схемах его не устанавливают, надеясь на высокое допустимое напряжение транзисторов BC547 (Philips), которые используются вместо VT1.

Схема неприхотлива в деталях и хорошо зарекомендовала себя на практике, по крайней мере, при управлении от программы PonyProg.

Более сложный COM-адаптер (рис.6) включает в себя буферную микросхему DD1, выходы которой переводятся в высокоимпедансное состояние вручную переключателем SA1. Небольшая тонкость: входы микросхемы DD1 не защищены стабилитронами, хотя уровни сигналов COM-порта колеблются от -10 до +10 В. Причина заключается в боль-



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11]