Данное описание может быть полезно владельцам ADSL модемов D-link 300/500G, а также другого оборудования, в котором применяется флеш память Atmel серии AT45. Упор сделан на программирование AT45DB161B в составе  перечисленных модемов, но вероятно применение методики и ПО (возможно с некоторой доработкой) для отдельного программирования микросхем серии AT45 и других со сходным алгоритмом чтения записи. Исходники ПО, написанного на LabVIEW 7.1 прилагаются. Repair_ADSL_D-link_programmator_for_Atmel_AT45[Chupakabra].rar

 

Зеркало: repair_dlink, Repair_ADSL_D-link_programmator_for_Atmel_AT45_Chupakabra_.rar

 

HARDWARE

 

Информация по алгоритмам записи и чтения взята из «AT45DB161B.pdf»

Для чтения всего флеша используется Opcode 0xE8, для блочной записи Opcode 0x85, для блочного чтения 0xD2.

 

Распиновка 6-pin разъема для DSL-300G/500G взята из

\emergency direct flash.zip

\Other_Info\AT45DB161B.pdf

 

Pins \ info

LPT

6-pin interface

AT45DB161B

+3.3 V

4

3

NOT connected to AT45DB161* (But connected to 4th-pin of LPT with invariable 3.3v voltage)

SI

5

1

13

SCK

6

5

12

^CS (инвертированный)

7

4

11

SO

11

2(WITH 100¦¸Resist 0.25w) (я брал 150 Ом)

14

GND

18

6

7

 

 

 

 

 

 

 

 

 

 

 

 

 

Фотография модема Huawey, но расположение разъема и флеша похоже на D-link.

 

 

Кабель, который я использовал для программирования можно посмотреть в \my_programmator.jpg  J

 

 

Распиновка 5-pin разъема для DSL-300G/500G. Разъем представляет, по сути, консольный порт с уровнями напряжения LVTTL (+3.3V).

 

1

Tx

2

GND

3

+3

4

GND

5

Rx

 

Где, конкретно, pin1 я не помню, но можно померить тестером, на нем должно быть

+(3-5)V относительно GND. Я использовал переделанный кабель от телефона Motorola (на базе MAX232-аналог микросхемы) для подключения консольного порта к компьютеру.

 

Некоторая информация об использовании этого (5-pin) разъема, а также параметры соединения можно найти в файлах:

\Other_Info\failedug.php.html

\Other_Info hyperterminal.php.html

 

 

SOFTWARE

 

Все ПО в целях сокращения временных затрат J написано на  National Instruments LabVIEW 7.1. Для запуска EXE файлов необходимы Run-Time библиотеки поддержки:

 

lvruntimeeng.msi (из lv71runtimeeng.rar) !!!

 

ПО состоит из двух программ:

  1. Chupa_flash_reader_AT45.exe – флеш-ридер, делает полный dump флеша.

 

 

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

 

Если все правильно подключено, указан правильный адрес LPT порта (default: 0x378), то данные должны считываться и отображаться на индикаторе SO и в нижнем текстовом поле. Настройки ^CS, SCKmask отвечают за используемые при чтении и записи контакты LPT (соответствующие биты регистра данных и статуса LPT). По умолчанию все соответствует распиновке из раздела HARDWARE.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Chupa_flasher_AT45.exe – прошивальщик флеша.

 

 

 

Принцип работы: прошивальщик считывает (проверяет) блоки данных размером 528 байт (см. спецификацию по флешу AT45), сверяет их с соответствующими блоками из файла прошивки, если блоки не равны, то соответствующий блок переписывается до тех пор, пока не станут идентичными.

 

Решение возможных (предполагаемых) проблем сводятся к заданию временным интервалов в алгоритмах записи и чтения. Решаются или увеличением параметров “Задержка чтения”, “Задержка записи” или правкой кода J.

 

Firmware. Для восстановления своего D-link 300G, я использовал следующую прошивку для 500G (они аппаратно идентичны J):

\Firmware\r2.01.b15.rar

 

В общем, главное здесь то, что TEimage.bin  заливается напрямую во флеш !!!

 

Кроме этого я прилагаю исходники всего ПО:

\Chupa_flasher_AT45.llb – библиотечный файл LabVIEW.

 

Chupakabra

pi_meson@front.ru

 

 



Hosted by uCoz