JTAG (сокращенно Joint Test Action Group - специализированный интерфейс для отладки и программирования ,стандарт IEEE 1149.1 ) – это отладочный интерфейс, предусмотренный производителями электроники в первую очередь для своих сервис-центров. Используя его можно получить доступ ко всем устройствам аппарата, опросить их, считать данные, записать и т.п. и т.д. Но это нам не сильно интересно, наиболее интересным, ценным и единственным свойством этого интерфейса, которое мы используем, является возможность внутрисхемного программирования микросхем памяти ресиверов. Т.е. мы можем с помощью этого интерфейса восстанавливать потерянное или испорченное содержимое флэш-памяти спутниковых ресиверов не выпаивая микросхем и без необходимости использования программаторов.
Для чего это нужно.
Появляется эта необходимость в тех случаях, когда в ресивере отсутствует возможность загрузки в него программного обеспечения через последовательный порт стандартным способом. Причин много, начиная от того, что во время смены ПО может просто хотя бы кратковременно пропасть электричество в сети, может зависнуть компьютер и заканчивая тем, что можно просто по ошибке а во многих случаях и по незнанию залить в ресивер софт, не предназначенный для данной модели. Вот тогда и приходиться либо выпаивать микросхему памяти и восстанавливать её содержимое на программаторе или же использовать отладочный интерфейс. Естественно, что для первого варианта восстановления нужно иметь программатор, желательно универсальный, потому что в ресиверах даже одной марки и модели может быть использовано несколько типов микросхем, для каждой из которых нужен свой программатор. Даже в мастерских, не во всех есть такое удовольствие, да и процедура просто выпаивания микросхемы, тем более с условием, что она при этом не должна быть повреждена и, нужно не повредить печатную плату, требует не любительских навыков, опыта и некоторого количества оборудования, опять таки не совсем дешёвого и не у всех имеющегося. И вот здесь на выручку приходит отладочный интерфейс – JTAG. Он универсален и, как отмечено выше, соответствует единому стандарту для всех, в данном случае, ресиверов. С его помощью мы может произвести программирование микросхемы флэш-памяти ресивера не выпаивая её.
Что для этого нужно.
Для того, что бы запрограммировать флэш ресивера с помощью JTAG кроме собственно «пациента», т.е. ресивера, который нам необходимо «оживить» нам нужно иметь следующее:
1.Интерфейс, т.е. простыми словами переходник, через который мы будем подключать ресивер к порту компьютера.
2.Компьютер с параллельным портом(LPT), наличие параллельного порта обязательно, поскольку наиболее распространённые интерфейсы и программы работают через этот порт.
3.Программа EJTAG TT 1.0.6.14 , с помощью которой мы будем производить данную процедуру.
4.Если на компьютере ОС Windows XP, то ещё и драйвер giveio.sys .
5.То, что мы будем записывать во флэш. Это может быть или полный дамп флэш или только загрузчик тюнера(лоадер), подробней – далее.
6.Шнур LPT, которым будет соединён интерфейс с компьютером.
7.Ну и самое главное – желание и необходимые знания. С желанием я не помогу, а со знаниями постараюсь.
Где всё это взять.
1.Либо купить готовый, либо самому собрать. Первый случай пропускаю, о втором напишу.
2.Компьютер уже есть у того, кто это читает, а вот параллельный порт не знаю. Если мамка без него, то хуже, оставляю эту проблему каждому на своё усмотрение. Можно попользоваться чужим компьютером с портом, можно мамку поменять, можно купить порт на PCI шине. Впрочем, здесь разговор не об этой проблеме.
3.Программа. Для реанимации ресиверов Глобо и всех их клонов а так же Евросатов/Евроскаев и их клонов на данных процессорах я использую EJTAG TT 1.0.6.14.
4.Запускаем файл inst giveio.exe.
5.Если нам нужен полный дамп флэш ресивера – искать его не надо, потому что файл ПО ресиверов Глобо и Евросат и есть дампом флэш. Для Глобо надо только сменить расширение файла с *.abs на *.bin, а ПО Евросатов и так имеет это расширение. Если мы имеем случай, когда нам для заливки нужен только загрузчик(лоадер) ресивера, то поступаем одним из двух способов – или скачиваем готовый файл с загрузчиком, или делаем его самостоятельно. Для этого в HEX-редакторе отрезаем от файла ПО первые 65536 байт и сохраняем как отдельный файл *.bin. Это и есть загрузчик.
6.Шнур можно купить в любом компьютерном магазине.
7.Желание у того, кто дочитал до этой строки, видимо есть, так что пора давать обещанные знания.
Шаг первый.
Первое, что нужно – это собрать схему. В Интернете распространены два варианта схемы интерфейса. Первый вариант самый примитивный, на резисторах. Вот его схема:
Единственным его преимуществом является простота. И именно из-за простоты и своей примитивности у него есть недостатки. Во-первых, длина соединения через такую схему не должна превышать нескольких сантиметров, очень желательно не более трёх-четырёх. Иначе большая вероятность сбоев и ошибок при работе. Во-вторых, попадаются некоторые тюнера, с которыми вообще невозможно ничего сделать при таком подключении. В лучшем случае кое-каких результатов можно добиться тщательно подбирая сопротивления резисторов. Можно пробовать если нужно восстановить единственный свой тюнер. Я пробовал такой вариант схемы и несколько тюнеров восстановил, но не всегда чётко определялся процессор и были ошибки записи, из-за чего приходилось повторять всё по несколько раз. Несколько тюнеров при таком варианте мною были просто списаны, поскольку, не смотря на все старания коннекта с программой не было и я думал что вышел из строя процессор. В последствии эти тюнера были успешно восстановлены с использованием интерфейса на микросхеме. О нём речь дальше. Вот один из предлагаемых в интернете вариантов схем интерфейса на микросхеме и рисунок печатной платы для него:
Данная схема не имеет недостатков предыдущей, поэтому с ней нет проблем, присущих первой схеме.
Питание на схему подаётся от ресивера, к которому она подключается. В использовании внешнего источника питания для схемы нет необходимости по двум причинам. Во-первых, потребляемый ток очень мал и не создаёт дополнительной нагрузки на блок питания ресивера, во-вторых, питание от того же источника, что и процессор с флэш-памятью улучшает согласование логических уровней. В Интернете я встречал такую же схему, но отличающуюся отсутствием резисторов между шиной 3,3 вольт и выводами 2, 4, 6 микросхемы. Не считаю такое упрощение нужным, так как стоимость трёх резисторов не настолько велика, насколько снижается надёжность работы устройства.
Именно этой схемой я пользуюсь и именно с ней были успешно восстановлены тюнера, которые просто не определялись со схемой на резисторах.
Когда схема собрана, нас ждёт
Шаг второй.
Для работы с ресиверами на процессорах Ali M3329B/M3329C нужна программа EJTAG TT 1.0.6.14. Программа не требует инсталляции, достаточно распаковать архив в папку в удобном месте на компьютере и можно её запускать. Но, если операционная система Windows XP, то для работы нужно ещё установить драйвер. Для этого запускаем файл inst giveio.exe и после его выполнения перегружаем компьютер. В дальнейшем драйвер giveio.sys будет запускаться при запуске ОС.
Программа есть, драйвер установлен, следующим будет
Шаг третий.
Подготавливаем то, что предстоит записывать во флэш. В любом случае, если не производилась замена микросхемы флэш-памяти, стоит начать с записи загрузчика ресивера. Поэтому его и готовим. Если он скачан из Интернета и упакован в архив, то распаковываем его в удобное место на жёстком диске, можно и в ту же папку, что и программа. Если такового не найдётся, то можно его сделать самостоятельно. Для этого файл ПО(прошивки, софта) тюнера открываем в HEX-редакторе, я пользуюсь для этого программой WinHex , выделяем блок с начальным и конечным адресами соответственно 0000 – FFFF и сохраняем этот блок в новый файл, присваиваем ему имя на свой вкус и расширение *.bin. Файл должен получиться размером 65536 байт. Это и есть загрузчик или иначе лоадер тюнера. Если в тюнере менялась микросхема флэш, то понадобится заливать полный дамп. Так же полный дамп понадобится если заливка загрузчика не дала нужного результата. Для удобства в ту же папку ложим и полный дамп - для евросатов/евроскаев просто копируем файл софта, можно даже и выкачанный из исправного ресивера, вместе с настройками и ключами, тогда после реанимации тюнер получится уже полностью настроенным, для глобо – поступаем точно так же, но кроме этого меняем расширение файла с *.abs на *.bin.
Шаг четвёртый.
Подключение к тюнеру и перевод его в отладочный режим(Debug mode).
Кроме того, что нам надо подключить через уже имеющийся интерфейс тюнер к компьютеру, нужно ещё перевести тюнер в режим отладки, иначе его называют на английском языке Debug mode. На разных ресиверах это производится по разному. Для ресиверов Евросат/Евроскай на обеих типах процессоров необходимо соединить перемычкой предназначенные для этого контактные площадки на плате. Эти точки обведены на рисунках красным цветом. В ресиверах на процессоре 3329В возле этих точек есть надпись CPU PROBE EN, в ресиверах на процессоре 3329С стоит обозначение JP1.
Несколько иначе переводятся в отладочный режим ресиверы Глобо. Для Глобо 7010А и клонов(3329В) для этого рекомендуется отпаять резистор R36 и припаять его в позицию R35. На практике используется другой способ – надо соединить точку соединения этих резисторов с источником напряжения 3,3 вольта через резистор сопротивлением 3,3 кОм. Подчеркну, что на плате ресивера установлен только R36, а R35 нет, есть только место для его установки, и устанавливать его не надо.
В Глобо/оптикум 4100С и их клонах(3329С) для перевода в отладочный режим нужно снять джампер, отмеченный на плате позицией JP1.
Точки подключения интерфейса на рисунках обведены синим цветом. Последовательность назначения точек во всех моделях одинакова и в точности соответствует последовательности, указанной на схемах переходников. Однако если в Евросатах/Евроскаях сложности не возникает по причине того, что точки подписаны на плате тюнера, то в большинстве Глобо 7010А и клонов ничего не подписано. А в Глобо/Оптикум 4100С и клонах я неоднократно встречал надписи, сделанные в обратной последовательности, т.е. ошибочные. Здесь выход очень прост – достаточно определить точку GND, т.е. точку, соединённую с общим проводом схемы и от неё вести отсчёт и ошибка будет исключена. Сделать это можно либо просто визуально, внимательно осмотрев плату, либо прозвонить прибором.
Теперь ресивер подключен к компьютеру, произведены действия, необходимые для включения отладочного режима, подготовлены программа и дамп, драйвер установлен и запущен.
Шаг пятый.
Включаем ресивер в сеть и запускаем EJTAG TT 1.0.6.14. Видим вот такое окно программы.
Для начала смотрим настройки. Слева находится окошко с адресом параллельного порта. Изменять надо если в компьютере он имеет отличный от устанавливаемого по умолчанию. Ниже указан базовый адрес ресивера. Не трогаем, должен быть как на рисунке. Второй и третий столбцы так же не трогаем. В четвёртом столбце нужно выбрать тип флэши. Что где стоит - останавливаться не буду, кто не знает – пробуйте всё по очереди. Что бы быстро писать флэшку ставим галочку напротив «Fast AMD/SPI». Далее жмём «коннект». В окне программы должен побежать текст лога. Для примера приведу скриншоты, сделанные при записи загрузчика в тюнер Евросат 3023 (3329В), в который было залито ПО от Евросата 3023 Супер (3329С).
Если после нажатия кнопки «коннект» программа сообщает, что флэш ID нету в *.ini –файле, то надо правильно выставить тип флэши в правом столбце программы. В данном случае в тюнере установлена флэш SST 39VF1681, установки для неё видны на рисунке. Выше я уже написал, что можно просто попробовать наугад перебрать разные комбинации «точек» и «галочек», нажимая после каждого раза «коннект» и наблюдая за логом. Не буду вдаваться здесь в подробности как правильно определить, что надо установить, поверьте, что перепробовать разные комбинации и попасть на правильную будет гораздо быстрее, чем разбираться с теорией и вникать во все тонкости, конечно, это в том случае, если вы восстанавливаете свой единственный тюнер или занимаетесь этой процедурой очень редко. Ну а если вы занимаетесь этим регулярно, то я думаю сами знаете что и как, да и зачем вам это вообще читать, вы и так сами всё знаете и умеете.
Итак, флэшка успешно определилась, движемся далее. Хочу строго-настрого предупредить – ни в коем случае не надо стирать флэшку, ни поблочно, ни, тем более, полностью!!! Потому что потом в неё придётся писать полный дамп, что иногда занимает очень много времени. Да и вообще, не надо ничего стирать, перед записью программа сама сотрёт столько памяти, сколько ей надо записать, она умеет это делать. Если же стереть флэш полностью, а записать только лоадер, то это не даст желаемого результата, потому что не будет работать ком-порт тюнера и всё равно придётся писать полный дамп. Или же заполнять три определённых области памяти, останавливаться не буду на этом, потому как здесь начнут возникать вопросы с правильностью выбора смещения и длины, да и времени это занимает не сильно меньше, чем запись полного дампа. И в самом деле, гораздо проще запустить полный дамп и пойти чем ни будь полезным заняться, чем сидеть и дежурить возле компьютера в ожидании, когда запишется очередной блок, что бы запустить следующий, и так аж три раза.
Следующим шагом жмём «Записать» и в окне проводника выбираем нужный файл, в случае данного примера загрузчик для Евросат 3023 (3329В).
В окне программы видим, что она сама стёрла нужный блок и приступила к записи. В самом низу окна наблюдаем прогресс выполнения в процентах. По окончании имеем вот такой вид:
Последний шаг.
Теперь можно закрыть программу, отключить от сети ресивер и отключить от него jtag-интерфейс, так же надо не забыть вывести его из отладочного режима, в зависимости от тюнера снять или установить на место джампер или перемычку. Далее подключаем ресивер уже через ком-порт и заливаем в него софт обычным способом.
Jtag для тюнеров Globo на процессорах Ali M3329B/M3329C
http://satsis.info/forum/post/45220.html