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


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




[1]

шом сопротивлении резисторов R1-R3 и наличии внутренних диодов по входам микросхемы DD1.

Питание 5 В (VCC) подается от платы программируемого устройства. Конденсатор С1 уменьшает импульсные помехи. Резисторы R5-R9 демпфируют выбросы на фронтах импульсов. Если индикатор HL1 погашен, то можно программировать МК. Наличие свечения означает, что микросхему DD1 как будто бы изъяли из панели. Ручное отключение выходов адаптера иногда предпочтительнее программного, например при поисках причин неисправностей.

Приведенные схемы не являются догмой. Допускается изготовить другой вариант адаптера, например, как показано на сайтах http: iron.fire.usi.ru, http: evm.wallst.ru/main/prog, http: www.ln.com.ua /~real/avreal/adapters.html#STK.

Универсальный адаптер

При программировании большого количества разнообразных AVR-контроллеров или при их входном контроле удобно иметь универсальный адаптер с панелями под микросхемы в корпусах DIP-8, DIP-20, DIP-28, DIP-40 (рис.7). Все выводы Мк с маркировками MISO, MOSI, SCK, RES, VCC, GND соединяются параллельно. Разумеется, одновременно на таком адаптере можно запрограммировать только одну микросхему, вставляемую в панель XS2-XS7. Какие из двух разновидностей 20- или 40-выводных микросхем вставлять в панели "DIP-20(1)", "DIP-20(2)", "DIP-40(1)", "DIP-40(2)", необходимо смотреть по справочным данным DATASHEET на сайте фирмы Atmel http: www.atmel.com.

Кварцевый резонатор ZQ1 совместно с конденсаторами С4, С5 входит в типовую схему включения задающего генератора МК. Некоторые типы МК могут быть запрограммированы и без резонатора, от своего внутреннего RC-генератора, но "кашу маслом не испортишь". Единственное требование - для устойчивой генерации резонатор ZQ1

должен располагаться как можно ближе к выводам XTAL1, XTAL2 МК.

Сопряжение с COM-портом выполнено аналогично схеме, показанной на рис.5. Индикатор HL1 светится только в процессе программирования. Индикатор HL2 указывает на наличие напряжения 5 В, которое формируется стабилизатором DA1. Конденсаторы С1-С3, С6-С8 блокировочные. Диод VD1 защищает адаптер от неверной подачи питающего напряжения. К разъему Х1 подключается любой малогабаритный блок питания, например, в корпусе "сетевая вилка", обеспечивающий напряжение 10...15 В при токе 100 мА.

Для радиолюбителей универсальный адаптер представляет альтернативу программирования через разъем ISP, хотя он тоже предусмотрен (XS8). Реальный случай - в миниатюрной конструкции для разъема ISP физически нет места. Или в схеме не хватает входных/выходных линий, и необходимо задействовать MISO, MOSI, SCK в режиме полноценных портов.

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

Параллельный программатор

Все ранее рассмотренные адаптеры используют сигналы последовательного интерфейса SPI. Нередко комплекс, состоящий из управляющей программы и адаптера (рис.3-7), называют последовательным программатором AVR.

Если существует последовательный, значит, должен быть и параллельный программатор AVR. На сайте ChaN (http: elm-chan.org/works/avrx/report e.html, Япония) приведена схема подобного устройства для 20- (рис.8) и 8-выводных (рис.9) микросхем. Там же

J±C1 J-C6

Power С 5V 50mA

PC Parallel Port

14 -SELIN

a N2 i- z i

О О 00

cvij яг co

p-vvv-J

Rl 1M U3

NJM2352D

Q4 RN1202.

15 -ERROR

IS -INIT

17 -AUTOFD

18 GND

120 GND

122 GND

124 GND

MV -VW WV AAV AAV

D-Sub25 m

D3 1SS319

TTL-CM0S

*Re-fer to document

R33 4k7

D2 UPP

20pin AVR

Ul 20Pin ZIF

PAGELDATA7

R/BDATA6

BS2DATA5

XTAL1DATA4

ОЁDATA3

WR BS1 XA0 GND

DATA2 DATA 1 DATA0 HA 1

RA1 100k

U2 74HC299

A H! QA GIB QC 6)D QE GIF GIG QH H

R 15-22 lk


10k E

выложена управляющая программа под DOS (http: elm-chan.org/works/avrx/avrxtool.zip, 69 Кб) и Win-9x/XP (http: elm-chan.org/works/avrx/avrxtool32.zip, 91 Кб). Микросхемы в корпусах DIP-28, DIP-40 программируются через переходник к 20-контактной панели.

Параллельный программатор позволяет прошивать МК не хуже последовательного, но использует значительно большее число линий связи и повышенное до 12 В напряжение. Как следствие, сложная схемотехника и уникальное программное обеспечение. Главное преимущество параллельного программатора заключается в способности восстановления неосторожно установленных программных битов, переводящих вход RESET МК в дополнительную линию порта. Это обычно случается у новичков при экспериментах на последовательном программаторе. После такой "трепанации" интерфейс ISP отключается, ведь входа сброса RESET как такового уже не существует. Последовательный программатор выдает сообщение о бракованном МК при его абсолютной годности.

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

Если подытожить, то параллельный программатор - это сложная, не совсем обязательная, но довольно полезная в хозяйстве радиолюбителя вещь.

Конструкция и детали

Обычно адаптеры выполняют на отдельной печатной плате, соединенной шлейфом проводов длиной 20...30 см с 10-контактным разъемом ISP и 1,52-метровым кабелем с компьютером. Поскольку деталей немного, то используют "макетку" и монтаж тонкими проводами МГТФ-0,1. Плату закрывают корпусом или обвязывают скотчем.

Иногда детали адаптера размещают прямо в разъеме LPT- или COM-порта. Работоспособность такого устройства требует поверки, особенно если не применяются буферные микросхемы. Если на компьютере вместо 9-контактного установлен 25-контактный COM-разъем, то в схемах, показанных на рис.5, 6, меняют распайку выводов, например: 3-2, 4-20, 5-7, 6-6, 7-4, 8-5 (DB9-DB25).

Резисторы, конденсаторы, стабилитроны, диоды - любые малогабаритные. Буферные микросхемы в Интернете рекомендуют из серии HC, например 74HC245 вместо К555АП6 (рис.4). При этом в разрыв цепи VCC устанавливают диод Шотки анодом к контакту 2 розетки XS1. Его назначение - не допустить попадания напряжения 3 В, "просачивающегося" от LPT-порта в МК при отсутствии на последнем питания

5 В. Не рекомендуется замена

КР1533АП6, КР1554АП6 ввиду

неустойчивого программирования при подключении к цепи GND общего провода осциллографа.

В универсальном адаптере (рис.7), при его интенсивной работе, лучше установить панели XS2-XS6 с нулевым усилием прижатия, хотя это и дорого.

В параллельном программаторе (рис.8) преобразователь DC-DC на микросхеме U3 NMJ2352D можно заменить внешним источником питания 12 В, 50 мА. Его положительный вывод подключают к плюсовой, а отрицательный - к минусовой обкладкам конденсатора С3. Элементы L1, D1, U3, С2, R1-R3 при этом удаляют. Замена микросхемы 74HC299 - КР1554ИР24. "Цифровые" транзисторы RN1202, RN2202, RN2205 можно заменить двумя обычными резисторами и транзисторами КТ3102, КТ3107, в зависимости от типа структуры. Схемы соединения и номиналы резисторов показаны на рис.8, 9.

Розетка IDC-10F - однократного применения, о чем часто забывают или не знают. Случается, что при обжимке плоского кабеля в розетку некоторые выводы закорачиваются. Тогда обламывают пластмассовые детали верхней части розетки, аккуратно припаивают провода непосредственно к ее контактам и заливают всю конструкцию компаундом.

Допустимо вообще отказаться от 10-контактных разъемов и применить любые другие имеющиеся соединители с числом контактов не менее 6, например магнитофонные пары СГ-6, СШ-6. Для домашних разработок это не составит проблем, единственное, что воспользоваться в другом месте таким адаптером не удастся.

Еще одно оригинальное решение предложено в Японии: сделать разъем конструктивным и "надевать" его прямо на выводы МК (рис.10). Главное, чтобы конструкция не смещалась относительно выводов микросхемы и досрочно не разрушилась, как карточный домик.

Практическое задание. Собрать AVR-адаптер по одной из схем, показанных на рис.3-6, или по аналогичной, допускающей работу с программой PonyProg. По возможности сделать универсальный и параллельный программаторы.

Литература

1. AVR910: In-System Programming. - Atmel, 2000, http: sin-bad.narod.ru/isp.htm (русский перевод).


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

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

Что знаете доброго, того не забывайте, а чего еще не знаете, тому учитесь.

Владимир Мономах

В предыдущей статье цикла (РА 1/2005) приводились несложные схемы адаптеров для программирования микроконтроллеров (МК) семейства AVR. Надеемся, что один из них успешно собран и готов для дальнейшей работы.

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

Обычно фирма-разработчик МК для таких экспериментов поставляет так называемый "стартовый набор" Starter Kit, который представляет собой печатную плату с разъемами, кнопками управления, индикаторами, интерфейсными схемами и, разумеется, с установленным МК. К стартовому набору прилагается управляющая программа и инструкция по программированию.

Фирма Atmel для МК семейства AVR выпустила несколько подобных наборов: STK-100, STK-200, STK-300, STK-500, AVR Embedded Internet, AVR Butterfly. Первые три из них сейчас сняты с производства и заменены STK-500 (рис.1). Это наиболее подходящий для работы универсальный комплекс, который обслуживает подавляющее большинство типов МК AVR. Единственный его недостаток - стоимость $80-100.

Можно ли самостоятельно собрать упрощенный аналог набора "быстрого старта", ориентируясь на подручные средства, минимальную цену и бесплатно распространяемые программы? Ответ положительный, при этом вся задача разбивается на несколько этапов:

сборка адаптера программатора; освоение работы с компилятором; изготовление макетной платы "быстрого старта"; компиляция демо-программы, зашивка кодов в МК и наблюдение практического результата.

Те, кто выполнил домашнее задание из "Ступени 1", могут считать первый этап пройденным. Остальные этапы будут рассматриваться далее.

Компилятор языка Си для AVR Какие только языки программирования не используют для составления AVR-программ! В Интернете имеются ссылки на Ассемблер, Ada, Basic, Си, Forth и даже Pascal. Но на практике чаще всего используют Ассемблер и Си. Первый из них предпочтителен для создания критичных во времени процедур, а второй - для быстрой разработки программ. Если учесть, что в архитектуру AVR изначально были заложены

принципы оптимизации Си-процедур, то альтернативы этому алгоритмическому языку нет.

В таблице приведен перечень наиболее популярных Си-компиляторов. Самым мощным из них считается компилятор фирмы IAR Systems. Это немудрено, ведь ее сотрудники в середине 90-х годов принимали непосредственное участие в разработке системы команд AVR.

Из других компиляторов больше на слуху ICCAVR и Code-Vision. Их полные версии требуют оплаты, что для начинающих радиолюбителей не в подъем. Пользоваться демо-верси-ями можно лишь на первых порах для решения ограниченного круга задач с урезанными функциями. На практике же поступают по-славянски изобретательно, тем или иным способом добывая патчи к программам. Интернет-форумы так и пестрят просьбами: "Намыльте лекарство для вижн AVR", что в переводе означает: "Вышлите мне, пожалуйста, по электронной почте пароль к Си-компилятору CodeVision AVR".

Но зачем ломиться в открытую дверь, нарушая чьи-то авторские права? Существуют бесплатно распространяемые Си-компиляторы, и возможности у них колоссальные. Если выбирать из двух представленных в таблице freeware-компиляторов, то предпочтение следует отдать WinAVR. Во-первых, он поддерживает больше типов МК, во-вторых, его автором является коллектив профессиональных программистов, в-третьих, он солиднее по выполняемым функциям и, наконец, его версии постоянно обновляются.

Осторожный читатель вправе заметить, что "бесплатный сыр бывает только в мышеловке". Рассеять сомнения поможет теоретическая подкованность.

Классификация программного обеспечения

Абсолютно бесплатных программ не бывает. Каждая из них имеет свою цену, другое дело, какую именно. Например, за скачивание с Интернета freeware-программы надо заплатить деньги провайдеру. Для перезаписи бесплатного софта с компьютера на компьютер надо приобрести дискету или CD. И даже если кто-то подарит вам безвозмездно программу, то время установки ее на компьютер можно пересчитать через износ вычислительной техники.

Информация в Интернете делится на три большие группы: бесплатная, условно-бесплатная и платная.

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

Shareware (сокращение от SHARE softWARE) - условно-бесплатные программы. На компьютерном жаргоне их называют "шароварными". Авторы подобных программ вводят определенные ограничения. Например, действует лимит на

Компилятор

Фирма, страна

Сайт разработчика

Версия (цена)

SPJ Systems, Индия

http: www.spjsystems.com/ cavr.htm

1.0.0 ($149-225)

Демо 1,4 Мб

CodeVision AVR

HP InfoTech, Румыния

http: www.hpinfotech.ro/ html/cvavr.htm

1.24.4a ($90-150)

Демо 3,5 Мб

CrossWorks

Rowley Associates, Англия

http: www.rowley.co.uk/ avr/index.htm

7,9 Мб, 30 дней

IAR Embedded Workbench

IAR Systems, Швеция

http : www. iar.com

3.20c (более $1000)

58 Мб, 30 дней

ImageCraft, США

http: www.imagecraft.com/ software

($199-749)

6,2 Мб, 45 дней

SmallC for AVR

Ron Kreymborg, Австралия

http: www.jennaron.com.au/ smallc/smallc.html

2.4.7, бесплатно

WinAVR (GCC)

Eric Weddington (коллективный проект)

http: winavr.sourceforge.net

20040720, бесплатно

12,9 Мб



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