Реле Tianbo - ресурс 10 млн переключений

Микроконтроллер формирует аналоговые кривые Гаусса без использования ЦАП

Microchip PIC12F675

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

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

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

Простая схема с микроконтроллером (Рисунок 1) формирует аналоговую гауссову кривую без использования ЦАП. Ключом к этой конструкции является то, что большинство микроконтроллеров позволяют динамически реконфигурировать свои контакты ввода-вывода, чтобы они работали либо как высокоимпедансные входы, либо как выходы. Аналоговое ядро схемы представляет собой интегратор на операционном усилителе (IC2b), опорное напряжение которого устанавливается равным половине напряжения питания с помощью другой половины (IC2a) сдвоенной микросхемы.

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

Когда выход GP1 микроконтроллера находится в высокоимпедансном состоянии, интегратор IC2b не заряжается и не разряжается, и выходное напряжение остается постоянным. Когда выходное напряжение, считанное аналоговым входом AN0 микроконтроллера, показывает, что требуется большее выходное напряжение, программа устанавливает на выводе GP1 низкий логический уровень, чтобы интегратор заряжался.

При обнаружении слишком высокого напряжения GP1 устанавливается в состояние «лог. 1», и интегратор разряжается. Программа, листинг которой приведен в разделе Загрузки, разработана таким образом, чтобы этот следящий контур демпфировался для предотвращения чрезмерно затянутого «поиска» возле заданного напряжения, как показано на диаграмме выходного сигнала (Рисунок 2).

Шум, как видно на этой «ленточной диаграмме» схемы, имитирует на выходе типичный сигнал данных.
Рисунок 2. Шум, как видно на этой «ленточной диаграмме» схемы,
имитирует на выходе типичный сигнал данных.

Rail-to-rail операционные усилители, подобные тому, который используется в этой схеме, плохо работают с сигналами вблизи шин питания, поэтому получение сигнала с истинно нулевым напряжением при однополярном питании невозможно. Лабораторные измерения при работе схемы на высокоимпедансную нагрузку показывают минимальное напряжение около 30 мВ. Кроме того, этот подход к формированию напряжения не будет работать для быстро меняющихся сигналов. Для используемого 4-мегагерцового процессора пределом являются два обновления в секунду.

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

Загрузки

  1. Листинг программы

Материалы по теме

  1. Datasheet Microchip PIC12F675
  2. Datasheet Texas Instruments TLC2272

Electronic Design

Перевод: AlexAAN по заказу РадиоЛоцман

На английском языке: Microcontroller Generates Analog Gaussian Waveform Without Need for a DAC

56 предложений от 33 поставщиков
Микропроцессор PIC, Ядро 8bit, 1.75K-Flash 64B-SRAM 128B-EPROM, 20MHz, 2.0V…5.5V, -40°C…85°CМикроконтроллеры PIC (Peripheral Interface Controller) - это программируемые ППЗУ, имеют малое энергопотребление,...
ЗУМ-СМД
Россия
PIC12F675-I/SN
Microchip
7.02 ₽
PIC12F675-I/SN
Microchip
25 ₽
Utmel
Весь мир
PIC12F675-E/SN
Microchip
от 57 ₽
PIC12F675-I/SNG
Microchip
по запросу
Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • Мне кажется, судя по длине программы в 10 строк кода с двумя if(), автор с таким же успеходм мог использовать вместо МК оконный компаратор (пару компараторов) и любую м/с логики с входом разрешения (строкой Z-состояния в таблице). МК "притянут за уши". Возможно, я ошибаюсь.
  • Более того, чтобы поменять форму кривой, даже просто постоянную времени, нужно менять номиналы внешних элементов, а контроллер тогда зачем? Хотя бы ШИМ тогда использовали!
  • Уважаемый [b]antonydublin[/b], скорее всего ошибаетесь. Представленный вариант не является прибором, а просто демонстрационное устройство. Интегратор суммирует шум, на что прямо указывает автор. Для организации выборки используется МК, точнее - его способность переключать назначение портов. В качестве входных данных для МК используется выходное напряжение интегратора. За счет этого формируется восходящая ветвь напряжения на выходе интегратора, когда с каждым следующим шагом итерации растет скорость выходного напряжения. Так продолжается до достижения порога выходного напряжения. Затем все повторяется в обратном порядке. Таким образом формируется некое подобие нормальной выборки с образованием горба максимальной плотности выборки. Конечно, подобный вариант можно реализовать на отдельно взятых элементах, о которых Вы сказали. Но это будет более громоздкая схема, требующая дополнительной настройки. Попутно хочу отметить, что для изменения формы кривой Гаусса, совсем не нужно менять внешние элементы обвязки интегратора.
  • Да, Вы правы. Я написал комментарий и лишь потом прикинул, что портребуется для реализации скользящей задержки для аппроксимации нужной формы кривой. И получается в самом деле невесело без МК.
  • Получается кусочно-линейная аппроксимация Гаусс-функции. В этом смысле ИМХО табличный ШИМ был бы не хуже в плане приближения к реальной функции, а возможность перестройки по частоте - выше. Шум в виде нескольких цифровых отсчётов также легко добавить программно.