Рассмотрим классификацию программаторов по функциональным возможностям. Условно их можно подразделить на такие группы:
- программаторы, программирующие микросхемы памяти (EPROM, EEPROM, FLASH);
- программаторы, программирующие микросхемы памяти (EPROM, EEPROM, FLASH) и внутреннюю память микроконтроллеров;
- программаторы, программирующие микросхемы памяти (EPROM, EEPROM, FLASH), внутреннюю память микроконтроллеров, микросхемы программируемой логики (PLD);
- универсальные программаторы-тестеры.
Последняя функциональная группа программаторов - универсальные программаторы - наиболее сложные и дорогие устройства, но способные работать с очень большим перечнем микросхем. Стоимость таких устройств может достигать тысяч и десятков тысяч долларов.
Аппаратное устройство программаторов.
В первую очередь коснемся той детали программатора, с которой Вам придется взаимодействовать больше всего - это колодка, куда помещается программируемая микросхема. Эта одна из самых важных деталей программатора, от качества и надежности которой зависит способность программатора выполнять свои функции. Как показал наш многолетний опыт, любой программатор вне зависимости от его сложности, стоимости и функциональных возможностей обязательно должен быть снабжен специальной тестовой колодкой, обеспечивающей многократный надежный контакт с программируемой микросхемой. Фирмы, выпускающие такие сокетки, гарантируют надежный контакт при десятках тысячей операций установки в нее микросхем. Наиболее удобными для пользователя являются специальные сокетки с нулевым усилием (ZIF socket). Если программатор не снабжен специальными тестовыми сокетками, предназначенными для многократных установок микросхем, а вместо них стоят дешевые одноразовые колодки, то считайте, что Вы просто зря потратили свои деньги. Вы быстро сможете в этом убедиться, когда безвозвратно испортите микросхемы с однократным программированием из-за отсутствия контакта в колодке. В недорогих программаторах обычно устанавливаются универсальные (рассчитанные как на узкий, так и на широкий тип корпуса) ZIF DIP сокетки. В более дорогих образцах программаторов могут устанавливаться одновременно несколько видов ZIF сокеток, рассчитанных на разные типы корпусов микросхем (LCC, QFP и т.д.). Иногда программаторы снабжаются универсальными сменными головками под различные типы корпусов. Для программирования микросхем с корпусами, отличными от DIP и с большим числом выводов, программаторы снабжаются специальными адаптерами под соответствующий тип корпуса. В связи с тем, что на этих адаптерах также должны устанавливаться высоконадежные тестовые сокетки, стоимость таких адаптеров может оказаться довольно существенной.
Заглянем внутрь программаторов и в общих чертах попытаемся понять, чем же они отличаются друг от друга. Принципиально существует две концепции построения программаторов. Первая, и наиболее очевидная, заключается в построении программаторов на базе массива универсальных аппаратных драйверов. Универсальные драйверы подводятся к выводам тестовой сокетки и должны удовлетворять ряду специфических аппаратных требований по программированию микросхем. В перечень таких требований входят: способность подавать и считывать логические уровни, способность подавать сложные тактовые последовательности, способность подводить напряжение в диапазоне 0...27 В с точностью 0.1 В и т.д. и т.п. Удовлетворение всем этим требованиям приводит к колоссальным аппаратным затратам и избыточности всего устройства в целом. Количество драйверов универсального программатора должно соответствовать количеству выводов тестовой сокетки, например, 40 драйверов для сокетки DIP-40, или 84 драйвера для сокетки LCC-84. В результате, устройство становится очень сложным и дорогостоящим, но при этом абсолютно универсальным. Имея 40 универсальных драйверов и универсальную тестовую сокетку DIP-40 можно с уверенностью сказать, что удастся поддержать все существующие, а также любые новые, микросхемы в корпусе DIP (с числом выводов до 40) без дополнительных адаптеров. Именно по такой схеме строятся дорогие универсальные программаторы.
Вторая концепция заключается в том, что аппаратура программатора оптимизируется под предполагаемый перечень поддерживаемых микросхем. Программаторы этого класса, как правило, значительно дешевле универсальных программаторов, но такие изделия в известной степени теряют универсальные свойства. Добавление новых типов поддерживаемых программатором микросхем может быть сопряжено со значительными трудностями, а часто и с невозможностью расширения списка программируемых устройств.
Использую многолетний опыт разработки и производства программаторов, нами разработана и внедрена компромиссная концепция построения программаторов - универсальный драйвер разбивается на два функциональных блока: универсальный логический драйвер и устройство коммутации "высокого" напряжения. Такая архитектура программатора позволила в значительной степени сохранить преимущества универсального драйвера и существенно сократить аппаратные затраты и , как следствие, уменьшить себестоимость и цену конечных изделий.
Рассмотрим способ подключения программаторов к компьютеру. Наиболее распространенными способами подключения являются:
- подключение к принтерному порту,
- подключение к последовательному порту,
- установка специальной платы в компьютер.
Другой вариант сопряжения программатора с компьютером - последовательный канал компьютера. Это вполне допустимый вариант сопряжения, допускающий работу программатора с компьютерами всех типов. К существенным недостаткам такого варианта сопряжения можно отнести невысокую пропускную способность канала. Максимальная скорость последовательного канала RS-232 ограничена значением 115 кБод, что существенно ограничивает обмен между компьютером и программатором, и, следовательно, снижает производительность последнего.
Подключение программатора к принтерному порту компьютера нам видится наиболее предпочтительным вариантом. Этот способ сочетает в себе достаточно высокую пропускную способность канала и не требует серьезных аппаратных затрат. При использование этого способа удается воспользоваться центральным процессором компьютера в качестве управляющего процессора программатора.
Теперь обратим внимание на ряд "второстепенных мелочей ", которые при активной работе с программатором могут либо серьезно попортить Вам жизнь, либо, при удачной реализации, значительно облегчат Вашу работу. К таким "мелочам" мы бы отнесли способ обновления версий программатора, способность программатора определять правильность установки микросхемы в колодке и проведение процедуры самотестирования при включении питания.
Способ обновления версии - это довольно существенный вопрос эксплуатации программаторов. Необходимость обновления версии может возникнуть по ряду причин, во-первых, при выявление ошибки работы программатора (увы, такое тоже встречается, все мы грешны), либо при расширение списка поддерживаемых программатором микросхем. Способ обновления версии программатора зависит от его аппаратного устройства. В одних изделиях алгоритмы программирования жестко "зашиты" в аппаратуру, в других - они являются загружаемыми. В первом случае для модификации версии требуется модификация самого устройства программатора (например, перепрограммирование ПЗУ самого программатора), а это сопряжено с рядом дополнительных неудобств по доставке изделия производителю или в региональный сервисный центр. Другое дело, если обновление версии осуществляется только обновлением программного обеспечения программатора. Именно по такой схеме построены программаторы с загружаемыми алгоритмами программирования. В таких программаторах Вы обновляете только программное обеспечение и работаете уже с новой версией. Второй способ видится нам наиболее удобным в эксплуатации, и именно по такой схеме строится обновление версий всех выпускаемых фирмой "Фитон" программаторов
Теперь обратим внимание на такую "мелочь", как способность программатора определять правильность установки микросхемы в тестовую колодку. При кажущейся незначительности этой опции, мы начинаем понимать всю ее важность только после выхода из строя микросхемы при неверной установки ее в колодку (а такое рано или поздно случается). И винить в этом случае некого - сами виноваты. Именно для предотвращения таких ситуаций и служит эта опция. Здесь необходимо указать, что полноценная реализация такой возможности требует от разработчика больших усилий и, порой, изобретательности. Дело в том, что необходимо протестировать микросхему в колодке в самом щадящем для нее режиме, при этом ни в коем случае не допуская выхода микросхемы из строя.
И в заключение обсуждения аппаратного устройства программаторов, на наш взгляд, необходимо упомянуть о настоятельной необходимости проведения программаторами процедуры самотестирования. Обычно эта процедура проводится после инициализации аппаратуры программатора. Цель этой процедуры - встроенными средствами провести проверку работоспособности всего оборудования устройства и принять решение о возможности полноценной работы программатора. К сожалению, встроенными средствами не всегда удается однозначно убедится в работоспособности всех узлов устройства, но тем не менее эта процедура обязательно должна проводится с целью минимизации вероятности эксплуатации неработоспособного оборудования.
Программное обеспечение программатора.
Дадим общее представление о возможных способах реализации программного обеспечения (ПО) программатора. Первое, на что нужно обратить внимание, - это под управлением какой операционной системы работает программатор. Большинство программного обеспечения программаторов реализовано под управлением DOS и не предъявляет к компьютеру специфических требований. Обычно, это программы, разработанные довольно давно. В последние несколько лет стали появляться программаторы, работающие под управлением операционной системы Windows. Это современные продукты, которые, как правило, выглядят гораздо элегантнее, имеют более дружественный интерфейс и обладают большим числом сервисных возможностей.
Рассмотрим архитектуру программного обеспечения программаторов. Наиболее распространенной является архитектура, в которой в качестве ядра программатора выступает промежуточный буфер данных. Все операции в программаторе выполняются с этим буфером. Для программирования микросхемы необходимо загрузить файл в буфер, запрограммировать данные из буфера в микросхему, сравнить содержимое микросхемы и буфера. При чтении данные из микросхемы записываются в буфер. Размер промежуточного буфера данных, обычно, коррелирован с размером текущего типа микросхемы. Многолетний опыт разработки и производства программаторов позволил выработать концепцию оригинальной многобуферной архитектуры ПО программаторов с неограниченным количеством буферов. Такая архитектура позволяет работать с неограниченным количеством независимых наборов данных, проводить их анализ и редактирование. Например, Вы можете воспользоваться двумя буферами для считывания в них двух разных микросхем, проведения анализа этих наборов данных и, на их базе, создания нового массива данных в третьем буфере для последующего программирования его в микросхемы памяти или сохранения на диске.
Стандартным набором функций программаторов обычно являются следующие функции: чтение, запись, сравнение, контроль на чистоту, стирание (только для электрически перепрограммируемых устройств) микросхем. Некоторые программаторы имеют функцию автоматического программирования. Эта функция позволяет осуществить часто используемую комбинацию действий для конкретного типа микросхемы. Обычно, такая комбинация состоит из такого набора: стереть микросхему, проконтролировать стертость, запрограммировать, сравнить запрограммированные данные с оригиналом, установить защиту. Удобство этой функции заключается в том, что весь "джентльменский" набор активизируется одним нажатием.
Отдельно остановимся на редакторских функциях программаторов. Наиболее распространенным перечнем редакторских функций являются: редактирование данных в шестнадцатеричном формате, возможность заполнения буфера данных константой и подсчет контрольной суммы. Этого простого набора редакторских функций вполне достаточно для простых приложений. Для профессионального использования программаторов необходимы расширенные возможности редактирования. К ним можно отнести
- возможность редактирования данных не только в шестнадцатеричном формате, но и в двоичном, восьмеричном и десятичном представлении;
- заполнение массива строкой данных;
- поиск и замена строки данных;
- инвертирование данных;
- копирование массива данных как внутри одного буфера, так и между разными буферами;
- подсчет контрольной суммы;
- конвертирование шин адреса и данных.
Возможности "реального" программатора мы проиллюстрируем на примере модели Multiprog.
MultiProg
Универсальный программатор
для программирования микросхем памяти (EPROM, EEPROM, FLASH)
внутреннего ППЗУ микроконтроллеров,
микросхем программируемой логики (PAL, GAL, EPLD).
Программатор поддерживает:для программирования микросхем памяти (EPROM, EEPROM, FLASH)
внутреннего ППЗУ микроконтроллеров,
микросхем программируемой логики (PAL, GAL, EPLD).
Микроконтроллеры фирм:
Microchip, Atmel, Intel, Philips и др. EPROM, EEPROM, FLASH
(27XXX; 28XXX; 28FXXX; 29XXX; 24XXX; 93XXX)
отечественные 573РФ2/5/4/8 ; AMD; Atmel; Catalyst; Exel; Fujitsu; Greenwich; Hitachi; Hyundai; Intel; ISSI; Macronix; Microchip; Mitsubishi; Mostek; National Semiconductor; NEC; Oki; Philips; Ricoh; Rockwell; Samsung; SEEQ; SGS-Thomson; Signetics; SMOS; Texas Instruments; Toshiba; VLSI; Xicor; Xilinx; PAL, GAL, EPLD Altera, AMD, Atmel, Lattice, Xilinx.....
- Поддержка программирования микросхем в соответсвии с "промышленной" спецификацией фирмы Microchip.
- Возможность чтения, программирования, верификации микросхем при различных напряжениях.
- Возможность создания сценариев программирования, включая последовательность и количество циклов программирования, чтения, верификации.
- Возможность модификации параметров программирования: t pr, Vcc , Vpp;
- Возможность программирования 8-ми битной памяти для работы с 8, 16, 32 разрядными шинами.
- Самотестирование при включении питания.
- Тестирование правильности установки микросхемы.
- Работа с файлами в форматах: Standard/Extended intel HEX, Binary image, Motorola S, POF, JEDEC, PRG.
- Представление данных в шестнадцатиричном, восьмеричном, двоичном, символьном (ASCII) форматах.
- Запись/дозапись/чтение/верификация/контроль стирания любой области ПЗУ.
- Полнофункциональный двоичный редактор:
- заполнение указанной области строкой данных;
- поиск и поиск/замена строки данных;
- инвертирование блока данных;
- копирование блока данных;
- сравнение блока данных;
MultiProg снабжен одной 40-выводной колодкой с нулевым усилием и программирует микросхемы в корпусе DIP без дополнительных адаптеров. Для работы с ИС в других корпусах предлагаются специализированные адаптеры.
MultiProg аппаратно реализован на базе микросхем загружаемой логики. Программно-конфигурируемая аппаратура программатора предоставляет возможность легко расширять список программируемых устройств путем простого обновления версии программного обеспечения. Обновление программного обеспечения производится бесплатно. Программное обеспечение MultiProg реализовано под Windowsв.
Интерфейс пользователя - многооконный, со свободной конфигурацией окон. Одновременно может быть открыто несколько буферов, содержащих различные данные для программирования.
Текущая версия программного обеспечения программатора доступна на Website:
phyton.ru/