Да, это актуально всегда. Одна и та же микросхема всегда шумит одинаково (при одинаковой частоте переключений), что в простой схеме, что в сложной. В принципе, можно было бы встраивать этот конденсатор прямо внутрь микросхемы (выпускают же операционные усилители со встроенными элементами частотной компенсации), но этого не делают потому, что в разном окружении требования к развязывающим конденсаторам могут разниться, хотя чаще всего хватает керамики 100 нФ, как я уже писал выше. Да и конденсатор достаточно громоздкий элемент в масштабах кристалла. Сделать на кристалле конденсатор емкостью в десятки нанофарад будет сложно, дорого и неэффективно, а монтировать его по гибридной технологии — опять же дорого (усложнение техпроцесса). Потому остается ставить внешние конденсаторы.
Речь идет о регуляторе напряжения, AMS117-5. Кстати я почитал даташит на него, и выяснил, что конденсаторы вы не поставили очень, очень зря. Вам просто повезло, что он еще работает, правда, непонятно насколько повезло — надо бы ткнуться осцилографом и посмотреть, не генерирует ли он. Ибо на странице 4 читаем:
The circuit design used in the AMS1117 series requires the use of
an output capacitor as part of the device frequency compensation.
The addition of 22μF solid tantalum on the output will ensure
stability for all operating conditions.
When the adjustment terminal is bypassed with a capacitor to
improve the ripple rejection, the requirement for an output
capacitor increases. The value of 22μF tantalum covers all cases of
bypassing the adjustment terminal. Without bypassing the
adjustment terminal smaller capacitors can be used with equally
good results.
To further improve stability and transient response of these
devices larger values of output capacitor can be used.
То есть мои предостережения — четко ваш случай.
Насчет почитать — должен сразу извиниться, сходу я не могу назвать ни одной книги или статьи на русском. Если с английским нормально, то вот Dave Jones очень доходчиво рассказывает про развязывающие конденсаторы (YouTube, eevblog). Насчет стабильности наверное можно почитать Linear Circuit Design Handbook от Analog Devices.
решил что стабилизации 12В будет достаточно, а выходные 5В плавать не должны.
Конденсаторы ставятся не для стабилизации, а (в цифровых схемах) для подавления помех, возникающих за счет переключения логических элементов внутри цифровых микросхем. Конденсатор рядом с цифровой микросхемой должен быть всегда и обязательно — это правило хорошего тона. Типовой номинал — 100 нФ, керамика (у керамических конденсаторов низкий ESR). Работать, как видно, будет и без этого, но ухудшится надежность и электромагнитная совместимость.
Регулятор же без конденсаторов определенной емкости и типа может возбуждаться. Проявляться может повышенными шумами по питанию или даже нагревом с выходом из строя. Надо смотреть, разрешено ли в документации использовать регулятор без конденсаторов.
не уверен что ОУ нормально это воспримет, особенно учитывая низкую частоту ШИМ.
Я имел в виду, предварительно его отфильтровав. Скажем, поставить фильтр саллена-кея второго порядка с частотой среза этак 5 кГц при частоте ШИМ порядка 30 кГц. На выходе будет чудесный постоянный уровень, правда меняться будет медленно — ну так быстро тут и не надо.
если они хорошо реализованы
C этим у StdPeriph_Lib есть определенные проблемы.
главное проверить что они делают именно что нужно.
Как правило, за время проверки чужого кода такого типа можно написать свой.
У чужих библиотек всегда один недостаток — непонятно, что внутри, а потому неизвестно, какие сюрпризы можно словить. Потому надо изучать код. Однако как правило проще и быстрее написать свой.
"Время разработчика дороже чипа" — знакомая песня. Люди (и разработчики тоже) склонны любить то, что позволяет им не включать мозг. Бизнес склонен любить то, что позволит выпустить устройство через неделю, пускай оно и будет ужасно неоптимально — покупатель не разберется. В итоге имеем то, что имеем. И ситуация год от года становится печальнее.
Помнить все регистры и их биты слишком сложно.
А помнить все функции StdPeriph_Lib и все поля ее стуктур проще? И в том, и в другом случае не надо помнить ничего кроме основного принципа. Просто надо держать под рукой документацию и не стесняться в нее заглядывать.
Более того, похожие библиотеки есть у Миландра и Техаса.
Это говорит только о том, что и они вынуждены прогибаться под требования рынка, возникающие из соображений, имеющих корень в алчности инвесторов. TI так и вообще под Arduino косить начали (Energia).
Имея опыт работы с SPL можно быстро перейти на аналоги, например MDR у Миландра.
Имея опыт программирования контроллеров вообще, можно быстро перейти на любой другой контроллер — была бы документация и toolchain.
Если бы SPL не была так хороша, то про неё давно забыли (забили) бы, imho.
Из той же серии — "если бы курить было так вредно, все бы давно бросили", верно?
В целом, я не имею желания разводить тут холивар. Вы высказались, я высказался. А теперь пойдемте писать код, каждый по-своему.
Часто такую задумку быстрее спаять из бросовых деталей, и если не заработало сходу — выбросить, чем проделать все ваши бесусловно правильные пункты.
Брррр. Я никогда не собираю ничего наугад. Либо есть веские основания полагать, что устройство заработает (а эксперимент только подтвердит или опровергнет теоретические соображения), либо я просто не берусь за паяльник.
Хотя может быть это уже профессиональная деформация разработчика… К слову я волевым усилием (почти) отучил себя собирать электрохлам. С душевным трудом, но отношу на помойку, потому что понимаю, что (в моем случае) вероятность разумно использовать вторичные детали крайне мала.
Прошу прощения, если кто уже спрашивал, но почему R-2R, а не ШИМ? Большая скорость обновления тут не нужна, но зато ШИМ линейнее.
Кстати, в STM32F100Cx есть т.н. advanced control timer, который в числе прочего поддерживает прямую аппаратную обработку энкодера. Т.е., крутим энкодер — а значение в регистре таймера само меняется соответственно механическому положению крутилки. Ну и два двенадцатибитных ЦАП. Но конечно, фактор "есть под рукой" понятен и естесственнен; про STM32 это я так, к слову.
на текущий момент у меня есть опыт работы только с PIC.
На самом деле, разные контроллеры-то идейно мало чем отличаются друг от друга, так что если есть опыт работы с PIC, перейти на STM будет несложно. Главное, не ведитесь на StdPeriphLib, STM32MX Cube и прочие протезы для мозга, которые по маркетинговым причинам в изобилии предлагает ST. Читайте даташит, после него — reference manual. Дальше качайте среду разработки по вкусу (я предпочитаю EmBlocks), и вперед. Все как и везде — регистры, биты, прерывания. Остальное решается внимательным чтением документации, ничего сверхъестесственного.
Тогда надо брать не первый попавшийся усилитель, а четко тот, который указан на схеме. А если брать тот же, то и проблемы с корпусом нет — он тоже указан.
Шаг 1: анализируете схему, которую хотите собрать, на предмет того, какие требования она предъявляет к ОУ. Дальше я буду говорить из предположения, что там будет компаратор или триггер Шмитта, умощненный транзистором — описанные вами устройства ("простенькая схемка для управления вентилятором в холодильнике") обычно делаются именно так.
Шаг 2: вы ищете даташит на ОУ и смотрите:
является ли он устойчивым при единичном усилении (unity gain stable);
будет ли он работать при планируемом вами напряжении питания (не все ОУ нормально работают от однополярного питания напряжением 5 В);
относится ли он к rail-to-rail усилителям, если нет, думаете, насколько это критично в данной схеме;
какой ток этот ОУ может выдать и хватит ли его для управления выходным транзистором (если схема это предполагает);
есть ли у него защита на входе в виде двух встречновключенных диодов — у многих ОУ бывает, такие ОУ непригодны для работы в качестве компаратора;
можно ли ему на вход подавать напрямую землю/питание ("common mode voltage includes supply/ground") — в схеме компаратора это может понадобиться;
может быть это вообще ОУ с токовой ОС, тогда он просто не подходит.
Это навскидку. Ну а дальше можно дочитать маркировку до конца и поглядеть по ней, какой там корпус у вашего конкретного экземпляра. Брать "первый попавшийся усилитель" и трассировать плату, опираясь только на картику из гугла — самый верный путь к приключениям.
Я, разумеется, не оспариваю необходимость упрощения материала, но, по-моему, в случае технических статей упрощение никогда не должно означать перехода к размытым, а то и явно ошибочным формулировкам. Полуправда здесь иногда бывает хуже явной лжи, ибо еще сильнее запутывает человека, пытающегося разобраться.
Об упрощении
Я бы вообще не стал вдаваться в природу синфазной и квадратурной компонент (I/Q) — это материал для отдельной статьи. Просто не грузить этим читателя, если мы предполагаем, что он изначально мало знаком с темой. Далее, формулировка "способ преобразовать низкочастотный сигнал в высокочастотный" наводит на мысли об умножении частоты, в то время как имеется в виду перенос информации с одной несущей на другую. И так далее...
Не знаю, честно говоря, как тут принято, я все же не завсегдатай этого ресурса. Пускай кто-нибудь более знающий укажет, как следует поступить. Сама-то статья несомненно интересная, ибо, насколько я могу судить, про GNU Radio на русском написано не так много.
Статья неплохая, но содержит множество технических неточностей.
Описание неточностей
Важно помнить, что физически значимый сигнал — это действительная часть Re нашего комплексного представления.
Оба сигнала физически значимы, и по отдельности спектрально представляют собой смесь спектров справа и слева от несущей с разными
фазовыми соотношениями, что дает возможность отделить и использовать то, что в классическом гетеродинировании является зеркальным каналом и просто подавляется. Это является основной целью квадратурной обработки.
Итак, получив последовательность значений I и Q
Комплексный сигнал, то есть.
SDR (Software Defined Radio) позволяет программно перестраивать приёмник и передатчик для работы на различных частотах от 20 до 2000 МГц, после чего произвести обработку сигнала на компьютере с помощью цифровых методов. Это существенно отличает SDR от аналоговых схем радиопрёмников и передатчиков, позволяя легко менять алгоритм обработки полученного сигнала.
Существенное отличие технологии SDR в том, что SDR-приемники дают доступ к квадратурным составляющим сигнала. Почти все современные приемники (Wi-Fi, Bluetooth, чипы вроде nRFxxxx) производят обработку сигнала именно в квадратуре, но не все дают к ней доступ извне.
Модуляция — это способ преобразовать низкочастотный сигнал в высокочастотный, чтобы потом, после передачи, его демодулировать, т.е. преобразовать обратно в низкочастотный.
Скорее способ переноса спектра сигнала в область несущей.
Понятно, что оцифровывать сигнал на такой частоте даже современным компьютерам не под силу — для надёжной оцифровки потребуется запускать АЦП примерно каждые 8000 раз в секунду (если мы считаем 10 отсчётов на период достаточным шагом по времени).
Скорее 869 МГц*10 = 8.7 GSPS.
Те, кто помнят устройство старых радиоприёмников, увидят здесь аналогию с гетеродином.
Это и есть гетеродинирование.
Работа SDR состоит в том, чтобы сгенерировать синтетический сигнал на нужной частоте, перемножить его с отфильтрованным входным сигналом с антенны, пропустить через фильтр низких частота, убрав высокочастотную компоненту, и подать на АЦП.
В этом состоит работа аналоговых входных цепей (analog front-end). Само по себе SDR — принцип прямого доступа к квадратурным составляющим с программного уровня.
фильтр низких частот работает по принципу преобразования спектра сигнала, уменьшая высокие частоты, после чего полученный спектр обратно преобразуется в сигнал.
Не буду врать, я не знаком с конкретной реализацией GNU Radio, но классический цифровой фильтр — это свертка сигнала с соответствующим ядром. Все это происходит во временнОй области, без перехода в частотную.
Теперь становится понятно, что для анализа полосы от -200 до 200 кГц нам нужно иметь sample rate не менее 400 000.
В случае вещественного сигнала значимые компоненты расположены до частоты Котельникова/Найквиста, а дальше зеркально повторяются. В случае комплексного сигнала используются все выборки.
К слову, это одно из преимуществ квадратурной обработки — каждый канал (I/Q) требует только половину полосы сигнала.
По идее он, напротив, должен увеличиться, равно как и срок службы светодиодов. Чтобы сказать точнее, надо смотреть документацию на конкретную серию конденсаторов. Серьезные производители указывают информацию по надежности.
Чудес не бывает. Определенная освещенность — это определенная энергия светового излучения на квадратный метр. Энергия светового излучения однозначно связана с потребляемой (электрическим) источником света электрической энергией через его КПД. Потому при одних и тех же условиях использования никакая автоматика не поможет сравнять энергопотребление устройства с КПД 5% и устройства с КПД 30%. Мы будем проигрывать либо в освещенности (что уже действительно может быть плохо для глаз), либо в продолжительности работы освещения.
Остальное я комментировать не буду. Как любой инженер я придерживаюсь классической теории научного познания, которая говорит о том, что, применительно к материальному миру, то, чего нельзя измерить, не существует.
Я вот не понимаю одного — ну прекратили разработку, ну и что? Во всем мире сразу исчезли все его бинарники? Или он моментально перестал работать на всех ОС? Или стандарты mp3/ogg/wma/etc уже ушли настолько далеко, что Winamp больше не может открыть современный файл? Почему такая тяга сразу хоронить?
С браузерами еще можно понять — WEB развивается очень быстро (хотя необходимость многих фич и спорна), потому классическая Opera сейчас малополезна. Но плеер? Он как работал, так и работает. Сам наблюдаю.
Так же и Windows XP. Она как работала во многих местах, так и работает. Отчего такая грусть и паника?
Речь идет о регуляторе напряжения, AMS117-5. Кстати я почитал даташит на него, и выяснил, что конденсаторы вы не поставили очень, очень зря. Вам просто повезло, что он еще работает, правда, непонятно насколько повезло — надо бы ткнуться осцилографом и посмотреть, не генерирует ли он. Ибо на странице 4 читаем:
The circuit design used in the AMS1117 series requires the use of
an output capacitor as part of the device frequency compensation.
The addition of 22μF solid tantalum on the output will ensure
stability for all operating conditions.
When the adjustment terminal is bypassed with a capacitor to
improve the ripple rejection, the requirement for an output
capacitor increases. The value of 22μF tantalum covers all cases of
bypassing the adjustment terminal. Without bypassing the
adjustment terminal smaller capacitors can be used with equally
good results.
To further improve stability and transient response of these
devices larger values of output capacitor can be used.
То есть мои предостережения — четко ваш случай.
Насчет почитать — должен сразу извиниться, сходу я не могу назвать ни одной книги или статьи на русском. Если с английским нормально, то вот Dave Jones очень доходчиво рассказывает про развязывающие конденсаторы (YouTube, eevblog). Насчет стабильности наверное можно почитать Linear Circuit Design Handbook от Analog Devices.
Конденсаторы ставятся не для стабилизации, а (в цифровых схемах) для подавления помех, возникающих за счет переключения логических элементов внутри цифровых микросхем. Конденсатор рядом с цифровой микросхемой должен быть всегда и обязательно — это правило хорошего тона. Типовой номинал — 100 нФ, керамика (у керамических конденсаторов низкий ESR). Работать, как видно, будет и без этого, но ухудшится надежность и электромагнитная совместимость.
Регулятор же без конденсаторов определенной емкости и типа может возбуждаться. Проявляться может повышенными шумами по питанию или даже нагревом с выходом из строя. Надо смотреть, разрешено ли в документации использовать регулятор без конденсаторов.
Я имел в виду, предварительно его отфильтровав. Скажем, поставить фильтр саллена-кея второго порядка с частотой среза этак 5 кГц при частоте ШИМ порядка 30 кГц. На выходе будет чудесный постоянный уровень, правда меняться будет медленно — ну так быстро тут и не надо.
C этим у StdPeriph_Lib есть определенные проблемы.
Как правило, за время проверки чужого кода такого типа можно написать свой.
Да-да, а Ардуино так вообще верх совершества.
"Время разработчика дороже чипа" — знакомая песня. Люди (и разработчики тоже) склонны любить то, что позволяет им не включать мозг. Бизнес склонен любить то, что позволит выпустить устройство через неделю, пускай оно и будет ужасно неоптимально — покупатель не разберется. В итоге имеем то, что имеем. И ситуация год от года становится печальнее.
А помнить все функции StdPeriph_Lib и все поля ее стуктур проще? И в том, и в другом случае не надо помнить ничего кроме основного принципа. Просто надо держать под рукой документацию и не стесняться в нее заглядывать.
Это говорит только о том, что и они вынуждены прогибаться под требования рынка, возникающие из соображений, имеющих корень в алчности инвесторов. TI так и вообще под Arduino косить начали (Energia).
Имея опыт программирования контроллеров вообще, можно быстро перейти на любой другой контроллер — была бы документация и toolchain.
Из той же серии — "если бы курить было так вредно, все бы давно бросили", верно?
В целом, я не имею желания разводить тут холивар. Вы высказались, я высказался. А теперь пойдемте писать код, каждый по-своему.
Брррр. Я никогда не собираю ничего наугад. Либо есть веские основания полагать, что устройство заработает (а эксперимент только подтвердит или опровергнет теоретические соображения), либо я просто не берусь за паяльник.
Хотя может быть это уже профессиональная деформация разработчика… К слову я волевым усилием (почти) отучил себя собирать электрохлам. С душевным трудом, но отношу на помойку, потому что понимаю, что (в моем случае) вероятность разумно использовать вторичные детали крайне мала.
Кстати, в STM32F100Cx есть т.н. advanced control timer, который в числе прочего поддерживает прямую аппаратную обработку энкодера. Т.е., крутим энкодер — а значение в регистре таймера само меняется соответственно механическому положению крутилки. Ну и два двенадцатибитных ЦАП. Но конечно, фактор "есть под рукой" понятен и естесственнен; про STM32 это я так, к слову.
На самом деле, разные контроллеры-то идейно мало чем отличаются друг от друга, так что если есть опыт работы с PIC, перейти на STM будет несложно. Главное, не ведитесь на StdPeriphLib, STM32MX Cube и прочие протезы для мозга, которые по маркетинговым причинам в изобилии предлагает ST. Читайте даташит, после него — reference manual. Дальше качайте среду разработки по вкусу (я предпочитаю EmBlocks), и вперед. Все как и везде — регистры, биты, прерывания. Остальное решается внимательным чтением документации, ничего сверхъестесственного.
Оба варианта неверные. Верный вариант:
Шаг 1: анализируете схему, которую хотите собрать, на предмет того, какие требования она предъявляет к ОУ. Дальше я буду говорить из предположения, что там будет компаратор или триггер Шмитта, умощненный транзистором — описанные вами устройства ("простенькая схемка для управления вентилятором в холодильнике") обычно делаются именно так.
Шаг 2: вы ищете даташит на ОУ и смотрите:
Это навскидку. Ну а дальше можно дочитать маркировку до конца и поглядеть по ней, какой там корпус у вашего конкретного экземпляра. Брать "первый попавшийся усилитель" и трассировать плату, опираясь только на картику из гугла — самый верный путь к приключениям.
Не знаю, честно говоря, как тут принято, я все же не завсегдатай этого ресурса. Пускай кто-нибудь более знающий укажет, как следует поступить. Сама-то статья несомненно интересная, ибо, насколько я могу судить, про GNU Radio на русском написано не так много.
Описание неточностей
Оба сигнала физически значимы, и по отдельности спектрально представляют собой смесь спектров справа и слева от несущей с разными
фазовыми соотношениями, что дает возможность отделить и использовать то, что в классическом гетеродинировании является зеркальным каналом и просто подавляется. Это является основной целью квадратурной обработки.
Комплексный сигнал, то есть.
Существенное отличие технологии SDR в том, что SDR-приемники дают доступ к квадратурным составляющим сигнала. Почти все современные приемники (Wi-Fi, Bluetooth, чипы вроде nRFxxxx) производят обработку сигнала именно в квадратуре, но не все дают к ней доступ извне.
Скорее способ переноса спектра сигнала в область несущей.
Скорее 869 МГц*10 = 8.7 GSPS.
Это и есть гетеродинирование.
В этом состоит работа аналоговых входных цепей (analog front-end). Само по себе SDR — принцип прямого доступа к квадратурным составляющим с программного уровня.
Не буду врать, я не знаком с конкретной реализацией GNU Radio, но классический цифровой фильтр — это свертка сигнала с соответствующим ядром. Все это происходит во временнОй области, без перехода в частотную.
В случае вещественного сигнала значимые компоненты расположены до частоты Котельникова/Найквиста, а дальше зеркально повторяются. В случае комплексного сигнала используются все выборки.
К слову, это одно из преимуществ квадратурной обработки — каждый канал (I/Q) требует только половину полосы сигнала.
Остальное я комментировать не буду. Как любой инженер я придерживаюсь классической теории научного познания, которая говорит о том, что, применительно к материальному миру, то, чего нельзя измерить, не существует.
Да, цена у них великовата… Но как минимум год они уже отработали без существенного ухода характеристик.
Не за что.
С браузерами еще можно понять — WEB развивается очень быстро (хотя необходимость многих фич и спорна), потому классическая Opera сейчас малополезна. Но плеер? Он как работал, так и работает. Сам наблюдаю.
Так же и Windows XP. Она как работала во многих местах, так и работает. Отчего такая грусть и паника?