Лучшее из возможного!

Размер шрифта:  Aa Aa Aa Aa Aa



Параллельный программатор для AVR - аналог STK500

Версия 2, исправленная и доработанная

Принципиальная схема параллельного программатора AVR

Практически все AVR контроллеры можно запрограммировать в двух режимах – высоковольтном (параллельном) и низковольтном (ISP). Наиболее часто используется низковольтное программирование. В большинстве случаев для зашивки кодов программы не требуется даже извлекать контроллер из платы и устанавливать его в панель программатора. Аппаратная реализация ISP программаторов очень простая, с описанием одного из вариантов такого программатора – аналога фирменного AVRISP – можно ознакомиться на страничке Программатор для AVR - аналог AVRISP моего сайта.

К сожалению, изначально фирма Atmel основным режимом считала режим параллельного высоковольтного программирования. Поэтому в режиме ISP некоторые функции, в частности отдельные FUSE биты, недоступны для программирования. Если быть точным, то запрограммировать их можно, но только один раз. После этого контроллер перестанет определяться программатором и перепрограммировать его в режиме ISP будет невозможно.

Наиболее актуальна эта проблема для микроконтроллеров в восьмивыводном корпусе, в которых вывод сброса RESET можно запрограммировать на использование в качестве дополнительного порта ввода-вывода. Это делается установкой FUSE бита RSTDISBL. Но после этого контроллер невозможно будет перепрограммировать в режиме ISP. Возможны и другие ситуации, когда не обойтись без высоковольтного параллельного программатора.

Предлагаемый программатор – это упрощенный и модернизированный аналог выпускаемого и поддерживаемого компанией Atmel стартового набора разработчика STK500. Он позволяет программировать микроконтроллеры как в режиме ISP, так и в параллельном режиме. Поддерживаются все, без исключения, микроконтроллеры 8 бит AVR. Управление осуществляется через COM порт персонального компьютера. Возможно подключение и к USB через конвертер, например на FT232BM, описание которого можно найти страничке Переходник USB COM моего сайта. Управляющая программа является составной частью фирменной интегрированной отладочной среды разработки AVR Studio от Atmel. Ее последняя версия всегда свободно доступна на сайте Atmel по адресу http://www.atmel.com.

Принципиальная схема основной платы программатора показана на рис. 1. Слишком сложно? Но ведь любой инструмент может быть любительским или профессиональным. Если нужно раз в жизни запрограммировать один единственный контроллер, конечно, собирать такую относительно сложную схему нецелесообразно. А вот для программиста – разработчика устройств на основе AVR, такой программатор может сберечь массу сил, многократно окупив потраченные на его изготовление средства и время. Если вам нужен профессиональный параллельный высоковольтный программатор AVR, который можно собрать своими руками, то эта конструкция именно то, что вам нужно.

Собственно программатор выполнен на DD3 типа ATmega8535. Светодиоды HL1 зеленого цвета и HL2 красного индицируют режим готовности и программирования соответственно. DD4 предназначен для записи новых версий прошивок в основной контроллер, а также для управления напряжением питания программируемого контроллера. Для повышения нагрузочной способности выводы PD3…PD5 соединены параллельно.

В схеме программатора предусмотрены два переключателя с фиксацией – SA1 и SA2. SA1 в левом по схеме положении включает в цепь питания диоды VD4 и VD5. При этом напряжение питания программатора и, соответственно, программируемого контроллера снижается примерно до 3,6 В. Как показала практика, иногда это бывает необходимо, т.к. некоторые контроллеры при напряжении 5 В в параллельном режиме программируются некорректно.

Если переключатель SA2 установить в левое по схеме положение, после программирования на выводе сброса будет установлен единичный уровень, т.е. сразу начинается работа запрограммированной в контроллер программы. Это хорошо при отладке и внутрисхемном программировании, но нежелательно при программировании в панельке программатора. Ведь неконтролируемая работа программы может привести к непредсказуемым последствиям, например, испортить содержимое EEPROM только что корректно запрограммированного контроллера. Для исключения этого SA2 следует установить в правое по схеме положение. В этом случае на выводе RESET после программирования будет нулевой уровень, а питание контроллера отключится.

Элементы микросхемы DD6 блокируют подачу на программируемый контроллер тактовой частоты при выключении его питания. На транзисторах VT1…VT3 собран коммутатор напряжения сброса 0 – 5 – 12 В. Включение напряжения 12 В при программировании индицирует свечение светодиода HL4 красного цвета. VT4 - это ключ, коммутирующий питание программируемого контроллера. Как показала практика, при программировании потребляемый ток может достигать 100 мА, поэтому в качестве VT4 нужно использовать транзистор с допустимым током 0,5…1 А. DD5 – это преобразователь напряжения 5 –>12 В.

Контроллеры в DIP корпусах можно программировать в параллельном режиме непосредственно в программаторе на плате коммутации, которая подключается к основной плате параллельно разъему X3. В режиме ISP возможно только внутрисхемное программирование, хотя, при необходимости, можно и для этого режима изготовить плату коммутации и подключить ее к разъему X3. Ее схема аналогична схеме платы коммутации упоминавшегося выше программатора AVRISP.

Параллельное программирование новой серии AVR ATtiny26/261/461/861 производится с помощью дополнительного переходника - модуля расширения.

Схема платы коммутации, чертежи печатных плат, а также особенности наладки и работы с программатором рассмотрены в подробном описании.


PDF Подробное описание (ver.16-03-2012)
ZIP Платы в Sprint Layout 4.0 и схема в Orcad 9.1 (ver.16-03-2012)
ZIP Прошивка и исходный текст программы контроллера на ассемблере (ver.10-03-2011)