Pull to refresh
24
0

Разработчик волшебной электроники

Send message

2) Собрали девайс, стали гонять. Согласно стандарту обстреляли из высоковольтного пистолета, который для тестирования устойчивости к статике. Девайс сломался. Разобрали, нашли пробитый транзистор, поставили защиту, снова обстреляли - пробило другой транзистор. Ну и так далее - и наконец девайс стал всегда этот тест проходить.

Возражу: в Станции Миди недавней у проца есть нейросетевой сопроцессор, и это позволило сделать оффлайн-распознавание команд для умного дома. Несколько десятков, по крайней мере. Ровно для того, чтоб оно работало без интернета.

В первой Станции были аналоговые микрофоны. На всех последующих используются цифровые с шиной PDM. Вот описание нашёл: https://microsin.net/programming/arm/interfacing-pdm-digital-microphones-using-stm32-mcu-and-mpu.html

1) Первую Станцию (которая уже давно не производится) делали до меня, я не знаю кто и в какой среде разработки. Лютое легаси, проще говоря. Сейчас наша команда Умных Устройств всё делает в Альтиуме. (Хотя на раннем этапе экран для Станции Макс я для ускорения делал в Кикаде, но потом тоже переехал на Альтиум). Альтиумные библиотеки у нас общие, лежат в корпоративном гите. Но другие команды (беспилотные автомобили, складские роботы) сами по себе, мы с ними не синхронизируемся.

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

Ой-ёй, и правда, у нас вон уже лишние резисторы нашли :) И лишние конденсаторы. И транзисторы. И вообще.

EN идут на выходы PWR_GOOD с RC-цепочками для задержки, чтоб обеспечить правильную последовательность подачи питания. В уголке есть график последовательности включения.

На динамики именно постоянный сигнал подать не получится (усилитель удавит постоянную составляющую). Низкочастотный сигнал тоже не поможет, мы колонки гоняем десятками в формате "включил на полную PowerWolf и оставил на месяц".

обладающие всеобщим доверием эксперты

Кто это??

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

Про софтварную детекцию долгого нажатия. Она используется :) И срабатывает после сброса триггера при долгом нажатии. Это сделано вот для чего.

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

Заметим, что таким образом сброс аккаунта и WiFi произойдёт со включенными микрофонами независимо от их исходного состояния: триггер будет сброшен, а не переключен.

Если бы системы сброса не было сделано, то при звуковой активации колонки пришлось бы следить ещё и за тем, чтобы микрофоны были включены. А тут этого можно не делать.

По итогам этой публикации мы делаем выводы, будьте уверены :)

Да, это ферритовая бусина. Развели для отладки, чтоб можно было выпаять транзистор и вместо него впаять перемычку.

Но подробностей не осталось, как и тогдашних разработчиков. Первая Станция давно не производится.

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

Именно что программно нельзя. Мы в ходе отладки неоднократно замыкали ноги проца и на питание, и на землю; там нагрузочная способность слишком маленькая, типа 20мА.

БП там много:

Внутри вот что:

Вот ближе питание ядра и присных:

Там амперы. КЗ на ноге никто не заметит.

1) Просто так. Так получилось. Мощность там выделяется ничтожная, на таких сопротивлениях. Изначально поставили для большей гибкости настройки и простоты перепайки: типа 1М + 100к, или 1М + 1М впаять? Решили в проде так и оставить. Типа на всякий случай. И так оно и копируется с той поры.

2) Нет, там проблема в другом. Конденсатор С6 нужен для того, чтобы питание включалось/выключалось плавно. Без этого при включении питания микрофонов из-за зарядки их питательных конденсаторов происходил бросок тока на цепи 3.3В, и это напряжение изрядно проседало. Настолько сильно, что происходило неприятное. Коротко говоря - это soft-start такой.

Да, только с той разницей, что микрофоны аналоговые, поэтому нет буферов тактирования.

TLV_MICBIAS отключается через транзистор:

А TLV_MICEN берётся с триггера, там схема такая же.

Хронологически Станции делались в другом порядке, да. Началось со Станции Макс. И на последней схеме в статье - https://habrastorage.org/r/w1560/getpro/habr/upload_files/4f6/39b/723/4f639b7234152697ca1826a144e6b97b.png - как раз есть буферы, отключающие тактирование микрофонов. Мы их поставили ровно для того, чтобы избежать фантомного питания.

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

Проблема в другом. Мы живём в мире победившего постмодерна с его разрушением авторитетов. Так что можно хоть рубильник поставить; вопрос в том, как доказать, что он по факту делает внутри колонки.

Вон уже высказали сомнения, что схемы - это хорошо, но правда ли плата разведена именно так?

Как реализована схема питания и распиновка центрального процессора?

Я могу кинуть скриншоты, но их будет много - и довольно бессмысленно: ног у проца полно, а питания тоже - там целое дерево.

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

У нас такого нигде нет. Питание микрофонов к питанию проца не привязано, и при перезагрузке проца микрофоны тоже не затронуты.

гораздо проще и для понимания и для безопасности было сделать диод, работающий при подаче питания на микрофоны

Так там так и сделано, только через транзистор.

Но дизайнерам скажем, может, удастся их убедить ставить отдельный светодиод на Mute.

 тумблер/движок именно для физического отключения питания микрофонов

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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Embedded Software Engineer, 3d Modeler
Lead
Git
OOP
SQL
English
Software development
C
C++
Programming microcontrollers
Embedded system