Программатор eeprom своими руками

Добавил пользователь Алексей Ф.
Обновлено: 19.09.2024

Создание программатора EEPROM

простое в построении и содержащее широко распространенные компоненты,

Микросхемы в EEP из распространенной 74HCT серии, используется интерфейс параллельного порта. Я написал код драйвера только для Linux, но этот код под лицензией GPL, и вы можете его модифицировать для других операционных систем.

Я использую EEP для создания загрузочных PROM для сетевых карт, эти карты я использовал для создания бездисковых компьютеров на linux. Более детально о том, как это делается, смотрите в пакете netboot/etherboot. Также вы можете использовать его для программирования систем на микроконтроллерах с внешним ПЗУ (например, 8031).

Поддерживаемые EEPROM

24-контактная 2816/28C16, 2048 байт (16 килобит)

Схема и номера контактов

Файл pinouts.txt содержит информацию о номерах контактов используемых микросхем.

Для используемых микросхем 74HCT, контакты Питания (Vcc) и Земли (Ground) не показаны на схеме. Разумеется, эти контакты должны быть правильно подключены. Полный список контактов (включая Vcc/Ground) приведен в файле pinouts.txt.

Конструкция

ВНИМАНИЕ : Параллельный порт вашего ПК можно запросто повредить, что-либо к нему подключая. Также возможно повредить весь ваш ПК, периферию, и окружающих людей в результате неправильного подключения и несчастных случаев с электричеством. БУДЬТЕ ПРЕДЕЛЬНО ОСТОРОЖНЫ .

Отречение : Используйте на свой риск. Не дается абсолютно никакой гарантии, смотрите ниже COPYING/LICENSE.

Установки джамперов

Нижнее выравнивание 24-контактных EEPROM

Список компонентов

Микросхемы: 74HCT123, 74HCT132, 74HCT138, 74HCT157, 74HCT574 (1 шт. ), и 2 74HCT259s.

Резисторы: 100K, 10K, 1K, 180 Ом, и 390 Ом (1 шт.).

Конденсаторы: 100пФ, 1uF, (1 шт.) и 3 0.1uF конденсатора на шине питания.

Прочее: 1 Светодиод, 1 SPST переключатель, 25-контактный ленточный кабель с DB25 разъемом ("папой"), 28 контактный ZIF сокет (вместо него может использоваться макет), контактные ножки для джамперов.

Если у вас уже есть EEP-0.1

Если у вас уже есть программатор EEP-0.1, для преобразования его в программатор EEP-0.2 вы можете сделать следующие модификации:

удалите соединение между 74HCT157 ножкой 1 (SEL) и верхней 74HCT259 ножкой 11 (Y6)

удалите 1K резистор, соединяющий ножку 1 ZIF-сокета с Vcc

добавьте соединение между ножкой 1 (SEL) микросхемы 74HCT157 и ножкой 9 разъема параллельного порта DB-25

добавьте новое соединение между ножкой 10 верхней микросхемы 74HCT259 и неиспользуемой ножкой J1

добавьте 180 Ом резистор между ножкой 11 верхней микросхемы 74HCT259 и ножкой 1 ZIF-сокета

А в чем проблема? Делаем железку на МК, принимающую данные от любого переходника USB-COM и прошивающую интересующую микросхему. Только недавно делал самопальный программатор для AT93C46 (будет работать для всего семейства, разумеется, тайминги-то одинаковые) на базе STM8S-Discovery.

Для AVR USB-программатор на основе переходника USB-COM давно существует. Ради духовного развития я пробовал написать программатор EEPROM (AT93C46) на том же принципе (bitbang через библиотеку D2XX), но что-то не пошло и я, как уже писал выше, решил не заморачиваться, а поставить еще один контроллер и использовать переходник USB-COM в штатном режиме.

Для остальных контроллеров есть отладочные платы, подключающиеся через USB (MSP430 Launchpad, серия STM8 Discovery, серия STM32 Discovery и т.п.).

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

_________________
Разница между теорией и практикой на практике гораздо больше, чем в теории.

Вот и у меня приключилась печалька.
Разобрал встроенную батарею у нетбука. Там на плате имеется микросхема с маркировкой S24C02 D 5KDX. производителя так и не смог найти.
Очевидно это типовая микруха 24С02.
Поскольку вокруг уже не осталось компьютеров с COM и LPT портами, пришлось выпендриться и задействовать PICkit 2. В меню выбирал 24LC02B. Однако по всем ячейкам читаются сплошные 00. Точнее сказать ничего не читается.
A0-A2 посажены на Vss, WP так же на Vss. Читать пытался прямо с платы, подсоединяясь маленькими зажимами, а так же выпаивал её и на весу. Результат нулевой. Однако батарея определяется. Что я делаю не так?
И второй вопрос, возможно ли считать прошить через USB-UART переходник на CP2102 или игра не стоит свеч?
Спасибо.

И второй вопрос, возможно ли считать прошить через USB-UART переходник на CP2102 или игра не стоит свеч?

_________________
тематические ответы только в форуме, в приват не пишите

В этом проекте мы создадим JDM программатор, который может программировать как PIC контроллеры семейств PIC12, PIC16 и PIC18, так и некоторых распространенных микросхем ЭСППЗУ серии 24C. Программатор имеет возможность использовать ICSP, что позволяет производить последовательное программирование прямо в схеме. Таким образом вы не должны извлекать ваш контроллер каждый раз, когда решите перепрограммировать его. Программатор подключен к последовательному (COM) порту компьютера, внешнее питание не требуется. С другой стороны, если вы будете использовать его с компьютером не имеющем COM порта, использование переходника USB – RS232 (COM) может привести к неправильной работе устройства.

EEPROM: 24C01A, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64/65, AT24C128, AT24C256, AT24C512, M24C128, M24C256, 24C515, PCF8572 or 8572 = 24C01, PCF8582 or 8582 = 24C02, PCF8592 or 8592 = 24C04, SDA2506, SDA2516, SDA2526, SDA2546, SDA2586, SDA3506, SDA3516, SDA3526, 4C016 == 24C01, GRS-003 == 24C02, GRN-004 == 24C04, GRN-008 == 24C04, GRX-006 == 24C04, GRX-007 == 24C04, KKZ06F == 24C01, BAW658049 == 24C02, BAW57452 == 24C02, M8571 == 24C02, X24C0

Microchip PIC: 12C508, 12C508A, 12C509, 12C509A, 12CE518, 12CE519,12C671, 12C672, 12CE673, 12CE674,12F629, 12F675, 16C433, 16C61, 16C62A, 16C62B, 16C63, 16C63A, 16C64A, 16C65A, 16C65B, 16C66, 16C67,16C71, 16C72, 16C72A, 16C73A, 16C73B, 16C74A, 16C74B, 16C76, 16C77,16F73, 16F74, 16F76, 16F77,16C84, 16F83, 16F84, 16F84A, 16C505,16C620, 16C620A, 16C621, 16C621A, 16C622, 16C622A, 16CE623, 16CE624, 16CE625, 16F627, 16F628, 16F628A, 16F630, 16F676, 16C710, 16C711, 16C712, 16C715, 16C716, 16C717, 16C745, 16C765, 16C770, 16C771, 16C773, 16C774, 16C781, 16C782, 16F818, 16F819, 16F870, 16F871, 16F872, 16F873, 16F874, 16F876, 16F877, 16F873A, 16F874A, 16F876A, 16F877A, 18F242, 18F248, 18F252, 18F258, 18F442, 18F448, 18F452, 18F458, 18F1320, 18F2330, 18F432

Компоненты программатора перечислены в списке ниже.

T1, T2 : BC337 Transistor
D1, D4, D5, D6 : 1N4148 Diode
D3 : 6V2 Zener Diode
D2 : 5V1 Zener Diode
R3, R4 : 1K8 1/4W Resistor
R1 : 10K 1/4W Resistor
R2 : 1K5 1/4W Resistor
X1 : DB9 PCB Mount Female Connector
C1, C2 : 100uF 16V Electrolytic Capacitor
SV1 and SV4 : 80 Pin Machine Tooled IC Socket
SV2, SV3 : 20 Pin Machine Tooled IC Socket
SV5 (ICSP) : 6 Pin Header Connector
L1, L2, L3 : LED (L1: GREEN, L2: RED, L3: YELLOW)

PIC и EEPROM программатор

Щелкните здесь, что бы загрузить файлы схемы и печатной платы.

Printed Board

Собирайте устройство тщательно. Здесь есть всего одна хитрость, и она показана на фото. Пред тем, как впаять 80-ногую панельку, вырежьте пластиковые мостики между ее сторонами. Также, в первую очередь припаяйте диод D6 и перемычку под панелькой.


Если вы все сделали правильно, при подключении устройства к последовательному порту должен загореться красный светодиод. Программатор готов к использованию. Для программирования PIC контроллеров и микросхем ЭСППЗУ подойдут программы ICPROG и WinPIC. Желтый светодиод означает наличие тактовой частоты, красный – питания, зеленый – процесс программирования.


Установка программируемых микросхем в программатор показана на рисунке ниже. Учтите, что неправильная установка может привести к порче микросхемы, программатора или даже компьютера. Вы также можете использовать ZIF панельку вместо указанной.

Задача: читать/писать микросхемки SPI EEPROM 25xxx 93xx

Нарыл в сети вот такие странички:


-----------------
Схемы похожие, но подключаются к разным пинам LPT.
Пробовал IcProg и SPIPgm. Не хотят читать AT25256. Хотя обе проги поддерживают эту микросхему.

Как настраивать IcProg для работы с таким адаптером?

Какой тип адаптера выбирать в настройках IcProg?

IcProg реально умеет работать с объемом 256кБ или только хвастается?

Или посоветуете схему другого адаптера например COM порт для IcProg, только без кварца и простую!

В микросхеме 25256 есть бит защиты записи . Как их сбросить подскажите первый раз с этой микрухой сталкиваюсь.

Ту микросхему 93S46 я прошил у знакомого на программаторе.
Столкнулся с подобной задачей - прошить Attiny2313 и 24C32.
Пробовал этим программатором шить Attiny2313 - не получилось.

spipgm Спас меня, а Понипрог и SPI_TT_v1.035 не смогли!
А эта утилита и программатор за 5 минут спас мать AFUK10N78hSLI-WiFi с её микросхемой W25X80 .
Аналогичные микрухи стоят в матерях Asus!

Только смотрите Даташит на микруху (на схемке нумерация выводов попутана) и используйте 3.3В стабилизатор или батарейку от БИОС.
Да и после первой прошивки расходился 1 бит, после второй - все Ок. Так, что сравнивайте дамп микросхемы с файлом после прошивки.


Вот программатор

Питание берется с компьютера с шины +5В, 3.3В получается посредством преобразователя на микросхеме типа 1117 3.3.
Все резисторы 100 Ом. Такие здоровые - для крепости конструкции.


Вот исправленная схема

Да, только для AFUK10N78hSLI-WiFi ещё нужно:

Thank you for contacting ASRock

[For MAC address]
Please use the tool in attachment to re-write the MAC.
Please open the chassis and you can find a sticker on I/O port with MAC id.
Save the tool in a bootable disk and boot, key in as follow:
A:/›mac ‹enter›
It will list the function key description, then please key in as follow:
A:/›mac c [mac ID] ‹enter›
If it is success, it will show following information:
MAC ID:XXXXXXXXXXXX SUM: XX
Write MAC function call OK.

[For 1394ID]
How to Write GUID of your motherboard.
STEP1: Find motherboardЎ¦s GUID on the motherboard and write it down.
(You could refer attachment image file to find motherboardЎ¦s GUID NO.)
STEP2: Unzip attachment zip file to a bootable Floppy diskette (bootable USB pen driver).
STEP3: Boot into pure DOS environment
SETP4 Enter the file folder(key in "cd [file name]"), and then key in Ў§fwguid c [GUID ID], press ENTER.
STEP5: Reboot your system

Мы решили назвать этот программатор "Янус".

Почему так? Потому что в римской мифологии Янус - это двуликий бог дверей, входов и выходов, а также начала и конца. Какая связь? Почему наш программатор ChipStar-Janus двуликий?

  • C одной стороны, этот программатор - простой. Распространяется как бесплатный проект, его можно легко изготовить самому.
  • C другой стороны, он разработан фирмой, длительное время профессионально занимающейся разработкой и производством различной радиоэлектронной аппаратуры, в том числе программаторами.
  • C одной стороны, этот программатор - простой, с первого взгляда имеет не сильно впечатляющие характеристики.
  • C другой стороны, работает совместно с профессиональной программой (кстати, точно такой же, как и остальные профессиональные программаторы ChipStar).
  • C одной стороны, мы предлагаем этот программатор для свободной бесплатной сборки.
  • C одной стороны, мы его продаем и в готовом виде, как обычный бюджетный продукт.
  • C одной стороны, на самодельный программатор не распространяется гарантия (что естественно).
  • C одной стороны, если вы его смогли собрать, то и отремонтировать сможете, да и программатор настолько простой, что ломаться, собственно, нечему.
  • C одной стороны, это простой внутрисхемный программатор.
  • C одной стороны, через простые адаптеры расширения он поддерживает программирование NANDFLASH и других микросхем уже "в панельке".

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

Что нас побудило разработать этот программатор.

Есть великое множество простых специализированных программаторов, пригодных для самостоятельного изготовления.

Есть множество дешевых китайских программаторов в уже готовом виде.

Есть немало любительских разработок, часто по качеству превосходящих последние.

Казалось бы, в чем смысл очередной поделки?

Мы длительное время занимаемся разработкой производством и поддержкой универсальных программаторов, в основном специального назначения. У нас богатый опыт работы с самыми разными микросхемами. Часто к нам обращаются люди уже собравшие, а часто и купившие, какой-нибудь из выше названных "изделий". Нашим специалистам часто без смеха/слез/ужаса (нужное подчеркнуть) невозможно смотреть на схемные решения, качество сборки и, особенно, на программное обеспечение этих приборов. Ладно когда программатор стоит "три копейки", купил, что-то работает, что-то не работает, зато деньги не большие. Но часто соотношение цена/возможности таких приборов у нас вызывают, мягко говоря, удивление. Хочется воскликнуть: это столько не стоит!

Кроме всего выше названного есть особая категория программаторов, пригодных для самостоятельного изготовления - это программаторы (точнее, схемы программаторов и программное обеспечение), разработанные специалистами фирм производящих микросхемы (в основном микроконтроллеры). Такие программаторы спроектированы вполне профессионально, в их схемотехнике нет "ляпов". Они поддерживают все заявленные микросхемы. Но есть два "маленьких" недостатка: перечень программируемых микросхем весьма ограничен (что вполне понятно) и программное обеспечение весьма спартанское - никаких лишних функций, как правило - только стереть, записать, верифицировать. Часто даже функции чтения микросхемы нет.

Нам стало обидно, что наш многолетний опыт полноценно используется только в такой узкой области, как программаторы специального назначения, поэтому мы решили поделиться своими знаниями с широкой публикой.

Итак, программатор ChipStar-Janus в начальной конфигурации - это внутрисхемный программатор. В таком режиме он поддерживает микроконтроллеры PIC и AVR фирмы Microchip, некоторые микроконтроллеры архитектуры MCS51, микроконтроллеры фирмы STMicroelectronics и еще ряд других, а также микросхемы последовательной памяти с интерфейсом I2C (в основном серия 24). К разъему расширения программатора можно подключить простейшие адаптеры и начать программировать микросхемы памяти "в панельке".

Сейчас реализовано программирование "в панельке":

  1. микросхемы последовательной памяти (Serial EPROM) с интерфейсом I2C (серия 24xx);
  2. микросхемы последовательной флэш памяти (Serial FLASH) с интерфейсом SPI (SPI Flash);
  3. микросхемы последовательной памяти (Serial EPROM) с интерфейсом MW (серия 93xx);
  4. микросхемы NAND FLASH;

Программатор и программное обеспечение поддерживает технологию самостоятельного добавления микросхем в три клика. Пока реализовано добавление микросхем NAND и I2C. В самое ближайшее время планируется реализовать эту технологию для микросхем MW (серия 93xx) и AVR. Таким образом, вы получаете не просто программатор, а мощный инструмент для самостоятельной работы.

Три способа получить программатор ChipStar-Janus

1-й способ:
Собрать программатор самому полностью

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

2-й способ:
Собрать программатор самому, купив готовую печатную плату и прошитый микроконтроллер

Способ аналогичен предыдущему, только вы избавите себя от самых трудноосуществимых операций: изготовления печатных плат и прошивки микроконтроллера без программатора.

Как видите, этот путь значительно короче. Готовая плата выпускается только в варианте для компонентов поверхностного монтажа, как на фотографии готового программатора. Если вы выбрали этот способ, пройдите по ссылке и закажите комплект для сборки программатора ChipStar-Janus.

3-й способ:
Купить готовый программатор

Проще всего купить готовый программатор. Этот случай ничем не отличается от покупки любого другого нашего программатора.

Что мы еще планируем сделать для развития программатора ChipStar-Janus

1. Расширить возможности самостоятельного добавления микросхем, добавив:

  • Микросхемы памяти c протоколом MWсерии 93xx.
  • Микросхемы памяти c SPI интерфейсом.
  • Микросхемы памяти DataFlash.
  • Микроконтроллеры AVR семейств Mega и Tiny.

2. Выпустить дополнительные модули для превращения программатора в измерительную лабораторию:

Что еще имеет смысл купить или сделать своими руками для программатора ChipStar-Janus

    для программирования микросхем NAND. для программирования микросхем последовательной памяти с интерфейсами I2C и SPI. для программирования микросхем последовательной памяти с интерфейсом MW (93 серия).

Часто спрашивают

ChipStar-Janus это готовый программатор, а ChipStar-Janus/KIT это набор основных деталей для сборки программатора ChipStar-Janus.

Посмотреть и отредактировать можно программой CAM350.
CAM350® является стандартом де-факто для проверки, оптимизации и генерации данных для эффективного управления изготовлением печатных плат.

Правильно собранный программатор ChipStar-Janus сразу будет правильно работать. Ищите ошибку монтажа или неисправный компонент. Проверить функционирование программатора можно с помощью программы JanusCheker.
Всегда используйте программное обеспечение и документацию самой последней версии!

В документации на программатор ChipStar-Janus разъем Х2: сигнал D0 - вывод 17, D1 вывод 18. А в документации на адаптер для NAND (разъем Х1) - D0 вывод 6, D1 вывод 7. Нет ли в этом ошибки?

Ошибки нет. Все так и должно быть.

На принципиальной и монтажной схеме программатора ChipStar-Janus диод VD6 подключен в одном направлении, а на рисунке, на самой печатной плате - в противоположном. Чему верить?

Правильное включение диода VD6 показано в документации. Рисунок диода VD6 на печатной плате первой версии нанесен неверно. Включение программатора с неправильно запаянным диодом не приведет к выходу его из строя.

Никаких. Микроконтроллер нужно правильно прошить высоковольтным алгоритмом записи в соответствии со спецификацией Microchip.

Нужно ли при прошивке контроллера PIC18F25K50 для программатора ChipStar-Janus как-то особо выставлять fuses?

Все необходимые fuses интегрированы внутрь прошивки (файл .hex) в соответствии со спецификацией Microchip. Программатор ОБЯЗАН правильно читать фусес из файла прошивки.
Если программа используемого программатора не умеет прочитать фусес из файла, то их нужно выставить вручную как показано здесь: "Биты конфигурации (фусес) для прошивки микроконтроллера программатора ChipStar-Janus/KIT"

Могу ли я перепрошить микроконтроллер PIC18F25K50 не выпаивая его из платы программатора ChipStar-Janus?

Да. Только придется отпаять VD6 (он препятствует подаче высокого напряжения программирования 12V на вывод MCLR процессора). Соединение с программатором необходимо произвести в соответствии со схемой для внутрисхемного программирования и инструкцией используемого программатора.

Нет. Нужно использовать PIC18F25K50.

Как зарегистрироваться у вас на сайте, чтобы скачать прошивку для программатора Chipstar-Janus? Программатор собирал сам, а при регистрации запрашивается серийный номер и дата выпуска.

На странице с описанием программатора Chipstar-Janus об этом написано: зарегистрироваться нужно обязательно как новый пользователь по этой ссылке!

Как зарегистрироваться у вас на сайте, чтобы скачать прошивку для программатора Chipstar-Janus? Программатор собирал сам, а при регистрацииции просят серийный номер и дату.

На странице с описанием программатора Chipstar-Janus об этом написано: зарегистрироваться нужно обязательно как новый пользователь по этой ссылке!

Читайте также: