Как стать автором
Обновить

Комментарии 45

Давно хочу такой девайс, только c нормальным звуком. Что-нибудь типа карманной электрофлейты.
НЛО прилетело и опубликовало эту надпись здесь
Некую UHU Plus SCHNELLFEST, на хрупкость не проверял, но обещают 130 кг на отрыв. Склонен верить, т.к. видел склеенную ей металлическую стойку в магазине, где мне ее продали)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Если надо залить плату от воздействия атмосферы, может лучше силиконовый герметик? он точно не треснет…
Раньше, вроде как, эпоксидкой заливали устройства. До того, как печатные платы появились. Неремонтопригодно, зато на века.
Раньше силиконового герметика небыло, да и иногда все же нужна была жесткость конструкции и механическая защита. С герметиком проще работать, но он не обеспечивает жесткости и механической защиты. А если просто надо защитить плату от воздействия атмосферы, есть аэрозольные лаки с силиконом и без. Не обязательно всегда возится только с эбокситкой. Хотя если ставится задача надежно скрыть потроха конструкции от реверс-инженеринга то эбокситка — то что нужно.
А я термоклеем заливаю. Не треснет, при этом можно феном расковырять обратно.
Скажите, а почему формирование звука делается ШИМом а не встроеным ЦАП? я почему-то думал что так проще.
Можете рассказать плюсы/минусы использования ЦАП для формирования звука?
Ну так в данном-то случае у меня на выходе стоят пищалки, что мне на них ЦАПом выводить — синус или семплы не шибко с них звучат.
Я в первой версии девайса генерил звук гитарной струны известным алгоритмом и выводил его через ЦАП на пищалки, результат меня не порадовал (хотя если выводить на динамик, то звучит нормально).
Поэтому я остановился на прямоугольном сигнале — он богат гармониками, да и пищалки в таком режиме звучат намного громче.
Вот и все плюсы, они продиктованы исключительно устройством вывода звука.
Может быть, глупый вопрос, но нельзя ли программно компенсировать АЧХ?
Отчасти, может, и можно, ценой амплитуды сигнала — то есть, наверное, можно сделать фильтр, который сгладит ее пики.
Но что делать со впадинами?) Я имею в виду, что до 1 КГц и после 6 КГц она очень сильно спадает, никакие фильтры не заставят пищалку воспроизводить звук с нормальной громкостью на 500 Гц или на 8 КГц.
Забавный звук получился.
Хотелось бы уточнить, вы действительно в эту флейту дуете или это просто для антуража?
Действительно, там же микрофон для этого — в статье описано, как сигнал с него управляет огибающей звука.
Действительно, не тем местом читал статью. Пардон.
И что сие должно символизировать?
Сие должно символизировать существование возможности сделать аккуратную плату, имея принтер, утюг, текстолит, хлорид железа (при необходимости заменяется на что-то более доставаемое) и старенький глянцевый «плейбой».

Ничего не имею против макеток, если устройство не сложное, но ровно до тех пор пока тут не появляются корпуса с шагом 0.5мм
Я же специально для вас оставил ремарку в статье
>Если вы не прочь потратить это время на возню с хлорным железом, то можно развести описанную схему на небольшой плате и пропустить следующие пункты.

Прошло то время, когда я делал платы ЛУТом и резистом, я зарекся брать хлорид в руки. Теперь — только заказные. Но для игрушки я заказывать плату не собирался и обошелся dead bug методом.
Хлорное железо и правда ядреное, но кроме него имеется масса других «подручных» протравливающих растворов — например смесь столовой соли с медным купоросом(удобрение) которое можно вылить после использования и не хранить.
Да не, я не столько из-за самого железа, сколько вообще из-за процесса. Ну вот вообще душа к этому не лежит, надоело.
Проектировать — отлично. Собирать — нормально. Но саму плату делать совсем не хочется.
Есть средство еще лучше — перекись водорода из аптеки (3%), лимонная кислота и повареная соль. Соотношение — 100мл/25гр/5гр, хватает на 100см2 меди. Не оставляет следов, как ХЖ, и скорость травления одна из самых высоких.
Подтравы?
Не замечал. Последние 3 платы травил этим способом — все получились отлично (ЛУТ по методу DIHALTа, 2 стороны, дорожки 0.2мм, раствор подогревал горячей водой до 50-60 градусов).
Про метод с лимонной кислотой и сравнение с другими доступными способами узнал тут.
Игрушка получилась очень забавная, возникла только пара комментов:

1. Чтобы снизить потребление, потенциометр можно питать от вывода порта в активном режиме, и переводить его в 0 или Z перед засыпанием, и обратно в 1 при просыпании по началу дутья. Пот можно кстати взять движковый, тогда получится тромбон ;). И естественно, с характеристикой A

2. Значенние постоянной составляющей лучше все-таки вычислять усреднением и вычитанием среднего — параметры микрофона могут плыть со временем, да и требование индивидуальной прошивки под каждый экземпляр — не комильфо.
Да, питать потенциометр точно нужно было от GPIO. В принципе это еще возможно пофиксить — провод питания к нему идет достаточно близко к поверхности эпоксидки, можно перерезать, а вместо него подключить один свободный с отладочного разъема.
Интересно, насколько упадет потребление.
О движковых думал, да, но что-то мне показалось, что будет еще менее удобно, чем с крутилкой — очень уж он короткий.

В данном случае это не важно, не уплывут они настолько, чтобы это было критично. Да и просто так вычислять среднее не получится, где гарантия, что в данный момент нет фонового шума?
Потребление упадет ровно на ток, протекающий через резистор в 24кОм под напряжением в 3В — то есть на 125 микроампер, и устройство будет способно жить месяцами от 2032

Сигнал с микрофона симметричный, поэтому среднее значение не изменится при наличии шума на входе. Усреднять можно при подаче питания в течение нескольких секунд, и запоминать дальше на все время работы, чтобы не тратить ресурсы на скользящее среднее
Спасибо, я еще помню закон Ома. Но я вроде как еще в статье сказал, что не уверен в значении резистора, который впаял, поэтому мне по-прежнему интересно, насколько же упадет потребление.
Каким образом устройство «будет жить месяцами», если сейчас оно потребляет порядка 750 мкА? Ну станет потреблять в лучшем случае 625. А если я взял тот резистор, который и собирался, то уменьшится не на 125, а всего на 60 мкА и разницы почти не будет.

Сигнал симметричный на определенном интервале времени, если взять интервал меньше, запросто можно получить «перевес».
600 мкА жрет скорее всего потому, что ждете не в Standby, а в Stop. Из Standby, правда, сложновато выходить — но можно попробовать завести watchdog на скажем раз в 200 мс, и просыпаясь по нему, быстро оценивать (в течение сотни миллисекунд) уровень сигнала микрофона — если на входе сигнал есть, то дальше подавлять WDT, и работать по Вашему алгоритму. Если нет — отправлять процессор опять в Standby и ждать следующего WDT wakeup. В Standby в ядре все остановлено, и потребление не превышает единиц микроампер.

Перевес не страшен — погрешность оценки DC за пару секунд при холодном старте будет ничтожна по сравнению с флуктуациями постоянной составляющей микрофона от времени или от экземпляра к экземпляру.
Да нет, не поэтому. Вы, вероятно, путаете Stop и Sleep. Sleep в самом деле самый неглубокий режим сна, Стоп же почти не отличается от Standby — отличие только в том, что питается RAM, а вся остальная периферия, как и в Standby-режиме, отключена, включая системный клок (разница между режимами Standby и Stop в единицы мкА). В Standby РАМ отключается. RTCAlarm, как в моем девайсе, может выводить и из Стоп и из Standby, никакой разницы в реализации нет, Stop я использовал только для того, чтобы не терять содержимое памяти (нет желания возиться с Backup регистрами).

Сейчас система работает точно так как вы и описали, посмотрите на код. Уходит в сон на 10 мс (в случае, если недавно был сигнал), либо на 80 мс (если сигнала не было более 10 сек). Просыпается — входит в прерывание системного таймера, где сразу же оценивается уровень мощности сигнала. И все повторяется.

Тем не менее, потребление такое, как я сказал. Кроме того, даже если ввести в Standby (именно в Standby) сразу же после старта, до всяких настроек, потребление не упадет ниже 0.56 мкА.

Если пару секунд, то перевес не страшен. Но ни от каких флуктуаций от времени не спасет, раз, как вы сказали,
>запоминать дальше на все время работы
Сейчас там и есть это среднее значение, просчитанное за несколько секунд заранее, поэтому разницы никакой, если не менять микрофон. А т.к. он залит эпоксидкой и не подлежит замене, то и вовсе никакой.
По даташиту потребление в Standby — единицы, а не сотни микроампер. Если у Вас SoC спит в нужном режиме, тогда забираю свое предположение обратно — потребление будет определяться скважностью фаз бодрствования и сна :) Куски кода, честно говоря, не смотрел

Однако, кажется, есть еще один источник потребления — электретный микрофон с 10КОм в плюсовом плече. Если напряжение на нем порядка двух вольт, как Вы пишете, то свои 100 микроампер цепь его подпитки гарантированно забирает. Соответственно — запитать электрет можно также от выводов порта.
Ну так я это тоже упомянул в статье)

>потенциометр с сопротивлением ниже, чем следовало бы (я планировал 50К, надо бы 100К, а впаял, я, похоже, по ошибке, вовсе на 24К), возможно — какие-то небольшие утечки через цепи питания микрофона

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

Жаль, резистор питания микрофона залит толстенным слоем эпоксидки, уже не проверить, как упало бы потребление при питании потенциометра и микрофона от порта…
Все-таки перепилил дорожки, вместо питания отрубил от микрофона и потенциометра землю.
Потребление в режиме Stop сразу после старта контроллера — 360-330 мкА, не снижается. Возможно, это погрешности измерения, хотя великоваты.
Значит, в ядре что-то продолжает крутиться, чудес не бывает — SoC с fully static architecture на кмоп-технологии в статике вообще ничего жрать не должны, это не 8080.
По даташиту RC-генератор вотчдога берет всего несколько микроампер, остальное — это скорее всего, тактирование периферии, если само ядро спит.
BTW, если будете специально тестировать low-power режимы, сообщите сюда плз — STM32 — прекрасная замена AVR в DIY-штуках, с Атмела пора уже слезать, но вот в автономном питании как раз и есть сомнения
Да не выполняется там тактирование периферии. Я склонен думать, что это-таки внешние утечки.
Смотрите сами — я ввожу в режим Standby сразу — после старта. Весь другой код удалил. Более того, потом я еще и стал переводить все пины перед этим в аналоговый режим — это отключает триггер шмидта на входе.
И потребление не падает ниже 300-330 мкА. Все тактирование однозначно отключено — это гарантировано, во-первых, режимом Standby, а во-вторых, если уж нет веры ему — тем, что никакая инициализация не проводилась и все тактирование и так выключено.

Остаются только внешние утечки. Тем более, с таким-то монтажом.

АВР, к сожалению, предлагает намного более низкое потребление. Они сместили свои приоритеты в ответ на выталкивание их с рынка «контроллеры для всех» со стороны СТМ. Тягаться с ними СТМки не могут — разве что, те что входят в серию низкопотребляющих, «L». И то, вроде бы, даже по даташиту, они потребляют слегка больше.
Это все очень странно — с одной стороны, 300 микроампер утечек — это слишком много, даже для эпоксидки итд. С другой — вот кусок даташита на насчет потребления в low-power режимах:
image — судя по нему, в спящих режимах (даже в Stop с сохранением памяти) STM32 запросто может использоваться в системах с автономным питанием практически наравне с AVR. Другое дело, что в рабочем они тянут заметно больше — но тут очевидно сказывается гораздо более высокая тактовая частота * большее количество переключаемых вентилей

PS — у меня есть F103 на eval board с питанием через USB и встроенным стабом 5 -> 3.3. Надо будет зацепиться после него и посмотреть, сколько он тянет. Плата там сделана нормально, утечек быть не должно
Ну AVR разные есть, новые тиньки могут работать от 1V и потребляют во сне 0.1 мкА.
Впрочем, их, все-таки некорректно сравнивать с СТМкой. Думаю, СТМки из L серии вообще отлично подойдут на замену любых AVR.

Да, 300 мкА действительно много — это сопротивление порядка 10К. В схеме только керамический конденсатор на 4.2 мкФ между питанием и землей батарейки. Контроллер все пины переводит в аналоговый инпут, значит земля микрофона и земля потенциометра висят в воздухе (на Z). Средний отвод от потенциометра тоже подключен к пину Z, и третий — к батарее.
Питание микрофона по-прежнему подключено к батарее. Питание светодиода подключено к батарее, земли всех трех — Z.
Кнопки — обычные, нормально-разомкнутые, между землей и пинами, которые в Z.
Больше, вроде бы, ничего и нет. Остается только неотмытый флюс, эпоксидка, неудачные паянные соединения (может быть, где-то замкнуло через микроскопическую перемычку).
«Флейта» на STM32… переходник для геймпада из Raspberry Pi… Куда катится мир ?!
Ну а почему бы и не STM32? У него есть объективные преимущества — встроенные ЦАП и АЦП с очень удобными фичами (возможность задать оффсет сигнала, инжектированные каналы, scan-режим — это из того, что используется в девайсе), большое количество удобных таймеров, включая системный, гибкий вочдог с ртц.
При этом данный чип стоил 19-20 рублей.
Какой бы предложили вы?
Что-нибудь аналоговое (смайл).
Я бы ничего не предложил — просто представьте в конце предыдущего комментария смайл.
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории