Възстановяване на приемник на MStar след неуспешен фърмуер, цифрова телевизия

възстановяване

Възстановяване на приемника на MStar след неуспешен фърмуер

Някои се сблъскаха със ситуация, когато след актуализиране на фърмуера приставката беше заредена, но дистанционното управление спря да реагира или като цяло приставката спря вече наполовина при зареждане.

По правило това се случва, когато приставката има няколко хардуерни ревизии и потребителят не е прочел за коя конкретна ревизия е предназначен този или онзи изтеглен фърмуер.

Или се опитаха да мигат фърмуера на някой друг с надеждата да получат някои предимства за своя модел или например да се опитат да получат поддръжка за кодека AC-3 (Dolby Digital), без да знаят, че той се определя от конкретен процесор, инсталиран на дъската във фабриката. И ако процесорът първоначално не е имал платен лиценз AC-3, тогава никакъв фърмуер - нито от свързани, нито от модели на други хора - няма да помогне по този въпрос.

Нека направим резервация веднага: тук не се разглеждат случаите, когато приставката не се зарежда поради изсъхнали електролитни кондензатори, изгорели DC-DC преобразуватели или неизправност на самия чип с флаш памет. Тези въпроси се обсъждат в специализирани групи, например VKontakte: https://vk.com/remontdvbt2 Но трябва да отидете там с поне минимални познания и практически опит в ремонта на оборудване.

По-долу ще изброя 4 решения: първите два метода са подходящи за всички декодери и други два са само за декодери на процесори MStar, като единият е дори без отваряне и разходи.

Най-простата версия на проблема е, че приставката се зареди, но спря да реагира на дистанционното управление. Ние купуваме дистанционното управление на приставката, чийто фърмуер е бил подхлъзнат, или универсално дистанционно управление, например Huayu DVB-T2 + 2 за приставки: В изброените градове струва само 140Р. и това е много малка цена за вашия пропуск. Освен това дистанционното управление ще ви бъде полезно.

И съответно с помощта на това дистанционно управление ние флашваме префикса обратно към нашия роден фърмуер.

Най-универсалното и кардинално решение е да разглобите приставката, да отпоите флаш паметта, да флашнете дъмпа през програмиста, изтеглен някъде предварително, и след това да запоите микросхемата обратно:

Всичко това ще изисква поне поялник, програмист (дори най-простият SPIPGM с 4 резистора) и най-важното, поне минимален опит, в противен случай можете само да го влошите.

Нека ви напомня, че е лесно да получите дъмп за приемници на MStar от най-често срещания фабричен фърмуерusb_upgrade_all_flash.bin, като отрежете първите 4096 байта от него, а останалите могат да бъдат изковани до края, например 00.

Ако префиксът е на процесора Novatek, тогава той е подобен, но само първите 80 байта са отрязани от фърмуера.

И ако приставката е на ALi процесор, тогава неговият фърмуер (файл с разширение.abs ) сам по себе си е дъмп.

Dump file size = флаш размер, т.е. точно 4 мегабайта = 4194304 байта.

Въпреки това, за декодери, базирани на процесора MStar, има много по-елегантен начин за флаш без необходимост от “Solder > Програмиране > Запояване на "чипове с флаш памет - но просто чрез USB с помощта на конзола, свързана към UART на процесора.

Има две подложки на платките MStar, обозначени съответно TX и RX или SDA и SCL. Понякога те просто са обозначени като тестови точки, напр. TP8, TP10.

За MSD7816, TX и RX отиват на 95, 94 процесорни пина, MSD7802 - 60, 59, MSD7T01 - 36, 35.

Можете също да използвате програматора CH341A (от 130 r), като превключите джъмпера в режим “S ” - сериенпорт.

На компютъра стартирайте произволна терминална програма, например HyperTerminal или PuTTY, и се свържете към съответния COM порт на конвертора с параметри115200 8N1.

След като включите конзолата, незабавно натиснете произволен клавиш, за да влезете в конзолата за зареждане:

UART_115200 BIST0-OK _snPDMDrv_PM_RtcGetCounter(CurrentCounter=0)

Натиснете произволен клавиш, за да спрете автоматичното зареждане: 0

И тук можете да изпълнявате същите команди, както ние в менюто на приемника, актуализирайки фърмуера:

" MStar " # setenv usb_upgrade 1

" MStar "# setenv usb_upgrade_pathusb_upgrade_all_flash.bin

Обикновено файлът на USB фърмуера се нарича -usb_upgrade_all_flash.bin (но може да бъде всяко име).

На екрана всичко ще изглежда така, сякаш актуализираме през менюто на приемника.

Или друг вариант, малко по-сложен:

Ние също издаваме следните команди последователно:

"MStar" # usb нулиране

"MStar" # fatls usb 0:1

зареждане на подготвения файл на фърмуера без първите 4096 байта в RAM (0x80000000):

"MSStar" # fatload usb 0:1 0x80000000 bez_4096_bait.bin

запис от паметта на SPI флаш (0x0):

"mstar" # spi_wrc 0x80000000 0x0 0x400000

След изтеглянето е желателно да върнете фабричните настройки.

Че. тук вече не се нуждаете от точни умения за запояване и не се нуждаете от програмист, но все пак трябва да направите или закупите конзолен кабел за преобразуване.

Но, както се оказа, приставките на процесора MStar имат много по-прост и елегантен начин, който не изисква никакви финансови разходи или виртуозно поялник.

И в същото време дори не е необходимо да отваряте префикса.

Ако включите приемникав гнездото, тогава на конзолата можетезабележете, че системата осъществява достъп до USB порта:

Проверете USB порта[0]: . Waiting for Peripheral Connecting Fail… USB стартирането е неуспешно Грешка, не може да стартира част от ниско ниво

И тъй като няма флаш устройство, системата ще продължи нормалния процес на зареждане.

Но ако поставите флашка (дори празна) и включитев гнездо, тогаваГРЕШКА ПРИ НАДЗОР НА СОФТУЕРА ще мига за кратко на екрана:

mstar

И в конзолата ще видим следното (подчертано допълнително от мен):

не е намерен osd език env.четене на /flash.bin

** Не може да се прочете "/flash.bin" от usb 0:1 ** cmd fatload usb 0 80000000 /flash.bin 0x400000 неуспешно не е намерен osd език env. cmd setenv USBUpdateFail 1 успех cmd setenv USBUpdateFlag 0 успех

Префиксът търси файлflash.bin с размер 4 мегабайта (4194304 байта).

Но ако се опитате да го пъхнете в обичайния някъде обединен или подготвен дъмп, просто преименуван наflash.bin, тогава така или иначе нищо няма да се случи - надписътЗАРЕЖДАНЕ НА ДАННИ ... ще мига за кратко:

приемник
Но веднага завършва с грешка —ГРЕШКА ПРИ НАДЗОР НА СОФТУЕРА :

mstar
В конзолата обаче можете да видите:

не е намерен osd език env. четене /flash.bin

4194304 байта четене cmd fatload usb 0 80000000 /flash.bin 0x400000 успех u32UbootInfoAddr: 0x4D957 K1_INFO_ADDR: 0x80000 AppMagicFlag е правилен!!Грешка при проверка на CRC !! не е намерен osd език env.

Тези. тя не харесваше файлаflash.bin, защото нямаше CRC-32 контролна сума в края.

Необходимо е да се изчисли CRC-32 на първите 4194300 байта от дъмпа и след това да се премести самият CRC-32 в последните 4 байта вобратен ред.

Изчислението може да се извърши с помощта на една от програмите или в Интернет,избиране на опцията CRC-32B: натиснете бутонаИзбор на файл и посочете подготвения дъмп файл с първите 4194300 байта (т.е. без последните 4 байта!). След това по-долу натискаме бутонаПреобразуване на файл.

След зареждане на подготвения файл и изчисляване на CRC-32, резултатът ще изглежда така:

Сега задвижваме получените 4 байта B8 C5 12 6C в края наflash.bin в обратен ред: 6C 12 C5 B8.

Вкарваме флашката сflash.bin в префикса и включваме префиксав гнездото.

Резултат (маркирани най-важните):

не е намерен osd език env. четене /flash.bin

4194304 байта четене cmd fatload usb 0 80000000 /flash.bin 0x400000 успех u32UbootInfoAddr: 0x4D957 K1_INFO_ADDR: 0x80000 AppMagicFlag е правилен!!CRC проверката е успешна !! spi_wrc 0x80000000 0x00000 0x400000 0 офсет 0x0, размер 0x400000 Флаш е открит (0x0C00, 0xC8, 0x40, 0x16) инициализацията е готова! MDrv_SERFLASH_GetInfo() u32AccessWidth = 1 u32TotalSize = 4194304 u32SecNum = 64 u32SecSize = 65536Изтриване… Записване… Проверка…OK . cmd spi_wrc 0x80000000 0x00000 0x400000 успех не е намерен osd език env. spi_rdc 0x80B00000 0x23000 0x10000 офсет 0x23000, размер 0x10000 ПРЕДУПРЕЖДЕНИЕ: по-добре е да зададете флаш начален адрес, подравнен на 65536. cmd spi_rdc 0x80B00000 0x23000 0x10000 успех u32UbootInfoAddr: 0x4D957 K1_INFO_ADDR: 0x80000 spi_rdc 0x80B00000 0x80000 0x10000 отместване 0 x 80000, размер 0x10000 cmd spi_rdc 0x80B00000 0x80000 0x10000 успех setenv bootcmd ‘ spi_rdc 0x80B00000 0x8001C 0x2AFBE1; LzmaDec 0x80B00000 0x2AFBE1 0x80000180 0x81000000; отидете 0x80000224; cmd setenv bootcmd ‘ spi_rdc 0x80B00000 0x8001C 0x2AFBE1; LzmaDec 0x80B00000 0x2AFBE10x80000180 0x81000000; отидете 0x80000224; успех Запазване на среда в spiflash… Открит е флаш (0x0C00, 0xC8, 0x40, 0x16) Запишете addr=0x003E0000, size=0x00010000 Запишете addr=0x003F0000, size=0x00010000 cmd saveenv успехcmd setenv USBUpdateFail 0 успех cmd setenv USBUpdateFlag 0 успех Запазване на средата за spiflash...

Същият процес на екрана:

mstar

И само за сравнение - стандартен ъпдейт на приставката чрез USB флашка -НАДГРАЙДСОФТУЕР :

приемник

При нормален ъпгрейд името може да бъде не самоusb_upgrade_all_flash.bin, но по принцип всичко. Но с процедурата за възстановяване самоflash.bin със задължителен CRC-32 в края на файла.

Неслучайно по-горе изтъкнах - щепселв контакт, т.к. процесът на възстановяване започва само пристуден старт. От режим на готовностflash.bin не се проверява.

След като възстановяванетоприключи, изтрийте файла flash.bin от USB флаш устройството, така че приемникът да не мига всеки път, когато е включен в електрически контакт или има прекъсване на захранването.

И така, отново стъпка по стъпка:

  1. Намерете/изтеглете или създайте дъмп файл от фърмуера (4194304 байта).
  2. Изчислете CRC-32 на първите 4194300 байта от дъмпа. За да направите това, по-добре е временно да създадете отделен файл.
  3. Закарайте получените 4 байта от CRC-32 в края на дъмпа в обратен ред.
  4. Преименувайте дъмп файла наflash.bin и го копирайте на празно флаш устройство.
  5. Поставете флаш устройството в устройството.
  6. Включете приставката.
  7. Гледайте процеса на екрана.
  8. След възстановяване изтрийте файлаflash.bin от флашката!

Отбелязвам, че в някои фърмуери има възможност за аварийно възстановяванелипсва: когато е включена, конзолата не вижда никакви достъпи до файлове. Но, разбира се, все пак си струва да проверите този метод и след това да преминете към предишния.

Всеки решава за себе си кой начин да използва: за някой е по-лесно да купи универсално дистанционно управление, като си възвърне контрола над приставката, за някой притежаването на поялник и програмист не е проблем, но някой, без да прибягва до разходи, може да се опита да го възстанови само със силата на разума.

Във всеки случай, както винаги, си струва да си припомним още веднъж:

КАКВО ПРАВИТЕ С ВАШАТА КОНЗОЛА, ПРАВИТЕ НА ВАШ СОБСТВЕН РИСК!