ГлавнаяРегистрацияВход Сайт Сокола Сергея Среда, 01.05.2024, 09:41
  Каталог статей Приветствую Вас Гость | RSS

 
 
Главная » Статьи » Мои статьи

Поговорим о программировании и программаторах
В статье "Аппаратное обеспечение для разработки устройств на микроконтроллерах" я уже упоминал о двух программаторах, собранных и используемых мной при проектировании устройств на МК.
В чем же достоинства и недостатки каждого из них?
СОМ-программатор содержит меньшее количество деталей, значительно легче в сборке и наладке (по секрету скажу, что наладки он вообще не требует, правильно собранное устройство начинает работать сразу же)... Вот, собственно, и все достоинства, приходящие в голову с ходу. Недостатками его можно назвать следующее: во-первых, СОМ-порт плавно отходит в прошлое, поэтому его сейчас очень сложно найти на современных компьютерах, а на ноутбуках практически невозможно. Во-вторых, для программирования требуется внешний источник стабилизированного питания +5 В. Можно еще выделить тот недостаток, что работает этот программатор под управлением программы PonyProg 2000 года разработки, поэтому программирование современных МК затруднено, хотя я пробовал, и вполне успешно :))) Дело в том, что в PonyProg есть замечательная кнопочка Ignore, которая успешно отменяет верификацию типа контроллера, поэтому достаточно выставить контроллер с соответствующим объемом памяти, и все запрограммируется.
Внешний вид СОМ-программатора представлен ниже

Как видите, все легко помещается внутри стандартного разъема DB-9. Рисунок печатной платы я не привожу, поскольку разводил ее по старинке - лаком вручную, а рисунок платы уже давно посеял. Скажу только, что все детали там размещены вертикально для уменьшения занимаемого места.

Воот! Теперь пропесочим USB-программатор USBAsp. Для начала его достоинства: относительная простота и надежность конструкции; для программирования не требуется внешнего источника питания, схема питается непосредственно от шины USB; для работы с ним используется программа AVRDUDE, поставляемая в комплекте с программным пакетом WinAVR, что позволяет заливать прошивку в контроллер непосредственно из среды программирования (а это довольно удобно, знаете ли:))
Теперь насчет недостатков. Поскольку в схему программатора входит МК, а его тоже надо чем-то прошивать, то все равно потребуется какой-то более простой программатор для этой первоначальной прошивки (вот такой парадокс курицы и яйца в применении к микроконтроллерам:)). Ну и кроме того, он в несколько раз дороже СОМ-программатора за счет этого самого контроллера, и раза в 3 сложнее в схемном плане (но что нам стоит запаять два десятка деталей, правда?).
Внешний вид программатора в сборе представлен ниже

Внутри все это дело выглядит так

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

В общем, выбор за вами, но если вам интересно знать мое мнение, то как по мне, лучше собрать USB-программатор и не мучиться.
Но это все лирика. Собственно, для чего я эту статью затеял?
Бывает, что необходимо сделать несколько однотипных устройств, или на плате устройства нет места для подключения разъема ISP для программирования МК. В таком случае полезно сделать плату с панельками под разные типы контроллеров и с необходимой обвязкой (кварцевый резонатор, фильтры и прочее). Схема такой платы представлена ниже

На ней расположено 4 цанговые DIP-панельки (можно и обычные, но они менее надежные). Вообще для покрытия всей номенклатуры контроллеров необходимо 7 панелек (8 pin, 14 pin, 2x20 pin, 28 pin, 2x40 pin), потому как шибко умные разработчики из ATMEL для чего-то сделали разные цоколевки для контроллеров в 20- и 40-выводных корпусах. Но поскольку всех контроллеров у меня нет, я сделал только для имеющихся в моем распоряжении. Итак, что же можно тут запрограммировать.
1. 8-выводные контроллеры: ATTiny12, ATTiny13, ATTiny15, ATTiny25, ATTiny45, ATTiny85.
2. 20-выводные контроллеры: ATTiny2313.
3. 28-выводные контроллеры: ATMega8, ATMega48, ATMega88, ATMega168.
4. 40-выводные контроллеры: ATMega16, ATMega32, ATMega8535, ATMega164, ATMega324, ATMega644.
В принципе, довольно внушительный. Кому мало - разрабатывайте более универсальную плату.
Вкратце рассмотрим, что мы тут имеем, так сказать.
XS1 - гнездо для подачи внешнего питания (для СОМ-программатора). Я использовал гнездо типа моно-джек 3,5 мм. Диод VD1 любого типа, предназначен для защиты от подачи напряжения обратной полярности. Конденсаторы С1 и С2 - фильтрующие (С1 - высокочастотные помехи, С2 - низкочастотные колебания). Чем выше емкость С2, тем лучше. DD1 - интегральный стабилизатор 78L05 для получения на выходе напряжения +5В (можно использовать и обычную КРЕН5А, но этот меньше и дешевле). Конденсаторы С3, С6, С7 выполняют тоже роль фильтров (сижу вот сейчас и думаю, а зачем тут столько фильтров??? ну да ладно - кашу маслом не испортишь, как говорится, лучше перебдеть, чем недобдеть:))). Светодиод HL1 служит индикатором подачи питания на схему. Резистор R1 токоограничительный. Кварцевый резонатор ZQ1 и конденсаторы C4 и С5 входят в частотозадающую цепь контроллера (для прошивки контроллеров, у которых фьюзы установлены для работы от внешнего кварцевого резонатора). ХР1 - ХР4 - те самые панельки для установки программируемых контроллеров.
XS2 - штекер для подключения программатора. О нем я хочу сказать несколько слов отдельно. Мой любимый внимательный читатель может обратить внимание, что распиновка разъема не соответствует стандартным. "В чем же дело?" - возмутится он. Отвечаю и каюсь: "Дело в невнимательности и... лени". Когда я делал свой первый программатор, я вывод SCK вместо 7 пина, как было положено, по ошибке подключил к 8, а заметил это уже после того, как все было собрано и лишние провода обрезаны. В новом же программаторе я подключил его как надо - к 7, но для совместимости с первым, оставил и 8, вот так и пошло-поехало. Еще одно отличие от стандартной распиновки - питание контроллера VCC подается не на 2 пин, а на 3. Почему так сделано, уже не помню, но раз сделано, значит на то были веские причины. В любом случае, отличия от стандарта минимальные и любой читатель сможет сам исправить печатную плату, ежели будет такая необходимость.
В заключение расскажу еще одну вещь. Когда я показал эту плату своим студентам, один внимательный студент Максим обратил внимание на одну не замеченную мной возможность. Диод VD1 может выполнять роль однополупериодного выпрямителя, и вкупе с конденсатором С2 служить преобразователем переменного напряжения в постоянное. Поэтому данную схему можно питать даже от вторичной обмотки трансформатора напряжением 4-7 В (сам я этого не пробовал, предоставляю эту возможность смелым вам:)).
Внешний вид собранной платы таков


В таблице для удобства приведен перечень используемых деталей
 Обозначение Номинал
 R1
 390...560 Ом, 0,125 Вт
 С1, С6
 0,068...0,15 мкФ
 С2 1000...4700 мкФ х 16 В
 С3, С7
 10...33 мкФ х 6,3В
 C4, C5
 22 пФ
 ZQ1
 4...8 МГц
 DD1 78L07, 7805, КРЕН5А, КРЕН5В
 HL1
 АЛ307 или любой аналогичный
 VD1 любой выпрямительный, я использовал BA159
 XS1
 Гнездо джек 3,5 мм монтажное.
 ХS2
 Разъем-штекер IDC5x2М
 ХР1
 Цанговая панелька 8 пин, расстояние между выводами 2,54 мм
 ХР2 Цанговая панелька 20 пин, расстояние между выводами 2,54 мм
 ХР3 Цанговая панелька 28 пин, расстояние между выводами 2,54 мм
 ХР4 Цанговая панелька 40 пин, расстояние между выводами 2,54 мм

Вот, в принципе, и все. Схему и печатную плату в формате DipTrace, можно скачать здесь. Если у вас возникнут вопросы, задавайте их на форуме или здесь в виде комментариев к статье :)
Удачного конструирования!
Категория: Мои статьи | Добавил: mimino (01.08.2010)
Просмотров: 6060 | Комментарии: 6 | Рейтинг: 3.0/1
Всего комментариев: 0
Имя *:
Email *:
Код *:
 
 
Категории раздела
Мои статьи [20]

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Вход на сайт

Поиск

Посетители

Погода
GISMETEO: Погода по г.Мариуполь

 

Copyright MyCorp © 2024
Бесплатный конструктор сайтов - uCoz