Вопрос по восстановлению данных из ПЗУ с УФ стиранием

Печатные платы, программируемая логика, разработка и изготовление аппаратуры

Moderator: Shaos

User avatar
Tolmeros
Junior
Posts: 6
Joined: 04 Aug 2013 23:06
Location: zp.ua

Вопрос по восстановлению данных из ПЗУ с УФ стиранием

Post by Tolmeros »

Доброго времени суток уважаемые участники данного форума! Поделитесь пожалуйста опытом восстановления информации с ИМС ПЗУ с ультрафиолетовым стиранием.

В ремонтируемом устройстве (на двух 80186) из 5 ти UV EPROM, две из которых читались на программаторе с постоянными сбоями.

Для каждой из сбойных микросхем сделал порядка 20-30 считываний, через разное время, с понижением или повышением (в допустимых пределах).
Для одной ИМС (в которой было мало несоответствий) вышло с первого раза сделать прошивку, при которой при самодиагностике не вышла ошибка CRC для данной ИМС.

При сравнений файлов прошивок второй идет различие по адресам 800h, 1800h, 2800h,... и так до конца. Еще иногда появляются несоответствия по другим адресам.
Решил попробовать стереть эту ИМС, после стирания получил что по адресам 600h, 1200h, 1600h, 2200h (т.е. отличных от сбойных) вместо FFh содержится 00h, дальнейшее стирание не изменило ситуацию.

На данный момент с данными в различающихся ячейках я поступаю так:
  • беру два варианта содержимого для ячейки,
    выполняю над ними операцию побитового И
    результат заношу новую прошивку
Заранее благодарен)

P.S. Доп информация: используемый программатор TRITON V5.7T, тип ИМС NMC27C256Q (остальные ИМС ПЗУ, которые норм читаются, другого производителя)
User avatar
Shaos
Admin
Posts: 24055
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

И через скоклько лет на этих ПЗУ прошивки начали "растворяться"?...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Tolmeros
Junior
Posts: 6
Joined: 04 Aug 2013 23:06
Location: zp.ua

Post by Tolmeros »

Похоже на то. Сами слитые вариации чтения мало чем отличаются, различных ячеек около 20-30. А вот когда софт программатора после чтения прошивки делал верификацию, иногда количество ошибок переваливало за 200-300.

есть несколько предположений, или ячейки так сбоят, или еще сбоит и схема доступа к ячейкам.

Сейчас сижу ковыряю код в IDA, ПЗУ-шка размещена с F0000h адреса, что подтверждается наличием явного стартового кода по FFF0h в ПЗУ. Если сбойная ячейка выпадает на команду по логике получается восстановить.

К примеру:
Вариант А:

Code: Select all

F000:2FFF                 mov     sp, [bp+820h]
F000:3003                 cmp     si, 0
F000:3006                 jnz     short loc_F300B
F000:3008                 jmp     loc_F3119
Вариант Б:

Code: Select all

F000:2FFF                 mov     si, ds:820h
F000:3003                 cmp     si, 0
F000:3006                 jnz     short loc_F300B
F000:3008                 jmp     loc_F3119
Или
Вариант А:

Code: Select all

F000:4FFD                 mov     ax, ds:0A56h
F000:5000                 mov     ds:0A3Ch, ax
F000:5003                 mov     byte ptr ds:0A43h, 1
Вариант Б:

Code: Select all

F000:4FFD                 mov     ax, ds:0A56h
F000:5000                 jnz     short near ptr loc_F503D+1
F000:5002                 or      al, dh
F000:5004                 push    es
F000:5005                 inc     bx
F000:5006                 or      al, [bx+di]
Тут из-за сбойной ячейки код вообще в бред превращается.

А вот когда массив данных там надо много думать.

Еще небольшая сложность в том, что в IDA нету 80186 процессора. Сначала поставил ей 8086, но потом увидел что у 80186 есть новые команды. Пришлось переключиться на 80286, но тут есть вероятность упустить ошибку, т.к. в 286 есть такие команды, которых в 186 нету.
User avatar
Shaos
Admin
Posts: 24055
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

т.е. помирающие таким образом ПЗУ потом ещё и не прошиваются на 100%?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Tolmeros
Junior
Posts: 6
Joined: 04 Aug 2013 23:06
Location: zp.ua

Post by Tolmeros »

Нет, это я все про чтение писал.
Когда считываю данные на программаторе софт от программатора делает чтение, так понимаю он потом еще контрольное чтение делает, и сравнивает их между собой. Тут и получается от 0 до 300 с чем то ошибок.

Про запись: во первых после стирания, некоторые ячейки превратились в нули (при том опять таки с четкими чередованием адресов 600h, 1200h, 1800h ...).
При записи ошибка верификации, много несовпадений.
Т.е. у нее не просто потеря данных, а физический износ.
Но это всего лишь одна ИМС, и один программатор. Если эти ИМС останутся, попробую с ними на досуге поиграться, постирать подольше, производить запись с повышенным напряжением записи, ...
User avatar
Shaos
Admin
Posts: 24055
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

опять же интересует каких годов девайс был - сколько лет прошло пока оно посыпалось?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Tolmeros
Junior
Posts: 6
Joined: 04 Aug 2013 23:06
Location: zp.ua

Post by Tolmeros »

Это привод с какого-то станка с ЧПУ. Привод фирмы Siemens, серии Simodrive 690. Если верить документам, то он 1991 года производства. Сколько он работал, и сколько не работал мне не известно. Включили его недавно, недели две назад. По словам вроде бы первый день он у них заработал, на следующий выдал ошибку неисправности платы и затих.

________

Уже тогда:

Неисправные ИМС имеют такую маркировку:

LB9012
NMC27C256Q
250

Остальные ИМС фирмы ST, которые прочитались нормально.

89024S
M27128A-25FI
PGM 12,1V
(этих две, программа для второго процессора, управление инвертором. Немного поменьше, ПЗУ размещено с адреса F8000h)

89001S
M27256-25FI
(в данной какие-то таблицы данных)

Есть еще EEPROM

DQ2816A-300
9019

(там видимо настройки хранятся, с ней тоже все ок)
User avatar
Shaos
Admin
Posts: 24055
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

ок - понятно, т.е. сбой дала только одна микросхема непонятной фирмы
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Tolmeros
Junior
Posts: 6
Joined: 04 Aug 2013 23:06
Location: zp.ua

Post by Tolmeros »

Две ИМС. Информацию с одной ИМС удалось восстановить (скорее всего просто везение).

Фирма известная, для меня просто не известная была.
Вот тут нашел: http://brainstones.narod.ru/collection_ ... /27256.htm
¹22, ¹23.

Вот она же http://fs.bookpawnshop.com/N/New-10-ntl ... os-eeprom/
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Tolmeros wrote:Это привод с какого-то станка с ЧПУ. Привод фирмы Siemens, серии Simodrive 690. Если верить документам, то он 1991 года производства.
Извини, что с советами влезаю...но 1991 год - не так уж и давно с точки
зрения станков с ЧПУ.

Может есть возможность считать с аналогичного ПЗУ?
Или поискать прошивки у коллег в интернете?

Я помню, у нас установка по гранулометрии была так в 198...каком-то году...
Так я её все ПЗУ-хи скопировал, и на непредвиденный случай, ну и с целью
вдруг-реверса. Она под Z80 работала...

Может и с твоими станками - ситуация с прошивками похожая?
iLavr
User avatar
Shaos
Admin
Posts: 24055
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Tolmeros wrote:Две ИМС. Информацию с одной ИМС удалось восстановить (скорее всего просто везение).

Фирма известная, для меня просто не известная была.
Вот тут нашел: http://brainstones.narod.ru/collection_ ... /27256.htm
¹22, ¹23.

Вот она же http://fs.bookpawnshop.com/N/New-10-ntl ... os-eeprom/
да - National Semiconductor - известная фирма
чего это они так испортились быстро?...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:да - National Semiconductor - известная фирма
чего это они так испортились быстро?...
Да может изначально брачок был типа "плавающих" ячеек...
iLavr
User avatar
Tolmeros
Junior
Posts: 6
Joined: 04 Aug 2013 23:06
Location: zp.ua

Post by Tolmeros »

Поиски где бы скачать/заказать прошивку, диалог с представительством Siemens и поиск аналогичного оборудования велись.

Параллельно пытался восстановить информацию

Не знаю, по словам "заказчика" они купили где-то на территории Германии станок этот (недавно) по цене металлолома. Когда прислали первый день они его собрали все вроде работало, на второй день этот блок выдал ошибку.

Может быть первый день они и не включали этот блок, кто знает.

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