Разъемы для подключения программатора
Существует два варианта подключения программатора к микроконтроллеру:
1) непосредственно в панельке программатора
2) внутрисхемно
В первом случае микроконтроллеры программируются перед установкой в устройство, для перепрограммирования требуется их извлечение из устройства, установка в панельку программатора, извлечение из программатора, установка в устройство…. и т.д. и т.п. по замкнутому кругу. Такой метод возможен только при использовании DIP-корпусов. Помимо временных затрат, при таких манипуляциях можно сломать “ножку” микроконтроллера или, что еще хуже, ноготь :) .
При внутрисхемном программировании используются специальные разъемы на плате для подключения программатора. Это очень удобно, так как программу микроконтроллера в этом случае можно всегда изменить, не вынимая (не выпаивая) его из платы.
Микросхемы, имеющие возможность внутрисхемного программирования, обычно поддерживают режим программирования по последовательному каналу. В этом режиме программирование осуществляется через последовательный интерфейс SPI. Для подключения программатора к устройству используются три линии интерфейса: SCK (тактовый сигнал), MOSI (вход данных) и MISO (выход данных), а также линия сброса – RESET, плюс и минус питания (VCC и GND). Программирование осуществляется путем посылки 4-байтных команд на вывод MOSI микроконтроллера. Результат выполнения команд чтения снимается с вывода MISO.
В таблице 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 |
Наиболее распространены 4 типа разъемов, через которые микросхема подключается к программатору. Это IDC10 с разводкой Altera (ByteBlaster), IDC10 с разводкой Atmel (STK200/300), IDC6 с разводкой Atmel и штыревые разъемы PLS-6. Распиновка этих разъёмов приведена в таблице 2.
Таблица 2. |
Pin |
IDC10 (Altera) |
IDC10 (Atmel) | IDC6 (Atmel) | PLS-6 | ||||
1 | SCK | MOSI | MISO | GND | ||||
2 | GND | Vcc | Vcc | Vcc | ||||
3 | MISO | NC | SCK | Reset | ||||
4 | Vcc | GND | MOSI | SCK | ||||
5 | Reset | Reset | Reset | MISO | ||||
6 | ключ | GND | GND | MOSI | ||||
7 | NC | SCK | - | - | ||||
8 | XTAL 1 | GND | - | - | ||||
9 | MOSI | MISO | - | - | ||||
10 | GND | GND | - | - |
Если у вас десяти выводной программатор, а на плате шести выводной разъем, можно соорудить переходничек для программирования, соединив соответствующие выводы разъемов.
В распространенных программаторах применяются следующие разъемы:
Atmel10:
BM9010 - USB внутрисхемный программатор AVR
BM9009 - LPT Внутрисхемный программатор AVR
AVR / 89S совместимый с AVR910 (Prottoss)
Atmel6:
NM9211 - Программатор AT89S/AT90S фирмы ATMEL
ПС. в некоторых моделях программатора вывод 3 разъема Atmel10 подключаются к источнику тактирования. То есть в случае, если вы разрабатываете схему на внутреннем RC-генераторе, имеет смысл завести на Pin3 ножку Xtal1, чтобы если кто-то, по ошибке, установит фьюз на работу с кварцем (которого нет), микросхема, тем не менее, поддавалась бы программированию.
Автор : Olia