Приучаем другой пульт к DVD плееру на чипе MT13xx
[l] В большинстве DVD плееров "китайского” производства используется протокол IR – NEC (подробнее - Описание протокола NEC ) , но некоторые брэнды могут использовать модифицированный протокол NEC или свой стандарт протокола. Вот к примеру брэнд LG в своих DVD плеерах использует свою модификацию протокола NEC – Описание протокола NEC-LG и уже к плеерам LG обычный пульт с обычным протоколам NEC не подойдет. Как мы уже знаем такие замечательные программы как MTK-Tool ( читает и пишет флэш память ) и MTKReMaker (показывает нам блоки из которых состоит прошивка и позволяет сохранять и вставлять измененные блоки) по работе с прошивками для чипов MTK[/l][l]Для работы еще нам понадобится такие программы как - MTKRemote , RCExplorer, WinHex [/l] Расскажу все на конкретном примере. Принес знакомый домашний кинотеатр HYNDAI H-HT5108 с неисправным пультом, пульт отремонтировать не получилось ( капля внутри умерла ) , можно было купить такой же пульт, но решил приучить плеер к пульту который был у меня в наличии - ВВК модель пульта: RC019-01R ( пульт обязан иметь стандартный протокол NEC ) и заодно рассказать Вам все. Первым делом нам нужно узнать код адреса , коды кнопок нашего пульта RC019-01R , для этого качаем программу RCExplorer - перейти на сайт программы и собираем приемник ИК ( на RCExplorer я остановился, так-так для чтения кодов достаточно и бесплатной версии ) . Запускаем её , нажимаем на кнопку Enable Record и нажимаем кнопку на пульте ( направив пульт на фотоприемник ) . Программа нам покажет посылку –
Код адреса устройства, передаваемый нашим пультом – 0xB649 , код кнопки, которую мы нажали – 0x1A . !!! Хочу чуть остановится на адресе устройства в программе RCExplorer . Если посмотреть на импульсы кода адреса ( 2 байта по 8 бит ) и посчитаем, то у нас получается код 0x49B6 ( начало байта считаем с младшего бита каждого , так как - Описание протокола NEC ) и так правильно будет, но программа нам показывает 0xB649 и это не правильно , программа не делит адрес на два байта , а показывает все одним по 16 бит, вот и считает она начало с младшего бита шестнадцатиразрядного значения, а это по моемому не правильно. Так что имейте в виду, если программа RCExplorer показала код адреса 0xFF00 или 0xF708, то правильнее будет представить в виде – 0x00FF или 0x08F7 И составляем таблицу каждой кнопки , вот что получилось у меня – Коды команд пульта BBK RC019-01R Теперь читаем прошивку из нашего DVD плеера, открываем прошивку с помощью MTKReMaker и находим блок отвечающий за дистанционное управление – RC_Remote Tab
Разберем чуть подробнее этот блок – 00147Ah: 00FB 0102 0304 0506 001482h: 0708 092E 0A00 5B5C 00148Ah: 11FF 0D10 0E0F 2261 001492h: 2829 2B68 5D5F 7252 00149Ah: 333A 1516 191A 4F50 0014A2h: FFFF 6B4E 6C46 4151 0014AAh: 1720 422C 1D3D FFFF 0014B2h: FFFF FFFF FFFF FFFF
0014BAh: FFFF Самое первое значение - 00FB это ни что иное как адрес устройства, а все остальное это коды команд ( функции ) выполнения DVD плеера, а адрес в котором расположен данный код ни что иное как код кнопки посылаемый ПДУ. Что бы разобраться с этим подробнее , сохраним блок RC_Remote Tab и вставим его в любой HEX редактор, допустим WinHex Временно вырезаем значение адреса устройства 00h, FBh расположенный по адресу 0x00 и 0x01. Выделяем это значение и через Edit делаем Cut и получаем –
особенность протокола NEC такова, что у него нет адресов 0x2… и 0x3… , а есть только 0x0… ,0x1... , 0x4… , 0x5… это особенность протокола NEC , так-что в WinHex представляем себе, что строка 0x20 = 0x40 , а 0x30 = 0x50 – Рис1
Теперь подробнее. При нажатии на кнопку нашего пульта , допустим STANDBY где код кнопки = 0x1A - Коды команд пульта BBK RC019-01R, то эта кнопка обращается к адресу 0x1A ( код команды кнопки пульта = адресу блока RC_Remote Tab представленный в виде как на Рис1 ) и значение в этой ячейки 5Dh – это код выполнения функции DVD плеерам. При нажатии на кнопку MENU нашего пульта, пульт подает код - 0x53 , который обращается к адресу 0x53 и выполняет функцию в плеере , которая обозначается под кодам 3Dh.
Что бы не путаться, адрес в прошивки я буду обозначать 0x… , а данные по адресу ( в ячейках ) …h , хотя, и то и другое обозначает одно – числа в шестнадцатеричной системе счисления. С обращением к адресам разобрались, теперь нужно разобраться какой код в ячейке соответствует кокой функции в DVD плеере. В этом нам поможет программа MTKRemote . Вставляем в нее блок RC_Remote Tab от нашей прошивки -
Index – это наши адреса к которым обращается пульт, но в десятичной системе 00d - 65d = 0x0… - 0x1... , 0x4… - 0x5 Code – это коды функции которые выполняет плеер Name – это имя, назначение кнопки Вот теперь мы видим и знаем, какой код в ячейке соответствует выполняемой функции в DVD. Допустим, нажимаем кнопку AUDIO на нашем пульте, пульт передает код 0x51 который обращается к адресу 0x51 на (Рис1 ) у нас стоит там 2Сh , значит при нажатии кнопки AUDIO , DVD плеер выполнит функцию DISPLEY – вывод информации о времени, в этот адрес вписываем код 28h , который и соответствует функции AUDIO и кнопка на нашем пульте AUDIO - 0x51 будет выполнять функцию 28h – AUDIO. Можно это все менять в самой программе MTKRemote , но мне она в этом отношении не нравится, долго приходится искать нужную функцию + переводить код кнопки ПДУ из dec в hex ( может кому поможет - DEC в HEX для программы MTKRemote )… Я для себя сделал вот такую табличку - Соответствие кодов блока RC_Remote Tab и функция DVD плеера и по ней работаю. Теперь зная что к чему и для чего мы берем то что на Рис1 , старый блок RC_Remote Tab и чистим его – FF
И начинаем добавлять кнопки и функции – Кнопка на ПДУ- STANDBY = 0x1A , смотрим в таблицу и находим что STANDBY (POWER) = 5Bh – код функции. Вот по адресу 0x1A прописываем 5Bh
Кнопка на ПДУ - EJECT = 0x1B, смотрим в таблицу и находим что EJECT = 5Сh. По адресу 0x1B прописываем 5Ch
... и т.д В конце получится
Это и есть наш практически готовый RC_Remote Tab , где коды ( адреса ) кнопок ПДУ соответствуют кодам команд функций DVD плеера. Осталось вставить, когда-то вырезанный адрес устройства - 0x00FB и заменить его на адрес устройства нашего ПДУ = 0x49B6 , вот теперь готовый блок RC_Remote Tab под наш пульт – Его сохраняем и вставляем в родную прошивку – И получаем –
Заливаем прошивку в аппарат и радуемся.
[*] Если что непонятно, спрашивайте в этой теме
[*] Скачать статью в PDF [*] MT1389L и изменение RC-remote в ПО - тема на Мониторе Огромное спасибо [b]Din[/b]_у за это сообщение, все тоже самое, только я разжевал :)
| +58 |
Материал добавил: LG-savikdvd, 20.11.2009(Пятница) в 16:28:43 | Категория: Статьи / Видеотехника |
Просмотров: 53959 | Комментариев: 36 | Понравилось: 58 |
|