Редко но иногда просто необходимо использовать интерфейс отладки JTAG. В частности здесь рассмотрим вариант восстановление одного из наиболее распространенных спутниковых ресиверов на процессоре Ali 3329c – globo 4100cи его клонов.
В основном такое восстановление необходимо при сбое процесса прошивки или если зашилась неподходящая версия прошивки от другого спутникового ресивера или просто “бомба”. Хотя возможны и другие варианты с повреждением загрузчика в ПО ресивера.
Впрочем если уж вам понадобился этот способ восстановления спутникового ресивера, то надеюсь вы понимаете с чем надо столкнутся.
JTAG -отладочный интерфейс, позволяющий перепрограммировать микросхему не выпаивая ее.
Программирование ведется из LPT порта компьютера. В ноутбуках обычно его нет, да что там и в настольных компьютерах он редко теперь встречается.
Для JTAG можно приобрести специальное универсальное устройство, но и есть возможность изготовить его самому. В последнем случае вы вынуждены делать все на коротких проводках (меньше 20 см.).
ниже схема
Что бы все хорошо работало с LPT порта для Windows XP нужно устанавливать драйвер giveio, а для Windows 7 при установке GiveIO.sys нажать на установочный файл inst_giveio.exe и правой кнопкой мыши и выбрать запуск от имени администратора.
Прошивка, восстановление спутникового ресивера глобо 4100с JTAG
Подключаемся к 6 контактному разъему на плате.
Снимаем разъем Jumper (резистор или перемычку) и включаем ресивер в электрическую розетку. Это нужно, чтобы включить отладочный режим Debug для программирования микросхемы памяти.
Запускаем программу EJTAG-TT-1.0.6.12, в ней ставим птичку рядом с SPI и Fast AMD/SPI, затем жмем “connect” после чего должен появится такой лог соединения:
___________________________________________________
Выбран режим работы с процессорами Ali M332x CPU ID = 0000 C05288 Ali M332x найден IMPCODE = C05288 Версия EJTAG 1 или 2.0 EJTAG функции: R4k ASID_8 NoDMA MIPS32 Включаем доступ к записи памяти DMA ... Пропускаем Перевод процессора в Debug ... >Отладочный режим ОК!< ... Готово Инициализируем модуль PrAcc ... Готово Останавливаем Watchdog ... Пропускаем Инициализируем доступ к Flash (ALi) ... Готово RegData = 0x003F0004 Версия процессора Ali = 3327 Конфигурируем SDRAM (ALi) ... Готово -------- Определяем флешь -------- Flash Base = 0xAFC00000 Первые 16 байт флеши : 00E3 1000 0000 0000 0100 0000 434E 4352 Режим работы с SPI-флешь DevID = 0014; VendorID = 0001 SPI флешь определена : Размер флешь = 2097152 Готово
___________________________________________________
Стираем флеш память.
Затем записываем дамп прошивки “!opticum-new.bin” в память спутникового ресивера с помощью кнопки “Записать”, выбрав перед этим дамп прошивки.
Это достаточно долго так что есть вариант попроще и быстрее.
Записываем в память ресивера только 4 блока, чтобы восстановить загрузчик и работу COM порта, ну а после уже прошиваем обычным способом и нуль-модемным кабелем.
Записываем файлы в таком порядке и с таким смещением.
1. 0000
2. B0000
3. D0000
4. 130000
Первый файл – загрузчик – остальные для поддержания работы COM порта.
После завершения операции ставим (паяем) перемычку – Jumper на место и переводим ресивер в нормальное состояние.
Прошиваем его нуль-модемным кабелем.
Файлы, необходимые для прошивки 4100с через JTAG
1.Программа EJTAG-TT-1.0.6.12 для восстановления ресиверов на процессорах Ali M3329B/M3329C ejtag_tt_1.0.6.12
2.Дамп прошивки !opticum-new.bin для записи в память ресивера с помощью JTAG opticum-new
3.Четыре блока для записи в флеш память ресивера для экономии времени, чтобы потом прошить его стандартным способом For-3329C
4.Специальный драйвер giveio для корректной работы LPT порта giveio