Установка конвертера на магнитолу приус 20
А началось все с того, что у меня появился Prius.
И первое, что бросилось в глаза — проблемы с обновлением навигации. Следующее — весьма скудные, но местами необходимые возможности устройства с названием «Многофункциональный дисплей» (в простонародье — голова). И это на фоне огромного количества китайских радио с Android на борту, и множеством приятностей. Но их установка на штатное место подразумевает лишение таких «плюшек», как диаграмма распределения энергии и управление климатом.
Родилась идея как-то соединить Android магнитолу с автомобилем более плотно, чем предлагают братья-китайцы. Об этом и статья.
Исходная ситуация
Итак. На борту имеется около 7-дюймовый дисплей с резистивным тач-скрином, соединенный с прочей электроникой линиями TX+ и TX-. И таких пар от головы идет аж 3. В схеме это чудо поименовано AVC-LAN, и выглядит следующим образом:
Часть 1: Осматриваемся внутри
Как видно, голова стоит в разрыве сети, между маршрутизатором и дальнейшей цепочкой из магнитолы, усилителя (он отдельный у меня), и по отдельному каналу следует связь с блоком навигации. Где-то еще болтается блок автопарковки, никак не упомянутый в имеющихся у меня схемах. Ну, что ж… я решил отложить близость с оным до лучших времен. Тем более, что автопарковка — скорее игровая ф-ция, нежели реально нужная.
Убрав все лишнее, получим примерно следующую блок-схему устройств:
Размышления
Была мысль просто заменить блок навигации на что-нибудь андроидное, однако она угасла, когда я глубже разобрался, как они общаются с головой. Помимо AVC-LAN эти модули соединены так же линией GVIF (Gigabit Video InterFace), причем этот самый фэйс у производителей конвертеров может случайно треснуть, если еще и я куплю преобразователь видеосигнала в GVIF за более, чем 100 долл. «Жить без лица — быть может трудно, но..» — прозвучало в голове на мотив известной песни, и решение мне не понравилось.
Встречались в сети решения с установкой китайской магнитолы вместо радиоресивера. Это меня не устроило тем, что два дисплея — необоснованная избыточность. Имхо.
Решение
Родилось следующее решение: заменить целиком голову, и доработать андроид-магнитолу, подружив ее с Prius-ом, для чего:
- Разработать аппаратный конвертер USB <-> AVC-LAN
- Разработать firmware к нему, чтобы он подключался, как USB-HID.
- Сделать его composite, чтобы одна из функций детектировалась, как обычная аппаратная клавиатура (с целью использовать в качестве нативного управления с кнопок на панели)
- Разработать Android-приложение с функционалом, аналогичным (или превосходящим) родной, приусовский
- Согласовать работу задней камеры
- Решить задачи по механической части (установка на штатное место)
Выглядеть это все должно следующим образом:
В качестве аппаратной основы было решено использовать обучающую плату на SM32F103:
заказанную с AliExpress за $2.05.
Чем она мне нравится:
- Аппаратный модуль USB(Device) на борту у процессора
- Адекватный USB-стек от производителя (в отличие от Freescale-овского, не к ночи будь помянут).
- Свободные порты GPIO, которые можно использовать для подключения штатных кнопок по бокам монитора. Возможно, это позволит скрыть под панелью аппаратные кнопки магнитолы. Я пока не знаю, какой она будет
- И на нее можно навесить конвертер AVC-LAN в логические уровни
В любом случае, статей планируется несколько, в разных хабах. Проект получается уж сильно FullStack — от аппаратного подключения до андроид-приложения.
Часть 2: USB, HID, дескрипторы, и все, чтобы получить пилотный прототип
Первым этапом я хотел получить связку устройства и телефона, причем чтобы устройство могло передать пакет на телефон, а тот — отобразить его в приложении.
Как говорил Гагарин: Поехали!
USB HID Composite device на STM32
За что я решил взяться — это адаптировать пример от ST моим задачам, и получить USB устройство, которое опознается хостом, как составное из клавиатуры и «чего-то еще» — RAW HID Device. Первое, как я уже говорил, предназначено для нативного управления андроидом, второе — для прямого обмена AVC-LAN пакетами с программой на устройстве.
Взяв за основу CubeMX от STM, и прочитав много статей о том, как можно реализовать кастомный HID, я обнаружил в сети одну неприятную вещь: практически нет или весьма скудно рассмотрен вопрос создания составных устройств.
USB, Composite, HID
Буквально несколько слов на эту тему. Предполагается, что Вы более или менее знакомы со стандартом USB. Если нет — лучше сначала ознакомится и поэкспериментировать с примерами из CubeMX.
Стек USB от STM и пример реализации мыши. Там у нас настроены какие-то дескрипторы и функциональная конечная точка. Это помимо пары 0x00 и 0x80 для управления устройством целиком.
Для реализации моего проекта требуется, чтобы конечная точка клавиатуры была двунаправленной (не знаю, зачем — пригодится) и еще пара конечных точек, которые будут использованы для обмена данными со второй — RAW — функцией. Добавляем их.
Делаем точку двунаправленной, добавляя в дескриптор точку OUT:
При правке дескриптора следите за индексами и размерами.
(2c5cf968121f0d8fa43a6755c09e15ef3a317791):
И добавляем еще пару точек:
Это был дескриптор конфигурации. Теперь хост будет уверен, что у нас есть некое составное HID-устройство, и во все эти точки можно слать данные. Но это пока не так.
Для того, чтобы это стало правдой:
1. В нашем контроллере есть специально выделенный кусочек памяти, который тактируется вместе с модулями CAN и USB. Учитывая, что модуль USB самостоятельно занимается процессом приема/передачи пакета данных, нужно задать ему буферы в этом кусочке памяти для каждой отдельно взятой конечной точки:
Адреса буферов произвольные, лишь бы не пересекались.
Почему-то стек от ST написан из расчета, что в устройстве будет не более одной двунаправленной конечной точки, потому чуть дорабатываем стек:
Передача
Процедуру USBD_HID_SendReport переименовываем в USBD_HID_SendReportEP, добавляя еще один параметр — номер конечной точки. Процедуру со старым именем оставляем для обратной совместимости, но в теле вызываем USBD_HID_SendReportEP с константой в виде конечной точки. Решение пока не самое эстетичное, но для эксперимента сойдет, и даже если и останется — конкретному проекту это жить мешать не будет.
Теперь для отправки данных все готово, остается лишь в нужный момент вызвать эту функцию.
Финализация
Порядка ради ищем по проекту и вызываем USBD_LL_CloseEP еще раз, но для вновь созданных конечных точек.
Прием
Для того, чтобы конечные точки морально настроились на работу, нужно вызвать для них USBD_LL_PrepareReceive. Рекомендую читателю пробежаться поиском по проекту на предмет этой строки, и адаптировать эти вызовы под свои нужды.
У меня в коде получилась вот такая вот некрасивая каракатица:
Т.е. я исходил из того, что номера конечных точек идут подряд. Это плохо, имхо. Не делайте так. Впрочем, и как ST тоже не делайте.
Дальше остается только сходить в файл usbd_hid.c, а конкретно в функцию USBD_HID_DataOut, и позаботится о том, чтобы вызов обработчика принятых данных соответствовал вашим личным представлениям о прекрасном. У меня получилось тоже не очень, поэтому код и описание получатся длинными и непонятными. Проще сделать самому.
Репорт
Все, в этом месте мы получили композитное устройство, которое способно обмениваться данными через две двунаправленные точки. Последним штрихом «затыкаем» любопытство драйверу HID, описывая такой вот дескриптор репорта:
Этот репорт говорит HID-драйверу: тут будут какие-то 31 байт данных. Не нужно разбираться, что за они — просто отдай их открывшей это устройство программе. В физическом репорте нулевой байт будет равен индексу репорта (REPORT_ID (2)). Соответственно, всего придет 32 байта.
Я конечно же вас не понял но, меня интересует другое, у меня в Приусе 90 фм не ловит есть 90.5 как с этим боротся?
Я думаю надо было выбросить ещё сам усилитель, предположительно он режет полосу пропускания в которой наш диапазон. В конвертере установлен свой усилитель.
Сделал всё так же и нифига не получилось(( мне кажется что конвертер тоже с усилителем и поэтому идет конфликт. Попробую без усилителя родного.
Послушай Андрей, а нужно ли заземлять конвертер или хотя бы за экранировать его или необязательно?
Лайк, спасибо за совет.
Но там все равно моно сигнал идет. Для людей с тонким слухом (как у меня) звук отвратитльный, хоть и чистый)
Магнитола была с японским FM или американским? Японский вариант легко перестраивается конвертером, а американский говорят только прошивкой, какой был изначально?
Красава,заморочился,все по теме.
Херасе, ты заморочился. Лайк!
Мануал не фонтан. Иконки, крестики. Зачем тебе радио? Слушай проповеди)))
Лучше проповеди и слушать что бы не быть таким как ты
А можно написать модель конвертера?
Идея хорошая но мануал реализован отвратительно.Стоило снимать процесс по ходу дела а не показывать тяп-ляп на макете.
спасибо, буду пробовать
и при подключении эмулятора CD чейнджера желательно выключить магнитолу и полностью выключить машину
Сменил два конвертера. Сначала подключал напрямую к приемнику. Станции ловил все, но сигнал неустойчивый. Подключил под ручкой задней левой двери, совсем все плохо стало. Осталось испытать твой способ. Вопрос: клипсы, которые обшивку потолка сзади держут, легко снимаются? Я потянул, но побоялся, что оторвется. И еще про подключение эмулятора CD-чейнджера, у меня диски вообще не играют, при нажатии кнопки CD, ничего не происходит, только наверху монитора появляется надпись CD. Будет ли эмулятор работать при этом. Приус такой же 10-го года.
клипсы с зади на потолке снимаются несложно главное вытягивать не спеша. Когда подключен эмулятор CD чейнджера yatour появится функция cd-чейнджера автоматически на магнитоле просто надо будет 2 раза нажать на кнопку CD диск и главное на флешку закачать песни по папкам cd1 cd2 cd3 и так далее до 6 тогда будет все играть как надо
хз. Арсеньев и пригород Европа норм ловит. при проезде Уссур Арсеньев только на перевалах не ловит
привет. такой же приус. конвертер установлен традиционно. проблем не наблюдается
Здравствуйте, напишите пожалуйста модель конвертера. Оно сдвигает частоты приема на x.5 MHz?
Привет, Я тоже раньше вставил по традиционному но почему-то радио намного хуже ловило
Почитал инструкцию. В одном месте написано, что до -30 выживет, в другом, что до -35. Кроме того ошибки орфографические. Инструкции минус.
Сборка у девайса добротная. Материал корпуса приятный и, по ощущениям, прочный. На беглый взгляд не понял, как его разобрать.
Подготовил сразу карту памяти SD Silicon power 4 GB 10 class.
И с детским задором я полез ковырять свою панель. Снял нижний бардачок. Затем левый центральный воздуховод. Он просто выдёргивается. Поддел монтировкой панель сверху. Немного пошатал её с боков и дернул на себя. Вышла легко.
Далее открутил какую-то коробку с проводами. Длинная крестовая отвертка поможет.
И тут оказалось, что всё зря. Дотянуться отсюда до нужного разъёма не получилось. Необходимый порт находится в правой части магнитолы. Пришлось разбирать всю морду :(. Возился долго(опыта в этом деле нет).
Какие нужны инструменты:
Начал разбирать панель справа от магнитолы (где руль). Так же просто снять воздуховод не получилось. Он является нижним слоем в правой части панели.
Сначала снял правый воздуховод(с кнопкой Power).
Затем панель под рулём(там есть 1 болт). Следом панель над рулём.
Вот так выглядит попка магнитолы:
Нам нужен разъём №2. Я подключил всё без тройника. Потыкал все функции и не нашёл ничего страшного. TV работает. Передняя камера(нештатная) работает. Возможно отвалилась навигация, но и шут с ней. Японская навигация всё равно бесполезна. В итоге подключил без тройника. Вывел адаптер в нижний бардачок. Ничего не сверлил и не резал.
После сборки осталось 2 болта. Не помню откуда они. Сохраню, как сувениры из маленького приключения:
Теперь покажу, как Yatour выглядит в работе:
Добавлено спустя год использования:
За всё время у меня было всего пара глюков, которые решались простым выключением-включением. И это при учете, что я его слушаю каждый день! Зимой ни каких проблем не возникло. Я очень доволен покупкой.
Мой Приус в минимальной комплектации: нет ни камеры заднего вида, ни Keyless доступа, ни помощника парковки (обо всём об этом читайте в следующих выпусках). Но самое страшное — играет только радио или CD, ни мрз, ни двд, ничего больше нет. Ужас!
Так что же за супердевайс я тут себе прикупил на днях? Yatour YT-M06.
Это мой спаситель ценой 2400 с доставкой — эмулятор CD-Changer’а. Скроен ладно, ощущения от материала приятные.
Практически у любой магнитолы есть разъём для подключения чейнджера дисков:
второй слева
Этот китайский прибор подключается к такому разъёму и не требует никакого отдельного питания:
Поддерживает USB-флэшки, карты памяти (SD/SDHC/MMC) и есть стандартный вход 3.5мм:
Согласно документам поддерживается объём памяти до 16 Гб от любого производителя. Продавец посоветовал мне использовать до 8 Гб и Kingston или Transcend. Другие, мол, могут не определиться.
Покупал адаптер я тут: />Я написал им на почту и уже через минут 10 мне перезвонили, и мужчина очень подробно рассказал всё об устройстве и заверил, что оно без проблем подключится к магнитоле Toyota Prius HW20. Ответил на все вопросы, был дружелюбен и приветлив.
Через пару дней я сделал заказ. Адаптер на Тойоту стоит 2200, плюс 200 за доставку. Оплатил через ЯД и начал ждать. ждать. ждать. ждать. Отправление первого класса шло 31 день! 31 ДЕНЬ отправление первого класса в пределах России! 31 день. Ну да пусть это будет на их совести, гады.
Этого времени мне вполне хватило, чтобы перечитать всю ветку об этом устройстве на prius-forum и разобраться с тем, как правильно его устанавливать и как разбирать панель на приусе.
Гаража у меня нет, поэтому заехали после работы на парковку в ТЦ, и я приступил.
Инструкция по разборке панели
1. Открыть нижний бардачок. По краям, слева и справа, есть ограничители, которые не дают бардачку вывалиться. Если сжать бардачок по краям — ограничители выскочат, и крышка бардачка опустится, но она по-прежнему держится доводчиком — он легко откидывается вправо.
Ну и в последнюю очередь потяните крышку на себя, и она останется у вас в руках.
2. Вот эта огромная серебряная панель вытаскивается.
Нужно приложить силу. к нижней части. Одной рукой тяните панель снизу снаружи, другой толкайте её изнутри.
Отверстия для фиксаторов:
Когда нижняя часть отошла, отрывайте верхнюю. Не бойтесь — все фиксаторы многоразовые, сломать их сложно)
3. После того, как панель снята, у вас появляется доступ к задней части магнитолы с помощью тонкой аккуратной руки. У меня такая))
Просовывайте в глубину руку с кабелем и пытайтесь нашарить разъём. У меня это заняло минуты две. Разъём находится почти у самого края — не нужно лезть в глубину. Не в тот разъём вы точно не вставите — они все уникальны.
Повторюсь, вот он — второй слева:
Когда разъём нашупали, коннектор вставили, прикручивайте второй конец к самому блоку. Включаем зажигание, блок должен щёлкнуть, потом кнопкой Mode переключайте магнитолу в режим чейнджера — на нём должен загореться светодиод — всё отлично.
Сейчас тестируем все режимы — флэшки, карточки, аналоговый вход.
В этот момент важно послушать всё — не пожалейте времени — на форуме говорят, что в некоторых случаях в динамики идёт треск — это проблема адаптера и, по-моему, её не решить, заменой.
У меня всё было прекрасно.
4. Выбираете место установки девайса. Вариантов два: большой верхний бардачок или маленький бардачочек для документов под самой магнитолой, на нём я и остановился.
Подручными приборам проковырял отверстие:
Получилось не очень эстетично, точнее совершенно отвратительно, но отверстие не видно. Так что я легко успокоил свою совесть.
5. Погладь кота
Инструкция по подготовке носителя
а) Флэш/карта памяти до 8 Гб (ну или 16) должна быть отформатирована в формате FAT32/16
б) В файловой системе должны быть созданы каталоги CD01, CD02. Можно до CD99. Каждый каталог — это эмуляция диска в чейнджере. Теоретически на флэшке могут быть и другие файлы и другие каталоги, но при этом магнитола наинает работать непредсказуемо — некоторые композиции перестают читаться, пропадают каталоги.
Приус отображает только 6 дисков/каталогов, но переключать диски можно долгим нажатием кнопок < и > на руле.
в) В каждом каталоге до 99 файлов. Их названия менять не нужно.
В каталоге должны быть только mp3 или wma — другого типа файлы он не видит, во вложенные каталоги не заглядывает.
г) Чейнджер определяется автоматически — просто переключитесь на него нажатием кнопки Mode на руле.
д) Треки могут играть в случайном порядке хоть в пределах каталога, хоть по всей флэшке.
Теперь в машине у меня классный звук, какой может быть со штатной акустикой без звукоизоляции.
Я конечно же вас не понял но, меня интересует другое, у меня в Приусе 90 фм не ловит есть 90.5 как с этим боротся?
Я думаю надо было выбросить ещё сам усилитель, предположительно он режет полосу пропускания в которой наш диапазон. В конвертере установлен свой усилитель.
Сделал всё так же и нифига не получилось(( мне кажется что конвертер тоже с усилителем и поэтому идет конфликт. Попробую без усилителя родного.
Послушай Андрей, а нужно ли заземлять конвертер или хотя бы за экранировать его или необязательно?
Лайк, спасибо за совет.
Но там все равно моно сигнал идет. Для людей с тонким слухом (как у меня) звук отвратитльный, хоть и чистый)
Магнитола была с японским FM или американским? Японский вариант легко перестраивается конвертером, а американский говорят только прошивкой, какой был изначально?
Красава,заморочился,все по теме.
Херасе, ты заморочился. Лайк!
Мануал не фонтан. Иконки, крестики. Зачем тебе радио? Слушай проповеди)))
Лучше проповеди и слушать что бы не быть таким как ты
А можно написать модель конвертера?
Идея хорошая но мануал реализован отвратительно.Стоило снимать процесс по ходу дела а не показывать тяп-ляп на макете.
спасибо, буду пробовать
и при подключении эмулятора CD чейнджера желательно выключить магнитолу и полностью выключить машину
Сменил два конвертера. Сначала подключал напрямую к приемнику. Станции ловил все, но сигнал неустойчивый. Подключил под ручкой задней левой двери, совсем все плохо стало. Осталось испытать твой способ. Вопрос: клипсы, которые обшивку потолка сзади держут, легко снимаются? Я потянул, но побоялся, что оторвется. И еще про подключение эмулятора CD-чейнджера, у меня диски вообще не играют, при нажатии кнопки CD, ничего не происходит, только наверху монитора появляется надпись CD. Будет ли эмулятор работать при этом. Приус такой же 10-го года.
клипсы с зади на потолке снимаются несложно главное вытягивать не спеша. Когда подключен эмулятор CD чейнджера yatour появится функция cd-чейнджера автоматически на магнитоле просто надо будет 2 раза нажать на кнопку CD диск и главное на флешку закачать песни по папкам cd1 cd2 cd3 и так далее до 6 тогда будет все играть как надо
хз. Арсеньев и пригород Европа норм ловит. при проезде Уссур Арсеньев только на перевалах не ловит
привет. такой же приус. конвертер установлен традиционно. проблем не наблюдается
Здравствуйте, напишите пожалуйста модель конвертера. Оно сдвигает частоты приема на x.5 MHz?
Привет, Я тоже раньше вставил по традиционному но почему-то радио намного хуже ловило
Читайте также: