Правильный AUX на магнитоле Toyota, активация по шине AVC LAN

Имеется магнитола Toyota 86120-33700 и в один прекрасный день захотелось подключить к ней телефон либо MP3 плеер для воспроизведения музыки. Штатного AUX на магнитоле нет.
В сети можно встретить очень много статей по организации аудио входа на штатных магнитолах. И большая часть из них организована костыльно. Например врезкой аудио в разрыв FM или AM приемника или после предварительного усилителя кассетного проигрывателя и т.п. Я решил пойти более правильным путем, активировать аудио вход на магнитоле эмуляцией CD changer’а.

Подключать AUX будет вот к этой магнитоле.

Штатная магнитола Toyota 86120-33700 (Устанавливалась в Toyota Camry ACV30)
Штатная магнитола Toyota 86120-33700 (Устанавливалась в Toyota Camry ACV30)
Штатная магнитола Toyota 86120-33700
Штатная магнитола Toyota 86120-33700

На тыльной стороне магнитолы имеется несколько различных разъемов.

Распиновка магнитолы Toyota
Распиновка магнитолы Toyota

Разъем CN701 служит для подключения питания магнитолы, подключения акустики (перед, зад), управления автоматической или активной радио антенны, вход для сигнала габаритов (подсветки).

Распиновка автомагнитолы Toyota
Распиновка автомагнитолы Toyota

CN703 для кнопок управления расположенных на рулевом колесе. А разъем CN702 для подключения CD чейнджера. На него то мы и будет подключать AUX. В этом разъеме нас интересуют контакты 2-3, 4-5 это балансный аудио вход, и контакты 9-10 — это шина данных AVC LAN, принцип работы которой я описал в отдельной статье. С помощью этой шины магнитола управляет чейнджером (и не только), работу которого мы и будем эмулировать, т.е. заставим думать магнитолу, что чейнджер действительно к ней подключен и она любезно активирует аудио вход 2-3, 4-5 к которому мы подключим наш источник звука (ИЗ) — MP3 плеер или телефон.

Для эмуляции чейнджера будем использовать Arduino mini и следующую схему подключения:

Схема подключения Arduino к шине данных AVC-LAN
Схема подключения Arduino к шине данных AVC-LAN

Код для эмулятор на моей странице GitHub. Код я использовал готовый, только как выяснилось он расчитан на микроконтроллер работающий на частоте 8 МГц, а у меня Arduino mini с кварцем на 16 Мгц. В коде я подправил тайминги, изменил прескаллер таймера, точности подсчета времени импульсов вполне хватает для уверенного распознавания и управления по протоколу AVC LAN.

 Аудио выход нашего ИЗ имеет Небалансный (несимметричный, линейный) сигнал, он передаётся по двум проводникам: один проводник — информационный, другой — земля. Это обязательное и достаточное условие для протекания электрического тока по замкнутой цепи. Данный способ передачи сигналов отличается исключительной простотой реализации, однако не способен противостоять помехам на физическом уровне.

А аудио вход на магнитоле балансный.

Балансный сигнал использует для передачи три проводника: два информационных (прямой и инверсный) и одну землю. Электрический импеданс информационных проводников по отношению к земле сбалансирован (то есть равен), что нашло отражение в названии. Сигналы по двум информационным проводникам балансной линии передаются в противофазе с равной амплитудой относительно земли.

Приёмник балансного сигнала вычитает из прямого сигнала инверсный, в результате помехи, синфазно наведённые на такую линию, вычитаются, а полезный сигнал увеличивается по амплитуде в два раза. Существенное отличие балансной линии от обычной дифференциальной пары — в обязательном наличии земляного проводника и соблюдении равных импедансов пар «плюс—земля» и «минус—земля», что, во-первых, сохраняет равные амплитуды прямого и инверсного сигнала на всём протяжении линии и на входе приёмника, во-вторых, позволяет применять дополнительные методы контроля и исправлений искажений сигнала.

Для согласования аудио выхода ИЗ с входом магнитолы потребуется вот такая или подобная схема построенная на операционных усилителях.

Схема согласующего усилителя, линейный вход - балансный выход
Схема согласующего усилителя, линейный вход — балансный выход

В этот раз изготавливать и ждать платы из Китая не захотелось. Изготовил платы для усилителя методом пленочного фоторезиста и травлением в хлорном железе.

Плата усилителя, вид сверху
Плата усилителя, вид сверху

Плата усилителя, вид снизу
Плата усилителя, вид снизу
Скачать: Герберы
Скачано: 256, размер: 36.7 KB, дата: 15.Янв.2020

Собрал Arduino  и усилитель в один корпус:

Устройство в сборе
Устройство в сборе

Так как штатного разъема CN702 нету, подпаялся к нему и вывел на проводе, около 0.5 метра разъем DB9. Это так же и для удобства модернизации устройства, не придется каждый раз снимать магнитолу чтобы его подключить. В качестве модернизации можно предложить использования Bluetooth модуля, придется немного доработать прошивку и можно будет управлять аудиопроигрывателем подключенным по Bluetooth непосредственно с магнитолы или кнопок на рулевом колесе. Так же можно передавать номер проигрываемого трека, время и текст на дисплей магнитолы.

Устройство в сборе
Устройство в сборе
Подписаться
Уведомлять
guest

22 комментариев
Старые вначале
Новые вначале По голосам
Межтекстовые Отзывы
Посмотреть все комментарии
Jurij
Jurij
5 лет назад

не компилируется проект подскажите. что не так. какая версия arduino IDE?

4 лет назад

Добрый день! Не компилируется проект, выдает ошибку, подскажите пожалуйста что может быть?

Arduino: 1.8.10 (Windows 10), Плата:»Arduino Nano, ATmega168″

In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,

from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90,

from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,

from sketch\ToyotaAuxEnabler.ino.cpp:1:

C:\Users\kkrsvn\Desktop\AVC-LAN-Toyota-master\ToyotaAuxEnabler\USART.ino: In function ‘void InitUSART()’:

USART:26:18: error: ‘EEAR7’ was not declared in this scope

UCSR0C = _BV(EEAR7) | _BV(UCSZ01) | _BV(UCSZ00);

^

C:\Users\kkrsvn\Desktop\AVC-LAN-Toyota-master\ToyotaAuxEnabler\USART.ino:26:18: note: suggested alternative: ‘EEARH’

exit status 1
‘EEAR7’ was not declared in this scope

4 лет назад
Ответить на  instalator

Я понимаю, но ваш код я не трогал, почему у вас подобной ошибки не возникает?

4 лет назад
Ответить на  instalator

Но даже если убрать этот бит, то все равно не компилируется, выдает ошибку
C:\Users\kkrsvn\AppData\Local\Temp\ccFLL3kI.ltrans0.ltrans.o: In function main':

C:\Users\kkrsvn\Desktop\AVC-LAN-Toyota-master\ToyotaAuxEnabler/ToyotaAuxEnabler.ino:98: undefined reference toAvcReadMessage()’

C:\Users\kkrsvn\Desktop\AVC-LAN-Toyota-master\ToyotaAuxEnabler/ToyotaAuxEnabler.ino:101: undefined reference to `AvcProcessActionID(AvcActionID)’

collect2.exe: error: ld returned 1 exit status

exit status 1
Ошибка компиляции для платы Arduino Nano.

Алекс
Алекс
3 лет назад

Забавно, такое же делал лет 5 назад на stm32f030 и китайском модуле mp3 за пару баксов (150-я модель короллы).
основной проблемой, которую пришлось долго искать, это выключение CD чейнджера при включении света. Сначала решил её вытаскиванием фишки в магнитоле, а потом нашел команду, которую нужно обрабатывать, чтобы работало корректно.
Но в свое время не смог найти команду на передачу текста (хотя мне оно и не надо было, модуль ничего не передавал) и блютуз в итоге тоже решил не прикручивать.

alim
alim
3 лет назад

получается магнитола думает что включен сд диск? на экране пишет диск?

alimbek
alimbek
3 лет назад
Ответить на  instalator

Извините просто я не совсем понимаю алгоритм
Если у меня штатная магнитола и на ней все функции радио, кассета, ченджер работают
И я подключу этот активатор то каким образом можно активировать аукс?

Роман
Роман
3 лет назад

а не могли бы дать разъяснения, как пользоваться этим драйвером?
нужно добавить команды регистрации на шине AVC-LAN?

Роман
Роман
3 лет назад
Ответить на  instalator

Попробую уточнить формулировку своего вопроса. Как должен работать этот код? Если взглянуть на функцию main, в ней МК слушает линию, и в отладке показывает сообщение action ID=ACT_TUNER_IN_USE. Я так понимаю, необходимо нажать на магнитоле кнопку DISC, и тогда МК сразу должен выполнить все действия по регистрации себя на шине AVC-LAN, и отправить сообщение магнитоле ACT_AUX_IN_USE ? Дело в том, что я портирую этот код для STM32 и схемотехника платы у меня отличается (для работы с шиной использую компаратор для чтения и CAN-трансивер для отправки). Импульсы на шине и сообщения МК принимает, судя по всему. Отправку каких-либо данных осциллографом на ноге… Читать далее »

Роман
Роман
3 лет назад
Ответить на  instalator

Эта команда уже присутствует в MessageTable или нужно узнать код кнопки и добавить в MessageTable ?

Роман
Роман
3 лет назад
Ответить на  instalator

Спасибо за подсказку! Теперь понятно как отлаживать. О микросхемах этих я знаю, но купить кроме как на алиикспресс их невозможно, поэтому предпринял попытку собрать из широко распространенных компонентов (с целью сокращения сроков поставки), но похоже что в следующей ревизии платы попробую ее — один корпус вместо двух все-таки компактнее))

Elephent
Elephent
2 месяцев назад
Ответить на  instalator

Здравствуйте. Вопрос, а трансивер по uart общается? Если да, то какие настройки? Не нашёл информации по этому вопросу.

Алексей
Алексей
4 месяцев назад

Добрый день.Можете мне помочь разобраться с китайским адаптером для магнитолы тойота?

22
0
Поделиться своими мыслямиx