Изготовление устройства для соединения JTAG-интерфейса
ресивера BigSat BS-S 501 Xtra с LPT-портом компьютера


    Данное описание было создано из десятков разрозненных кусочков информации на различных форумах, таких как forum.tele-sat.ru и monitor.net.ru. Вся представленная здесь информация по отдельности - есть в очень многих местах, но когда появляется надобность в том, чтобы собрать джтаг и перешить ресивер на данных процессорах, постоянно сталкиваешься с проблемой: а что и как? Всё разрозненно, пока вспомнишь или найдёшь нужное, пройдёт много времени. Вот как раз для решения такой ситуации я и сделал данное описание. Теперь оно появится, будучи скопированным без единого упоминания авторства, на море сайтов, как это произошло с другими страницами данного сайта. Те, кто копирует - не забывайте, вы становитесь обязаны мне по жизни.
    Представленная ниже схема предназначена для подключения к любым ресиверам на процессорах ALi M3329B/3329C. Для сборки схемы понадобятся следующие компоненты:

Принципиальная схема устройства и распиновка разъёма JTAG на плате ресивера:

(нарисовано в Paint'е :) )


    Собирается всё в соответствии со схемой. Последовательность выводов разъёма JTAG должна соответствовать представленной здесь схеме, т.к. если смотреть на надписи рядом с этим разъёмом на самой плате, то, на некоторых они подписаны в ошибочной последовательности. В случае отсутствия надписей на плате, первый вывод разъёма JTAG выделяется белым цветом, он является землёй (GND). Длина "косички" должна быть как можно меньшей, то есть, 5-10 см. Вывод на +3,3В подключается к разъёму БП ресивера с соответствующим напряжением.
    На приведённой фотографии красным обозначены: сам разъём JTAG и перемычка JP1.

    Снятием перемычки JP1 процессор ресивера переводится в режим Debug, что и необходимо для программирования через JTAG. Устанавливать её обратно можно только после окончания программирования и отключения питания ресивера. Со снятой перемычкой ресивер загружаться в нормальном режиме не будет!

Внимание! Все подключения ради сохранности ресивера и LPT-порта компьютера производить
при отключенном из розетки питании ресивера!
При самой перешивке включать ресивер только в ту же розетку, куда включен и компьютер!



Описание, как записать в ресивер загрузчик через интерфейс JTAG


    Используется программа EJTAG_TT версии 1.0.6.14 или более новая. Для работы программы требуется присутствие в NT-системе драйвера прямого доступа к портам, например giveio.sys.
    Запускаем её и выставляем необходимые параметры (обведены красным):

    Конкретно эти настройки делаются для ресивера BigSat-501, а если вы имеете другой ресивер, то, соответственно, выбираете нужные для него настройки (тип флэшки и режим её работы).
    Далее, включаем питание ресивера, не забыв перед этим перевести его процессор в режим Debug снятием перемычки JP1, нажимаем кнопку "Коннект" и, если схема собрана и подключена правильно, получаем следующую картину:

    В строке "Первые 16 байт флеши" может быть что угодно, зависит это от того, что в ресивер последний раз перед его смертью зашили. :)
    Далее, нажимаем кнопочку "Стереть флешь" и, немного подождав, лицезреем надпись о её успешном стирании. После этого требуется записать во флэшку рабочий загрузчик. Но, кроме него, необходимо записать и ещё несколько файлов с данными, т.к. это является особенностью прошивок ресиверов на процессоре ALi 3329C. Записав один только загрузчик, ресивер не будет загружаться и не даст прошить себя через COM-порт. Для этого: скачиваем архив с загрузчиками для ресиверов на процессорах ALi, распаковываем его, заходим в каталог ALi3329C и видим в нём четыре файла:

000000.bin
0B0000.bin
0D0000.bin
130000.bin

    Имя каждого файла соответствует смещению во флэшке, куда его надо записать. Таким образом, выставляем в программе адрес смещения (длину менять не надо, т.к при записи она не имеет значения), нажимаем кнопку "Записать" и в открывшемся окне выбираем соответствующий файл.

    Дожидаемся окончания записи, а после этого выставляем следующее смещение и записываем по нему следующий файл. И так все четыре.

    После окончания записи всех блоков - выключаем питание ресивера, отключаем JTAG, ставим перемычку на место, включаем и, если всё в порядке - видим, что загорается красный светодиод, дважды мигнув зелёным. К сожалению, у 501-го ресивера нет цифрового табло, а на других таких же ресиверах на процессорах ALi на нём можно увидеть появившуюся надпись ASH.
    Теперь ресивер можно смело перешивать как обычно через COM-порт, он прошьётся и будет работать!

    Как уже упоминалось выше, данная схема подходит и для перешивки ресиверов на процессорах ALi 3329B, например, тех же BigSat 6500Lux. У них плата несколько отличается - и процессор сам по себе размером больше в два раза, и разъём JTAG в другом месте и не всегда подписан и, что самое важное, нет перемычки для перевода процессора в режим Debug.

    Так вот, для того, чтобы перевести его в этот режим, надо подключить 195-й вывод процессора через резистор 3 КОм к питанию (+3,3В). Чтобы его долго не искать - он идёт на верхний вывод резистора R23 (если смотреть на плату, когда скарты вверху, а разъём передней панельки внизу), расположенный рядом с оперативной памятью:

    То есть, просто подпаиваем к R23 ножку 3 КОм резистора, а вторую соединяем с питанием. В случае, если имеется плата, на которой разъём JTAG вообще отсутствует, то вот список выводов процессора, идущих на него:
49 - ТRST
50 - TDI
51 - TDO (через резистор 33 Ом)
52 - TMS
53 - TCK
    Ну и последнее отличие: при прошивке через JTAG, чтобы потом можно было перешить ресивер через COM-порт, достаточно прошить только файл с загрузчиком.
Удачи в ремонте! :)

JeWell