Программатор J-Link v8 довольно специфическое устройство, которое вряд ли будет интересно широкому кругу читателей, однако оно является довольно таки добротно сделанным устройством, поэтому, кому интересно- добро пожаловать под кат
На новом месте жительства я устроился по старой специальности- в сервисный центр по ремонту оргтехники, «у здорового частника» ® так сказать… Техническое оснащение было далеко не идеальным, и вот наступил такой момент, когда бледный и практически седой от переживаний клиент принес лазерный принтер Samsung ML2160.
Со слов клиента выяснилось следующее: как известно, фирма Samsung оснащает свои картриджи чипами с криптозащитой, во избежание последующих повторных заправок. Поэтому, отработанный картридж блокируется и аппарат напрочь отказывается работать далее, мотивируя это тем, что ему хотелось бы новый картридж. А старый необходимо утилизировать.
Все бы ничего, но к сожалению, реалии нашей жизни таковы, что печатать надо, а покупать через каждые полторы тысячи копий картридж стоимостью в среднем четыре с половиной тысячи рублей, может позволить себе далеко не каждый. Но, в преддверии наступления Эры всеобщего благоденствия, продвинутый в плане реверсивного инженеринга народ изобретает все новые и новые пути обхода многочисленных и постоянно совершенствуемых защит Самсунга. Если в вкратце- микропрограммное обеспечение принтера или МФУ несколько модифицируется, после чего уровень тонера в картридже для аппарата всегда равен ста процентам.
Не буду углубляться в правовые аспекты данного усовершенствования, а продолжу по теме: Клиент, ужаснувшись суммой будущих затрат на печать, стал искать обходные пути, и один из сервисных центров, взялся осчастливить его, проделав эту самую процедуру модификации микроПО.
Однако, относительно недавно, в продажу поступили аппараты с обновленной прошивкой (она же firmware) и все прежние, сравнительно легкие пути модификации ПО, остались в прошлом. В том сервисном центре этого не учли, или не знаю, как там было, но на руки клиент получил, по сути- кирпич.
Компьютер его не видит, сам аппарат ни на какие действие не реагирует. Включается, делает попытку пройти инициализацию и впадает в фатал (фатальную ошибку). Из чего следует, что что-то все же в принтер было залито, но здоровья ему это не прибавило. Микропрошивка принтера находится непосредственно в самом процессоре ARM S4LJ162X01, поэтому варианты сдуть и залить дамп в память (типа 25 или 24СХХ, или на крайний случай 29) отпадали в связи с конструктивной особенностью аппарата.
На радость клиенту, на тот момент, была найдена схема подключения Jtag к данному принтеру. Что позволяло не только успешно проводить процедуру замены прошивки аппарата на более, так сказать, лояльную к перезаправкам, но и поднимать аппараты с залитым в процессор кулибиными гуано.
К несчастью, в нашем сервисном центре подобный программатор отсутствовал, поэтому, введя в курс начальство и получив добро на заказ устройства- я обнадежил клиента. и он согласился немножко подождать.
Программатор я выбрал у продавца с более-менее хорошими отзывами. А данный продавец еще и клялся, что этот программатор является оригинальным, проходит проверку серийника, что позволяет ему беспрепятственно обновлять прошивку, тем самым предполагая поддержку все большего количества микропроцессоров. Сайт производителя :https://segger.com/index.html
Дополнительная информация
Actel(ARM7 ARM9 architecture (Family)
A2F200M3F,A2F500M3G,COREMP7,Architecture (M1
Analog Devices(ARM7 ARM9 architecture (Family)
ADuC7019,ADuC7020,ADuC7021,ADuC7022,ADuC7023,ADuC7024,ADuC7025,ADuC7026,ADuC7027,ADuC7028,ADuC7030,ADuC7032,ADuC7033,ADuC7034,ADuC7036,ADuC7037,ADuC7038,ADuC7039,ADuC7060,ADuC7061,ADuC7062,ADuC7122,ADuC7128,ADuC7129,ADuC7229
The ARM(ARM7 ARM9 architecture (Family)
Architecture (M0,Architecture (M1),Architecture (M3
(ARM7 ARM9 architecture (Family)
AT91C140,AT91F40416,AT91F40816,AT91FR40162,AT91FR4042,AT91FR4081,AT91M40400,AT91M40800,AT91M40807,AT91M42800A,AT91M43300,AT91M55800A,AT91M63200,AT91R40008,AT91R40807,AT91RM3400,AT91RM9200,AT91SAM3S1A,AT91SAM3S1B,AT91SAM3S1C,AT91SAM3S2A,AT91SAM3S2B,AT91SAM3S2C,AT91SAM3S4A,AT91SAM3S4B,AT91SAM3S4C,AT91SAM3U1C,AT91SAM3U1E,AT91SAM3U2C,AT91SAM3U2E,AT91SAM3U4C,AT91SAM3U4E,AT91SAM7A1,AT91SAM7A2,AT91SAM7A3,AT91SAM7L128,AT91SAM7L64,AT91SAM7S128,AT91SAM7S16,AT91SAM7S161,AT91SAM7S256,AT91SAM7S32,AT91SAM7S321,AT91SAM7S512,AT91SAM7S64,AT91SAM7SE256,AT91SAM7SE32,AT91SAM7SE512,AT91SAM7X128,AT91SAM7X256,AT91SAM7X512,AT91SAM7XC128,AT91SAM7XC256,AT91SAM7XC512
AustriaMicroSystems(ARM7 ARM9 architecture (Family)
AS3525
.(ARM7 ARM9 architecture (Family)
CS740110 — IQZ,CS740120 — IQZ,CS740130 — IQZ
Ember(ARM7 ARM9 architecture (Family)
EM351,EM357
Energy (ARM7 ARM9 architecture (Family)
EFM32G200F16,EFM32G200F32,EFM32G200F64,EFM32G210F128,EFM32G230F128,EFM32G230F32,EFM32G230F64,EFM32G280F128,EFM32G280F32,EFM32G280F64,EFM32G290F128,EFM32G290F32,EFM32G290F64,EFM32G840F128,EFM32G840F32,EFM32G840F64,EFM32G880F128,EFM32G880F32,EFM32G880F64,EFM32G890F128,EFM32G890F32,EFM32G890F64
Semiconductor(ARM7 ARM9 architecture (Family)
MAC7101,MAC7104,MAC7105,MAC7106,MAC7111,MAC7112,MAC7114,MAC7115,MAC7116,MAC7121,MAC7122,MAC7124,MAC7125,MAC7126,MAC7131,MAC7134,MAC7135,MAC7136,MAC7141,MAC7142,MAC7144,MC9328MX21,MCIMX27,MCIMX27L
Luminary (ARM7 ARM9 architecture (Family)
LM3S101,LM3S102,LM3S1110,LM3S1133,LM3S1138,LM3S1150,LM3S1162,LM3S1165,LM3S1332,LM3S1435,LM3S1439,LM3S1512,LM3S1538,LM3S1601,LM3S1607,LM3S1608,LM3S1620,LM3S1625,LM3S1626,LM3S1627,LM3S1635,LM3S1637,LM3S1751,LM3S1776,LM3S1811,LM3S1816,LM3S1850,LM3S1911,LM3S1918,LM3S1937,LM3S1958,LM3S1960,LM3S1968,LM3S1J11,LM3S1J16,LM3S1N11,LM3S1N16,LM3S1W16,LM3S1Z16,LM3S2110,LM3S2139,LM3S2276,LM3S2410,LM3S2412,LM3S2432,LM3S2533,LM3S2601,LM3S2608,LM3S2616,LM3S2620,LM3S2637,LM3S2651,LM3S2671,LM3S2678,LM3S2730,LM3S2739,LM3S2776,LM3S2793,LM3S2911,LM3S2918,LM3S2939,LM3S2948,LM3S2950,LM3S2965,LM3S2B93,LM3S300,LM3S301,LM3S308,LM3S310,LM3S315,LM3S316,LM3S317,LM3S328,LM3S3651,LM3S3739,LM3S3748,LM3S3749,LM3S3759,LM3S3768,LM3S3826,LM3S3J26,LM3S3N26,LM3S3W26,LM3S3Z26,LM3S5632,LM3S5651,LM3S5652,LM3S5656,LM3S5662,LM3S5732,LM3S5737,LM3S5739,LM3S5747,LM3S5749,LM3S5752,LM3S5757,LM3S5762,LM3S5767,LM3S5768,LM3S5769,LM3S5791,LM3S5951,LM3S5956,LM3S5B91,LM3S5K31,LM3S5K36,LM3S5P31,LM3S5P36,LM3S5P51,LM3S5P56,LM3S5R31,LM3S5R36,LM3S5T36,LM3S5Y36,LM3S600,LM3S601,LM3S608,LM3S610,LM3S6100,LM3S611,LM3S6110,LM3S612,LM3S613,LM3S615,LM3S617,LM3S618,LM3S628,LM3S6420,LM3S6422,LM3S6432,LM3S6537,LM3S6610,LM3S6611,LM3S6618,LM3S6633,LM3S6637,LM3S6730,LM3S6753,LM3S6911,LM3S6918,LM3S6938,LM3S6950,LM3S6952,LM3S6965,LM3S800,LM3S801,LM3S808,LM3S811,LM3S812,LM3S815,LM3S817,LM3S818,LM3S828,LM3S8530,LM3S8538,LM3S8630,LM3S8730,LM3S8733,LM3S8738,LM3S8930,LM3S8933,LM3S8938,LM3S8962,LM3S8970,LM3S8971,LM3S9790,LM3S9792,LM3S9997,LM3S9B90,LM3S9B92,LM3S9B95,LM3S9B96,LM3S9L97
(ARM7 ARM9 architecture (Family)
NUC100LC1AN,NUC100LD1AN,NUC100LD2AN,NUC100LD3AN,NUC100LE3AN,NUC100RC1AN,NUC100RD1AN,NUC100RD2AN,NUC100RD3AN,NUC100RE3AN,NUC100VD2AN,NUC100VD3AN,NUC100VE3AN,NUC101LC1AN,NUC101LD2AN,NUC101LE3AN,NUC101RC1AN,NUC101RD2AN,NUC101RE3AN,NUC101VC1AN,NUC101VD2AN,NUC101VE3AN,NUC120LC1AN,NUC120LD1AN,NUC120LD2AN,NUC120LD3AN,NUC120LE3AN,NUC120RC1AN,NUC120RD1AN,NUC120RD2AN,NUC120RD3AN,NUC120RE3AN,NUC120VD2AN,NUC120VD3AN,NUC120VE3AN,NUC130LD2AN,NUC130LD3AN,NUC130LE3AN,NUC130RD2AN,NUC130RD3AN,NUC130RE3AN,NUC130VD2AN,NUC130VD3AN,NUC130VE3AN,NUC140LD2AN,NUC140LD3AN,NUC140LE3AN,NUC140RD2AN,NUC140RD3AN,NUC140RE3AN,NUC140VD2AN,NUC140VD3AN,NUC140VE3AN,W90N740,W90N745,W90P710
(founded by )(ARM7 ARM9 architecture (Family)
LH75400,LH75401,LH75410,LH75411,LH79520,LH79524,LH79525,LH7A400,soc,LPC1111x101,LPC1111x201,LPC1112x101,LPC1112x201,LPC1113x201,LPC1113x301,LPC1114x201,LPC1114x301,LPC11C12x301,LPC11C14x301,LPC1311,LPC1313,LPC1342,LPC1343,LPC1751,LPC1752,LPC1754,LPC1756,LPC1758,LPC1759,LPC1764,LPC1765,LPC1766,LPC1767,LPC1768,LPC1769,LPC2101,LPC2102,LPC2103,LPC2104,LPC210401,LPC2105,LPC210501,LPC2106,LPC210601,LPC2109,LPC210901,LPC2114,LPC211401,LPC2119,LPC211901,LPC2124,LPC212401,LPC2129,LPC212901,LPC2131,LPC213101,LPC2132,LPC213201,LPC2134,LPC213401,LPC2136,LPC213601,LPC2138,LPC213801,LPC2141,LPC2142,LPC2144,LPC2146,LPC2148,LPC2194,LPC219401,LPC2210,LPC221001,LPC2212,LPC221201,LPC2214,LPC221401,LPC2220,LPC2290,LPC229001,LPC2292,LPC229201,LPC2294,LPC229401,LPC2361,LPC2362,LPC2364,LPC2365,LPC2366,LPC2367,LPC2368,LPC2377,LPC2378,LPC2387,LPC2388,LPC2420,LPC2458,LPC2460,LPC2468,LPC2470,LPC2478,LPC2880,LPC2888,LPC2917,LPC291701,LPC2919,LPC291901,LPC2921,LPC2923,LPC2925,LPC2927,LPC2929,LPC2930,LPC2939,LPC3130,LPC3131,LPC3141,LPC3143,LPC3152,LPC3154,LPC3180,LPC3220,LPC3230,LPC3240,LPC3250,SJA2010
Semiconductor(ARM7 ARM9 architecture (Family)
ML674000,ML674001,ML674002,ML674003,ML675001,ML675002,ML675003,ML675011,ML67Q4050,ML67Q4051,ML67Q4060,ML67Q4061,ML67Q5250,ML67Q5260,ML696201,ML69Q6203
(ARM7 ARM9 architecture (Family)
BU1511KV2
(ARM7 ARM9 architecture (Family)
S3C2410A,S3C2440A,S3C44B0X,S3C4510B,S3F4A0KR,S3F4A1HR,S3F4A2FR, S3C6410
Socle Technology Corp.(ARM7 ARM9 architecture (Family)
PC7130,PC7230
STMicroelectronics(ARM7 ARM9 architecture (Family)
STA2051,STM32F100C4,STM32F100C6,STM32F100C8,STM32F100CB,STM32F100R4,STM32F100R6,STM32F100R8,STM32F100RB,STM32F100V8,STM32F100VB,STM32F101C4,STM32F101C6,STM32F101C8,STM32F101CB,STM32F101R4,STM32F101R6,STM32F101R8,STM32F101RB,STM32F101RC,STM32F101RD,STM32F101RE,STM32F101RF,STM32F101RG,STM32F101T4,STM32F101T6,STM32F101T8,STM32F101TB,STM32F101V8,STM32F101VB,STM32F101VB,STM32F101VC,STM32F101VD,STM32F101VE,STM32F101VF,STM32F101VG,STM32F101ZC,STM32F101ZD,STM32F101ZE,STM32F101ZF,STM32F101ZG,STM32F102C4,STM32F102C6,STM32F102C8,STM32F102CB,STM32F102R4,STM32F102R6,STM32F102R8,STM32F102RB,STM32F103C4,STM32F103C6,STM32F103C8,STM32F103CB,STM32F103R4,STM32F103R6,STM32F103R8,STM32F103RB,STM32F103RC,STM32F103RD,STM32F103RE,STM32F103RF,STM32F103RG,STM32F103T4,STM32F103T6,STM32F103T8,STM32F103TB,STM32F103V8,STM32F103VB,STM32F103VC,STM32F103VD,STM32F103VE,STM32F103VF,STM32F103VG,STM32F103ZC,STM32F103ZD,STM32F103ZE,STM32F103ZF,STM32F103ZG,STM32F105R8,STM32F105RB,STM32F105RC,STM32F105V8,STM32F105VB,STM32F105VC,STM32F107RB,STM32F107RC,STM32F107VB,STM32F107VC,STR710FZ1,STR710FZ2,STR711FR0,STR711FR1,STR711FR2,STR712FR0,STR712FR1,STR712FR2,STR715FR0,STR730FZ1,STR730FZ2,STR731FV0,STR731FV1,STR731FV2,STR735FZ1,STR735FZ2,STR736FV0,STR736FV1,STR750FL2,STR750FV0,STR750FV1,STR750FV2,STR751FR0,STR751FR1,STR751FR2,STR752FR0,STR752FR1,STR752FR2,STR755FR0,STR755FR1,STR755FR2,STR755FV0,STR755FV1,STR755FV2,STR910FAM32,STR910FAW32,STR910FAZ32,STR910FM32,STR910FW32,STR911FAM42,STR911FAM44,STR911FAM46,STR911FAM47,STR911FAW42,STR911FAW44,STR911FAW46,STR911FAW47,STR911FM42,STR911FM44,STR912FAW42,STR912FAW44,STR912FAW46,STR912FAW47,STR912FAZ42,STR912FAZ44,STR912FAZ46,STR912FAZ47,STR912FW42,STR912FW44
Texas Instruments(ARM7 ARM9 architecture (Family)
TMS470R1A128,TMS470R1A256,TMS470R1A288,TMS470R1A384,TMS470R1A64,TMS470R1B1M,TMS470R1B512,TMS470R1B768,TMS570LS20216
(ARM7 ARM9 architecture (Family)
TMPA900CMXBG,TMPA910CRAXBG,TMPM330FDFG,TMPM330FWFG,TMPM330FYFG,TMPM332FWUG,TMPM360F20FG,TMPM361F10FG,TMPM362F10FG,TMPM363F10FG,TMPM364F10FG,TMPM370FYDFG,TMPM370FYFG,TMPM380FYDFG,TMPM380FYFG,TMPM395FWAXBG
Zilog(ARM7 ARM9 architecture (Family)
ZA9L
Отправил продавец быстро- на следующий день после оплаты, посылка шла 15 дней, что очень порадовало и меня и клиента. Запаковано вся было в коробочку, которая вообще не пострадала в процессе доставки:
В комплекте было: сам программатор, переходник ( им пока воспользоваться не довелось), двадцатижильный кабель, USB кабель с ферритовым кольцом, диск с ПО (целых шесть версий программы J-Link ARM) и инструкцией на китайском.
Для того, чтобы не угробить принтер клиента насовсем, аккуратно разобрал программатор на предмет выявления соплей и прочих огрехов пайки. На диво- пайка оказалась очень аккуратной, но все же присутствовало небольшое количество флюса:
Убедившись, что все в порядке, подключил при помощи USB кабеля к компьютеру, предварительно установив с диска последнюю версию ПО- Jlink v.4.26. Драйвера стали без проблем, в диспетчере устройств программатор отобразился как «Jlink driver». Далее, запускаю программу, устройство тут же находится и в консоли появляется информация о программаторе, в том числе-его серийный номер:
И практически сразу, далее следует запрос на обновление прошивки — прошел таки значит, проверку на валидность! Обновление проходит без сбоев, и вот устройство готово к работе. Я же подготавливаю 20-ти жильный кабель к работе. Залуживаю нужные мне жилы и помечаю их в соответствии с распиновкой выводов. Для моей цели, мне необходимы были следующие семь выводов: VCC, 3 – TRST, 5 – TDI, 7 – TMS, 9 – TCLK(TCK), 13 – TDO, 20 – GND
Поскольку клиент практически стоял над душой, ожидая возвращения к жизни своего любимца, делал все быстро, впоследствии облагорожу кабель, а пока так. Далее аккуратно подпаиваюсь к нужным мне пятачкам на предварительно снятой плате форматирования, затем при помощи фена аккуратно приподнимаю нужную ножку процессора и вешаю на нее вывод TMS.
К сожалению, этот этап работы заснять не удалось- очень поджимало время, после двух недель ожидания клиент находился в сильном возбуждении и желал приступить к печати чуть ли сиюминутно. Закрепил я все жилы на плате с помощью каптоновой ленты (было под рукой). Затем аккуратно установил плату в аппарат, и с некоторым волнением, запустил программу. Ввел команду прерывания процессора- и к моему немалому облегчению (был таки червячок сомнения, что именно мне достался брак)- процессор был успешно обнаружен, информация о нем была выведена в консоль, и далее я мог приступать к возвращению принтера к жизни. Сначала заливается загрузчик, затем сама прошивка. Если кому интересно более подробно- информацию можно найти в инете. Далее я отпаиваю все выводы, собираю принтер- и счастливый клиент уносится печатать накопившуюся рутину…
Программатор отработал безупречно, не мотал мне нервы, и в целом, произвел впечатление добротного, хорошо сделанного устройства. В общей сложности программатор использовался мною уже шесть раз, и каждый раз все проходило безупречно.
свои функции программатор выполняет просто отлично, себя окупил при первом же использовании, Мне лично придраться не к чему, разве что 20ти жильный кабель мог бы быть немного длиннее. Опять таки, можно найти подешевле, но поскольку оплачивала фирма, я выбрал тот вариант, о котором уже были положительные отзывы. Спасибо всем за потраченное на прочтение время, если где допустил ошибки- поправьте пожалуйста.
P.S Пользуясь случаем, хочу выразить огромную благодарность человеку с ником gsg2012-1g, который очень помог мне в непростое для нашей семьи время, а также ресурсу Mysku.ru за очень вовремя присужденный приз.
Я не придираюсь, просто советую :)
Кстати, для редактирования не обязательно обзор прятать в черновики, можно просто редактировать и потом нажать — опубликовать ;)
ПС за обзор плюс.
До поры до времени, когда-нить после очередного обновления повиснет кирпичом :) К счастью, это не фатально — легко восстанавливается :)
У меня два таких программатора. У обоих болезнь — время от времени слетает прошивка. Но в инете есть инструкции по их оживлению, я эту процедуру уже раз 5 проводил, занимает 2-3 минуты :)
Да клон это, достаточно близкий, но клон :) Хотя это не мешает ему работать, сам я уже не одну тысячу контроллеров прошил им :)
Но обновлять софт без необходимости не советую. Если появится необходимость прошить контроллер, который не поддерживается в текущей версии, но есть в более свежей — тогда можно рискнуть, а иначе просто нет смысла рисковать получить неработающий девайс и софт, который потом заново переустанавливать, вычищая все хвосты от предыдущего :)
Хотя я не уверен насчет TL866 — если он не умеет работать по JTAG, тогда у них и вообще нет ничего общего :)
А за обзор все равно + :)
И народ сейчас усиленно отмечает или продолжает отмечать или отходит — спросить не у кого, все не в сети…
И еще — раз принтер все таки не полностью кирпич, что то все таки шевелится — принудительный режим не пробовали?
Возможно, потребуется при этом чип оригинальный и с незаконченным ресурсом, но это тоже не на всех — на некоторых обходился.
Сейчас ответил мне товарищ: действительно, 2160 по дебагу не шьется.
А жаль… :)
Сам знаю, что есть случаи, что без JTAG ничего не сделаешь, но пока Бог миловал — проскакивало это мимо меня, справлялся малой кровью…
Принтеров я прошил немного, меньше сотни, из проблемных — большая часть прошивалась через принудительный режим (где он есть), меньшая — через дебаг, но у меня статистика мелкая, так что на нее ориентироваться не стоит.
и обновляется без проблем
и несмотря на то, что прошло больше чем полгода, рейтинг у него 59.
или пробовать с lpt jtag прошить?
достался закирпиченный роутер, по uart молчит, хочу попробовать по jtag оживить)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.