Восстановление прошивки Samsung SCX 320X

В связи большой популярностью технологии фикс-прошивки аппаратов Samsung «модернизированной» прошивкой, для разблокировки печати после окончания ресурса картриджа, все чаще и чаще стали появляться неисправные аппараты с «убитой» прошивкой. Причины возникновения такой ситуации могут быть всякие:
1. В процессе прошивки аппарата прервалась связь, отключили электричество, отсоединен кабель USB.
2. По ошибке был записан «битая» прошивка, не той версии или вообще другой файл.
Или в случае ОА NoUpd (Одно Аппаратная Необновляемая) прошивке была допущена ошибка в серийном номере. В этом случае МФУ работает в штатном режиме, но без чипа выдается ошибка и аппарат не работает.
Есть вообще гарантийный случай поломки аппарата с неисправностью прошивки. Это при обновлении через интернет, хотя принтер Вас предупреждает, что при этой процедуре нельзя выключать компьютер или аппарат.
В чем суть процедуры прошивки аппарата дебаг-кабелем? Если МФУ не определяется компьютером, то вы не сможете залить прошивку в аппарат, для этого необходимо подключится к плате через сервисный разъем (TTL) и, командуя через гипертерминал, заставить аппарат переключится в сервисный режим и принять прошивку с компьютера.
В качестве примера будем рассматривать аппарат МФУ Samsung SCX 320x. Именно эти аппараты больше всех подвержены этой поломке.

Итак, выделим основные моменты:

1. Дебаг кабель либо TTL-USB адаптер (стоит 2$)
2. Подключение ДК (либо TTL-USB) к форматеру аппарата
3. Запуск гипертеминала и прошивка аппарата.

Дебаг кабель.

Собрать такой кабель очень просто. Приведем простую схему на микросхеме max232:

Пример собранного кабеля, с разобранным корпусом.

Схема сборки у нас одинаковая, но вот провода я выбрал неудачно, медный кабель UTP не очень подходит, и припаивать к сервисному разъему аппарата неудобно. Лучше выберите многожильные медный провод и залудите концы, для удобства припайки. А вот Илья советует сделать так: балластные резисторы по 50 Ом, которые идут на выходы Rx, Tx.

использовать их металлические усики как контакты припоя, так как они отлично припаиваются к мелким местам, заизолировать их термоусадкой и будем вот так:

Кабель у нас собран и пора подключить его к сервисному разъему МФУ.

TTL-USB

Можно не искать компьютер с COM портом и паять дебаг кабель, а купить TTL-USB конвертер который эмулирует com порт.

Вот так выглядит:

Сервисный разъем

Сервисные разъемы на платах МФУ и принтеров имеют четыре контакта, иногда это просто залуженные отверстия и подписаны как DEBUG или HYPER.
Вот разъем на SCX 3200:

Увеличенный вид:

Распиновка у всех стандартная. Самое главное найти землю GND или питание Vcc, если вы нашли GND значит с другого края Vcc, рядом с Vcc всегда Tx, а с GND находится Rx. То есть Vcc – Tx – Rx – GND. На SCX 3200 Vcc обведен черным кружком.
Аккуратно припаиваем концы дебаг кабеля Tx, Rx, GND к разъему, подключаем другой конец к компьютеру и подаем питание с USB. Подключаем аппарат через USB к копьютеру.
Подготовьте прошивку-фикс либо оригинал и скачайте прошивальщик usbprn2.exe
Ну вот и все, теперь мы готовы приступить к прошивке.

Запуск гипертеминала и прошивка аппарата

Выберите из 3х вариантов более подходящий Вам:

Запускаем гипертерминал на Windows XP:

Создаем соединение и назовем его Debug:

Выставляем правильно порт к которому мы подключили Дебаг кабель (либо TTL-USB — номер порта можно посмотреть в диспетчере устройств Windows):

Жмем Ок

Выставляем параметры, как указано на рисунке:

Нажмите Ок.

Windows 7 HyperTerminal:

Используем стандартный HyperTerminal из Windows XP

HyperTerminal_for_win7 скачать.

Чтобы вернуть HyperTerminal в Windows 7 достаточно просто скопировать файлы данной программы из Windows XP. Нам понадобятся следующие файлы:

C:\Program Files\Windows NT\hypertrm.exe
C:\WINODWS\system32\hypertrm.dll
C:\WINODWS\Help\hypertrm.chm
C:\Windows\Help\hyperterm.hlp

Скопируйте их в отдельный каталог в Windows 7, после чего можно запустить гипертерминал в Windows 7, открыв файл hypertrm.exe с явными правами админа (Run as administrator по правой кнопочке мыши).

Putty как аналог гипертерминала

Если вы хотите радикально избавиться от устаревшего гипертерминала, придется искать его аналоги для Windows 7.

Из наиболее удобных вариантов аналога мне видится утилита Putty (тем более она входит в арсенал практически любого администратора). Все, что необходимо сделать для работы Putty с локальным COM-портом, выполнить следующую настройку:

Запустить утилиту putty.exe и в дереве настроек перейти в раздел Connection->Serial
И задать нужные параметры для подключения к конкретному оборудованию. Для подключения к устройству Cisco выставляем следующие параметры:
Bits per Second –> 115200
Data bit –> 8
Parity –> None
Stop bit–> 1
Flow control –> None

 

Затем возвращаемся в начальное окно Putty, в качестве типа соединения указываем  Serial и указываем COM порт, к которому подключено оборудование (например, COM1)

Жмем кнопку Open и — вуаля! – открывается искомая консоль!

 

Теперь включите МФУ и вы должны увидеть ответ аппарата.

Если на экране полез мусор из всяких крокозябр, значит у вас проблемы с дебаг кабелем, идет откуда-то наводка на контакты, перепутали контакты Rx Tx. Проверьте все снова и добейтесь нормального ответа.
Дальше привожу порядок работы в гипертерминале. Аппарат отвечает гипертерминалу двумя способами, назовем их стандартный режим DRAM:

Стандартный ответ гипертерминала после включения аппарата:

Boot&Mon. CheckSum OK! [ POWER ON Booting… ]
Press any key to execute Monitor Program within 1 sec…
Kernel Data Read Start From Serial Flash
New kernel was found…
CHKSUM
{
check sum start address: 41000000, count: 001B0000
check sum: 0000A5A5
} /* Checksum End
Checksum OK!!
Kernel Data Read End
Find Compressed Kernel
Kernel UnZip Done!!
jump to 0x40080000
ramsize= 406BFFFF, gsbsize = 40501204, FreeMemPtr = 40500548, FreeMemStart = 40
500548

Model Code: SCX3200
Main Kernel F/W Version: V3.00.01.08
Main Kernel F/W Date: OCT-18-2010
Check PowerOn Mode PBA Port —— ( GPIO3In — 0x2daff, GPIOIn — 0xef)
DRAM: >

Normal Mode Start

Для перезаливки FW нам нужен режим pROBE:
Перед включением аппарата нажимаем клавишу N (на клавиатуре компьютера! Не на аппарате, там ее нет!) и удерживая ее включаем питание. Клавишу тут же отпускаем.

Аппарат выдаст следующее сообщение:

[ POWER ON Booting… ]
Press any key to execute Monitor Program within 1 sec…

START-UP MODE: Monitor Program
Boot into pROBE+ like stand-alone mode
[Type ‘help’ to see command info. ]

Version: Ver.1.17 (BlueMT) 2010-05-27
Do you want to download from external port?[N]: n
pROBE+>

Вводим команду «FL».

pROBE+> fl

Получаем сообщение:

Upgrade Flash ROM Image
FlashCheckSum
{
check sum start address: 40060000, count: 0000FFFE
check sum: 0000A5A5
} /* Checksum End
==> Now program restarted on the RAM to program flash ROM (0x40060000)
jump to 0x40060000

Flash Data Download Address: 0x41000000
Start flash_writer
verify_Image: 0x41000000
i_header->pul_start_addr: 0x00000000
i_header->ul_count: 0x00000000
model: 0x00000000
flash type: 0x00000000
image type: 0x00000000
temp_buf:
SIG:
Can not find sig
—————– Display Dcache Status ——————
Control register = 0x000510F8
Icahe: ON
Dcahe: OFF
MMU: OFF
Download Image from PC
{

Ready to download from Parallel/Usb/Serial (0x41000000)
Samsung OTG, 2006

Link ID: [00000000]

В режиме pROBE аппарат посылает по интерфейсу сигнал о подключении сервисного драйвера и компьютер его определяет как Поддержка USB принтера, Внимание! Этот драйвер не определяется в Windows ME/ 98, только WIndows XP и выше. Мышкой перетягиваем иконку файла прошивки ( допустим SCX3200_V3.xx.01.08.hd) на иконку прошивальщика usbprns2.

Получаем следующее сообщение и наблюдаем процесс прошивки:

Drv «design ware core» USB download
Image includes PJL (0000001B) –> Waste 92 bytes
[[4194424 Bytes received]] — Complete Downloading
} /Download End/
verify_Image: 0x41000000
i_header->pul_start_addr: 0x00000000
i_header->ul_count: 0x00400000
model: 0x05000041
flash type: 0x00020002
image type: 0x00000000
temp_buf: $KER
SIG: $KER
FlashCheckSum
{
check sum start address: 4100001C, count: 00400000
check sum: 0000A5A5
} / Checksum End
Source Checksum is valid
[[[[[ Flash Writing: BANK[0] 0x00000000]]]]]
flash_start_addr: 0x00000000
flash_end_addr: 0x00400000
flash_data_size: 0x00400000
src_image_start_addr: 0x4100001C
0x00004000 words — 0x00010000 bytes programmed (2 percent: 0x003F0000)
0x00004000 words — 0x00010000 bytes programmed (4 percent: 0x003E0000)
0x00004000 words — 0x00010000 bytes programmed (5 percent: 0x003D0000)
0x00004000 words — 0x00010000 bytes programmed (7 percent: 0x003C0000)
0x00004000 words — 0x00010000 bytes programmed (8 percent: 0x003B0000)
0x00004000 words — 0x00010000 bytes programmed (10 percent: 0x003A0000)
0x00004000 words — 0x00010000 bytes programmed (11 percent: 0x00390000)
0x00004000 words — 0x00010000 bytes programmed (13 percent: 0x00380000)
0x00004000 words — 0x00010000 bytes programmed (15 percent: 0x00370000)
0x00004000 words — 0x00010000 bytes programmed (16 percent: 0x00360000)
0x00004000 words — 0x00010000 bytes programmed (18 percent: 0x00350000)
0x00004000 words — 0x00010000 bytes programmed (19 percent: 0x00340000)
0x00004000 words — 0x00010000 bytes programmed (21 percent: 0x00330000)
0x00004000 words — 0x00010000 bytes programmed (22 percent: 0x00320000)
0x00004000 words — 0x00010000 bytes programmed (24 percent: 0x00310000)
0x00004000 words — 0x00010000 bytes programmed (25 percent: 0x00300000)
0x00004000 words — 0x00010000 bytes programmed (27 percent: 0x002F0000)
0x00004000 words — 0x00010000 bytes programmed (29 percent: 0x002E0000)
0x00004000 words — 0x00010000 bytes programmed (30 percent: 0x002D0000)
0x00004000 words — 0x00010000 bytes programmed (32 percent: 0x002C0000)
0x00004000 words — 0x00010000 bytes programmed (33 percent: 0x002B0000)
0x00004000 words — 0x00010000 bytes programmed (35 percent: 0x002A0000)
0x00004000 words — 0x00010000 bytes programmed (36 percent: 0x00290000)
0x00004000 words — 0x00010000 bytes programmed (38 percent: 0x00280000)
0x00004000 words — 0x00010000 bytes programmed (40 percent: 0x00270000)
0x00004000 words — 0x00010000 bytes programmed (41 percent: 0x00260000)
0x00004000 words — 0x00010000 bytes programmed (43 percent: 0x00250000)
0x00004000 words — 0x00010000 bytes programmed (44 percent: 0x00240000)
0x00004000 words — 0x00010000 bytes programmed (46 percent: 0x00230000)
0x00004000 words — 0x00010000 bytes programmed (47 percent: 0x00220000)
0x00004000 words — 0x00010000 bytes programmed (49 percent: 0x00210000)
0x00004000 words — 0x00010000 bytes programmed (50 percent: 0x00200000)
0x00004000 words — 0x00010000 bytes programmed (52 percent: 0x001F0000)
0x00004000 words — 0x00010000 bytes programmed (54 percent: 0x001E0000)
0x00004000 words — 0x00010000 bytes programmed (55 percent: 0x001D0000)
0x00004000 words — 0x00010000 bytes programmed (57 percent: 0x001C0000)
0x00004000 words — 0x00010000 bytes programmed (58 percent: 0x001B0000)
0x00004000 words — 0x00010000 bytes programmed (60 percent: 0x001A0000)
0x00004000 words — 0x00010000 bytes programmed (61 percent: 0x00190000)
0x00004000 words — 0x00010000 bytes programmed (63 percent: 0x00180000)
0x00004000 words — 0x00010000 bytes programmed (65 percent: 0x00170000)
0x00004000 words — 0x00010000 bytes programmed (66 percent: 0x00160000)
0x00004000 words — 0x00010000 bytes programmed (68 percent: 0x00150000)
0x00004000 words — 0x00010000 bytes programmed (69 percent: 0x00140000)
0x00004000 words — 0x00010000 bytes programmed (71 percent: 0x00130000)
0x00004000 words — 0x00010000 bytes programmed (72 percent: 0x00120000)
0x00004000 words — 0x00010000 bytes programmed (74 percent: 0x00110000)
0x00004000 words — 0x00010000 bytes programmed (75 percent: 0x00100000)
0x00004000 words — 0x00010000 bytes programmed (77 percent: 0x000F0000)
0x00004000 words — 0x00010000 bytes programmed (79 percent: 0x000E0000)
0x00004000 words — 0x00010000 bytes programmed (80 percent: 0x000D0000)
0x00004000 words — 0x00010000 bytes programmed (82 percent: 0x000C0000)
0x00004000 words — 0x00010000 bytes programmed (83 percent: 0x000B0000)
0x00004000 words — 0x00010000 bytes programmed (85 percent: 0x000A0000)
0x00004000 words — 0x00010000 bytes programmed (86 percent: 0x00090000)
0x00004000 words — 0x00010000 bytes programmed (88 percent: 0x00080000)
0x00004000 words — 0x00010000 bytes programmed (90 percent: 0x00070000)
0x00004000 words — 0x00010000 bytes programmed (91 percent: 0x00060000)
0x00004000 words — 0x00010000 bytes programmed (93 percent: 0x00050000)
0x00004000 words — 0x00010000 bytes programmed (94 percent: 0x00040000)
0x00004000 words — 0x00010000 bytes programmed (96 percent: 0x00030000)
0x00004000 words — 0x00010000 bytes programmed (97 percent: 0x00020000)
0x00004000 words — 0x00010000 bytes programmed (99 percent: 0x00010000)
0x00004000 words — 0x00010000 bytes programmed (100 percent: 0x00000000)
FlashCheckSum
{
check sum start address: 4100001C, count: 00400000
check sum: 0000A5A5
} / Checksum End
=>check sum is valid

МФУ перегружается и выдаёт сообщение:

Boot&Mon. CheckSum OK!
[ WATCH DOG RESET Booting… ]
Press any key to execute Monitor Program within 1 sec…
Kernel Data Read Start From Serial Flash
New kernel was found…
CHKSUM
{
check sum start address: 41000000, count: 001B0000
check sum: 0000A5A5
} /* Checksum End
Checksum OK!!
Kernel Data Read End
Find Compressed Kernel
Kernel UnZip Done!!
jump to 0x40080000
ramsize= 406BFFFF, gsbsize = 40501204, FreeMemPtr = 40500548, FreeMemStart = 40
500548

Model Code: SCX3200
Main Kernel F/W Version: V3.00.01.08
Main Kernel F/W Date: OCT-18-2010
Check PowerOn Mode PBA Port —— ( GPIO3In — 0x2daff, GPIOIn — 0xef)
DRAM: >

Normal Mode Start

Всё, на этом восстановление прошивки завершено. Удачи!