Главная » 2014»Июнь»27 » Прошивка принтера Samsung SCX-4300, SCX-4200
17:37
Прошивка принтера Samsung SCX-4300, SCX-4200
МФУ Samsung SCX-4300, SCX-4200: Решение проблемы "Download From PC"
Эта проблема встречается довольно часто при отключении питания и сбоях принтера во время перепрошивки. В результате после включения питания принтер высвечивает на экране "Download From PC", ни на какие кнопки не реагирует. При этом USB порт не работает, с компьютера принтер не виден вообще.
Традиционно есть два варианта "поднятия" принтера из этого состояния: замена платы форматтера (основной управляющей платы) и выпаивание ПЗУ принтера с дальнейшей перепрошивкой на внешнем программаторе. Первый вариант дорогостоящий, а второй требует также наличие дополнительного оборудования и навыков работы с ним.
Предлагаю третий вариант "оживления" принтера без замены форматтера и выпаивания ПЗУ.
Как известно, содержимое ПЗУ принтера состоит их трех частей: основная программа, область данных и программа-загрузчик. Основная программа может обновляться по USB порту, программа-загрузчик не меняется. В загрузчике, кроме собственно процедуры загрузки, есть также программа-монитор. С ее помощью можно, например, просмотреть и изменить содержимое памяти принтера.
Я думаю, что код загрузчика одинаков в 4300-м и 4200-м - на эту мысль меня наводит установленный в моем 4300-м принтере форматтер с маркировкой "SCX4200".
При старте принтера загрузчик сначала предлагает стартовать монитор, выдавая на "DEBUG"-интерфейс (отладочная консоль, подробнее чуть позже):
===================================================================
Press any key to execute Monitor Program within 1 sec.(in Boot)
===================================================================
Далее загрузчик считает контрольную сумму основной прошивки. Если контрольная сумма основной прошивки равна 0, то стартует основная прошивка, в противном случае, что может быть, например, после неудачной перепрошивки, на экран принтер выводит "Download From PC", а на DEBUG-интерфейс выдает:
<<<DownLoad_FromPC>>>
There is no image in RAM. Download Start!!!
Select port : 'u' [usb] 'p' [parallel]
после чего ждет символ "u" или "p", и только с DEBUG-интерфейса. Вот тут-то все и стопорится. И только получив символ "u" или "U", принтер пишет на экране "via USB" и включает USB порт.
После этого компьютер находит новое USB-устройство "Boot downloader". Теперь можно грузить прошивку, как и при обычной перепрошивке с помощью usbprns2.exe, только надо заливать прошивку с удаленными первыми четырьмя байтами (4300-4200). После заливки прошивки принтер рестартует.
Теперь о DEBUG-интерфейсе.
На плате форматтера рядом с процессором есть разъем с маркировкой "DEBUG". Правда, на моей плате разъема нет, есть только место под него с 4-мя дырками, но, возможно, на некоторых форматтерах он присутствует. Цоколевка разъема приведена на фото 1. Здесь и далее TxD (Tx) - передача, RxD (Rx) - прием. Этот разъем - интерфейс RS232, он же обычный COM-порт компьютера, но только в уровнях TTL 3.3 Вольт. Для подключения принтера к компьютеру необходим преобразователь уровней RS232 (+/-12 вольт) в уровни TTL 3.3В. В интернете полно схем таких преобразователей как на 5В, так и на 3.3В, можно найти на любой вкус и цвет - например, здесь или здесь.
Нужно обратить внимание, что подключать 5-вольтовый выход TxD к 3.3-вольтовому входу RxD на форматтере принтера нужно через резистор 40...100 Ом.
Но самый простой и оптимальный вариант - купить дата-кабель на мобильник для COM-порта: они обычно 5-вольтовые. Я купил кабель для Самсунга C100 (фото 2). Мне он нравится потому, что имеет разборный разъем.
Как правило, все подобные дата-кабели питаются от ноги DTR COM-порта. Есть одна тонкость: положительное напряжение для питания кабеля на этой ножке появляется только после установления соединения в терминальной программе.
Для подключения к принтеру я просто допаял к разъему дата-кабеля 3 "хвоста": GND (общий), RxD и TxD согласно фото 3. Сначала нужно найти GND: общий провод (земля) должен звониться на 5-ю ножку 9-пинового разъема (фото 4). Если воткнуть кабель в компьютер - должна звониться на корпус.
Далее надо найти RxD и TxD. Для этого подключаю дата-кабель к компьютеру, открываю программу HyperTerminal (Пуск - Программы - Стандартные - Связь - HyperTerminal), устанавливаю соединение (Call/Connect) с любыми параметрами и, нажимая любую клавишу на клавиатуре, ищу импульсы осциллографом. Проверяю и амплитуду импульсов - должна быть 5 вольт. Это выход TxD компьютера - он будет соединяться через резистор 40...100 Ом (5В > 3.3В) с RxD на DEBUG-е.
Потом соединяю TxD компьютера поочередно с остальными проводами кабеля до тех пор, пока на экране терминала не пойдет эхо вводимых с клавиатуры символов. Это RxD компьютера - будет соединяться с TxD на DEBUG-е.
Мне пришлось разобрать принтер и снять форматтер - дырки на DEBUG-е были залиты припоем. Я разъем не ставил, просто очистил дырки "отсосом", а потом вставлял в них одножильный провод подходящего диаметра уже при собранном принтере. Предполагаю, что принтер уже подключен к компьютеру по USB. Землю я подсоединяю в первую очередь и к металлическому основанию, на котором закреплены платы - так надежнее, потом подсоединяю RxD и TxD (фото 5).
Подключать компьютер через переходник к принтеру нужно очень аккуратно, все сигналы идут сразу на микросхему процессора. Запускаю HyperTerminal, выставляю параметры 115200 8 N 1 без управления потоком, устанавливаю соединение (Call/Connect), включаю принтер. Если принтер "убит"перепрошивкой, то в терминале должно появиться:
===================================================================
Press any key to execute Monitor Program within 1 sec.(in Boot)
===================================================================
<<<DownLoad_FromPC>>>
There is no image in RAM. Download Start!!!
Select port : 'u' [usb] 'p' [parallel]
Нажимаю на клавиатуре "u" или "U", потом запускаю на компьютере стандартную программу прошивки:
usbprns2.exe <firmware_name>
где <firmware_name> - имя файла стандартной прошивки без первых 4-х байт (4300-4200).
Принтер загружает прошивку как и в обычном режиме, затем рестартует. Если при включении принтера на экран терминала ничего не выводится, советую попробовать перезапустить HyperTerminal, проверить и заново переустановить параметры соединения (конечно, при условии, что переходник проверен и работает).
Несколько слов о встроенном мониторе. Вызвать его можно при старте принтера как с рабочей прошивкой, так и с нерабочей. Для этого при старте принтера нужно ввести любой символ. Причем нажимать клавишу на клавиатуре нужно практически с включением питания, а не ждать, когда он напишет приглашение, иначе он быстро запускает основную прошивку. В результате на экране терминальной программы увидим следующее:
=================================== ================================
Press any key to execute Monitor Program within 1 sec.(in Boot)
=================================== ================================
[тут я нажал Enter]
----------------------------------------------------------------
START-UP MODE : Monitor Program
Boot into pROBE+ like stand-alone mode
[Type 'help' to see command info.]
Version : B0.30 12-01-2003 by Keetaek Kim
----------------------------------------------------------------
Do you want to download via parallel port?[N] : n
Все адреса и данные шестнадцатеричные. Все команды монитора не пробовал, могу сказать только, что dm (display memory) - просмотр содержимого памяти, go - переход по адресу. Например, запуск основной прошивки:
go 10000 Enter
Остальные команды я не тестировал, но, думаю, что самой интересной и нужной будет команда flash - после ввода "flash" принтер переходит в тот же режим, как и при восстановлении убитой прошивки.
Встроенный монитор может пригодиться для восстановления принтера после заливки некорректной прошивки, когда контрольная сумма совпадает, но прошивка работать не хочет. С помощью монитора возможна также заливка прошивки более младшей версии поверх более старшей, что нельзя сделать в стандартном режиме. Возможна и кросс-прошивка 4300 <-> 4200. Но при этом нужно учесть, что, в отличие от программирования флешки программатором, не меняется область CRUM и внутренних переменных 4000h...0ffffh, так что работоспособность переделки таким образом 4300 <-> 4200 под большим вопросом.
Думаю, что данная методика может быть применена не только для "оживления" SCX-4300, SCX-4200, но и других Самсунгов.