Это пожалуй самое фееричное моё фиаско за последние дни. Сказывается работа без отпуска видимо. Мафон попал ко мне от одного незаурядного дяденьки, который и сам себе мастер, но возраст и расположение рук уже не позволяют одолеть ремонт современной техники, навыки его застряли где-то посередине между телевизорами и пылесосами. Однако паять умеет, поэтому не придумав ничего лучше, как заменить усилитель мощности, ну звука же нет, что ж менять то ещё, и не получив после этого никаких подвижек со звуком, в итоге постучался ко мне в сервис. Мои двери всегда открыты для творческих людей, сам такой же ненормальный, поэтому дяденьку успокоил и за магнитолу взялся со всей своей энергией.
Акт первый.
Первым делом, ну я же грамотный специалист, осликом проследил есть ли звук на входе усилка, а его неть.
- Ожидаемо, - почесал затылок я.
Тогда мой взгляд упал на DSP процессор, а он здесь даже очень неплохой, это ADAU1701 в корпусе QFN48. Тогда я обзавёлся документацией на сей чип, решил исследовать его порты и отыскать признаки звука на них, точнее там где ему положено быть. И такие порты нашлись. На аналоговых входах процессора проявилась отличная звуковая картина на экране осциллографа.
Тогда я разумеется задумался, ведь установлено специальное ПО в памяти магнитолы, регулируется громкость (в смысле на экране циферки меняются), так же отображается наименование чипа в системных настройках, а это значит есть обмен информацией между главным процессором магнитолы и DSP. Напрашивается простой вывод - звуковой процессор частично умер и требует замены.
Прикинув возможный прайс и сроки поставки детальки, я созвонился с эпатажным дяденькой и сообщил радостную весть. Весть эта была воспринята с неподдельным энтузиазмом и радостью.
Акт второй.
Микросхемка, должен заметить, приехала чрезвычайно быстро, я не успел даже забыть про неё. Ну а раз деталь поступила, то и не стоит откладывать вопрос в долгий ящик, тем более что шелест будущих купюр уже так и зашуршал в ушах.
Сдуваю старый чип, паяю новый. Включаю мафон, глаза горят, руки нервно отбивают костяшками лезгинку на столе. И вот уже показался рабочий стол, вот появились картинки, жму на Медиа, плеер начал отсчитывать секунды до конца трека, а в динамиках ни звука. Я прислушался - тишина гробовая.
- Быть не может! - вырвалось на всю мастерскую, а может и окрестности, криком из меня.
Какая боль, тут даже Аргентина с Ямайкой нервно курят в сторонке. Великая печаль навалилась на мои плечи, такого удара я никак не рассчитывал получить. В общем мафон был отложен как минимум до завтра.
Акт третий.
Переспав с мыслью о фиаско, я решил пойти другим путём. Предполагая что проблема кроется в программном обеспечении, я решительно скачал парочку подходящих приложений DSP. Однако все попытки запустить звук снова и снова терпели неудачу. Я удалил все приложения, до которых смог дотянуться, удалил приложение DSP полностью, чтобы избавиться от предыдущих настроек, и заново его установил - тщетно!
Тогда я решился на крайнюю меру и задумал проверить, а есть ли обмен между процессором и DSP. Ну вдруг там что-то не то прилетает. Но у меня нет никакого оборудования для считывания данных с шины I2C. И тогда мне пришла в голову простая идея - запрограммировать плату Arduino, сделав на её основе что-то в роде читалки/подслушивалки шины.
Я отыскал самый простой проект для чтения и логирования шины на GitHub. Проект Arduino I2C Sniffer мне показался самым подходящим, так как он логирует адреса, команды и данные в одну строку, разделяя их спецсимволом. Это значительно ускоряет взаимодействие и не требует большого буфера, а значит можно его разместить на самой простой Arduino Nano.
Я легко залил скетч в плату Arduino и подпаял её к точкам SDA и SCL возле микросхемы DSP (напомню это ADAU1701). Чтобы увидеть данные передающие новоявленным снифером, я открыл порт в программе Putty и стал терпеливо ждать.
На экране через считанные секунды после подачи питания на плату магнитолы полетели буковки с циферками. Логично предположить, что первые в строке это адреса устройств, к которым обращается процессор. Отыскать здесь адрес DSP не составило труда, ведь согласно документации, адрес по умолчанию 0x68.
Но меня немного смутила подача информации в терминале и я частично переделал скетч, в смысле управляющую программу снифера, для себя, чтобы картинка была более удобоваримая. Получилось вот так.
Я просто все пойманные СТОП биты закрыл вертикальным слешем и вставил символ перевода строки, чтобы каждый новый СТАРТ по линии I2C начинался с новой строки. Мне показалось это гораздо удобней.
Но это в итоге не дало мне ответа на вопрос - куда делся звук?
Ведь я вижу обмен, вижу загрузку данных при старте магнитолы, все попытки управлять эквалайзером и громкостью сразу отзываются в терминале множеством пакетов данных отправленных в DSP.
- Чего ж тебе надо ещё, зараза?! - да, я немного сорвался, но негромко, чтобы не напугать мирно спящую фею моего офиса Леночку.
В итоге и в этот день мне не удалось победить эту коварную китайскую шайтан-машину, работа над ней отложена до завтра.
Акт четвертый.
Наступивший день порадовал погодой и, казалось, сама природа благоволила на удачу. Я пришёл на работу, как обычно, опоздав на 8 минут. Это уже какая-то сраная странная привычка. Сам не понимаю, ведь я такой ответственный, но прийти вовремя становится всё сложнее. Надеюсь это временно, а не потому что старею.
Мафон лежал на рабочем столе и его сверкающий монитор, казалось, хитро улыбается и даже смеётся надо мной. Это было невыносимо. Вдруг меня посетила простая до гениальности мысль - сбросить настройки. Ну и пусть будут утеряны приложения (частично они и так удалены), пускай удалится аккаунт владельца, если пароль помнит, настроит снова, а не помнит - будет повод начать с чистого листа.
И я просто сделал сброс к заводским установкам. А затем дождался загрузки. Первым делом, как только на экране развернулся ланчер, я настроил радиостанцию в приложении Радио и динамик вдруг заговорил человеческим голосом.
- На-ко-нец-то!!! - это был вопль радости и счатья, вырвавшийся как ветер на свободу из моей груди.
Потраченные время, нервы, деньги на микросхему внезапно растворились в памяти, будто их и не было. Самое главное сейчас для меня - я наконец избавлюсь от этой магнитолы. Я снова смогу спокойно спать, снова верну себе внутреннее равновесие.