Найти в Дзене
Мастерская Chipmaster.BY

Автомагнитола YT5760 нет звука. Битва за звук не на жизнь, а на смерть...

Это пожалуй самое фееричное моё фиаско за последние дни. Сказывается работа без отпуска видимо. Мафон попал ко мне от одного незаурядного дяденьки, который и сам себе мастер, но возраст и расположение рук уже не позволяют одолеть ремонт современной техники, навыки его застряли где-то посередине между телевизорами и пылесосами. Однако паять умеет, поэтому не придумав ничего лучше, как заменить усилитель мощности, ну звука же нет, что ж менять то ещё, и не получив после этого никаких подвижек со звуком, в итоге постучался ко мне в сервис. Мои двери всегда открыты для творческих людей, сам такой же ненормальный, поэтому дяденьку успокоил и за магнитолу взялся со всей своей энергией. Первым делом, ну я же грамотный специалист, осликом проследил есть ли звук на входе усилка, а его неть. - Ожидаемо, - почесал затылок я. Тогда мой взгляд упал на DSP процессор, а он здесь даже очень неплохой, это ADAU1701 в корпусе QFN48. Тогда я обзавёлся документацией на сей чип, решил исследовать его порты
Оглавление

Это пожалуй самое фееричное моё фиаско за последние дни. Сказывается работа без отпуска видимо. Мафон попал ко мне от одного незаурядного дяденьки, который и сам себе мастер, но возраст и расположение рук уже не позволяют одолеть ремонт современной техники, навыки его застряли где-то посередине между телевизорами и пылесосами. Однако паять умеет, поэтому не придумав ничего лучше, как заменить усилитель мощности, ну звука же нет, что ж менять то ещё, и не получив после этого никаких подвижек со звуком, в итоге постучался ко мне в сервис. Мои двери всегда открыты для творческих людей, сам такой же ненормальный, поэтому дяденьку успокоил и за магнитолу взялся со всей своей энергией.

Акт первый.

Первым делом, ну я же грамотный специалист, осликом проследил есть ли звук на входе усилка, а его неть.

- Ожидаемо, - почесал затылок я.

Процессор обработки звука ADAU1701.
Процессор обработки звука ADAU1701.

Тогда мой взгляд упал на DSP процессор, а он здесь даже очень неплохой, это ADAU1701 в корпусе QFN48. Тогда я обзавёлся документацией на сей чип, решил исследовать его порты и отыскать признаки звука на них, точнее там где ему положено быть. И такие порты нашлись. На аналоговых входах процессора проявилась отличная звуковая картина на экране осциллографа.

Тогда я разумеется задумался, ведь установлено специальное ПО в памяти магнитолы, регулируется громкость (в смысле на экране циферки меняются), так же отображается наименование чипа в системных настройках, а это значит есть обмен информацией между главным процессором магнитолы и DSP. Напрашивается простой вывод - звуковой процессор частично умер и требует замены.

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

Акт второй.

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

Новая микросхема ADAU1701.
Новая микросхема ADAU1701.
Удаляю старый чип.
Удаляю старый чип.
Новый чип запаян и рвётся в бой.
Новый чип запаян и рвётся в бой.

Сдуваю старый чип, паяю новый. Включаю мафон, глаза горят, руки нервно отбивают костяшками лезгинку на столе. И вот уже показался рабочий стол, вот появились картинки, жму на Медиа, плеер начал отсчитывать секунды до конца трека, а в динамиках ни звука. Я прислушался - тишина гробовая.

- Быть не может! - вырвалось на всю мастерскую, а может и окрестности, криком из меня.

Какая боль, тут даже Аргентина с Ямайкой нервно курят в сторонке. Великая печаль навалилась на мои плечи, такого удара я никак не рассчитывал получить. В общем мафон был отложен как минимум до завтра.

Акт третий.

Переспав с мыслью о фиаско, я решил пойти другим путём. Предполагая что проблема кроется в программном обеспечении, я решительно скачал парочку подходящих приложений DSP. Однако все попытки запустить звук снова и снова терпели неудачу. Я удалил все приложения, до которых смог дотянуться, удалил приложение DSP полностью, чтобы избавиться от предыдущих настроек, и заново его установил - тщетно!

Тогда я решился на крайнюю меру и задумал проверить, а есть ли обмен между процессором и DSP. Ну вдруг там что-то не то прилетает. Но у меня нет никакого оборудования для считывания данных с шины I2C. И тогда мне пришла в голову простая идея - запрограммировать плату Arduino, сделав на её основе что-то в роде читалки/подслушивалки шины.

Я отыскал самый простой проект для чтения и логирования шины на GitHub. Проект Arduino I2C Sniffer мне показался самым подходящим, так как он логирует адреса, команды и данные в одну строку, разделяя их спецсимволом. Это значительно ускоряет взаимодействие и не требует большого буфера, а значит можно его разместить на самой простой Arduino Nano.

-6

Я легко залил скетч в плату Arduino и подпаял её к точкам SDA и SCL возле микросхемы DSP (напомню это ADAU1701). Чтобы увидеть данные передающие новоявленным снифером, я открыл порт в программе Putty и стал терпеливо ждать.

Поток информации по шине I2C.
Поток информации по шине I2C.

На экране через считанные секунды после подачи питания на плату магнитолы полетели буковки с циферками. Логично предположить, что первые в строке это адреса устройств, к которым обращается процессор. Отыскать здесь адрес DSP не составило труда, ведь согласно документации, адрес по умолчанию 0x68.

Адресация DSP в зависимости от выставленных битов в регистре.
Адресация DSP в зависимости от выставленных битов в регистре.

Но меня немного смутила подача информации в терминале и я частично переделал скетч, в смысле управляющую программу снифера, для себя, чтобы картинка была более удобоваримая. Получилось вот так.

На экране посылки по шине при управлении громкостью.
На экране посылки по шине при управлении громкостью.

Я просто все пойманные СТОП биты закрыл вертикальным слешем и вставил символ перевода строки, чтобы каждый новый СТАРТ по линии I2C начинался с новой строки. Мне показалось это гораздо удобней.

Но это в итоге не дало мне ответа на вопрос - куда делся звук?

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

- Чего ж тебе надо ещё, зараза?! - да, я немного сорвался, но негромко, чтобы не напугать мирно спящую фею моего офиса Леночку.

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

Акт четвертый.

Наступивший день порадовал погодой и, казалось, сама природа благоволила на удачу. Я пришёл на работу, как обычно, опоздав на 8 минут. Это уже какая-то сраная странная привычка. Сам не понимаю, ведь я такой ответственный, но прийти вовремя становится всё сложнее. Надеюсь это временно, а не потому что старею.

Мафон лежал на рабочем столе и его сверкающий монитор, казалось, хитро улыбается и даже смеётся надо мной. Это было невыносимо. Вдруг меня посетила простая до гениальности мысль - сбросить настройки. Ну и пусть будут утеряны приложения (частично они и так удалены), пускай удалится аккаунт владельца, если пароль помнит, настроит снова, а не помнит - будет повод начать с чистого листа.

И я просто сделал сброс к заводским установкам. А затем дождался загрузки. Первым делом, как только на экране развернулся ланчер, я настроил радиостанцию в приложении Радио и динамик вдруг заговорил человеческим голосом.

- На-ко-нец-то!!! - это был вопль радости и счатья, вырвавшийся как ветер на свободу из моей груди.

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