*Это описание сделано только на основании анализа схемы и

advertisement
*Это описание сделано только на основании анализа схемы и наверняка содержит
много неточностей, но для понимания принципов работы схемы этого достаточно.
** Нумерация компонентов по схеме pcb3m
Программатор состоит из двух частей, функционально полностью
самостоятельных: последовательной секции и главной параллельной EPROM части.
Последовательная секция поддерживает микросхемы I2C (Intelligent Circuit)
серии: 24CXXX, 25Cxxx, 93Cxxx и PIC-контроллеры. Эти МС программируются либо
через встроенные панельки, либо через адаптер, подключаемый разъемом к шине
ICSP(Integrated Circuit Serial Peripheral).
Эта секция - простая последовательная цепь, которая идет от DO0 (pin 2 LPT) к
U1a(74HC04), через Q6, Q5, U1b к BUSY (pin 11 LPT). При отсутствии МС в сокетах
U7, U10, U12, U13 сигнал от DO0 без изменений проходит на вход BUSI, что
используется для контроля подключения программатора к порту. Программирование МС
24Cxx и PIC осуществляется по линии Data. Установка режима, адреса, данных при
чтении и записи производится по одному проводу. МС 25Cxx и 93Cxx имеют
раздельные ввод и вывод сигналов. Установка режима чтение\запись и адреса,
активизация, передача данных при записи осуществляется по линии Data2, а вывод
данных по линии DOut, при этом информация на входе BUSI полностью определяется
состоянием линии DOut, так как резистор R3 много больше R4. Тактовая частота
подается от DO1 через буфер U2.2 по линии D1, CS (Chip Select) и WP (Write
Protect для старых МС 24Cxx) поступает от SELIN LPT через буфер U4.5 по линии
S4. По схеме хорошо видно, что эта часть программатора полностью автономна и
может быть исключена или напротив, собрана в виде отдельной конструкции.
Параллельная секция состоит из трех основных частей:
Две микросхемы 4503 (2+4 буфера с тремя состояниями и раздельными цепями
управления) используются как буфер данных LPT и для управления режимами
программатора. Две секции по 4 буфера U2.1-U2.4 и U4.1-U4.4 подключают шину
данных LPT (DO0-DO7) к шине данных записываемой МС. В зависимости от режима
работы-чтение\запись переключаются сигналом E1 (pin1 U2 U4) от AUTOFEED (pin 14
LPT) через буфер U4.6. Логический ноль - "0" включает буферы шины данных,
логическая еденица - "1" - отключает. Два буфера U2.5 и U2.6 управляют загрузкой
регистра адреса и выгрузкой регистра данных U3 (4014). Включаются нулем от
инвертора U1E, когда AUTO="1". Буферы U4.5 и U4.6 включены постоянно и
используются просто как повторители сигналов SELIN и AUTO. SELIN управляет
сигналом WE (write enable), сигнал идет от LPT pin 17 к U4 pin 12, от U4 pin 11
на DIP-switches (S4).
Регистр адреса - 24х разрядный регистр сдвига на 3 x микросхемах 4015 (U6,
U11, U14) выставляется перед каждой операцией чтения\записи последовательным
сдвигом значений адреса, поступающих от DO1 через U2.5 на вход D. Значения
адреса начиная со старшего разряда поочередно выставляются на DO1 и по
положительному фронту тактовой частоты (DO0-U1.6-CLK) сдвигаются в сторону
сташего разряда регистра, таким образом за 24 такта регистр полностью
заполняется. Когда на входе CLK сохраняется постоянное значение "1" или "0"
регистр не изменяет состояния выходов А0-А24. В программаторе версии pcb3,5
входы D U11a и U14a подключены не к выходу предидущего разряда, а к DO4, DO5 LPT
и регистр адреса заполняется так же последовательным сдвигом, но все три
микросхемы одновременно, т.е. втрое быстрее (это не означает, что и запись Flash
в три раза быстрее).
Параллельно-последовательный регистр U3 (4014) используются для чтения
данных с EPROM. Параллельный вход (pin P1-P8 4014) связан с 8-и разрядной шиной
данных EPROM (D0.. D7). При "1" на P/S (pin 9) по положительному фронту CLK (от
DO2 через инвертор U1D) byte данных записывается в регистр. Затем P/S
устанавливается в "0" и по каждому положительному фронту CLK данные сдвигаются в
сторону старшего разряда. Таким образом на выходе Q8 поочередно появляются все
значения D7-D0 через инвертор U1F поступающие на вход ACK, где они считываются и
записываются в буфер программы. Если на входе CLK неизменяемый уровень "1" или
"0", регистр не реагирует на другие сигналы, что позволяет избежать некорректной
работы схемы.
Схема питания, построенная на интегральных стабилизаторах 7805 и 7812,
подробных пояснений не требует. Дополнительные напряжения получаются включением
в "земляной" вывод стабилизатора диодов и стабилитронов, переключаемых
джамперами J6-J8. Vpp управляется сигналом Strob (pin 1 LPT) и транзисторами Q3
и Q1. Vcc управляется сигналом Init (pin 16LPT) через U1C и Q2.
DIP switch 12 используется для поддержки различных типов микросхем. Vcc,
Vpp и WE и некоторые адреса могут быть подключены к различным выводам Zif 32.
Джамперы J1 и J2 также обеспечивают возможность программирования без
дополнительных адаптеров МС с нестандартной разводкой выводов. J5 переключает
схему регистра адреса для совместимости с pcb3b/pcb3,5, чтобы иметь возможность
работы с ПО версий 0,97j и 0,98C-0,98D2
Алгоритмы чтения, записи, стирания, чтения ID любой реальной микросхемы
достаточно сложны, в чем можно убедиться заглянув в документацию от
производителя. Для понимания принципа работы программатора не требуется
описывать их во всей полноте, достаточно упрощений. Тем более, что все операции
состоят из ряда элементарных действий - установка шины адреса, установка шины
данных, WE, CE, OE, выполняемых в определенной последовательности.
Запись Flash:
1. SELIN - "1" (WE - "1" запись запрещена), AUTO - "1", шина данных
отключена (E1 - "1", U2.1 - U2.4, U4.1 - U4.4 отключены), U2.5 и U2.6 включены.
На DO1 выставляется значение старшего разряда адреса An, на DO0 поступает
тактовая частота. С приходом положительного фронта CLK значение адреса
записывается в ячейку Q1 регистра. На DO1 выставляется значение адреса An-1,
следующий импульс CLK сдвигает An в ячейку Q2, а в Q1 записывает An-1 и тд. Цикл
повторяется до полнлго заполнения регистра значенниями адреса A0 - An.
2. AUTO - "0", SELIN - "1", U2.5 и U2.6 выключены, U2.1-U2.4 и U4.1-U4.4
включены. CLK=D="1" и регистр адреса в режиме хранения. S6=OE="1"- вывод данных
записываемой Flash запрещен. На шине DO0-DO7 выставляется первый Byte
записываемых данных.
3. AUTO - "0", U2.1-U2.4 и U4.1-U4.4 включены, на выводах записываемой МС
присутствуют значения адреса и данные. SELIN = WE = "0" - запись разрешена внутренняя логика Flash микросхемы производит запись данных D0-D7 в массив
памяти по установленному адресу.
Чтение Flash:
1. Установка адреса аналогично зписи.
2. SELIN - "1" (WE - "1" запись запрещена), AUTO - "1", S6=OE="0" вывод
данных разрешен, DO2 имеет постоянное значение и регистр 4014 в пассивном
состоянии. На выводах Flash микросхемы присутствуют адрес и сигнал разрешения
вывода OE="0". Внутренняя логика микросхемы дешифрует адрес и выводит на шину
D0-D7 Byte данных.
3. На вход CLK U3 подается импульс по положительному фронту которого
данные с шины D0-D7 записываются в регистр 4014.
4. DO1=D="0" регистр 4014 переключается в режим сдвига. На вход CLK от DO2
подается импульсная последовательность и записанные данные сдвигаются на вывод
Q8 U3, оттуда через инвертор U1F на вход ACK, где считываются программой.
Для чтения ID программатор использует программый метод суть которого
заключается в записи в микросхему определенного набора команд для перевода в
режим чтения ID и считывании 3х Byte'ного кода. Таким способом можно прочитать
ID не всех микросхем. Например в старых EPROM для перехода в режим ID нужно
подать на вывод А9 напряжение 12 в. Многие МС более поздних выпусков тоже
поддерживают этот способ для совместимости со старой аппаратурой. Это реализуемо
и в Willem'е, достаточно подать 12в на А9 при чтении МС (убедившись по
документации, что этот режим поддерживается) , значения адресов 0000 и 0001 и
будут содержать ID. Информацию по кодам ID можно найти в документации или на
тематических сайтах, например, на форуме по программатору BiDiPro
http://www.geocities.com/pop_eco/ .
Работа схемы в
аналогично, но могут
каждый адрес пишется
раза на каждый Byte,
микросхем.
других режимах и при записи МС других типов происходит
быть некоторые отличия. Например при записи 16-bit EPROM на
2 Byte'а данных, а при записи FWH адрес устанавливается два
что обусловлено конструктивными особенностями этих
Download