All streams
Search
Write a publication
Pull to refresh
83
0
Send message
Ну, я бы начал с того, что упомянутое вами умножение на матрицу и сложение с вектором уже являет собой некоторую абстракцию, которая придумана для того, чтобы не забивать голову теми реальными уравнениями, которые в действительности дают интересующие нас преобразования. :)

У меня есть ощущение, что, если честно расписать уравнения всех преобразований в вашем примере исходя из элементарной геометрии, в итоге мы получим то же самое, что получаем с применением кватернионов. Правда не факт, что человек сможет сделать это. :) Скорее всего он просто запутается по дороге. Но фактически тут даже по вашему описанию происходит именно то, о чем я говорил — безумно сложные и, может быть, недоступные человеческому пониманию уравнения конструируются и решаются обходным путем.

Сходный пример, кстати, — решение дифференциальных уравнений с применением разных диковинных преобразований (Фурье, Лапласа, etc), приводящих оные к виду СЛАУ.
А рефлексировать, на самом деле, нет смысла. Все эти диковинные числа, начиная с комплексных, — просто способ упихать N уравнений в одно, чтобы запись влезала не за двенадцать меловых досок, а хотя бы на четыре. Все остальное — иллюзия; в итоге все равно вычисления сводятся к действиям с обычными числами. И да, действительно, это особенно хорошо заметно в программировании. :) Самый очевидный пример — если пристально рассмотреть красивый алгоритм ДПФ, который весь из себя комплексный, то в какой-то момент мы обнаружим, что по факту считаем корреляцию сигнала с семейством вполне вещественных гармонических функций…

Это напоминает мне механизм префиксов в x86, или классический цветной видеосигнал. Вроде бы и совместимость со старой системой сохраняется, и новые фичи ввести можно. :)
В случае СВЧ — для минимизации отражений. Все микрополосковые линии имеют исключительно плавные очертания.

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

Начало работ по созданию гибкого [2] топологического трассировщика относится к 1988 году


Википедия.

Хотя, конечно, я не уверен, что при проектировании платы использовали именно его.
Как по мне, для того, чтобы проникнуться тем, как работает процессор, лучше попрограммировать на ассемблере AVR или MSP430 — их ассемблер очень приятен, логичен и прост. Ассемблер ARM по человекочитаемости так себе; лучше предоставить его генерацию компилятору. Тем более, что писать на нем критичные по времени участки кода (например, драйвер 1-Wire) все равно нет смысла, потому что хитрый конвейер ARM все испортит. Я даже не уверен, что здесь поможет использование инструкций data memory barrier после каждой команды…

Если есть желание отринуть Ардуино и погрузиться в настоящую разработку, достаточно просто отказаться от использования библиотек для гуманитариев и попробовать писать с настройкой периферии через регистры. Так получается, во-первых, эффективнее, а, во-вторых, дидактический эффект присутствует во всей красе — вы будете достаточно детально знать, как и что работает внутри контроллера. Но готовьтесь всерьез изучать Reference Manual на используемый чип.

В качестве среды разработки под STM32 могу порекомендовать EmBitz (сборка Code::Blocks + ARM-GCC). Очень удобная штука, при этом с умеренными системными требованиями.
Кхм? Раскладка печатной платы и корпус уже считаются основанием, чтобы заявить, что «разработано полностью нами»?


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

Весь мир использует те комплектующие, которые удобнее, не смущаясь вопросом, кто конкретно их производит. И никому это не мешает писать «Designed In Germany», например. Совсем яркий пример — Apple совсем не смущает, что за нее большую часть работы фактически делает Foxconn. И так далее.

Между прочим, вы правда считаете, что оттрассировать печатную плату — такая простая задача? Я вас разочарую. Это не игры в Ардуино; разработка печатной платы промышленного качества (хотя бы с учетом требований по EMI), тем более, для таких ограниченных габаритов — достаточно нетривиальное дело. А до печатной платы надо еще и схему разработать. Причем для проектирования успешного устройства недостаточно умения перерисовывать опорные разработки. Как заставить работать отдельные чипы вместе — отдельный вопрос, который иногда тем сложнее, чем более продвинутые чипы применяются.

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

Так что да, разработка устройства — это серьезный процесс, требующий участия хороших специалистов. И да, если в России «всего лишь» спроектировали схему, плату и корпус — то устройство разработано в России.
Залогинился специально для того, чтобы лично сказать, что отсутствие возможности поставить свою SIM-карту — это чистый, рафинированный vendor lock-in, то есть, полное свинство.

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

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


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

Там кстати дальше написано:

The LED driver is designed to accurately emulate an incandescent light bulb and therefore behave as an emulated resistor.

Это говорит о том, что в этой схеме ставить большой входной конденсатор просто нельзя, и потому приходится давить НЧ-пульсации на выходе. Это неоптимально, но спецы из TI идут на эту жертву ради высокого коэффициента мощности.

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

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

Надеюсь, к Texas Instruments у вас нет вопросов


Кстати есть. Вы не заметили, что на стр. 2 в схеме диодный мост перевернут? :) Цепь, обозначенная как V+, идет к минусу диодного моста. Ну это так, к слову.

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


Он решит ее на корню. Не верите мне — проведите эксперимент сами. Но такая лампа не будет диммируемой, и у нее будет посредственный коэффициент мощности.
По-моему, вы не читаете то, что я пишу. Или читаете через абзац. Выше я писал:

Теперь отвечу на основной комментарий. kdekaluga совершенно правильно описал вам работу импульсного БП сообщением ниже, все обстоит именно так. Естесственно, НЧ-пульсации можно подавить и выбором выходного конденсатора, но так делать нецелесообразно: количество энергии, запасенной в конденсаторе, пропорционально квадрату напряжения на нем (хотели формулу? E = (CU2)/2), потому по низким частотам емкостью всегда стабилизируют именно входное напряжение — для этого потребен физически меньший конденсатор.


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

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

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

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

Кстати, в статье по ссылке выше приведена оценка емкости выходного конденсатора, необходимой для подавления низкочастотных пульсаций на выходе, как вы настаиваете. Она составляет порядка 1000 мкФ. Такой конденсатор просто не поместится в стандартный цоколь лампы, в которых обычно монтируются такие схемы (лампа от Gauss по ссылке).

И следует заметить, что никакого чуда в этих трех лампочках нет.


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


Вот он, корень заблуждения. Те пульсации, которых намеряли 20%, происходят именно оттого, что балласт работает в режиме, существование которого вы вообще не рассматриваете. :)

...
Не зря когда я учился в институте, нам на метрологии говорили, что измерить — это еще даже не пол-дела; главное понять, что измерено, и что означает такой результат. :)


Так что, если судить по вашим критериям, от половины и более ламп на рынке «скорее неисправны, чем исправны».

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

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

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


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

Вполне вероятно, у нас действительно немного разное понимание терминологии. Давайте уточним.

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

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

Так яснее? Это вполне совпадает с вашим тезисом о независимости выходного тока регулятора от входного напряжения.

Интересное начинается, когда емкость входного конденсатора недостаточна, чтобы поддерживать входное напряжение в допустимых пределах на протяжении необходимого времени. Такое бывает, и гораздо чаще, чем вам, видимо, кажется. Вот тогда регулятор выходит из режима на время части полупериода, и яркость светодиодов периодически меняется, что мы и регистрируем как пульсации светового потока.

Ставить конденсатор недостаточной емкости могут по разным причинам — экономия, ограничения по физическому объему, совместимость с диммерами (например) и т.п.

Теперь о пульсациях и прочем. Вы как-то странно разделяете термины. На всякий случай еще раз повторяю: пульсации, помехи, флуктуации, «мырганья» — все это в данный момент для нас совершенно одно и то же. Все это, попав в питание светодиода, превращается в изменение светового потока, потому что инерция светодиода ничтожна. Для нас существует лишь ограничение по их спектру: цифру, называемую коэффициентом пульсаций, мы вычисляем для компонентов частотой не выше 300 Гц. Здесь я еще раз повторю, что сам по себе исправный драйвер не может генерировать пульсации на таких частотах. Появление их на выходе является следствием изменения питающего напряжения до значений, лежащих вне пределов, при которых драйвер штатно стабилизирует выходной ток.
пользователя LampTest, с чем я никак не согласен.


Прежде всего, я LampTester и не имею никакого отношения к LampTest. Хочу особо отметить, что этот ник я зарегистрировал почти на год раньше регистрации профиля LampTest, так что вопросы по поводу схожести — не ко мне.

Теперь отвечу на основной комментарий. kdekaluga совершенно правильно описал вам работу импульсного БП сообщением ниже, все обстоит именно так. Естесственно, НЧ-пульсации можно подавить и выбором выходного конденсатора, но так делать нецелесообразно: количество энергии, запасенной в конденсаторе, пропорционально квадрату напряжения на нем (хотели формулу? E = (CU2)/2), потому по низким частотам емкостью всегда стабилизируют именно входное напряжение — для этого потребен физически меньший конденсатор.

Кроме того, конденсаторы большой емкости, эффективно работающие на частотах нормируемых пульсаций (<300 Гц) имеют большое ЭПС, и потому ставить их на выход импульсного БП не стоит — высокочастотные помехи будут пролезать наружу (а еще начнутся проблемы с переходной характеристикой регулятора, и, возможно, со стабильностью ОС), а именно в их подавлении мы более всего заинтересованы на выходе (чтобы пройти нормы по ЭМС). Есть конденсаторы большой емкости с относительно низким ЭПС, но их стоимость гораздо выше предела, который можно позволить себе при разработке ширпотребного товара, а характеристики подавления ВЧ-помех все равно хуже, чем у керамики (ограниченной по диапазону емкости). Есть керамические конденсаторы большой емкости, но у них очень плохой ТКС и сильна зависимость емкости от постоянного смещения. В общем, одни компромиссы.

Мораль: низкочастотные помехи подавляют на входе, конденсатором значительной емкости, высокочастотные — на выходе, конденсатором малой емкости с низким ЭПС.

Теперь о пульсациях. Любое периодическое отклонение светового потока лампы от среднего является пульсацией. Разговор о каких-то «мырганиях» беспредметен. Коэффициент пульсаций нормируется до предела по частоте в 300 Гц, потому, технически, пульсации на частоте работы импульсного БП можно не подавлять вообще, т.е., совсем не ставить выходной конденсатор.

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

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


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

Верно, но, мы же говорим о правильно спроектированном изделии.


«Правильно» — понятие растяжимое. В топовом изделии все должно быть так, как вы описываете, ну и APFC заодно, но стоить оно будет не 300 руб. И кто его такое хорошее купит?

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


Рассчитываются они для частоты преобразования, потому что входное напряжение полагается не выходящим за допустимые пределы (т.е., считается, что преобразователь не выходит из режима стабилизации). Потому эта формула нас тут вообще не интересует.
Это значит, что на выходных конденсаторы сэкономили.


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

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


Так свинцово-кислотные аккумуляторы заряжали еще наши деды. Оптимальный алгоритм заряда, рекомендуемый сегодня (и который скорее всего используют в UPS), выглядит следующим образом:

1. Заряд постянным током: конечное напряжение принимается на уровне порядка 2.4 В на ячейку, ток ограничивается на уровне, разрешенном для данного типа аккумулятора (его пишут в документации, а чаще всего и прямо на корпусе). Времена, когда свинцово-кислотные акумуляторы можно было заряжать только в режиме C/10, давно прошли.

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

3. Когда ток упадет до, например, 5% начального, напряжение на аккумуляторе снижают до примерно 2.3 В на ячейку. Ток при этом падает почти до нуля. Все, батарея находится в буферном режиме, компенсирующем ее саморазряд. Именно в таком режиме стоят батареи в UPS.

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

Кстати, литий-ионные аккумуляторы имеют совершенно такой же алгоритм заряда. Отличие состоит в том, что допуски на напряжения гораздо строже и буферный режим категорически недопустим.

Подробнее можно почитать на Battery University, например.
Поэтому необходимо было использовать пины Ардуино с аппаратным прерыванием. Так как у Ардуино УНО таких пинов всего два, а под датчики нужно три пина, надо взять Ардуино Леонардо или Искра Нео, где таких пинов — четыре штуки.


Ох, печаль какая! А давайте документацию почитаем? Документацию производителя контроллера, а не ардуиноделов. Впрочем, последняя нам тоже понадобится, правда, сугубо для того, чтобы выяснить, какой контроллер стоит на этой чудесной плате. Так то, марку контроллера можно просто прочесть, просто у меня нет под рукой Arduino UNO.

Итак, в Arduino UNO стоит ATmega328P. Идем и читаем даташит, откуда всякий желающий может узнать, что наш чудесный чип поддерживает прерывания на всех ножках (PCINT)!

Фантастика, да? Просто ардуиноделы почему-то не говорят про это, и, похоже, не сделали API к этой аппаратной возможности.

И с ардуиной такое на каждом шагу.
Долго думал, писать комментарий или нет (вроде бы все уже и без меня сказали), но все же решил отметиться.

Что я могу сказать? Конечно, железо безумно избыточное. На примененном контроллере можно было бы реализовать софтовый декодер mp3, вывод аудио реализовать на нем же через I²S на отдельный DAC или прямо со встроенных двенадцатибитных DAC (чего, наверное, для радио в такой коробочке вполне хватит).

Сложно объяснить выбор такого МК для задачи, сводящейся к некоторой элементарной настройке ESP8266 и перекладыванию потока из ESP в аппаратный декодер mp3 (что вообще можно делать через DMA). Признавайтесь, использовали STM32Cube? :)

Однако я бы, кстати, предпочел аппаратный декодер программному (поставив менее грандиозный контроллер, конечно). Тому есть одна простая причина: mp3 — кодек, требующий лицензионных отчислений. Если мы реализуем его программно, то в случае устройства, которое планируется продавать, надо заморачиваться еще и этим, а если мы ставим аппаратный кодек, то при приобретении микросхемы мы платим отчисления автоматически. Здесь ситуация схожая с USB и тамошней покупкой VID — проще поставить USB-UART конвертер и спать спокойно.

Потом, я бы задавал список радиостанций и прочие конфиги с файла на SD-карте, это гораздо удобнее. Кстати, можно было бы заодно и локальный плеер прикрутить.

Про металлизацию под антенной модуля на ESP8266 не говорю, наверняка вам на это уже указали.

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

В заключение отмечу, что когда-то я тоже задумывался о плеере интернет-радио. Однако потом я посчитал, сколько это будет стоить и сколько труда надо вложить для получения приличного продукта, и просто купил планшет с колонками.
Если говорить конкретно о nRF24L01+, то, в принципе, она поддерживает адресацию (в режиме enahnced ShockBurst). Можно разделять по адресу, можно разделять по частотному каналу.
На утрату флешкой способности хранить данные влияют два фактора:

1. Износ ячейки в процессе записи.
2. Стекание заряда ячейки в процессе хранения.

Скорость стекания заряда зависит от температуры хранения и условий облучения ионизирующими излучениями.

В промышленных микросхемах памяти оба параметра нормируются. Типовые значения времени сохранности данных (data retention time), гарантируемые в документации, как правило составляют порядка двадцати лет при +85 °C; количество циклов перезаписи может составлять порядка 10000 и более.

Надо сказать, что FLASH-память может быть изготовлена на основе одноуровневых (SLC, Single Level Cell) либо многоуровневых (MLC, Multi Level Cell) ячеек. В первых одна ячейка хранит один бит данных (заряд есть/нет), во втором случае — несколько (контролируется уровень заряда). MLC менее устойчивы в плане стекания заряда, но стоимость хранения мегабайта в них гораздо ниже.

Для бытовых флешек, увы, никто не гарантирует параметров. Но можно сразу сказать, что USB-затычка размером с ноготь, имеющая объем 32 GB, скорее всего выполнена по технологии MLC, и доверять ей бекап критичных архивов не стоит. А вот флешка объемом 1 GB, произведенная пять лет назад, скорее всего SLC, и скорее всего надежнее.

Вариант для параноиков — хранить бекапы на промышленных микросхемах, дублировать их, а также организовать перезапись данных раз в несколько лет. :) Правда, стоимость такого хранения будет порядка $0.2 за мегабайт (например, в случае микросхемы вроде W25Q64).
Они не поверхностны; просто, что бы там ни задвигали феминистки, у женщин от природы другие задачи, что и определяет их характерные особенности.

Information

Rating
Does not participate
Registered
Activity