УНИВЕРСАЛЬНЫЙ
ВНУТРИСИСТЕМНЫЙ ПРОГРАММАТОР Публикуется
впервые Микроконтроллеры
(МК) семейств AVR и PIC - micro ,благодаря
высоким техническим показателям,
наличию превосходных сред разработки
микропрограмм, простоте освоения,
относительно низкой себестоимости и
доступности, обрели популярность как
среди профессиональных
разработчиков электронной техники, так
и среди радиолюбителей, охотно
применяющих эти МК в своих
конструкциях. Наличие у МК режима
последовательного программирования
значительно упростило аппаратную
часть программатора и, что немаловажно,
позволило прошивать микроконтроллеры
прямо на плате разрабатываемого
устройства. Однако приобрести
дорогостоящий промышленный
программатор не по карману не только
радиолюбителям, но и многим
малобюджетным организациям. По этой
причине задача записи прошивки в
память МК зачастую превращается в
непреодолимую проблему. Идея создать
доступный программатор, отвечающий
требованиям спецификации
программирования микроконтроллеров и
имеющий стандартный протокол связи с
компьютером не нова. За последние
годы было разработано огромное
количество таких приборов.
Функционально такое устройство
представляет собой преобразователь
сигналов порта ПК в уровни, необходимые
для программирования микросхем
определенного типа. По
способу сопряжения с ПК, программаторы
можно разделить на 4 категории: со
связью через параллельный порт (LPT),
через последовательный RS232-совместимый
порт (COM), через универсальную
последовательную шину (USB) и
подключаемые непосредственно на
внутренние шины компьютера (ISA, PCI).
Наиболее простым и надежным вариантом
сопряжения является связь
программатора с ПК через СОМ - порт. СОМ-порт
имеет защиту от перегрузок, допускает (согласно
спецификации) большую протяженность
линий, не требует вскрытия системного
блока для подключения устройства, а
наличие нескольких СОМ - портов
позволяет при необходимости
подключать к одному ПК несколько
различных устройств. Микроконтроллеры
AVR программируются по трехпроводному
интерфейсу, две линии служат для
передачи данных, одна- для тактирования.
Все линии однонаправленные. Перевод МК
в режим программирования производится
по команде "Programming Enable" при
установленном низком логическом
уровне на входе RESET. Подачи повышенных
напряжений не требуется. Программирование
PIC выполняется по двум линиям, одна из
которых - двунаправленная шина
последовательных данных, другая-
однонаправленная шина тактирования.
Перевод в режим программирования
осуществляется путем подачи на вывод
MCLR повышенного напряжения Vpp=10.0...13,0В.
Для некоторых моделей этих МК
дополнительно существует режим
низковольтного программирования, при
котором перевод в режим
программирования осуществляется без
применения повышенных напряжений,
посредством подачи +5В на специально
выделенный для этого вывод. Так можно
программировать популярные МК PIC16F627/628,
PIC16F87X и некоторые другие. Режим LVP
разрешается установкой
соответствующего бита в слове
конфигурации, данная операция возможна
только в режиме "высоковольтного"
программирования, но изначально в МК,
поступающих на реализацию, бит уже
установлен . Недостатками данного
режима являются невозможность
использования вывода LVP как линии ввода-
вывода (а их, как известно, много не
бывает), низкая устойчивость памяти к
случайному затиранию, например при
воздействии на вывод помех и статики,
сложный алгоритм программирования.
Подробнее об алгоритмах
программирования можно прочитать в
документации фирм - производителей.
Программатор выполнен на
базе широко распространенной и
доступной микросхемы- преобразователя
RS232<-->TTL. Интерфейс полностью
совместим с RS232, поэтому работает
практически на всех компьютерах при
длине интерфейсного (только
естественно не нуль-модемного!!!) кабеля
до 10 метров. Программного обеспечения
специально не разрабатывалось, девайс
прекрасно работает с PonyProg, будет
работать и с некоторыми другими, если
правильно настроить. Теоретически,
такой программатор способен шить любые
чипы с последовательным интерфейсом.
Токоограничивающие резисторы,
включенные "в разрыв" цепей
программирования, предотвращают
повреждение выходов интерфейсной ИС и
портов программируемого МК при разной
величине питающих напряжений.
К сожалению, на данный момент
я не нашел оптимального решения по
вопросу получения напряжения
программирования для МК PIC. Схемы
отличаются только цепями формирования
Vpp.
Схемы программатора:
Версия
1. Vpp формируется из интерфейсного
напряжения. Самый простой вариант, но на
"горелом" порту не работает :-(((
Версия
2. Vpp подается извне, подается через
ключ, как в PonyProg. Требуется сложный
стабилизированный источник питания
Версия
3. Использован преобразователь
напряжения. Решение дорогостоящее, но
самое удобное в эксплуатации.
Преобразователь в принципе может быть
любой конструкции, главное - получить
13...15В из 5В.
Для упрощения коммутации и
исключения возможности ошибочного
подключения, кабели для программирования
PIC и AVR выполнены различными.
Схема распайки
кабелей
При программировании AVR,
микросхема работает как приемопередатчик
в стандартном включении.
Примерный
фрагмент схемы устройства на AVR с цепями
программирования
С программированием PIC -
несколько сложнее. Во-первых, для
нормального функционирования CОМ-порта,
надо разделить двунаправленную шину
микроконтроллера на линии приема и
передачи данных. Во-вторых, при
стандартном программировании нужна
подача Vpp. Разделение происходит только
тогда, когда к разъему устройства
подключен кабель для программирования PIC.
Напряжение программирования может быть
подано извне, или же сформировано внутри
программатора. Самое простое решение -
сформировать Vpp из напряжения линии
интерфейса, (низкий уровень которого
должен составлять + 12...15В), однако порты
некоторых ПК по ряду причин выдают слишком
низкое напряжение. Можно использовать
свободный выход одного из передатчиков
интерфейсной микросхемы, однако
напряжение на нем не превышает удвоенного
питающего и может оказаться недостаточным.
Режим низковольтного программирования
включается вручную.
Примерный
фрагмент схемы устройства на PIC с цепями
программирования
Фрагмент схемы
для низковольтного программирования
В качестве микросхемы
интерфейса можно использовать любую ИС
приемопередатчика RS232 (ADM/MAX/LTC/HIN 202,232,233...цоколеку
- см в Datasheets) имеющую 5-ти-вольтное
питание и не менее двух каналов прием-передача.
Питание прибора осуществляется от
источника напряжением 5В или от
программируемой схемы. Следует отметить,
что программатор не имеет гальванической
развязки .
|