- 1.Сделать кабель-адаптер (или купить и доработать согласование уровней TTL 5в на 3.3в. Например кабель от моб. телефонов T191 и т.п). Полную схему не привожу. В инете есть схемы и даташит на MAX232N. Я использовал часть своего JDM-программатора (MAX232N) для PIC и AVR микроконтроллеров, с доработкой согласования уровней 5в на 3.3в.
- 2. Наличие у компьютера COM-порта или переходника USB to RS232. Если использовать готовый USB кабель, подходящий для этого, от мобильного телефона, то COM-порт и переходник не нужны, но доработка кабеля на согласование уровней 3.3в обязательно!
- 3. Вскрыть TRIMAX и подключить кабель к Serial интерфейсу (3-pin)
- 4. Подключить кабель к COM-порту компьютера. Включить внешний блок питания кабеля-адаптера, если такой есть.
- 1.Выполнить форматирование USB флешки на компьютере, в файловую систему FAT32 (FAT16 - работает меделенно и могут быть проблемы чтения файлов; NTFS - не поддерживается в данном случае). Затем в корень флешки необходимо скопировать файл, содержащий прошивку, имя файла может быть любое, возьмем стандартное - skw_flash_file.bin. Файл должен иметь размер - 8388608 байт. Соответствующий файл можно скачать здесь или использовать свой, ранее сохраненный дамп прошивки.
- 2. Вставить флешку в TRIMAX.
- - тип соединения - "Serial" (последовательный COM-порт)
- Последовательная линия - COM1
- скорость - 115200
- биты данных - 8
- стоп биты - 1
- чётность - нет
- управление потоком - нет
- Локальное эхо - ВКЛ
- Локальное редактирование строки - ВКЛ
После этого в программе PUTTY нажимается кнопка "Открыть" для открытия соединения.
- 1. Включить блок питания TRIMAX.
- 2. В окне PUTTY наблюдаем данные. При появлении текста:
BOOT_OK!LDR_OK
LZMA Decompression...ok
... и т.п.
начинаем нажимать, примерно один раз в секунду, клавишу ENTER в окне PUTTY. По окончании загрузки и появлении текста "<< MStar >>#" необходимо прекратить нажатие клавиши ENTER.
Полученные данные в окне PUTTY:Код: Выделить всё
BOOT_OK!LDR_OK LZMA Decompression...ok MDrv_PM_RtcGetCounter(CurrentCounter=0) Hello U-Boot U-Boot 1.1.6 (Sep 4 2012 - 05:33:06) Board: MSTAR KRNOUS (CPU Speed 552 MHz) DRAM: 128 X 0 MBytes U-Boot is running at DRAM 0x87600000 ###############BOARD CONFIGURATION##################### DEFAULT ENBALE L2-Cache FPU(DISABLE) ENABLE_DDR3_16BIT_MODE DDR_FREQUENCY(1600MHz) ###############BOARD CONFIGURATION##################### Module: USB FAT FLASH SPI LOGO ENV=SERIAL Flash is detected (0x0803, 0x01, 0x02, 0x16) MDrv_SERFLASH_GetInfo() u32AccessWidth = 1 u32TotalSize = 8388608 u32SecNum = 128 u32SecSize = 65536 In: serial Out: serial Err: serial MSVC00B000100100208768TH0000000T MDrv_PNL_Init u32PnlRiuBaseAddr = BF200000 MDrv_PNL_Init u32PMRiuBaseAddr = BF000000 DAC eTiming =6 HDMITx eTiming =7 HDMITx eTiming =7 boot_logo=>cmd: spi_rdc 0x80B2C000 0x1C0000 0x20000 offset 0x1C0000, size 0x20000 WARNING: it is better to set dram start addr aligned to 65536 !!! Flash is detected (0x0803, 0x01, 0x02, 0x16) initialization done! u32ReadBuffVirAddr = A0000000, u32IntBuffVirAddr = A0100000, u32OutBuffVirAddr = A0730000 verJPD_SetStatus >>>>>>>>>>> w:1280, h:720, p:1280 spi_rdc 0x80B00000 0x20000 0x1000 offset 0x20000, size 0x1000 WARNING: it is better to set total length aligned to 65536 !!! cmd spi_rdc 0x80B00000 0x20000 0x1000 success u32UbootInfoAddr: 0xE54DD K1_INFO_ADDR: 0xF0000 spi_rdc 0x80B00000 0xF0000 0x1000 offset 0xF0000, size 0x1000 WARNING: it is better to set total length aligned to 65536 !!! cmd spi_rdc 0x80B00000 0xF0000 0x1000 success u32LogoMagicFlag ERROR !! return GOP_BUFFER_ADDR GE_SetOnePixelMode Hit any key to stop autoboot: 0 << MStar >># << MStar >># << MStar >>#
- 3. Ввести в окне программы Putty, команду help и нажать Enter для получения списка команд консоли.
Код: Выделить всё
<< MStar >># help help ? - alias for 'help' base - print or set address offset bdinfo - print Board Info structure boot_logo - Logo display bootm - boot application image from memory cmp - memory compare coninfo - print console devices and information cp - memory copy cpmsbin - Copy ms bin file (Chakra) from nand to dram crc32 - checksum calculation cusid - check the image is release by the valid guys dcache - enable or disable data cache du - Disable UART env2flash - read environment parameter file and restore it to flash envbin - read out environment parameter and store it to usb disk erase - erase FLASH memory fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) fatwrite - write binary file to a dos filesystem flinfo - print FLASH memory information go - start application at address 'addr' help - print online help loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mstar - update kernal & root file system automatically by script file mtest - simple RAM test mw - memory write (fill) ustar - update kernal & root file system automatically by script file nm - memory modify (constant address) pnlinfo - set panel info and save to nand flahs printenv - print environment variables protect - enable or disable FLASH write protection reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage set_paneltype [type] - Set Mboot panel type and store the type value in env setenv - set environment variables spi_dma - SPI copy data from flash to DRAM by PIU DMA spi_ea - SPI erase all spi_eb - SPI erase block spi_gfo - SPI get flash info spi_gr - SPI get Chip Rev spi_id - SPI read ID spi_in - SPI initialization spi_r - SPI read commands spi_rb - SPI read buffer spi_rdc - SPI read code from SPI flash to DRAM spi_rs - SPI read status spi_w - SPI write commands spi_wb - SPI write buffer spi_wp - SPI write protect spi_wrc - SPI write code from DRAM to SPI flash sspi - SPI utility commands sysinfo - set system info and save to nand flahs usb - USB sub-system ustar - update kernal & root file system automatically by script file usbboot - boot from USB device ustar - update kernal & root file system automatically by script file version - print monitor version << MStar >>#
- 4. Ввести команду usb reset и нажать Enter
Код: Выделить всё
<< MStar >># usb reset usb reset (Re)start USB... Check USB port[0]: Host type:2 scanning bus for devices... 1 USB Device(s) found scanning bus for storage devices... bulk max packet size:200 usb_stor_Bulk_max_lun: 0 init_part begin init_part end find one storage Device 1 Storage Device(s) found
- 5. Ввести команду fatls usb 0:1 и нажать Enter
Код: Выделить всё
<< MStar >># fatls usb 0:1 fatls usb 0:1 do fat ls:argc:3, vendor:Kingston 8388608 skw_flash_file.bin 8388608 dump.bin 2 file(s), 0 dir(s)
- 6. Ввести команду fatload usb 0:1 0x80000000 skw_flash_file.bin и нажать Enter
Код: Выделить всё
<< MStar >># fatload usb 0:1 0x80000000 skw_flash_file.bin fatload usb 0:1 0x80000000 skw_flash_file.bin reading skw_flash_file.bin 8388608 bytes read
- 7. Ввести команду spi_wrc 0x80000000 0x0 0x800000 и нажать Enter
Код: Выделить всё
<< MStar >># spi_wrc 0x80000000 0x0 0x800000 spi_wrc 0x80000000 0x0 0x800000 offset 0x0, size 0x800000 MDrv_SERFLASH_GetInfo() u32AccessWidth = 1 u32TotalSize = 8388608 u32SecNum = 128 u32SecSize = 65536 Erasing... Writing... Verifying...OK !!!
- 8. Ввести команду reset и нажать Enter один раз. Теперь в окне Putty будет отображаться протокол обычной загрузки TRIMAX а не консоль восстановления.
- 9. Выключить питание TRIMAX. Отключить кабель от COM-порта
Чтобы второй раз не наступать на те же грабли, при прошивке устройств, не забывайте использовать UPS - источник безперебойного питания
Подключайте к UPS всё: компьютер, тюнер, блоки питания других устройств, которые используются при прошивке.