Рефераты. Разработка программатора микросхем ПЗУ






Конвертор поддерживает ряд форматов файлов:

•     Бинарный: обычный файл.

•     Текстовые форматы. Это форматы hex, mot и mos (Intel hex, Motorolla и MOS Technology). Диапазоны и их количество для этих файлов неявно заложены в их структуре и извлекаются оттуда.

•     Тэгированный файл. Бинарный файл, который тем не менее хранит в себе информацию о диапазонах.

Приведем примеры использования встроенных макросов:

Макрос -hex2bin: преобразование из Intel HEX файла в бинарный

xсvt -hex2bin <входной hex файл> <выходной bin файл>

Макрос -bin2hex: преобразование из бинарного в Intel HEX файл

xсvt -bin2hex <входной hex файл> <выходной bin файл>

Макрос -w2b: разрезание словного файла на байты

xсvt -w2b <входной словный файл> <выходной байтовый (мл. байт)> <ст. байт>

Макрос -b2w: слияние 2х байтовых файлов в словный файл

xcvt -b2w <входной байтовый (мл. байт)> <ст. байт> <выходной словный файл>

Макрос -split: разрезание файлов на части

xCvt -split <входной файл> <выходной> <размер>

В заключение приведем два примера операций с файлом из сотни возможных:

Разделение файла слов на 2 байтовых файла:

xcvt -s0,1 inp.bin -o -s0 outlo.bin -s1 outhi.bin

Перестановка байтов в слове местами:

xcvt -s0,1 inp.bin -o -s1,0 out.bin

Uniprog Development Kit (UDK).


Как указывалось ранее, собственный модуль для прожига ПЗУ(или тест микросхемы) может написать каждый пользователь, владеющий языком «Си». Для этого в комплект программы Uniprog Plus входит пакет Uniprog Development Kit.

Подробно описать все функции Uniprog Development Kit мы планируем в отдельной брошюре (пока см. Help в каталоге UDK). Поэтому очень кратко остановимся на общих принципах взаимодействия пользователя с этим пакетом(см. блок-схему).

Блоки: "программирующий модуль", "модуль редактора", "модуль автоопределения" и "конфигурационный файл" доступны пользователю при написании собственной программы программирования.

"Программирующий модуль" содержит собственно программу прожига, проверки и т.д и использует разнообразные функции ядра Uniprog. При этом можно оперировать логическими понятиями шины адреса, данных и управляющими сигналами, не вдаваясь в физическое устройство программатора.

"Модуль редактора" также использует функции ядра Uniprog и позволяет написать собственный редактор. Необходимость в этом возникает, когда отображение содержимого микросхемы удобно представить в необычной форме. Написание собственного редактора - процесс достаточно сложный, но для большинства микросхем достаточно уже написанного бинарного редактора, а также редактора для отображения различных микросхем ПЛМ.

"Конфигурационный файл" делится на две части.

Первая часть содержит данные для прожига конкретных микросхем из семейства, поддерживаемого программирующим модулем, и передает их этому модулю при выборе  в программе этой микросхемы.

Вторая часть содержит собственно описание некоторых «MENU-шек» в программе Uniprog Plus: выбор микросхем, различные проверки, собственно прожиг, стирание(если необходимо) и т.д.

В заключение необходимо отметить, что программа Uniprog Plus бурно развивается как в сторону увеличения количества программирующих модулей, так и в сторону «интеллектуализации» пакета UDK, что позволит упростить написание собственных модулей.

Схема Uniprog.

С помощью шины данных и сигналов управления, идущих с компьютера, программируются четыре микросхемы Д4–Д7. На выходе этих микросхем формируются сигналы, которые через соответствующие буферные каскады подаются непосредственно на панельки для программирования. На адресное пространство программируемой микросхемы сигналы Р0–Р7, Р16–Р23, Р32–Р35 подают высокое напряжение Е1, а сигналы Р8–Р15, Р24–Р31, Р36–Р39 — логические уровни. На шину данных программируемой микросхемы сигналы Р48–Р55 подают высокое напряжение Е1, а сигналы Р56–Р63 – логические уровни. Сигналы Р64–Р69, Р72–Р77, Р80–Р85, Р88–Р93 через ЦАП-ы D8–D11 и усилители формируют значения напряжений Е1–Е4 соответственно. Сигналы Р71, Р79, Р87, Р95 запрещают напряжения Е1–Е4; сигналы Р70, Р79, Р86, Р94 сглаживают фронты этих напряжений. Через линии Р40–Р47 можно прочитать данные программируемой микросхемы.

Основным звеном схемы программатора является многофункциональный коммутатор. Рассмотрим коммутатор, выходящий на линию PD0. Нижнее звено D23.1 и D25.1 предназначено для коммутации логического сигнала Р56. Верхнее звено D21.1 и VT21 - для коммутации высокого напряжения Е1. Диод VD 29 нужен для отсечки напряжений Е1, меньших 5 v, чтобы обеспечить качественное чтение PD0 через Р40. Диод VD 21 предохраняет регистр 580 ВВ55А от высоких напряжений.

Коммутаторы на шине данных PD используют мощный транзистор типа КТ973, обеспечивающий импульсный ток до 1А, что необходимо для программирования, например, микросхем 556РТхх, 1556хх. Другая шина, часто используемая как адресная, таких токов не требует. Поэтому коммутатор, хоть и выполняет эту же функцию, но устроен несколько проще. Так, например, если на Р0 и Р8 подать запрещенную комбинацию 0 и 0, которая одновременно откроет транзистор VT1 и D15.1, то резистор R1.2 не допустит выгорания D15.1. Коммутатор на PD0, как видно из схемы, запрещенной комбинации не допускает. Нижние восемь рядов РА0 - РА7 шины адреса также допускают чтение через VD1-VD8 и D28 для программирования микросхем с совмещенной 16-ти разрядной шиной адреса и данных.

Как видно из устройства коммутаторов, на любую линию шины адреса или данных (или на несколько сразу) можно вывести высокое напряжение Е1, и при этом другие линии независимо могут иметь логические уровни.

         Кроме 20-ти разрядной шины адреса и 8-ми разрядной шины данных, существуют четыре программируемых источника напряжений Е1-Е4. При этом Е1, как указывалось выше, служит высоким напряжением независимых коммутаторов шины адреса и данных. Четыре мощных независимых линии напряжения программирования управляются с помощью ЦАП 572ПА1, что позволяет автоматически устанавливать эти напряжения при выборе в программе нужной программируемой микросхемы. Все четыре источника имеют одинаковую схему: ЦАП на базе 572ПА1 (включенный несколько нестандартно), в зависимости от цифрового кода, обеспечивает через усилитель нужное напряжение. Сигналы ЕN1-EN4 (от D26 и D27.1/D27.2) либо совсем выключают ЦАП-ы, либо подключают емкости С1-С4, обеспечивая более пологие фронты при перепадах сигнала. Нужно заметить, что транзисторы на выходе усилителей должны быть достаточно высокочастотные (граничная частота > 20 МГц). Это необходимо для качественного функционирования обратной связи (а значит, обеспечивается стабильность напряжения на выходе) в условиях переменной нагрузки, которая возникает при работе с микросхемами, потребляющими разные токи в разных режимах (например, потребление микросхемы 556РТхх при чтении ячеек с кодами 0xFF и 00х0).

Управление всеми коммутаторами и источниками Е1-Е4 осуществляется программированием через LPT-порт микросхем 580 ВВ55А. При этом все каналы, кроме D5.А, программируются на вывод, а D5.А - на ввод для чтения шины данных. Как известно, стандартный LPT-порт имеет однонаправленную шину данных, поэтому чтение данных осуществляется с помощью мультиплексора D2 через четыре информационные линии. Транзистор VT4 улучшает работу в условиях помех. Здесь стоит заметить, что на старых IBM платах, где нет ECP/EPP порта (386 или 486 с VLB шиной), кабель, соединяющий плату Uniprog и LPT-порт, должен быть не более 1 м, и каждый сигнальный провод должен быть отделен один от другого заземленным проводом. Для остальных плат в Setup-е желательно выставить порт LPT в ECP/EPP( как правило, раздел - CHIPSET FEATURES SETUP или INTEGRATED PERIPHERALS).

Осталось только указать, что C8 и D24 служат для начального сброса портов D4-D7, стабилитроны VD39 и VD40 формируют опорное напряжение для ЦАП-ов, а кварц Q1 необходим для программирования микроконтроллеров i87с5х, at89с5х.

На плате программатора, как видно из монтажной схемы, расположен набор посадочных мест под панельки многоразового пользования. Этот набор обеспечивает программирование серий: 27xx, 28xx, 29xx в DP7-DP9; 556PTxx в DP2-DP5; 1556хх, 89C1(2)051 в DP6; 155 PE3 в DP1; 8748(49) в DP10 и 8Х5х в DP11. Другие типы микросхем можно “уложить” в имеющиеся панельки, но рациональнее использовать внешний разъем Х2, к которому можно подключить любую плату с панелькой под конкретную серию, а также использовать нестандартные панельки под корпуса, например, типа PLCC.

Разъемы.

Разъем Х1 предназначен для подключения программатора через кабель к IBM-совместимому компьютеру на интерфейс Сentroniсs (разъем принтера). Шлейф распаивается "один в один", т.е. i-й контакт шлейфа с одной стороны разъема соединяется с i-м контактом разъема с другой стороны шлейфа (см. также раздел "Замечания").

На разъем Х2 выводятся все сигналы для программирования всех микросхем.

Через разъемы Х3 (выполненный в виде наплатного SG5) или Х5 (аналогичный тому, что на плате ПК типа IBM) поступают напряжения питания +5V, –5V и программирующее напряжение +27V – +30V (их можно получить от блока питания для ПК типа IBM с переделкой, описанной ниже).

Настройка и рекомендации.

Т.к. схема достаточно “линейна”, то настройка не представляет труда. Наиболее эффективно отстраивать плату с помощью тест - программы  test.bat (такая программа содержится на прилагаемой дискете). Первый этап теста лучше всего начать с пункта «Автоматический тест», где легко локализовать неисправность.

В разделе «Check device» имеются различные тесты, которые помогут с помощью осциллографа определить неисправное звено. Например, в одном из тестов на линии РА0–РА19 и РD0–РD7 подаются поочередно логические уровни 0 и 1 с возрастающим интервалом (счетчик). Параллельно с помощью осциллографа имеется возможность наблюдения за этими уровнями на одной из панелек или на дополнительном разъеме. Если где-либо сигнала не наблюдается или меандр с неравномерной скважностью (замыкание между сигналами), то легко последовательно проследить всю логику вплоть до разъема Х1 и выявить неисправности. Также можно открывать линии РА0–РА19 и РD0–РD7 через транзисторы VT1–VT28 для высокого напряжения. Тест «Пила» в портах D6.С, D7.A, D7.B, D7.С циклически увеличивает данные, при этом на выходе ЦАП-ов и усилителей получается пилообразное напряжение. Тест «Чтение данных» читает с порта D5.A данные и выводит  число на экран. В нормальном состоянии на экран выводится число #FF (в десятичном виде 255). Далее путем замыкания любого данного на одной из панелек с землей (на всякий случай через небольшой резистор ~ 20 Ом) должно наблюдаться изменение числа на экране. Например, если D0 замкнуть на 0, то на экране появится #FE(254). Если этого эффекта не наблюдается, то опять по цепочке выходим на неисправную микросхему, обрыв или замыкание.

Тесты имеют различные настройки в разделе Options, подробнее о каждом тесте и опциях можно узнать через контекстный Help (справка) в программе.

Замечания:

o Для качественного программирования ПЗУ не пожалейте блокировочных конденсаторов на все питания.

o !!! Рекомендуем настройку начинать с выключенным высоким напряжением +27v, т.к. возможные замыкания или некоторые неисправные элементы могут повлечь выгорание других элементов.  !!! Опцию Bus translate в таких тестах как "Пила" и т.д. можно продолжительно использовать только с радиатором на транзисторе VT33(E1).

o У разных программаторов из-за разброса параметров элементной базы напряжения Е1-Е4 могут несколько отличаться. В Uniprog Plus осуществляется коррекция этих напряжений посредством программы test.bat (раздел "Юстировка напряжений E1-E4").

Замечания.

К плате Uniprog

o В Setup-е IBM PC желательно переключить тип LPT - порта из Normal(SPP) в ECP/EPP.

o В кабеле, соединяющем PC и UniProg, необходимо сигнальные шины чередовать с землей. Т.е. расположение сигналов на плоском кабеле должно быть: сигнал1-земля, сигнал2-земля, и т.д.

o На монтажной схеме 555 ЛА13 и 555 ЛН3 суть микросхемы 155 ЛА13 и 155 ЛН3.

o D2 (на схеме 555КП11) надо использовать более мощных серий - 531 или 155.


К модулю PIC

Программирование PIC последовательного типа (т.е. для всех серий, кроме PIC1652-58) осуществляется при помощи пяти проводов (например, на разъеме Х2):

Программатор              —>         PIC16x(12x,14000)

         PA8                                       CLOCK

         PD0                                        DATA

         E4                                           MCLR

         E2                                           Vcc (Питание)

         GND                                      GND (Земля) - это сигналы Пика могут быть на разных ножках (например, для pic16f84 CLOCK(RB6) - 12, DATA(RB7) - 13, MCLR - 4, Vcc(Vdd) - 14, GND(Vss) - 5).

Сигналы с программатора см. по схеме (так на внешнем разъеме Х2 для версии 1.x и 2.x PA8 - А18, PD0 - А4, E4 - В9, E2 - В12, GND - А10,В10)


Программирование параллельного типа (т.е. для серии PIC1652-58) осуществляется при помощи семнадцати проводов:

Программатор              —>        PIC16x52-58

         PA8                                       INCPC (OSC1)

         PA9                                       PROG/VER (T0CKI)

         PD0-7                                    D4-D11 (RB0-RB7)

         PA0-3                                    D0-D3 (RA0-RA3)

         E4                                           MCLR

         E2                                           Vcc (Питание)

         GND                                      GND (Земля)


Распределение памяти для модуля PIC в бинарном виде представлено в следующем виде:

с нулевого адреса - память программ, далее - память данных(если она есть) в словном размере и в конце восемь слов: первые четыре - ID, далее 5,6,7-е зарезервированные слова(в 7-м слове в новых микросхемах содержится идентификационный код) и, наконец последнее слово - конфигурационное. Т.е. :

0 - size_addr-1                               - память программ;

size_addr - size_data-1                - память данных;

size_data - size_data+3               - ID;

NNN_data+4                 - резерв;

NNN_data+5                 - резерв;

NNN_data+6                 - резерв или идентификационный код микросхемы;

NNN_data+7                 - конфигурационное слово;

Биты слов, выходящие за пределы разрядности соответствующей памяти, игнорируются.

Можно также пользоваться .hex(или другими текстовыми форматами) файлами или конвертировать их в бинарный вид (cм. конверторы, пункт Source на стр. 6).

Более подробную информацию можно получить в контекстной справке по клавише 'F1' в модуле PIC.

К модулю FLASH

Микросхемы, имеющие более 32 выводов, можно программировать через внешний разъем  Х2:

Программатор              —>         FLASH

         E2                                           Vcc (Питание)

         E3                                           Reset

         E4                                           Vpp

         PA16                                     CE

         PA17                                     OE

         PA18                                     WE

         PA0 - PA15                          A0 - A15

         PD0 - PD7                             D0 - D7

         GND                                      GND (Земля)

      Если имеется сигнал BYTE, то он должен быть замкнут но 0, чтобы обеспечить байтовую шину данных.

Адрес РА19 зарезервирован для внешнего регистра, расширяещего адресное пространство до 24 (и более), т.е. дополнительные A16-A23 а также A-1. В ближайшее время ПО будет поддерживать этот регистр (поэтому пока можно программировать эти ПЗУ блоками по 64к).

К модулю ПОСЛЕДОВАТЕЛЬНЫХ ПЗУ и AVR.

Последовательные ПЗУ в основном имеют не более 8 выводов, назовем их P1-P8, поэтому для программирования было решено использовать шину данных PD0-PD7. Т.е. к соответствующему выводу микросхемы P (DIP - корпуса) подключается соответствующий сигнал PD (PD0->P1, PD1->P2, ..., PD(x-1)->Px) ). При этом на тот вывод где земля (GND) подается логический 0, а где питание 1, напряжение Е1 выставляется на "напряжение питания" + 0.5v (с поправкой на падение на транзисторах). Дополнительно на Е2 выставляется точное напряжение питания, чтобы можно было непосредственно подключить его на P=Vcc (обычно вывод P8). А также на один (или несколько) из адресов шины PA0-PA7 соответствующему P=GND, подается логическая 1 для возможности подключить "землю" через полевой N-канальный транзистор (т.е. PA(x-1)->транзистор->Px=GND) следующим образом:


                                                                                        Px

                                        

                                                                                                       например IRF7303

                

  PA(x-1)                                                                        

                  

                                                                                       GND


Такое подключение земли более корректно, чем через PDx (где логический ТТЛ уровень 0), но никто не мешает непосредственно заземлить соответствующий вывод GND микросхемы.

Для подключения последовательных ПЗУ планируется выпустить переходную панель с распиновкой:

Программатор --->                                                     ПЗУ

  PD0 -PD7                                                                                    P1-P8

  E2   через полевой P-транзистор                          P8 (управления пока нет)

  PA2 -PA4 через полевой N-транзистор              P3-P5

Приведем примеры подключения СТАНДАРТНЫХ микросхем следующих серий:

Подключение серии IIC(24xx)

                                               PA3 через полевой N-транзистор или  GND

PD0        PD1        PD2           |            PD4        PD5        PD6        E2 или PD7

A0          A1          A2          GND       SDA       SCL        WP         Vcc

Подключение серии MicroWire(59xx)

                                                                               PA4 через полевой N-транзистор или GND

PD0        PD1        PD2        PD3           |            PD5        PD6        E2 или PD7

CS           CLK        DI           DO          GND       ORG       RDY       Vcc

Подключение серии MicroWire(93xx)

                                                               PA4 через полевой N-транзистор или GND

PD0        PD1        PD2        PD3            |           PD5        PD6        E2 или PD7

CS           CLK        DI           DO          GND       ORG       WP         Vcc

Подключение серии SPI(25xx)

                                               PA3 через полевой N-транзистор или непосредственно GND

PD0        PD1        PD2           |            PD4        PD5        PD6        E2 или PD7

CS           DO          WP         GND       DI           CLK        HOLD    Vcc

Страницы: 1, 2, 3, 4



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.