Разновидности программаторов.
Существует большое количество различных программаторов, но их можно разделить на две
категории: подключаемые к 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).
Контроллер |
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 |
Разъём, через который микросхема подключается к программатору может быть любой, но чтобы не
возникало путаницы желательно придерживаться какого-либо стандарта. На данное время мне
известно три типа разъёмов, более или менее распространенных. Это IDC10 с разводкой Altera
(ByteBlaster), IDC10 с разводкой Atmel (STK200/300) и IDC6 с разводкой Atmel. Распиновка этих
разъёмов приведена в таблице 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 |
- |
В шестой контакт (ключ) разъёма Altera (ByteBlaster) рекомендуется забить кусочек спички,
а соответствующую ногу разъёма не паять на плату, тогда можно будет отличить все три вида
разъёмов друг от друга.
Программаторы:
Рудных Владимир
Mailto: Dreadatour@mail.ru
|