Существует большое количество различных программаторов, но их можно разделить на две
категории: подключаемые к LPT порту компьютера и подключаемые к COM порту, причём это
разделение весьма условно (хотя я и не встречал описания программатора, подключаемого
к USB порту компьютера, но сделать его довольно просто). Преимуществом LPT программатора
является его простота: в простейшем случае он выглядит как несколько проводков, соединяющих
непосредственно выводы LPT порта и программируемого микроконтроллера, более сложная
схема представляет собой шинный формирователь, через который осуществляется связь
компьютера с микроконтроллером. Несмотря на недостатки первой схемы (на разных компьютерах
она ведёт себя по-разному из-за разброса характеристик микросхем LPT портов, наводки в
кабеле, необходимость отключать программатор от программируемой микросхемы после
программирования) она может оказаться полезной при необходимости запрограммировать одну-две
микросхемы. При постоянной работе с микроконтроллерами следует воспользоваться более
сложной схемой. Шинный формирователь позволяет не отключать программатор от микроконтроллера
после программирования, т.к. программа переводит его выводы в Z-состояние по окончанию работы.
Однако у программаторов, подключаемых к LPT порту есть и недостатки. Самый главный из них
заключается в том, что программатор занимает обычно единственный доступный в компьютере порт,
который, к тому же, в большинстве систем занят принтером, и приходиться либо покупать
мультикарту или новый принтер, либо постоянно переключать принтер и программатор, что не
очень удобно. От этого недостатка свободны схемы для COM порта (хотя сейчас можно ещё
встретить системы, где один COM порт занят мышой, а другой - модемом, но такая конфигурация
встречается реже, чем принтер на LPT порту и поэтому как минимум один из COM портов в
системе свободен). Также, как и в случае с LPT программаторами, существуют простые схемы и
более сложные. В простейшем случае схема представляет собой преобразователи уровней RS232 в
TTL и наоборот для отдельных сигналов, необходимых для ISP (у COM порта три линии входа и
пять линий выхода, для IS программирования требуется три линии выхода (SCK, MOSI, Reset)
и одна линия входа (MISO)). Схема более сложного программатора на COM порт состоит из
микросхемы интерфейса RS-232 и микроконтроллера, преобразующего команды программы на PC в
команды, понятные программируемой микросхемой. К тому же такое построение схемы позволяет
практически неограниченно "наворачивать" схему, - можно поставить любое количество индикаторов
для индикации режима программирования, можно подключить микроконтроллер к ОЗУ, чтобы программа
для программируемой микросхемы сначала переписывалась в ОЗУ, а затем, независимо от работы
PC, переписалась в программируемую микросхему (в этом случае исключаются ошибки
программирования, связанные со сбоем в связи между PC и программатором), можно также сделать
программатор с одной универсальной панелькой для всех программируемых микросхем, - всё
зависит от программы управляющего микроконтроллера и фантазии разработчика :-).
Программаторы можно разделить и по типу подключения к программируемой микросхеме: либо
она вставляется в панельку программатора, либо программирование осуществляется внутрисхемно
(с помощью специального разъёма, предусмотренного разработчиком устройства). Несомненно,
последний тип подключения очень удобен, но, к сожалению, не все микроконтроллеры
поддерживают такой режим программирования, к тому же при внутрисхемном программировании
невозможно запрограммировать некоторые биты конфигурации и для их изменения следует
воспользоваться параллельным программатором. Практически все микроконтроллеры фирмы Atmel
поддерживают режим ISP, к тому же при повседневной работе с микроконтроллерами вполне
достаточно внутрисхемного программатора.
В таблице 1 приведены выводы микроконтроллеров, необходимые для внутрисхемного программирования (при программировании микросхемы некоторые программаторы могут генерировать тактовые импульсы, которые подаются на вывод XTAL 1).
Таблица 1. |
Контроллер | Pins (DIP) | Vcc | GND | Reset | SCK | MOSI | MISO | XTAL 1 |
ATtiny12 | 8 | 8 | 4 | 1 | 7 | 5 | 6 | 2 |
ATtiny15 | 8 | 8 | 4 | 1 | 7 | 5 | 6 | внутр |
AT90S1200 | 20 | 20 | 10 | 1 | 19 | 17 | 18 | 5 |
AT90S2313 | 20 | 20 | 10 | 1 | 19 | 17 | 18 | 5 |
AT90S2323 | 8 | 8 | 4 | 1 | 7 | 5 | 6 | 2 |
AT90S2343 | 8 | 8 | 4 | 1 | 7 | 5 | 6 | 2 |
AT90S4433 | 28 | 7 | 8 | 1 | 19 | 17 | 18 | 9 |
AT90S8515 | 40 | 40 | 20 | 9 | 8 | 6 | 7 | 19 |
AT90S8535 | 40 | 10 | 11 | 9 | 8 | 6 | 7 | 13 |
ATmega8 | 28 | 7 | 8 | 1 | 19 | 17 | 18 | 9 |
ATmega16 | 40 | 10 | 11 | 9 | 8 | 6 | 7 | 13 |
ATmega32 | 40 | 10 | 11 | 9 | 8 | 6 | 7 | 13 |
ATmega161 | 40 | 40 | 20 | 9 | 8 | 6 | 7 | 19 |
ATmega162 | 40 | 40 | 20 | 9 | 8 | 6 | 7 | 19 |
ATmega163 | 40 | 10 | 11 | 9 | 8 | 6 | 7 | 13 |
ATmega323 | 40 | 10 | 11 | 9 | 8 | 6 | 7 | 13 |
ATmega8515 | 40 | 40 | 20 | 9 | 8 | 6 | 7 | 19 |
Таблица 2. |
Pin | IDC10 (Altera) | IDC10 (Atmel) | IDC6 (Atmel) |
1 | SCK | MOSI | MISO |
2 | GND | Vcc | Vcc |
3 | MISO | LED | SCK |
4 | Vcc | GND | MOSI |
5 | Reset | Reset | Reset |
6 | ключ | GND | GND |
7 | NC | SCK | - |
8 | XTAL 1 | GND | - |
9 | MOSI | MISO | - |
10 | GND | GND | - |
Рудных Владимир
Mailto: Dreadatour@mail.ru