Прошивка ML-2160 V1.01.02.00 с понижением через JTAG
Статья описывает процесс прошивки принтеров серии ML-2160 с текущей версией V1.01.02.00, V1.01.02.01 и выше на программаторе JTAG.
Какие модели прошиваются через JTAG
- ML-2160, ML-2165, ML-2167 с версиями V1.01.02.00, V1.01.02.01; (кроме ML-2165W и ML-2168W, у них SPI Flash, также попадаются ML-2160 с версией 1.01.02.03, по отзывам никто не смог понизить);
- ML-1610, ML-1640, ML-1660, ML-1670, ML-1860, ML-1910, ML-2015, ML-2040, ML-2520;
- Phaser 3140, Phaser 3155, Phaser 3160.
Информация в статье касается только серии ML-2160, для других моделей необходимо искать схему подключения JTAG, загрузчик, а также список команд.
Что потребуется
- Программатор J-Link v8. Оригинальный стоит более 300$, но китайские клоны на Aliexpress продаются за 10-15$ и отлично подходят для нашей задачи. Из внушающих доверие лотов мы нашли такой или еще дешевле без переходников (не понадобятся)
- Паяльник с тонким жалом, навыки аккуратной пайки т.к есть сложный момент с отпаиванием ножки процессора.
- Компьютер с ОС Windows XP, 7, 8, 10 (x64/x86) и ПО на программатор (скачать можно ниже).
- Оригинальная прошивка версии 1.01.01.11 (скачать).
Подготовка к прошивке
- В комплекте с программатором J-Link находится 20-контактный шлейф с двумя разъёмами. С одной стороны необходимо отрезать разъём и подготовить провода (залудить, лишние загнуть) по этой схеме:
Фото выше обрезано для наглядности, не отрезайте шлейф до такой степени! Также не вырезайте неиспользуемые провода: по отзывам появляются наводки, которые могут помешать процессу - Устанавливаем JLinkARM 4.24f. После запуска может появиться сообщение "A new firmware version is available..." — откажитесь от обновления, если не уверены, что программатор оригинальный, иначе может не пройти проверку по серийному номеру (в версии 4.24f такой проверки нет).
- Скачиваем загрузчик boot.bin и сохраняем в корень диска C (путь получится C:\boot.bin).
Прошивка на примере ML-2160 V1.01.02.00
Есть несколько вариантов подключения. Мы описываем тот, в котором после подключения JTAG плата форматирования устанавливается обратно в принтер, debug-интерфейс при этом не используется, внешнее питание на плату подавать не нужно.
- Выводы № 1, 2 на шлейфе объедините между собой, заизолируйте и загните в сторону шлейфа: эти контакты не будут использоваться в нашем варианте подключения.
- Снимите боковую крышку принтера со стороны USB-порта (сзади один болт, остальное — защёлки).
- Отключите все разъёмы от платы форматирования, извлеките плату.
- Выводы № 3, 5, 9, 13 припаяйте в соответствии с фото:
- Вывод № 20 — к земле, например на контакт debug:
- Вывод № 7 шлейфа самый ответственный: его нужно подключить к одной ножке процессора, предварительно аккуратно отпаять и слегка (1-2 мм, не больше) приподнять от платы, чтобы не было контакта. Далее к ней припаять тонкий гибкий провод и зафиксировать (можно клеем к плате, скотчем), а уже к нему подцеплять 7-ой вывод шлейфа.
Очень важно не отломать ножку. В противном случае потребуется тратить время и подручными средствами (булавкой например) пытаться подключаться к остаткам от ножки. После прошивки припаивать ножку к плате не обязательно: на работоспособность принтера она не влияет. - Проверьте ещё раз правильность подключения всех контактов, установите плату форматирования обратно в принтер и подключите все разъёмы.
- Подключите программатор и сам принтер к USB-портам компьютера (желательно использовать качественные USB-кабели, длиной не более 1,2 м).
- Включите принтер в принудительном режиме: удерживая кнопку "Печать экрана" (выше кнопки включения) нажмите один раз кнопку питания, кнопку "Печать экрана" продолжайте удерживать 3 секунды, затем отпустите. Если сделали правильно — не должно быть звука работы двигателя, индикатор питания должен непрерывно гореть зелёным.
- Запустите J-link Commander из меню Пуск.
- Должен определиться процессор: Found ARM with core Id 0x07926F0F (ARM9) .
- Если у вас так, как на скриншоте выше — введите h и нажмите Enter:
- Набираем be и Enter.
- Вводим loadbin c:\boot.bin, 0x40700000 (файл boot.bin скачивали заранее), нажимаем Enter и ожидаем приглашения на ввод следующей команды.
- Команда setpc 0x40700050 и нажимаем Enter.
- Последняя команда — g . Принтер должен вернуться в принудительный режим загрузки. Если вы не вынимали картридж, то можете услышать, как двигатель крутится в обратную сторону, это нормально.
- Ничего не отключая, сразу прошиваем оригинальной или фикс-прошивкой более низкой версии (перетаскиваем файл прошивки на usbprns2.exe).
- После автоматической перезагрузки принтера проверьте версию прошивки, если она понизилась — поздравляем, процесс завершён удачно :) Можно отключать JTAG от платы (двигатель перестанет крутиться в обратную сторону) и закрывать крышку. Напоминаем, что припаивать ножку процессора обратно к плате смысла нет.
Благодарим пользователя под ником Гоги за информацию о понижении через JTAG!
Не подскажите, может кто-нибудь сталкивался с такой проблемой.
Все делается правильно, но после подачи команды g принтере перезагружается в обычный режим и уже не принимает прошивку.
Здравствуйте. Была один раз такая проблема (ниже в комментариях), но увы, автор не сообщил о решении. Причин может быть масса, debug-кабеля у вас нет случайно?
Debug был подключен, но он ничего интересного не сообщал, чтобы могло дать понять в чем трабла.
Я разобрался в чем проблема или как ее решить.
Проблема оказалась в кривой прошивке 2.00 (хотя как она могла повредиться, там же ЭЦП).
Пришлось обновиться до 2.01 и после этого все пошло как надо.
Интересно, спасибо за решение, думаю пригодится многим :)
Jtag не видит процессор, пробовал два варианта данных устройств.
Выдает: Could not measure total IR len. TDO is constant high.
CPU core not found.
Подключение проверялось не раз, пока тыкался отломал ножку (( подпоял и закрепил на термоклей контакт. Шлейф порезал родной, какие ещё могут быть подводные камни.
Здравствуйте. Какое показывает напряжение в J-Link Commander (VTarget)? В самом начале выводит серийный номер самого программатора (S/N)?
Здравствуйте. Пришлось прошить два принтера с одной партии. Первый прошился сразу и с первого раза, а второй ни в какую. Пайку даже под микроскопом смотрел. Все аккуратно. Уже голову сломал.
Тут уже было такое у людей, может кто подскажет? может каку-нибудь мелочь упустил. Очень странно то, что один из двух принтеров прошился и работает.
VTarget = 3.274V
Info: Could not measure total IR len. TDO is constant high.
Ну и cpu not found.
Вскрыл принтер который прошился и еще раз попробовал подключить к jtag и он подключился. Мистика.
Вот и сам могу ответить на свой вопрос. Конечно же виновата мелочь. Отпаивая ножку на чипе и я случайно кинул соплю на соседнюю ножку. Причем не видно было ее ни как, тонюсенькая и под флюсом. Узнал прозвонкой соседних ножек.
Здравствуйте. Спасибо за информацию! Добавили в FAQ после статьи про ваш случай.
Здравствуйте,такая трабла-на 14 пункте -Теперь вводим loadbin c:\boot.bin, 0x40700000….После ввода команды получаю target memory @ 0х0000000..Вопрос как быть?подскажите куда копать буду признателен.
Здравствуйте. Пытались задать уточняющие вопросы на тот e-mail, который вы указали при отправке комментария, но он не существует. Отправьте пожалуйста весь лог J-link Commander’а.
я пропустил буковку на почте((извините
Ничего страшного :) Я написал вам, скиньте ответом лог Commander’а.
По вашей ссылке заказал из Китая программатор, получил, установил, подпаял, трижды все проверил и запустил программу. Вот что выдала —
Feature(s): RDI,FlashDL,FlashBP,JFlash,GDBFULL
VTarget = 1.326V
Info: Could not measure total IR len. TDO is constant high.
Info: Could not measure total IR len. TDO is constant high.
No devices found on JTAG chain. Trying to find device on SWD.
No device found on SWD.
Failed to identify target. Trying again with slow (4 kHz) speed.
Info: Could not measure total IR len. TDO is constant high.
Info: Could not measure total IR len. TDO is constant high.
No devices found on JTAG chain. Trying to find device on SWD.
No device found on SWD.
No device found at all. Selecting JTAG as default target interface.
Инфу о коробке читает нормально — просто сюда не скопировал. Но почему-то показывает напряжение низкое. Из-за чего может быть? Заранее спасибо!
Здравствуйте. А попробуйте вскрыть корпус программатора, внутри есть трёхпиновый джампер (бывает, подписан как VSupply, V3.3) — переключите его в другое положение и попробуйте снова. У наших клиентов уже было, что из-за это показывало заниженное напряжение и не определялся процессор.
Здравствуйте, подскажите, как быть?
Такая ситуация.
Все этапы проходят правильно, как у вас на скринах.
Но после отправки команды g, принтер не переходит в режим принудительной загрузки, а включается и при этом начинает крутить двигателем в обратную сторону.
Здравствуйте.
То, что крутит в обратную сторону это нормально, когда отпаяете JTAG будет правильно.
А вот почему не входит в принудительный сложно сказать. Начните с этого момента.
Здраствуйте, спасибо за данный материал. Вот все подготовил завтра собираюсь прошивать. Мучит сомненье, дело в том что Jtag 430 от фирмы omilex 14 пиновый в отличие от описываемого здесь 20 пин. Подскажите, если знаете там все аналогично, т.к. я сделал согласно его распиновки, и вашим указаниям, все подпаял, и вот теперь сижу боюсь ) включить. Спасибо заранее.
Здравствуйте. К сожалению, насчёт Jtag 430 ничего не можем сказать: никогда не пробовали его в действии (да что уж скрывать, никогда не слышали о нём :), клиенты тоже только про J-Link v8 отписывались. Теоретически, если выводы там такие же — может и получится понизить (хотя если с J-Link понижается далеко не с первого раза, то неизвестно, как будет здесь :)
Нужно также разузнать, какие команды вводить, по аналогии с J-Link Commander.
Спасибо, буду пробовать «взлетать». там отпишусь )
Здравствуйте! помогите пожалуйста найти программатор как у Вас, поиск по Вашему ключевому слову на алиэкспресе ничего не дал =( либо ссылочку на Вашу модель программатора. заранее спасибо
Здравствуйте. Например, наш клиент покупал такой.
Но вот подешевле, правда без переходников (они в принципе не нужны для понижения) у того же продавца. Продавец крупный, проблем быть не должно. Но тем не менее советую следить за таймером защиты и распаковывать/проверять работу адаптера на видео.
Спасибо огромное за помощь!
прошивал через jtag,версия понизилась до 12-ой,но не хочет прошиваться фиксом,для этого по новой заходил через коммандер принтер самостоятельно становится в принудительный режим,но не прошивается.
Попробуйте это.
Все делаю как описано, все идет как по скиринам на экране, НО все равно горять две красные лампочки, УЖЕ два принтера погубил.
В каком смысле погубили? Убить аппараты по этой инструкции вряд ли возможно. Раз вы пишите, что «горят две красные лампочки», значит всё не так плохо.
На успех понижения оказывают влияние множество факторов: сам программатор, кабели, пайка, ОС, драйверы. Даже обычная прошивка принтера не всегда проходит нормально, что уж говорить о понижении через программатор.
Большинство людей понижают всё-таки удачно по этой инструкции.
Спасибо огромное за гайд, очень помогло, но автор почему не пишите о том, что 2 первых вывода JTAG (VCC) нужно припаять к Debug, это очень важно, если не подать 3.3V процессор не определится в коммандере.
По этой инструкции плата с подключенным JTAG устанавливается обратно в принтер, соответственно и питание CPU берётся от БП принтера. Наши клиенты не подпаивали 1, 2 выводы шлейфа и всё нормально прошивалось :)
I guide you
But it did not resolve the problem
Again, thank you for your help
I got it. Unfortunately, we have not seen this error before. It’s necessary to learn how you connect JTAG to the printer and trying different solutions.
error: write memory error @ address 0x40700400. word access:memory access timeout
Пожалуйста, помогите мне в этом случае
спасибо
Здравствуйте. Попробуйте эти советы.
Здравствуйте. Подскажите каким програматаром для jtag лучше востанавливать, с COM, LPT ИЛИ USB интерфейсом.
Здравствуйте. На COM обычно паяют, когда нет возможности заказать готовый на USB, но если такой вариант есть, то мы рекомендуем конечно же USB.
А вы каким пользуйтесь?
Таким же, какой указан в статье: J-Link v8 :)
Здравствуйте!!! Товарищи, выручайте…, после ввода команды: «loadbin d:\boot.bin, 0x40700000» выбивает, якобы ошибка загрузки в память, тобишь не заливается boot.ini, что может быть и просьба отпишитесь по-подробнее, заранее благодарен… P.S. можно в скайп или icq отписаться(sstsupa или 401530064)
Здравствуйте. Напишите полную ошибку на английском. Подключение правильное? Изначально процессор определился? Не было других ошибок?
Процессор определился правильно, ошибок других не было…
Напишите полную ошибку на английском.
«Downloading file [d:\boot.bin]…Writing target memory failed.»
Вопрос решён: человек приобрёл программку PrinterJTAG, подал на плату питание от отдельного источника и дальше уже без проблем :)
Здравствуйте.
Подскажите, плз. В самом конце после всех операций и команды «g» перетаскиваю файл прошивки на usbprns2.exe. Не прошивается. Выводится «Downloading…Write Fail…Can’t print».
Спасибо
Здравствуйте. А какую прошивку загружаете? Имя файла напишите пожалуйста.
Пробовал все, что нашел:
ML2165_V1.01.01.12.hd
orig_ML2160_V1.01.01.11.hd
orig_ML2160_V1.01.01.12.hd
Если до этого у вас получалось всё также, как на скриншотах (без ошибок в смысле), то похоже, что JTAG тут ни при чём. Прошивка почему-то не хочет загружаться по USB. Можем посоветовать стандартный набор действий в подобных случаях: переустановить драйверы, заменить USB-кабель, а если есть возможность — попробовать прошить на другом ПК.
Спасибо за помощь. Прошил наконец-то)
Смотрел в терминале, все было нормально. Принтер ждал прошивку…
А залить удалось с другого ноута со свежеустановленными дровами.
Отлично, наши поздравления :) Да, иногда бывает, что аппарат никак не хочет прошиваться на одном ПК, а на другом процесс начинается сразу же.
Спасибо за Ваш ответ.
С JTAG проблем нет. Все, как на скринах, без ошибок. Ощущение, что принтер не переходит в режим отладки для загрузки прошивки после команды «g». Если перегрузить принтер, то в обычном режиме прошивка проходит, но версия остается старая. Буду пробовать…Отпишусь.
Странно…ну хорошо, если получится — отпишитесь пожалуйста :) Возможно, стоит подключить debug и посмотреть через гипертерминал, что там вообще происходит.
Здравствуйте, а возможно ли прошить SCX-3400 при помощи JTAG
Здравствуйте. Нет, нельзя. В SCX-3400 прошивка хранится не в процессоре, а в отдельном чипе SPI Flash, на программаторе можно прошить.
Или, если там не новая версия, а например неправильная прошивка с защитой от обновлений, то через debug-кабель прошивается без проблем обычно.
Добрый вечер! Пытаюсь наладить контакт с JTAG , а он не реагирует. В Commander
про SN ничего. Что может быть?
Здравствуйте. Шлейф родной использовали из комплекта? Подключение к плате проверили?
Мы написали вам на почту, просьба ответить и отправить лог.
Полагаю, что можно использовать вместо покупного программатора самодельный на 174HC144 через LPT интерфейс и использовать софт H-JTAG… Или нет?
Можно понизить через H-JTAG и самодельный адаптер WIGGLER (через LPT-интерфейс будет).
Правда, нужно знать, как подключать и какие команды вводить для понижения. У нас такой информации нет. Можем отправить только схему адаптера WIGGLER.
Ок, спасибо!
Благодарю и я пользователя Гоги! Мало того, что материал архиполезный, ну просто наиполезнейший! Так еще и ребята из Overchip суперские. Возникли проблемы при прошивке, так три часа со мной возились, не отказали, не отмахнулись и главное бескорыстно! Спасибо братцы, спасибо большое человеческое. Челу, который конкретно со мной возился, искал варианты, помогал отдельное спасибо, представиться не захотел… СПАСИБО дружище! В Саянске вам всегда рады. Удачи, процветания, новых находок.
Опишите, если не сложно возникшие проблемы, многим полезно будет. Спасибо
Проблема была в том, что использовать решили не родной 20-пиновый шлейф из комплекта, а шлейф от привода гибких дисков.
Вот либо из-за проводов в самом шлейфе, либо из-за неправильного подключения процессор принтера не определялся: «WARNING: CPU core not found». После использования шлейфа из комплекта (подготавливается по схеме из пункта 1) всё сразу определилось и больше проблем не было.
Мы добавили в «Частые проблемы при прошивке через JTAG и их решения» этот случай, может в будущем поможет кому-нибудь :)
Здравствуйте. На счет понижения 2160 понятно. А вот на счет других моделей???
Ведь нужно знать с какого адреса лить прошивку. Как можно узнать с кокого адреса заливать!? 1860, 1660, 1910 итд
Здравствуйте. К сожалению, у нас подобной информации нет, на форумах тоже не находили. Ведь JTAG наиболее популярен именно для понижения новых версий ML-2160, старые модели не так часто встречаются настолько убитыми, что нельзя восстановить прошивку например в принудительном режиме. Перечисленные вами модели есть в программке «Printer JTAG by Mo-Skin», но её стоимость отдельно — 3000 руб., зато с адресами заморачиваться не нужно, они уже должны быть прописаны в программке. Другой информации у нас нет :(