Меню

Программатор для w27c512 своими руками

Схема принципиальная Программатор микросхем ПЗУ 27С256 / 27C512.

Программатор предназначен для чтения и записи микросхем ПЗУ типов 27C256 и 27C512 с напряжением программирования 12.5В, применяемых в блоках управления системой впрыска автомобилей.
Программатор работает через порт LPT1 или LPT2 компьютера, порт выбирается автоматически.

Программирование микросхем ПЗУ возможно с использованием одного из двух алгоритмов:

NORMAL — стандартный медленный режим.
ATMEL RAPID_ — специальный быстрый режим программирования, разработанный фирмой ATMEL.

Порядок работы с программатором описан в справочной системе ChipTuningPRO в разделе «Работа с программой => Встроенный программатор ПЗУ 27С256 и 27С512».

Сборка и настройка аппаратной части.

Схема программатора.

Некоторые замечания: счетчик адреса собран на двух микросхемах 74HC393, обратите внимание, что адреса счетчика не совпадают с адресами ПЗУ (A0 счетчика — A0 пзу; A1 счетчика — A10 пзу; и т.д) — это не ошибка в схеме! Такая система адресации сделана исключительно для облегчения разводки односторонней печатной платы и учитывается программным обеспечением. Также не совпадает адресация шины данных ПЗУ и адресов регистра 74HC595.
Длина кабеля к порту LPT не должна превышать 1метр, рекомендуется 0.5 метра.

Детали:
стабилизаторы блока питания — 7805, 7806, LM317T любого производителя, желательно в изолированном корпусе. В случае использования стабилизаторов в неизолированном корпусе примите меры, чтобы металлические пластины корпусов не соприкасались. При работе программатора возможен нагрев стабилизаторов до 60-80 град.С, что не является признаком неисправности. счетчики — 74HC393, 74(A)LS393, K555ИЕ19, КР1533ИЕ19.восьмиразрядный регистр сдвига — 74(A)LS595, 74HC595. В случае использования последнего типа некоторых производителей, возможно, потребуется уменьшение номинала резистора R14 до 560 Ом — 1 кОм. четырехканальный мультиплексор — 74HC157, 74(A)LS157, K555КП16, КР1533КП16.восьмиразрядный двунаправленный формирователь — 74HC245, 74(A)LS245, К555АП6, КР1533АП6. Реле — РЭС49, паспорт РС4.569.421-02, РС4.569.421-08, РС4.569.421-01, РС4.569.421-06. Можно применить реле других типов на напряжение 12-16 В с изменением разводки печатной платы.

На рисунке показан вариант печатной платы с переключателем вместо реле, в этом варианте тип ПЗУ (27C256 или 27C512) задается переключателем — положение к краю платы соответствует типу 27C256, положение к м/с 74HC157 соответствует типу 27C512. Транзисторы BC548, BC547 или аналогичные NPN с базой посередине. Допустимо применение любых других транзисторов с изменением ориентировки на плате. Транзисторы BC558, BC557 или аналогичные PNP с базой посередине. Допустимо применение любых других транзисторов с изменением ориентировки на плате. Транзисторы DTA144ES (PNP, внутренние резисторы 47К) допустимо заменить на DTA134, DTA124, в крайнем случае, на обычный PNP- транзистор с включенным последовательно с базовым выводом резистором на 47K (его можно установить на плате вместо перемычки). Транзистор DTC144ES (NPN, внутренние резисторы 47К) допустимо заменить на DTC114, DTC124, DTC134, R1004, KRC102 или, в крайнем случае, на обычный NPN- транзистор с включенным последовательно с базовым выводом резистором на 47K (его можно установить на плате вместо перемычки). Остальные элементы схемы, думаю, пояснений не требуют.

Рисунок печатной платы.

Печатная плата — односторонняя, размеры 92×72мм. Для распечатки платы в масштабе 1:1 необходимо установить разрешение принтера 240dpi.

Расположение элементов на плате.

Программа для работы с программатором здесь

Поделись с друзьями в социальных сетях

Источник

Программатор для EPROM на Arduino

Понадобилось при изучении и ремонте компьютеров, которые старше меня, прошивать ПЗУшки. Тесты оперативной памяти и периферии проводить. Нормального программатора у меня на тот момент не было.

Собрать на логике для LPT порта, конечно, можно, но данный вариант был отброшен, так как для использования пришлось бы включать ещё какого-нибудь старичка. В современных компах все ещё встречается данный интерфейс (правда не полноценный разъем, а на гребенке) да и купить плату в PCI слот тоже не проблема, но возникают уже сложности с софтом. Он был написан очень давно, когда работа с портами ввода/вывода в операционных системах велась иначе. Соответственно, в современных версиях Windows ПО не будет работать.

Сразу стоит оговориться, что про существование TL866 знаю. И даже в процессе разработки все же его купил себе, но он не в состоянии прошить микросхемы, которые требуют высокое напряжение программирования. Максимум 18 вольт (TL866+ или 21 для предыдущей версии).

Беглое гугление привело меня к данному репозиторию. Собрав программатор, я смог сдампить пару интересующих чипов. А вот с прошивкой все оказалось куда сложнее… Софт этого просто не умеет… Его, конечно, можно обмануть, выставив неправильный чип, но работает это не во всех случаях и явно не наш метод

Читайте также:  Прорезыватель для детей своими руками

Очень сильно огорчил пользовательский интерфейс, который, вместо классического варианта с предоставлением права выбора порта пользователю, проходился по всем доступным последовательным интерфейсам. Соответственно, все устройства перезагружаются. Особенно обидно, наверное, когда у тебя 3D принтер уже часов 10 печатает детальку с флешки, а тут такая подстава.

Мир OpenSource прекрасен тем, что ты можешь взять проект и дописать его под свою задачу. В данном случае исходных кодов к графическому интерфейсу нет. По крайней мере я их не нашел, хотя можно было написать разработчику. Стало интересно и появился небольшой повод для изучения Qt. Так что софт будет кросплатформенный.

Берем за основу схему из предыдущего проекта и дорабатываем устройство до требуемого функционала. Решил пожертвовать поддержкой EEPROM в софте. Возможно, это не совсем удачное решение, но для электрически стираемых чипов уже не нужно такое высокое напряжение. При доработке опирался на самую объемную микросхему (27C512 для DIP28) и убрал всю путаницу относительно адресных ножек. Весь адрес будет задаваться исключительно при помощи сдвиговых регистров (74HC595). Это освободит дополнительные ноги самого микроконтроллера, которые понадобятся для управления подачей напряжения программирования. А все необходимые сигналы (PRG) можно получить модификацией адреса перед загрузкой в регистры.

Принцип подачи напряжения программирования остался прежним. Изменения только в области защиты выводов микроконтроллера и сдвиговых регистров. Заменил резисторы (1 КОм) на диоды с подтяжкой к лог. 0. Это менее агрессивный вариант. Хотя, справедливости ради, и резисторы работают.

Изучив документацию на все интересующие чипы, определил, что требуется три точки подачи Vpp:

  1. 27C16 на 21 ногу микросхемы (23 ногу DIP28 сокета)
  2. 27C32 и 27C512 на сигнал #OE (Output Enable)
  3. 27C64, 27C128, 27C256 на 1 ногу микросхем

Микросхемы 27C16 и 27C32 от остальных отличаются корпусом, так что им требуется подавать напряжение питания на 26 ножку сокета. Это адресная нога A13 для более емких собратьев. Тока с выхода сдвигового регистра должно хватить для работы, но на время загрузки данных его выходы переходят в Z состояние. Подобный режим допустим, но включение на чтение или запись одной ячейки вряд ли является нормой. Поэтому под управление питания установлен дополнительный транзистор. И ещё один потребовался для 27C16, которому на время чтения необходимо подать на вход Vpp 5 вольт. Можно, конечно, на время чтения выставить напряжение программирования на значения 5 вольт, но переключаться между 25 и 5 вольтами неудобно.

Если есть свободные ноги АЦП, то почему бы не измерять напряжение программирования? Плата разведена под Arduino Nano. На нем имеются два дополнительных входа, которые кроме как для АЦП использовать нельзя. На самом деле это особенность многих микроконтроллеров AVR в корпусе для поверхностного монтажа. На китайских Arduino UNO частенько есть входы A6 и A7. С учетом того, что напряжение может быть до 30 вольт (вроде больше всего хотят отечественные РФ5, 25 вольт), рассчитываем делитель из того, что есть в наличии. Точность в 0.5 вольта для данной задачи вполне достаточна. Эта функция — защита от дурака, а не вольтметр.

Можно, конечно, было заморочиться и выступать в качестве ШИР (широтно импульсное регулирование) контроллера, но ножек свободных не осталось. Поэтому на печатной плате есть посадочное место для преобразователя DC-DC Step Up на чипе MT3608, которые за копейки доступны на али.

По схеме на этом все.

Алгоритм работы с данными микросхемами очень прост. С ним можно ознакомится в небольшом видео.

Источник

Программатор для w27c512 своими руками

Программатор предназначен для чтения и записи микросхем ПЗУ типов 27C256 и 27C512 с напряжением программирования 12.5В, применяемых в блоках управления системой впрыска автомобилей.
Программатор работает через порт LPT1 или LPT2 компьютера, порт выбирается автоматически.

Программирование микросхем ПЗУ возможно с использованием одного из двух алгоритмов:

— NORMAL — стандартный медленный режим.
— ATMEL RAPID_ — специальный быстрый режим программирования, разработанный фирмой ATMEL.

Порядок работы с программатором описан в справочной системе ChipTuningPRO в разделе «Работа с программой => Всторенный программатор ПЗУ 27С256 и 27С512».

Сборка и настройка аппаратной части.

Схема программатора

Некоторые замечания: счетчик адреса собран на двух микросхемах 74HC393, обратите внимание, что адреса счетчика не совпадают с адресами ПЗУ (A0 счетчика — A0 пзу; A1 счетчика — A10 пзу; и т.д) — это не ошибка в схеме! Такая система адресации сделана исключительно для облегчения разводки односторонней печатной платы и учитывается программным обеспечением. Также не совпадает адресация шины данных ПЗУ и адресов регистра 74HC595.
Длина кабеля к порту LPT не должна превышать 1метр, рекомендуется 0.5 метра.

Читайте также:  Регулятор для светодиодного светильника своими руками

Детали:
стабилизаторы блока питания — 7805, 7806, LM317T любого производителя, желательно в изолированном корпусе. В случае использования стабилизаторов в неизолированном корпусе примите меры, чтобы металлические пластины корпусов не соприкасались. При работе программатора возможен нагрев стабилизаторов до 60-80 град.С, что не является признаком неисправности. счетчики — 74HC393, 74(A)LS393, K555ИЕ19, КР1533ИЕ19.восьмиразрядный регистр сдвига — 74(A)LS595, 74HC595. В случае использования последнего типа некоторых производителей, возможно, потребуется уменьшение номинала резистора R14 до 560 Ом — 1 кОм. четырехканальный мультиплексор — 74HC157, 74(A)LS157, K555КП16, КР1533КП16.восьмиразрядный двунаправленный формирователь — 74HC245, 74(A)LS245, К555АП6, КР1533АП6. Реле — РЭС49, паспорт РС4.569.421-02, РС4.569.421-08, РС4.569.421-01, РС4.569.421-06. Можно применить реле других типов на напряжение 12-16 В с изменением разводки печатной платы.
На рисунке

показан вариант печатной платы с переключателем вместо реле, в этом варианте тип ПЗУ (27C256 или 27C512) задается переключателем — положение к краю платы соответствует типу 27C256, положение к м/с 74HC157 соответствует типу 27C512. Транзисторы BC548, BC547 или аналогичные NPN с базой посередине. Допустимо применение любых других транзистров с изменением ориентировки на плате. Транзисторы BC558, BC557 или аналогичные PNP с базой посередине. Допустимо применение любых других транзистров с изменением ориентировки на плате. Транзисторы DTA144ES (PNP, внутренние резисторы 47К) допустимо заменить на DTA134, DTA124, в крайнем случае, на обычный PNP-транзистор с включенным последовательно с базовым выводом резистором на 47K (его можно установить на плате вместо перемычки). Транзистор DTC144ES (NPN, внутренние резисторы 47К) допустимо заменить на DTC114, DTC124, DTC134, R1004, KRC102 или, в крайнем случае, на обычный NPN-транзистор с включенным последовательно с базовым выводом резистором на 47K (его можно установить на плате вместо перемычки). Остальные элементы схемы, думаю, пояснений не требуют.

Рисунок печатной платы

.
Печатная плата — односторонняя, размеры 92×72мм. Для распечатки платы в масштабе 1:1 необходимо установить разрешение принтера 240dpi. Расположение элементов на плате находится в файле

Программатор, собранный без ошибок и из исправных деталей в какой-либо насторйке не нуждается (кроме установки напряжения программирования). Тем не менее, в программе есть специальная процедура диагностики для облегчения поиска неисправностей и проверки формируемых напряжений. После сборки программатора проверьте еще раз правильность монтажа и подключите источник питания 16. 20B 0.5A, после чего проверьте присутствие напряжения +5В на выводах питания микросхем программатора. Отключите источник питания и соедините программатор с портом LPT1 или LPT2 компьютера. Подайте питание на программатор и запустите ChipTuningPRO. Войдите в меню «Инструменты => Программатор 27Сxxx», появится окно программатора, при этом светодиод на плате программатора не должен светится. Нажмите кнопку «Диагностика». Программа проверит исправность счетчиков и регистра сдвига, после успешного теста произведите проверку напряжений питания и программирования следуя инструкциям программы. Напряжение программирования необходимо установить +12.75 — 13.00 В при помощи подстороечного резистора. Светодиод, установленный на плате программатора зажигается только тогда, когда на панель ПЗУ подводится напряжение питания.
Допускается устанавливать и извлекать микросхему ПЗУ только в том случае, если светодиод не светится! После проверки попробуйте сначала считать данные из какой-либо ПЗУ, затем попробуйте произвести программирование ПЗУ.
Никогда не подключайте кабель к порту LPT при включенном питании программатора, это может привести к выходу из строя порта компьютера!

Автор не несет никакой ответственности за любой ущерб, причиненный Вам и Вашему оборудованию при использовании программатора!

Источник

Программатор для EPROM на Arduino

Понадобилось при изучении и ремонте компьютеров, которые старше меня, прошивать ПЗУшки. Тесты оперативной памяти и периферии проводить. Нормального программатора у меня на тот момент не было.

Собрать на логике для LPT порта, конечно, можно, но данный вариант был отброшен, так как для использования пришлось бы включать ещё какого-нибудь старичка. В современных компах все ещё встречается данный интерфейс (правда не полноценный разъем, а на гребенке) да и купить плату в PCI слот тоже не проблема, но возникают уже сложности с софтом. Он был написан очень давно, когда работа с портами ввода/вывода в операционных системах велась иначе. Соответственно, в современных версиях Windows ПО не будет работать.

Читайте также:  Раствор для обработки от коронавируса своими руками

Сразу стоит оговориться, что про существование TL866 знаю. И даже в процессе разработки все же его купил себе, но он не в состоянии прошить микросхемы, которые требуют высокое напряжение программирования. Максимум 18 вольт (TL866+ или 21 для предыдущей версии).

Беглое гугление привело меня к данному репозиторию. Собрав программатор, я смог сдампить пару интересующих чипов. А вот с прошивкой все оказалось куда сложнее… Софт этого просто не умеет… Его, конечно, можно обмануть, выставив неправильный чип, но работает это не во всех случаях и явно не наш метод

Очень сильно огорчил пользовательский интерфейс, который, вместо классического варианта с предоставлением права выбора порта пользователю, проходился по всем доступным последовательным интерфейсам. Соответственно, все устройства перезагружаются. Особенно обидно, наверное, когда у тебя 3D принтер уже часов 10 печатает детальку с флешки, а тут такая подстава.

Мир OpenSource прекрасен тем, что ты можешь взять проект и дописать его под свою задачу. В данном случае исходных кодов к графическому интерфейсу нет. По крайней мере я их не нашел, хотя можно было написать разработчику. Стало интересно и появился небольшой повод для изучения Qt. Так что софт будет кросплатформенный.

Берем за основу схему из предыдущего проекта и дорабатываем устройство до требуемого функционала. Решил пожертвовать поддержкой EEPROM в софте. Возможно, это не совсем удачное решение, но для электрически стираемых чипов уже не нужно такое высокое напряжение. При доработке опирался на самую объемную микросхему (27C512 для DIP28) и убрал всю путаницу относительно адресных ножек. Весь адрес будет задаваться исключительно при помощи сдвиговых регистров (74HC595). Это освободит дополнительные ноги самого микроконтроллера, которые понадобятся для управления подачей напряжения программирования. А все необходимые сигналы (PRG) можно получить модификацией адреса перед загрузкой в регистры.

Принцип подачи напряжения программирования остался прежним. Изменения только в области защиты выводов микроконтроллера и сдвиговых регистров. Заменил резисторы (1 КОм) на диоды с подтяжкой к лог. 0. Это менее агрессивный вариант. Хотя, справедливости ради, и резисторы работают.

Изучив документацию на все интересующие чипы, определил, что требуется три точки подачи Vpp:

  1. 27C16 на 21 ногу микросхемы (23 ногу DIP28 сокета)
  2. 27C32 и 27C512 на сигнал #OE (Output Enable)
  3. 27C64, 27C128, 27C256 на 1 ногу микросхем

Микросхемы 27C16 и 27C32 от остальных отличаются корпусом, так что им требуется подавать напряжение питания на 26 ножку сокета. Это адресная нога A13 для более емких собратьев. Тока с выхода сдвигового регистра должно хватить для работы, но на время загрузки данных его выходы переходят в Z состояние. Подобный режим допустим, но включение на чтение или запись одной ячейки вряд ли является нормой. Поэтому под управление питания установлен дополнительный транзистор. И ещё один потребовался для 27C16, которому на время чтения необходимо подать на вход Vpp 5 вольт. Можно, конечно, на время чтения выставить напряжение программирования на значения 5 вольт, но переключаться между 25 и 5 вольтами неудобно.

Если есть свободные ноги АЦП, то почему бы не измерять напряжение программирования? Плата разведена под Arduino Nano. На нем имеются два дополнительных входа, которые кроме как для АЦП использовать нельзя. На самом деле это особенность многих микроконтроллеров AVR в корпусе для поверхностного монтажа. На китайских Arduino UNO частенько есть входы A6 и A7. С учетом того, что напряжение может быть до 30 вольт (вроде больше всего хотят отечественные РФ5, 25 вольт), рассчитываем делитель из того, что есть в наличии. Точность в 0.5 вольта для данной задачи вполне достаточна. Эта функция — защита от дурака, а не вольтметр.

Можно, конечно, было заморочиться и выступать в качестве ШИР (широтно импульсное регулирование) контроллера, но ножек свободных не осталось. Поэтому на печатной плате есть посадочное место для преобразователя DC-DC Step Up на чипе MT3608, которые за копейки доступны на али.

По схеме на этом все.

Алгоритм работы с данными микросхемами очень прост. С ним можно ознакомится в небольшом видео.

Источник