Правильный AUX на магнитоле Toyota, активация по шине AVC LAN
Подключать AUX будет вот к этой магнитоле.

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

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

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

Код для эмулятор на моей странице GitHub. Код я использовал готовый, только как выяснилось он расчитан на микроконтроллер работающий на частоте 8 МГц, а у меня Arduino mini с кварцем на 16 Мгц. В коде я подправил тайминги, изменил прескаллер таймера, точности подсчета времени импульсов вполне хватает для уверенного распознавания и управления по протоколу AVC LAN.
Аудио выход нашего ИЗ имеет Небалансный (несимметричный, линейный) сигнал, он передаётся по двум проводникам: один проводник — информационный, другой — земля. Это обязательное и достаточное условие для протекания электрического тока по замкнутой цепи. Данный способ передачи сигналов отличается исключительной простотой реализации, однако не способен противостоять помехам на физическом уровне.
А аудио вход на магнитоле балансный.
Балансный сигнал использует для передачи три проводника: два информационных (прямой и инверсный) и одну землю. Электрический импеданс информационных проводников по отношению к земле сбалансирован (то есть равен), что нашло отражение в названии. Сигналы по двум информационным проводникам балансной линии передаются в противофазе с равной амплитудой относительно земли.
Приёмник балансного сигнала вычитает из прямого сигнала инверсный, в результате помехи, синфазно наведённые на такую линию, вычитаются, а полезный сигнал увеличивается по амплитуде в два раза. Существенное отличие балансной линии от обычной дифференциальной пары — в обязательном наличии земляного проводника и соблюдении равных импедансов пар «плюс—земля» и «минус—земля», что, во-первых, сохраняет равные амплитуды прямого и инверсного сигнала на всём протяжении линии и на входе приёмника, во-вторых, позволяет применять дополнительные методы контроля и исправлений искажений сигнала.
Для согласования аудио выхода ИЗ с входом магнитолы потребуется вот такая или подобная схема построенная на операционных усилителях.

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

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

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

не компилируется проект подскажите. что не так. какая версия arduino IDE?
Версию последняя. Какую хоть ошибку выдает?
Добрый день! Не компилируется проект, выдает ошибку, подскажите пожалуйста что может быть?
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
Не объявлен бит EEAR7 для твоего камня
Я понимаю, но ваш код я не трогал, почему у вас подобной ошибки не возникает?
Но даже если убрать этот бит, то все равно не компилируется, выдает ошибку
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.
Ты файлы все положил в папку ToyotaAuxEnabler?
Забавно, такое же делал лет 5 назад на stm32f030 и китайском модуле mp3 за пару баксов (150-я модель короллы).
основной проблемой, которую пришлось долго искать, это выключение CD чейнджера при включении света. Сначала решил её вытаскиванием фишки в магнитоле, а потом нашел команду, которую нужно обрабатывать, чтобы работало корректно.
Но в свое время не смог найти команду на передачу текста (хотя мне оно и не надо было, модуль ничего не передавал) и блютуз в итоге тоже решил не прикручивать.
получается магнитола думает что включен сд диск? на экране пишет диск?
У меня ничего не пишет, активируется cd чейнджер. Текст можно отправлять, но я не заморачивался.
Извините просто я не совсем понимаю алгоритм
Если у меня штатная магнитола и на ней все функции радио, кассета, ченджер работают
И я подключу этот активатор то каким образом можно активировать аукс?
Вместо чейнджера, либо добавить комуматор аудиосигнала еще
а не могли бы дать разъяснения, как пользоваться этим драйвером?
нужно добавить команды регистрации на шине AVC-LAN?
Не понял вопроса. Микроконтроллер активирует cd чейнджер на магнитоле при нажатии кнопки на магнитоле. Код кнопки на своей магнитоле можешь посмотреть в сообщениях на шине.
Попробую уточнить формулировку своего вопроса. Как должен работать этот код? Если взглянуть на функцию main, в ней МК слушает линию, и в отладке показывает сообщение action ID=ACT_TUNER_IN_USE. Я так понимаю, необходимо нажать на магнитоле кнопку DISC, и тогда МК сразу должен выполнить все действия по регистрации себя на шине AVC-LAN, и отправить сообщение магнитоле ACT_AUX_IN_USE ? Дело в том, что я портирую этот код для STM32 и схемотехника платы у меня отличается (для работы с шиной использую компаратор для чтения и CAN-трансивер для отправки). Импульсы на шине и сообщения МК принимает, судя по всему. Отправку каких-либо данных осциллографом на ноге… Читать далее »
МК слушает шину и как увидит сообщение с кнопкой то отправляет команду на включение входа чейнджера.
Эта команда уже присутствует в MessageTable или нужно узнать код кнопки и добавить в MessageTable ?
У меня завязано на ACT_EJECT_CD. у тебя может отличаться. Все что происходит на шине вылетает в UART, там и смотри.
Можно взять готовый трансивер, например ha12240
Спасибо за подсказку! Теперь понятно как отлаживать. О микросхемах этих я знаю, но купить кроме как на алиикспресс их невозможно, поэтому предпринял попытку собрать из широко распространенных компонентов (с целью сокращения сроков поставки), но похоже что в следующей ревизии платы попробую ее — один корпус вместо двух все-таки компактнее))