Программатор SERP для I2C и Microwire (24CXX и 93CXX)

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

SERP — Serial EEPROM Programmer for 24CXX/93CXX для Linux и Windows 2000/XP

SERP — Serial EEPROM ProgrammerПрограмматор SERP(СЕРП) предназначен для программирования микросхем памяти серий 24CXX и 93CXX, т.е. с шинами i2c и microwire. Целью создания этого программатора послужила периодическая необходимость в программировании только этих типов микросхем памяти, которые встречаются, чуть ли не во всех бытовых радиоустройствах, автомобильной электронике, в сетевом оборудовании и т.д. Программатор был разработан таким образом, что бы его мог собрать любой начинающий радиолюбитель, т.к. он практически не содержит радиодеталей, и относится к разряду «low cost» устройств «наколенного» типа. Подключается такой программатор к параллельному порту компьютера. К тому же, его можно собрать не полностью, а под конкретную серию микросхем памяти, что еще более упрощает его сборку. Что бы добиться такой простоты и работоспособности программатора СЕРП, соответственным образом был написан необходимый для него софт, который предназначен для работы в консольном режиме.

Схема подключения микросхем к порту (для двух типов микросхем):

SERP — Serial EEPROM ProgrammerКак видно из схемы, для сборки СЕРПа вам понадобятся следущие детали:

- Разъем DB-25 "папа".
- Две цанговых панельки DIP8, но можно и одну на DIP16, только главное запомните,      
  что куда вставлять.
- Один любой кремневый диод, например КД522А и любой электролитический конденсатор, 
  можно и керамический, но не ниже 0,1 Мкф.
- Если у вас есть желание контролировать процесс подачи напряжения питания на   
  микросхемы, то вы можете дополнить программатор индикацией, для этого вам  
  понадобятся светодиод из серии АЛ307А или подобного типа с подходящими размерами, 
  а так же резистор с номиналом в пределах от 510 Ом до 1.5 Ком, однако, это не 
  обязательная часть программатора и ее можно не собирать.

Вместо питания от контактов 6 и 18 LPT лучше использовать внешнее питание с БП компьютера. Длина проводов от LPT до микросхемы должны быть минимальна. Светодиод с резистором служат для индикации питания, можно обойтись без них. Диод служит для защиты от переполюсовки, если вы уверены, что подключили все правильно, можно обойтись без него. Конденсатор служит для предотвращения возможного возбуждения микросхемы, с большой натяжкой можно обойтись без него, но длина проводов от порта до микросхемы должна быть минимальной. Таким образом с некоторыми оговорками аппаратная часть программатора представляет собой только провода от порта LPT до микросхемы соответствующего типа.

SERP — Serial EEPROM ProgrammerПОДДЕРЖИВАЕМЫЕ ТИПЫ EEPROM:
i2c: 24C01,24C02,24C04,24C08,24C16,24C32,24C64,24C128,24C256.
microwire: 93C06,93C46,93C56,93C66,93C76,93C86,93C96.

SERP — Serial EEPROM ProgrammerУСТАНОВКА ПРОГРАМНОГО ОБЕСПЕЧЕНИЯ:

ОБЩЕЕ:
Как уже говорилось выше, что данный программатор подключается к параллельному порту компьютера, но для правильной его работы, вам необходимо выставить режим порта в BIOS’е как стандартный, обычно эта опция называется — «SPP», и крайне редко «Normal». Все это необходимо для работы i2c шины, т.е. для программирования микросхем серии 24CXX, если вам нужна работа только microwire EEPROM 93CXX, то в BIOS’е можно ничего не менять.
ПРИМЕЧАНИЕ: Параллельный порт(порт принтера) самая не защищенная часть в ПК, поэтому следуют помнить, что любые неправильные действия по отношении к нему, могут привести к выходу его из строя, т.е. его можно очень легко спалить. После сборки устройства, нужно очень тщательно проверить все соединения по нескольку раз и не в коем случае не допустить коротких замыканий между контактами панелек, если они не предусмотрены схемой, а так же контактов на самом разъеме DB-25. Смену микросхем в панельках рекомендуется производить после запуска программы программатора.

Windows 2000/XP/2003:
В DOSе и Windows’95/98/Me к параллельному порту можно было обращаться на прямую из программы, для этого не требовалось каких либо драйверов или еще что то, однако в Windows NT/2000/XP/2003 напрямую к порту обращаться нельзя из-за защищенного режима, для этого требуется установка специальных драйверов. При написании программы был выбран драйвер и API PortTalk’а — http://www.beyondlogic.org, на этом сайте вы можете найти его описание, исходники и полную документацию. Установка драйвера очень проста, для этого вам необходимо иметь права администратора и просто скопировать драйвер porttalk.sys в директорию WINDOWS(WINNT)\system32\drivers. Все остальные действия работы с этим драйвером возьмет на себя программа — serp.exe. Сразу после ее запуска появится приглашение:

serp>
Для получения справки можно ввести «?» или «h» или «H»:
serp> ?
Commands:
q Exit from programm
? This usage message
i Select i2c EEPROM mode for 24CXX
m Select microwire EEPROM mode for 93CXX

Допустим, что нам надо запрограммировать микросхему 93C56 с организацией памяти 8
бит:
serp> m
93C46 16bit> ?
Commands:
q Quit
c Full erase EEPROM
? This usage message
d Dump EEPROM, as hex
D Dump EEPROM, as hex
e Edit EEPROM, write value to address
f Erase EEPROM, filling with value
r Dump EEPROM into raw binary file
w Program EEPROM from raw binary file
t Set EEPROM device type (as 93C), default 46
b Set bit organization 8 or 16, default 16

В начале выберем нужный нам тип микросхемы:
93C46 16bit> t 56
93C56 16bit>

Установим режим 8 бит:
93C56 16bit> b 8
93C56 8bit>

Теперь необходимо считать данные из файла для прошивки и загрузить их в микросхему:
93C56 8bit> w

появится стандартное окно для выбора загружаемых файлов, выберем нужный нам файл и нажмем «OK»
programmed 256 bytes
verify EEPROM…OK!
93C56 8bit>

Можно просмотреть листинг кода в микросхеме
93C56 8bit> d
0x0000: FF FF FF FF FF FF FF FF 01 FF FF FF FF FF FF FF …………….
0x0010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF …………….
0x0020: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF …………….
0x0030: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF …………….
0x0040: FF FF FF FF FF FF FF 01 FF FF FF FF FF FF FF FF …………….
0x0050: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF …………….
0x0060: FF FF FF FF 01 FF FF 01 FF FF FF FF FF FF FF FF …………….
0x0070: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF …………….
0x0080: FF FF FF FF FF FF 01 FF FF FF FF FF FF FF FF FF …………….
0x0090: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF …………….
0x00A0: FF FF FF FF FF FF FF 01 FF FF FF FF FF FF FF FF …………….
0x00B0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF …………….
0x00C0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF …………….
0x00D0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF …………….
0x00E0: FF FF FF FF FF FF FF FF 01 FF FF FF FF FF FF FF …………….
0x00F0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF …………….
93C56 8bit>

Если нам нужно считать данные из микросхемы в файл, то надо дать команду r, появится окно для сохранения файлов, введем имя и нажмем «OK». Все создаваемые файлы для чтения и записи имеют расширение BIN. Для 16-ти битного режима, все будет выглядеть аналогично, как и для 8-ми битного, делалось это для простоты редактирования и привычного чтения. Далее заострять внимание на работу с программой не имеет смысла, т.к. все можно понять из справки, которая выдается по команде «?» или «h» или «H».

Linux:

В начале соберем программу из исходников:

make

Далее необходимо получить доступ к параллельному порту, если вы будете использовать программу от root’а, то можете сразу подключить программатор к ПК и запустить программу, если нет, то вам понадобится настроить sudo, включить туда программу serp и тем самым разрешить доступ пользователю к порту. Все работает аналогично, как в примере, описанном выше, однако, с командами r и w нужно указывать имена файлов:
93C46 16bit> ?
Commands:
q Quit
c Full erase EEPROM
? This usage message
d Dump EEPROM, as hex
D Dump EEPROM, as hex
e Edit EEPROM, write value to address
f Erase EEPROM, filling with value
r Dump EEPROM into raw binary file
w Program EEPROM from raw binary file
t Set EEPROM device type (as 93C), default 46
b Set bit organization 8 or 16, default 16

SERP for Windows

SERP for Linux

SERP for Source

Добавить комментарий