Прошивка через JTAG: схема, распиновка, инструкция

Открываем для тебя дивный мир флеш-памяти

РубрикаСложность материалаВЫСОКАЯВремя на чтение18 минут

Содержание:

JTAG — это аббревиатура, которая расшифровывается как «Joint Test Action Group», в переводе это значит специализированный интерфейс для отладки и программирования. Данный микропроцессорный интерфейс служит, как понятно из названия, для отладки и мониторинга работы процессора.

Что касается спутников ресиверов, то JTAG дает возможность перепрошить микросхему flash-памяти, если нет возможность прошить ресивер стандартным способом, через кабель к компьютеру. Сегодня мы разберем прошивку через JTAG-интерфейс на примере спутникового ресивера Globo X90. Ранее мы уже научились прошивать его через кабель (см. предыдущую часть)

Зачем нужен JTAG

Самый большой плюс в JTAG — это возможность внутрисхемного программирования микросхем памяти ресиверов. С его помощью восстанавливать потерянное или испорченное содержимое флэш-памяти, при этом не выпаивая микросхем и без необходимости использования программаторов. То есть JTAG нужен именно тогда, когда неисправен загрузчик, что делает невозможным заливку ПО штатным способом.

Минусом является тот факт, что интерфейс JTAG, в большинстве своём, на всех ресиверах разный — единый стандарт существует, но каждый производитель его модифицирует по-своему. Globo X90 работает на процессоре ALI 3329С.

Прошивка через JTAG куда сложней обычной процедуры, поэтому к ней прибегают только в самом крайнем случае, когда ресивер совсем не подаёт признаков жизни: не загружается, не горит индикация, прошили другой прошивкой, либо после прошивки у вас только черный экран

Пошаговая прошивка

Для того, что бы запрограммировать флэш ресивера с помощью JTAG кроме собственно «пациента», т.е. ресивера, который нам необходимо «оживить», нам нужно иметь следующее:

1. Собрать интерфейс (переходник) от порта ресивера к порту ПК  

Для Globo X90, да и вообще для всех ресиверов, предпочтительным вариантом сборки является вариант на микросхеме 74HC244N (её еще называют даташит). Схема сборки:

Так выглядит собранная схема:

Со стороны ресивера это будет специальный разъём, он иногда даже так и подписан — JTAG

Второй «конец», который уходит в сторону ПК — это обычный LPT-кабель, который можно купить в любом компьютерном магазине. О том, как можно собрать всё это хозяйство:

2. Найти LPT-порт на ПК

Параллельный порт на компьютере сейчас можно увидеть только в музее, поэтому можно докупить специальный LPT-PCI контроллер, который позволяет подключить ваш JTAG к системному блоку ПК, у которого нет LPT порта (а это будет в 99,9% случаев).

3. Скачать программу для прошивки

Для реанимации ресиверов Globo и всех их клонов, а так же Евросатов/Евроскаев и их клонов на данных процессорах используется программа EJTAG_TT_1.0.6.17 (Я.Диск)

4. Установить драйвер, если у вас Windows XP

Если вы используете Windows XP, то необходимо установить драйвер giveio.sys (Я.Диск). Скопируйте файл драйвера GIVEIO.sys в папку C:\Windows\system32\drivers\ если, конечно, система у Вас установлена на диск С: и Вы не меняли пути установки Windows. Запустите файл install.reg. 

5. Скачиваем прошивку

Нужна сама прошивка, т.е. то, что мы будем заливать во Flash-память. Здесь есть два варианта

  1. Только загрузчик (лоадер) — файл с расширением .bin. это та часть содержимого флэш ресивера, которая обеспечивает загрузку в него ПО(софта) через порт. Если мы имеем случай, когда нам для заливки нужен только загрузчик(лоадер) ресивера, то поступаем одним из двух способов – или скачиваем готовый файл с загрузчиком, или делаем его самостоятельно. Для этого в HEX-редакторе отрезаем от файла ПО первые 65536 байт и сохраняем как отдельный файл *.bin. Это и есть загрузчик.
  2. Полный дамп. Дамп для JTAG, в случае, с ресиверами Globo — это обычный дамп, который используется для прошивки. Единственное, необходимо будет сменить расширение файла с *.abs на *.bin

6. Переводим ресивер в отладочный режим

Для прошивки также потребуется перевод ресивера в режим отладки, он же Debug Mode. Способы его перевода зависят от конкретной модели приставки, конкретно для Globo X90 cсоединить (замкнуть) перемычкой предназначенные для этого контактные площадки на плате, где стоит обозначение JP1. Так же бывает, что надписи JP1 на ресивере нет, тогда нужно выпаять резистор R32

Обратите внимание на точки подключения. Они должны совпадать с тем, как вы собрали переходник. В некоторых Globo-ресиверах бывает обратная последовательность — не перепутайте. На некоторых ресиверах можно сделать обычную перемычку для перевода в отладочный режим

Можно использовать перемычку с IDE-винчестеров

Так это будет выглядеть:


7. Настраиваем EJTAG и прошиваем

Настройки выставляем так же как на скриншоте:

Если EJTAG не увидит ресивер, попробуйте поменять тип флеш памяти в последнем столбике. Вообще, здесь можно пробовать менять любые параметры, чтобы ресивер определился

В некоторых мануалах пишут, что предварительно нужно стирать флеш — делать этого не стоит, ни поблочно, ни полностью, перед записью программа сама сотрёт столько памяти, сколько ей надо записать, она умеет это делать. Далее жмём «коннект». В окне программы должен побежать текст лога.

Если после нажатия кнопки «коннект», у вас выходит ошибка «флэш ID нету в *.ini –файле», то попробуйте поменять настройки в программе, как и советовали выше, нужно попробовать все вариации галочек и точек в настройках. Если и это не приведет к успеху, то тут стоит насторожиться — проверить питание процессора, напряжение с БП — есть вероятность того, что флеш-память уже «умерла», тогда никакой JTAG уже не поможет. Следующим шагом жмём «Записать» и в окне проводника выбираем нужный файл с дампом или загрузчиком (лоадером)

При необходимости, как мы и писали выше, EJTAG сотрёт самостоятельно нужный блок памяти и начнет запись.

Здесь есть небольшой нюанс — достаточно залить около 50-70% прошивки через JTAG (желательно, конечно, полностью), но если у вас оборвалась прошивка на этом этапе, то можно попробовать прошивать стандартно (через порт), т.к. дальше уже идут списки каналов, спутники и так далее, т.е. то, что вы зальете и обычный прошивкой.

8. Убираем перемычку, отключаем Debug Mode

Не забудьте в конце прошивки корректно завершить программу EJAG, отключить от сети ресивер и аккуратно отключить JTAG-интерфейс. Так же снять перемычку для входа в отладочный режим. Далее подключаем ресивер уже через ком-порт и заливаем в него софт обычным способом.

Ручной поиск транспондера у спутника

Если вы заливаете «голую» прошивку, то есть необходимость вбить вручную нужные вам транспондеры. У некоторых ресиверов есть функция ручного ввода транспондеров. Для этого

  1. Нажмите «Меню» на пульте
  2. Далее выберите «Установка»
  3. Следующий пункт «Настройка антенны и поиск каналов»
  4. Нажмите желтую кнопку на пульте (PVR) и попадаете в режим редактирования транспондеров.