Многое для этой части взято здесь
Немного теории.
Модуль XS3868 Ver.3.0, собранный на чипе OVC3860, умеет столько всего, что устанешь перечислять. По сути, это готовое решение для создания Bluetooth-гарнитуры с питанием от одного литиевого аккумулятора, который эта же микросхема и будет заряжать (ток зарядки — до 150 мА).
Назначение контактов:
1. аналоговая «земля» (аудио);
2. левый канал;
3. правый канал;
4. вход микрофона;
5. питание микрофона;
6. светодиод индикации режима работы;
7. светодиод индикации зарядки;
8. вход + 5 вольт для зарядки (XS3868 при этом на приём не работает);
9. силовая «земля»;
11. вход + 4,2 вольта от литий-ионного аккумулятора*;
12. внутренний источник опорного напряжения 1,8 вольт;
13. сброс;
14. кнопка «воспроизведение/пауза»;
15. кнопка «громче»;
16. кнопка «тише»;
17. кнопка «воспроизведение/пауза» (да, ещё одна);
18. UART TX;
19. UART RX;
21. кнопка «следующий трек»;
22. кнопка «предыдущий трек».
По документации питание модуля осуществляется напряжением 3,3 В, но он нормально переносит и питание от 5 В.
По умолчанию модуль определяется под именем POR 1007BT и имеет пароль 0000. Меня это не очень устраивало, поэтому было решено поменять имя модуля наSUNNY, пароль на год выпуска автомобиля. Ну и еще по мелочи.
Для программирования модуля необходимо иметь:
1. Модуль USB–UART (в качестве этого модуля я использовал плату ArduinoUNO. Для этого необходимо из платы извлечь микроконтроллер или, если микроконтроллер не извлекается, залить пустой скетч)
2. Программу RevE_Config_1014 (можно взять здесь)
3. Руки, которые растут чуть выше талии.
Для корректной работы программы необходимо, чтобы USB–UART определялся как COM1. Для этого подключаем наш модуль USB–UART к компьютеру и заходим в «Диспетчер устройств»
Далее заходим в свойства ArduinoUno (COM4) (ну или как у вас определился модуль USB–UART)
Далее в «Параметры порта», проверяем скорость 9600 и протокол 8N1
И жмем кнопку «Дополнительно…»
Выбираем номер COM-порта: COM1
Дважды нажимаем OK и наслаждаемся результатом
Соединяем модуль согласно схеме, только пока не присоединяем линию 5V.
Запускаем программу. Если запуск программы сопровождается окном с ошибкой, то дальше он покажет пустой экран, и подключаться к XS3868 не будет. В этом случае надо закрыть программу и переподключить программатор к USB-порту (от платы Bluetooth его можно не отключать).
Если программа успешно запущена и ждёт подключения устройства, то увидим следущее.
После этого подключаем линию 5V. Если всё сделано правильно, то в окне программы загорится зелёный индикатор. Если же этого не произошло, и XS3868 запустилась в штатном режиме, то действия аналогичны описанным выше — закрыть программу, переподключить программатор и попробовать связаться снова (проверить линии TX и RX, не перепутали ли местами).
Когда устройство наконец будет подключено, надо нажать кнопку Read All и считать прошивку, которая выглядит как таблица с номерами строк, именами параметров и данными о настройках.
Здесь же, не отходя далеко, можно и нужно сохранить её в файл (Save File), чтобы было из чего восстановиться, если что-то пойдёт не так. В принципе, для совсем плохих ситуаций есть кнопка Set Default, которая восстановит прошивку и без резервной копии, но тогда не сохранится персональный адрес устройства, и есть вероятность где нибудь встретить двойника. Кстати персональный адрес устройства хранится в строке 24, параметр local_bdaddr.
Далее, я расскажу, что необходимо поменять, не вдаваясь в подробности. Кому интересно можете почитать по вышеприведенной ссылке или найти документ OVC3860 Persistent Store Key Setting. Application Notes.
Итак строка 417, параметр localname, здесь хранится имя устройства. Вводим в строке Format description новое имя и нажимаем Writes selected.
Строка 416, параметр pincode, задаёт пароль подключения к устройству. Спрашивается он один раз — при сопряжении.
Строка 36, параметр option_flag, заменяем 0xe0 на 0xe3. Этим параметром указываем, что модуль будет использоваться только для воспроизведения, а не как Bluetoothгарнитура, и входящие звонки не будут выводиться на динамики.
Строка 9, параметр lowpow_clk, заменяем 0x1e на 0x12. Этим параметром отключаем режим энергосбережения.
Строка 374, параметр app_to_autooff, заменяем 0x05 на 0x00. Этим параметром отключаем автовыключение модуля при бездействии.
Строка 373, параметр app_to_pairing, заменяем 0x1e на 0x00. Этим параметром устанавливаем время доступности для обнаружения модуля.
На этом программирование модуля можно считать завершенным.
Приступаем к имплантации.
Изначально была мысль изъять привод CD и на кнопку включения CD посадить модуль Bluetooth. Но после пары дней изучения матчасти от этой идеи пришлось отказаться. Дело в том, что кроме наличия диска в приводе, процессор еще производит обмен с приводом по шинам BUS0, BUS1, BUS2 и BUS3. Конечно есть маньяки, которые пытаются разобраться в протоколах обмена между приводом CD и процессором, а после эмулировать эти протоколы обмена при помощи Arduino. Как вариант, можно еще оставить привод CD в магнитоле и вставить в него диск с пустым треком. В общем тема для исследований благодатная, если есть желающие поэкперементировать, то дерзайте. Я пошел иным путем, раз уж не получается задействовать кнопку CD, то у меня есть еще неиспользуемый диапазон радио, тот который AM. Вот на него то и посадим наш модуль.
Схема включения следующая:
Слева плата DC-DCпонижающего модуля MP1584EN. Справа Bluetooth модуль XS3686. Конденсаторы С1 и С2 я взял керамические SMD размера 0805 (выпаял с первой попавшейся платы), если конденсаторы не поставить то аудиосигнал на диапазонах FM1, FM2 и FM3 просаживается и радио практически не слышно. Резистор R1 номиналом 10 кОм нужен для стабильного запуска модуля при включении, без него модуль иногда не запускался.
Подключение на плате магнитолы следующее:
Три красных окружности – это места куда впаян CD привод.
Еще один момент, контакт 1 AGND, Bluetooth модуля никуда не присоединяется во избежании создания землянной петли.
Здесь перерезаем дорожку.
+ питания припаял на среднюю ножку транзистора.
- питания припаял на ближайшую землю
Здесь прибором вызвонил входы левого и правого каналов, а также землю.
Конденсаторы припаял прямо к контактам модуля Bluetooth. Провод для аудиосигнала взял со старых наушников, аудиоземлю посадил в термоусадку.
Сами платы посадил на китайские термосопли, куда-ж без них.
Общий вид.
Вот вроде бы и все. Процесс разборки и сборки магнитолы описывать не стал, скажу одно, что при разборке пришлось выкручивать все винты.