МФУ Samsung SCX-4300, SCX-4200: Решение проблемы "Download From PC" |
Эта проблема встречается довольно часто при отключении питания и сбоях принтера во время перепрошивки. В результате после включения питания принтер высвечивает на экране "Download From PC", ни на какие кнопки не реагирует. При этом USB порт не работает, с компьютера принтер не виден вообще. Традиционно есть два варианта "поднятия" принтера из этого состояния: замена платы форматтера (основной управляющей платы) и выпаивание ПЗУ принтера с дальнейшей перепрошивкой на внешнем программаторе. Первый вариант дорогостоящий, а второй требует также наличие дополнительного оборудования и навыков работы с ним. Предлагаю третий вариант "оживления" принтера без замены форматтера и выпаивания ПЗУ. Как известно, содержимое ПЗУ принтера состоит их трех частей: основная программа, область данных и программа-загрузчик. Основная программа может обновляться по USB порту, программа-загрузчик не меняется. В загрузчике, кроме собственно процедуры загрузки, есть также программа-монитор. С ее помощью можно, например, просмотреть и изменить содержимое памяти принтера. При старте принтера загрузчик сначала предлагает стартовать монитор, выдавая на "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-интерфейсе. Нужно обратить внимание, что подключать 5-вольтовый выход TxD к 3.3-вольтовому входу RxD на форматтере принтера нужно через резистор 40...100 Ом. Но самый простой и оптимальный вариант - купить дата-кабель на мобильник для COM-порта: они обычно 5-вольтовые. Я купил кабель для Самсунга C100 (фото 2). Мне он нравится потому, что имеет разборный разъем. |
Для подключения к принтеру я просто допаял к разъему дата-кабеля 3 "хвоста": GND (общий), RxD и TxD согласно фото 3. Сначала нужно найти GND: общий провод (земля) должен звониться на 5-ю ножку 9-пинового разъема (фото 4). Если воткнуть кабель в компьютер - должна звониться на корпус. Потом соединяю 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[тут я нажал n] pROBE+>Вводим "help" и получаем список команд монитора: pROBE+> help -----ROM monitor command format----------- dm start_addr <byte_count> dm.b start_addr <byte_count> dm.w start_addr <byte_count> dm.l start_addr <byte_count> ESC repeat memory dump fm start_addr byte_count byte_value fm.b start_addr byte_count byte_value fm.w start_addr word_count word_value fm.l start_addr long_count long_value pm addr byte_value pm.b addr byte_value pm.w addr word_value pm.l addr long_value ul byte_count : upload image flash : upgrade flash image fl : upgrade flash image go jmp_addr dl load_addr dhry : check dhry speed pROBE+> Все адреса и данные шестнадцатеричные. Все команды монитора не пробовал, могу сказать только, что dm (display memory) - просмотр содержимого памяти, go - переход по адресу. Например, запуск основной прошивки: go 10000 Enter Остальные команды я не тестировал, но, думаю, что самой интересной и нужной будет команда flash - после ввода "flash" принтер переходит в тот же режим, как и при восстановлении убитой прошивки. Встроенный монитор может пригодиться для восстановления принтера после заливки некорректной прошивки, когда контрольная сумма совпадает, но прошивка работать не хочет. С помощью монитора возможна также заливка прошивки более младшей версии поверх более старшей, что нельзя сделать в стандартном режиме. Возможна и кросс-прошивка 4300 <-> 4200. Но при этом нужно учесть, что, в отличие от программирования флешки программатором, не меняется область CRUM и внутренних переменных 4000h...0ffffh, так что работоспособность переделки таким образом 4300 <-> 4200 под большим вопросом. Думаю, что данная методика может быть применена не только для "оживления" SCX-4300, SCX-4200, но и других Самсунгов. В заключение подчеркну, что этот материал адресован профессионалам. Возможно, в описании есть ошибки или неточности - замечания и пожелания принимаются на e-mail, указанный в подписи. |
, Донецк, Украина |
Опубликовано 27 мая 2009 г. |