Товары из Китая

Программируем … наушники


Программируем ... наушники

Стремление производителей к унификации привело к тому, что сегодня многие недорогие Bluetooth наушники и колонки построены на типовых SoC модулях с широким списком возможностей, которые часто могут быть программно «подрезаны» производителем, причем в некоторых случаях активировать заблокированный функционал можно самостоятельно, используя копеечный USB-TTL переходник. Сегодня на примере наушников Edifier W830BT я покажу, как для аудиоустройств на базе модуля CSR8645 можно включить поддержку кодека AAC, настроить уровень громкости и «подкрутить» встроенный в чип эквалайзер для получения более интересного звучания

Принадлежности

Для осуществления задуманного требуется не так много деталей:

  • Паяльник с тонким жалом
  • Адаптер FT232RL и miniUSB шнур к нему
  • 5 резисторов на 10 кОм
  • Кусок провода длиной 3-4 см

Программируем ... наушники

Готовим программную часть

В первую очередь нужно установить на компьютер необходимое ПО и драйвера для работы адаптера:

1. Скачиваем и устанавливаем BlueSuite 2.6.6, CSR86XX Configuration Tool и CSR8600 ROM Series A03 UFE… отсюда

2. Скачиваем драйвер csr-spi-ftdi и извлекаем из папки lib-win32 файл usbspi.dll и копируем его в папку C:Program Files (x86)CSRBlueSuite 2.6.6, соглашаясь на замену уже существующего в ней файла

3. Подключаем адаптер к компьютеру

4. Скачиваем и запускаем приложение Zadig, в нем выбираем Options > List All Devices и выбираем в выпадающем списке FT232R USB UART

5. В поле Driver выбираем libusbK и жмем кнопку Replace Driver

6. Ждем несколько секунд, и драйвер должен успешно установиться:

Программируем ... наушники

После этого идем в диспетчер устройств и проверяем, что адаптер действительно установился правильно — там он должен отображаться как FT232R USB UART:

Программируем ... наушники

Готовим аппаратную часть

1. Переключаем джампер на FT232R адаптере на 3.3V

2. К контакту GND подпаиваем кусок провода

3. К контактам 3.3V, DTR, RTS, RI, RSD подпаиваем резисторы:

Программируем ... наушники

Программируем ... наушники

4. Вскрываем наушники, находим модуль CSR8645 на плате и пятачки для его программирования недалеко от него:

Программируем ... наушники

5. Подпаиваем резисторы и провод с программатора к пятакам как показано на картинке выше и в таблице ниже:

Программируем ... наушники

Получается как-то так:

Программируем ... наушники

Теперь, когда все настроено и подключено, можно переходить непосредственно к редактированию настроек модуля.

Активируем поддержку AAC

Модуль CSR8645 поддерживает не только SBC и aptX, но еще и AAC, но по непонятной причине этот кодек в Edifier W830BT производителем отключен. Эту вселенскую несправедливость мы сейчас исправим, для этого подключаем адаптер к компьютеру и включаем наушники, а затем запускаем приложение PSTool, которое идет в комплекте с BlueSuite. Если все сделано верно, то на экране появится наш подключенный адаптер — просто жмем ОК и ждем загрузки данных из наушников:

Программируем ... наушники

Если все было сделано верно, на экране мы увидим список параметров настроек и их значений для установленного модуля:

Программируем ... наушники

Как вы могли заметить, эта прога позволяет точечно редактировать значения параметров модуля без перезаписи всего содержимого памяти. Первым делом нам необходимо снять полный дамп настроек модуля, для этого жмем File > Dump и сохраняем куда-нибудь PSR файлик, который будет формироваться пару минут (приложение и наушники в это время не трогаем):

Программируем ... наушники

Далее запускаем приложение Config Tool и загружаем в него созданный PSR файлик (File > Open From PSR File):

Программируем ... наушники

Это приложение позволяет просматривать список настроек и их значений в более удобном виде визуально. Среди всех настроек нас пока интересует переключатель A2DP AAC codec enable на вкладке Features:

Программируем ... наушники

Активируем его и жмем кнопку Write PSR (и ни в коем случае не нажимаем Write Device!). Сохраненный новый PSR файлик нам теперь нужно сравнить с изначальным, чтобы понять, какие настройки в нем изменились. Сделать это можно на каком-нибудь сайте, например. Сравнив 2 PSR файла, мы можем увидеть, что в после включения AAC поменялось одно значение в настройке USR 15:

Программируем ... наушники

Это новое значение нам необходимо прописать в наушники с помощью PSTool. Возвращаемся к этой проге и находим в ней параметр User configuration data 15 со старым значением (f718):

Программируем ... наушники

Меняем его на новое (f528) и сохраняем кнопкой Set, далее для перезагрузки наушников жмем Reset BC. Включаем наушники, подключаемся к смартфону и убеждаемся, что кодек AAC теперь появился (слева — было, справа — стало):

Программируем ... наушники

Программируем ... наушники

Поднимаем уровень громкости

Раз уж мы вскрыли наушники и прошли большой путь по настройке, то грех не подкрутить еще что-нибудь. В W830BT меня не совсем устраивал максимальный уровень громкости. Как оказалось, «поддать газку» здесь можно так же легко программным путем. Для этого в приложении Config Tool загружаем новый PSR файл (заново выкачиваем его в PSTool после включения AAC) и переходим на вкладку Audio Gains:

Программируем ... наушники

Здесь представлены 16 уровней громкости, и для каждого можно задать свой уровень усиления/затухания. Максимальное значение громкости (HFP15) здесь имеет значение 0, но можно без проблем задать и усиление, что я и сделал, немного подняв последние уровни вверх:

Программируем ... наушники

Применение изменений проводим точно так же, как и в случае включения AAC: сохраняем новый PSR файл и сверяем с предыдущим, чтобы найти изменившиеся строчки:

Программируем ... наушники

Затем точно так же находим и применяем их в PSTool:

Программируем ... наушники

В результате изменения настроек уровень громкости действительно поднялся, причем это никак не сказалось на качестве звука, никаких осязаемых искажений не наблюдается.

Крутим эквалайзер

Как правило, SoC — это очень навороченная вещь с целой кучей возможностей, про которые не все догадываются. Конкретно у CSR8645 имеется полноценный встроенный DSP, позволяющий серьезно модифицировать звучание. Об этом я узнал, когда после включения AAC заметил серьезные отличия по звуку по сравнению с SBC и aptX. Как оказалось, для AAC эквалайзер просто был выключен, поэтому звучание было менее интересным. Так или иначе, я решил поэкспериментировать с этой темой. Для настройки DSP нам в первую очередь нужно открыть PSR файлик в HEX редакторе и вырезать строки параметров PSKEY_DSP30… PSKEY_DSP32 в новый PSR файл:

Программируем ... наушники

Затем нам потребуется приложение CSR8600 ROM Series A03 Release, после запуска в нем необходимо выбрать алгоритм Music Manager 44.1kHz:

Программируем ... наушники

В результате откроется форма редактирования аудио конвейера, в который нам нужно загрузить тот самый PSR файл с параметрами DSP:

Программируем ... наушники

В первую очередь заходим в Decoder и активируем эквалайзер для SBC, aptX и AAC:

Программируем ... наушники

Далее идем в PEQ и выбираем один из пресетов эквалайзера или создаем новый с нуля, я выбрал для основы Bass Boost:

Программируем ... наушники

У эквалайзера можно задать до 5 полос, частоты задаются произвольно. Для примера поднимем еще немного НЧ:

Программируем ... наушники

После этого нажимаем ОК и сохраняем изменения в новый PSR файл:

Программируем ... наушники

Этот PSR файл теперь можно открыть в любом текстовом редакторе и последовательно загрузить значения для DSP30, DSP31 и DSP32 в наушники с помощью PSTool, как это уже делали на предыдущих этапах:

Программируем ... наушники

Программируем ... наушники

Итог

Далеко не все музыкальные bluetooth устройства так просты, как кажется. У некоторых моделей наушников и колонок на самом деле имеется поддержка более продвинутых кодеков, чем стандартный SBC, а встроенный эквалайзер имеется практически везде. Описанным выше способом на некоторых устройствах можно отключить голосовые подсказки, изменить поведение индикаторов, поправить уровни напряжений аккумулятора и много всего полезного.


СМОТРИ ТАКЖЕ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *