 | |  |
| |
Поговорим о программировании и программаторах
В статье "Аппаратное обеспечение для разработки устройств на микроконтроллерах" я уже упоминал о двух программаторах, собранных и используемых мной при проектировании устройств на МК. В чем же достоинства и недостатки каждого из них? СОМ-программатор содержит меньшее количество деталей, значительно легче в сборке и наладке (по секрету скажу, что наладки он вообще не требует, правильно собранное устройство начинает работать сразу же)... Вот, собственно, и все достоинства, приходящие в голову с ходу. Недостатками его можно назвать следующее: во-первых, СОМ-порт плавно отходит в прошлое, поэтому его сейчас очень сложно найти на современных компьютерах, а на ноутбуках практически невозможно. Во-вторых, для программирования требуется внешний источник стабилизированного питания +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)
|
| Просмотров: 6168 | Комментарии: 6
| Рейтинг: 3.0/1 |
| |
 | |  |
|
| Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
| Погода |
 |
|