Ввод информации через аналоговый компаратор

AVR. Учебный курс. Использование аналогового компаратора

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

Это уже почти стандартное устройство и встречается очень часто во множестве разных контроллеров. Даже в древнем, как говно мамонта, АТ89С2051 он уже есть.

Штучка прикольная, позволяет сравнивать два аналоговых сигнала и выносить свой вердикт 0 первый больше второго, 1 второй больше первого.

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

Например, на входе у нас 8 вольт. Со стабилитрона, рассчитанного на 3.3 вольта, выходит всегда одно и то же напряжение — 3.3 вольта. А с симметричного резистивного делителя выходит половина напряжения то есть 4 вольта. 4 это больше чем 3.3, (3.3 — 4 = -0.7 результат меньше нуля) с компаратора выходит 0

Теперь если просядет батарейка и напряжение снизится до 6 вольт, то с делителя будет уже 3 вольта, а с опорного как было 3.3 так и осталось. Зато теперь на компараторе ситуация в корне поменялась — 3 меньше чем 3.3 (3.3 — 3 = 0.3 результат больше нуля) , а значит на выходе у него будет 1

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

Настройка компаратора в контроллере AVR ATMega16
Для других моделей AVR все очень и очень похоже, просто мне так удобней. Если будет затруднение спросишь в комментах.

Мега16 имеет на борту компаратор, со входами AIN0(прямой вход) и AIN1(инверсный вход) Чтобы компаратор заработал его выводы нужно подключить на вход (DDR=0) и отключить подтяжку до единицы (PORT=0).

Регистр конфигураций компаратора ACSR
Биты:

  • ACD включение компаратора 0 включен, 1 выключен. По дефолту там ноль, а значит при старте компаратор включен.
  • ACBG — подключение к прямому входу компаратора внутреннего источника опорного напряжения (ИОН) на 1.22+(-)0.05V. Если 0 то ИОН не подключен.
  • ACO — бит результата. Собственно, это и есть выход компаратора.
  • ACI — флаг прерывания. Я думаю, что ты уже привык к тому, что в AVR есть прерывание на каждый чих. Компаратор не исключение. Устанавливается по событию, сбрасывается после ухода на обработчик либо программно, как всегда, записью в него 1.
  • ACIE — где есть прерывание там должен быть и бит разрешения. Это он и есть. Установив в 1 мы разрешаем прерывания от компаратора. По дефолту, естественно, нуль.
  • ACIC — подключение компаратора к схеме захвата таймера1. При попадании сигнала на схему захвата текущее значение с таймера тут же тырится в специальный регистр захвата, а таймер продолжает считать дальше. А в привязке к компаратору это удобно когда нужно измерять длительности сигналов.
  • Биты ACIS1:ACIS0 определяет условие возникновения прерывания от компаратора:
    • 00 — любое изменение на входе.
    • 01 — зарезервировано для следующих поколений
    • 10 — переход с 1 на 0
    • 11 — переход с 0 на 1

Вот за что люблю АТМеги так это за фарш! Даже свой собственный источник опорного напряжения есть.

Так что из схемы со стабилитроном можно смело выкинуть все, что касается стабилитрона 🙂 Оставив только делитель, ну и подобрав плечи резисторного делителя так, чтобы получить напругу на выходе чуть выше чем 1.22V.

Мало того, если в контроллере есть АЦП, то на вывод AIN1 можно подключить ЛЮБОЙ вход АЦП. Нереально круто! Для того, чтобы это сделать нужно:

  • В регистре SFIOR (регистр специальных функций) выставить бит ACME (вроде бы так ракеты назывались в мультике про койота и страуса 😉 )
  • Выключить АЦП, сбросив бит ADEN в регистре настроек АЦП (ADCSRA)
  • В регистре ADMUX в разрядах MUX2:MUX1:MUX0 указать номер входа АЦП.

Пример:
В качестве примера я возьму своего робота. Сварганив ему систему контроля за питанием. Напряжение с аккумулятора проходит через делитель 1.5:10 в результате на 12 вольтах у нас на выходе будет (1.5/(1.5+10))*12=1.56 и только при просадке напруги до 9.

5 вольт на выходе делителя будет ниже 1.22 вольта. Заюзаю пока неиспользованный вход PC5 (это вход ADC5)
Заправлю его через АЦП в компаратор, а в качестве опорного напряжения возьму встроенный ION который посажу на AIN0 изнутри.

При просадке напряжения буду зажигать контрольную лампу.

Что нам нужно:
Для начала подключить ИОН — бит ACBG Далее, бит прерывания — в обработчике прерываний я включу лампочку

Ну и выставить условие по которому будет прерывание с 0 на 1. Дело в том, что на плюс-вход компаратора идет 1.22 с ИОН, а на минус-вход пойдет 1.5 с делителя. В результате 1.22-1.5

Источник: http://easyelectronics.ru/avr-uchebnyj-kurs-ispolzovanie-analogovogo-komparatora.html

Аналого-цифровое преобразование для начинающих

В этой статье рассмотрены основные вопросы, касающиеся принципа действия АЦП различных типов.

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

Введение

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

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

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

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

Основные характеристики АЦП

АЦП имеет множество характеристик, из которых основными можно назвать частоту преобразования и разрядность. Частота преобразования обычно выражается в отсчетах в секунду (samples per second, SPS), разрядность – в битах.

Современные АЦП могут иметь разрядность до 24 бит и скорость преобразования до единиц GSPS (конечно, не одновременно). Чем выше скорость и разрядность, тем труднее получить требуемые характеристики, тем дороже и сложнее преобразователь.

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

Типы АЦП

Существует множество типов АЦП, однако в рамках данной статьи мы ограничимся рассмотрением только следующих типов:

  • АЦП параллельного преобразования (прямого преобразования, flash ADC)
  • АЦП последовательного приближения (SAR ADC)
  • дельта-сигма АЦП (АЦП с балансировкой заряда)

Существуют также и другие типы АЦП, в том числе конвейерные и комбинированные типы, состоящие из нескольких АЦП с (в общем случае) различной архитектурой. Однако приведенные выше архитектуры АЦП являются наиболее показательными в силу того, что каждая архитектура занимает определенную нишу в общем диапазоне скорость-разрядность. Наибольшим быстродействием и самой низкой разрядностью обладают АЦП прямого (параллельного) преобразования. Например, АЦП параллельного преобразования TLC5540 фирмы Texas Instruments обладает быстродействием 40MSPS при разрядности всего 8 бит. АЦП данного типа могут иметь скорость преобразования до 1 GSPS. Здесь можно отметить, что еще большим быстродействием обладают конвейерные АЦП (pipelined ADC), однако они являются комбинацией нескольких АЦП с меньшим быстродействием и их рассмотрение выходит за рамки данной статьи. Среднюю нишу в ряду разрядность-скорость занимают АЦП последовательного приближения. Типичными значениями является разрядность 12-18 бит при частоте преобразования 100KSPS-1MSPS. Наибольшей точности достигают сигма-дельта АЦП, имеющие разрядность до 24 бит включительно и скорость от единиц SPS до единиц KSPS. Еще одним типом АЦП, который находил применение в недавнем прошлом, является интегрирующий АЦП. Интегрирующие АЦП в настоящее время практически полностью вытеснены другими типами АЦП, но могут встретиться в старых измерительных приборах.

АЦП прямого преобразования

АЦП прямого преобразования получили широкое распространение в 1960-1970 годах, и стали производиться в виде интегральных схем в 1980-х. Они часто используются в составе «конвейерных» АЦП (в данной статье не рассматриваются), и имеют разрядность 6-8 бит при скорости до 1 GSPS. Архитектура АЦП прямого преобразования изображена на рис. 1Рис.

1. Структурная схема АЦП прямого преобразования Принцип действия АЦП предельно прост: входной сигнал поступает одновременно на все «плюсовые» входы компараторов, а на «минусовые» подается ряд напряжений, получаемых из опорного путем деления резисторами R. Для схемы на рис.

1 этот ряд будет таким: (1/16, 3/16, 5/16, 7/16, 9/16, 11/16, 13/16) Uref, где Uref – опорное напряжение АЦП. Пусть на вход АЦП подается напряжение, равное 1/2 Uref. Тогда сработают первые 4 компаратора (если считать снизу), и на их выходах появятся логические единицы.

Приоритетный шифратор (priority encoder) сформирует из «столбца» единиц двоичный код, который фиксируется выходным регистром. Теперь становятся понятны достоинства и недостатки такого преобразователя. Все компараторы работают параллельно, время задержки схемы равно времени задержки в одном компараторе плюс время задержки в шифраторе.

Компаратор и шифратор можно сделать очень быстрыми, в итоге вся схема имеет очень высокое быстродействие. Но для получения N разрядов нужно 2^N компараторов (и сложность шифратора тоже растет как 2^N). Схема на рис. 1.

содержит 8 компараторов и имеет 3 разряда, для получения 8 разрядов нужно уже 256 компараторов, для 10 разрядов – 1024 компаратора, для 24-битного АЦП их понадобилось бы свыше 16 млн. Однако таких высот техника еще не достигла.

АЦП последовательного приближения

АЦП последовательного приближения реализует алгоритм «взвешивания», восходящий еще к Фибоначчи. В своей книге «Liber Abaci» (1202 г.

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

Решением этой задачи является «двоичный» набор гирь. Подробнее о задаче Фибоначчи можно прочитать, например, здесь: http://www.goldenmuseum.com/2015AMT_rus.html.

Аналого-цифровой преобразователь последовательного приближения (SAR, Successive Approximation Register) измеряет величину входного сигнала, осуществляя ряд последовательных «взвешиваний», то есть сравнений величины входного напряжения с рядом величин, генерируемых следующим образом: 1.

на первом шаге на выходе встроенного цифро-аналогового преобразователя устанавливается величина, равная 1/2Uref (здесь и далее мы предполагаем, что сигнал находится в интервале (0 – Uref). 2. если сигнал больше этой величины, то он сравнивается с напряжением, лежащим посередине оставшегося интервала, т.е., в данном случае, 3/4Uref.

Если сигнал меньше установленного уровня, то следующее сравнение будет производиться с меньшей половиной оставшегося интервала (т.е. с уровнем 1/4Uref). 3. Шаг 2 повторяется N раз. Таким образом, N сравнений («взвешиваний») порождает N бит результата.Рис. 2. Структурная схема АЦП последовательного приближения.

Таким образом, АЦП последовательного приближения состоит из следующих узлов: 1. Компаратор. Он сравнивает входную величину и текущее значение «весового» напряжения (на рис. 2. обозначен треугольником). 2. Цифро-аналоговый преобразователь (Digital to Analog Converter, DAC). Он генерирует «весовое» значение напряжения на основе поступающего на вход цифрового кода. 3.

Регистр последовательного приближения (Successive Approximation Register, SAR). Он осуществляет алгоритм последовательного приближения, генерируя текущее значение кода, подающегося на вход ЦАП. По его названию названа вся данная архитектура АЦП. 4. Схема выборки-хранения (Sample/Hold, S/H).

Для работы данного АЦП принципиально важно, чтобы входное напряжение сохраняло неизменную величину в течение всего цикла преобразования. Однако «реальные» сигналы имеют свойство изменяться во времени. Схема выборки-хранения «запоминает» текущее значение аналогового сигнала, и сохраняет его неизменным на протяжении всего цикла работы устройства.

Достоинством устройства является относительно высокая скорость преобразования: время преобразования N-битного АЦП составляет N тактов. Точность преобразования ограничена точностью внутреннего ЦАП и может составлять 16-18 бит (сейчас стали появляться и 24-битные SAR ADC, например, AD7766 и AD7767).

Дельта-сигма АЦП

И, наконец, самый интересный тип АЦП – сигма-дельта АЦП, иногда называемый в литературе АЦП с балансировкой заряда. Структурная схема сигма-дельта АЦП приведена на рис. 3.Рис.3. Структурная схема сигма-дельта АЦП. Принцип действия данного АЦП несколько более сложен, чем у других типов АЦП.

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

Таким образом, данный АЦП представляет собой простую следящую систему: напряжение на выходе интегратора «отслеживает» входное напряжение (рис. 4).

Результатом работы данной схемы является поток нулей и единиц на выходе компаратора, который затем пропускается через цифровой ФНЧ, в результате получается N-битный результат. ФНЧ на рис. 3. Объединен с «дециматором», устройством, снижающим частоту следования отсчетов путем их «прореживания».Рис. 4.

Сигма-дельта АЦП как следящая система Ради строгости изложения, нужно сказать, что на рис. 3 изображена структурная схема сигма-дельта АЦП первого порядка. Сигма-дельта АЦП второго порядка имеет два интегратора и две петли обратной связи, но здесь рассматриваться не будет.

Интересующиеся данной темой могут обратиться к [3]. На рис. 5 показаны сигналы в АЦП при нулевом уровне на входе (сверху) и при уровне Vref/2 (снизу).Рис. 5. Сигналы в АЦП при разных уровнях сигнала на входе.

Более наглядно работу сигма-дельта АЦП демонстрирует небольшая программа, находящаяся тут: http://designtools.analog.com/dt/sdtutorial/sdtutorial.html.

Теперь, не углубляясь в сложный математический анализ, попробуем понять, почему сигма-дельта АЦП обладают очень низким уровнем собственных шумов. Рассмотрим структурную схему сигма-дельта модулятора, изображенную на рис. 3, и представим ее в таком виде (рис. 6):Рис. 6.

Структурная схема сигма-дельта модулятора Здесь компаратор представлен как сумматор, который суммирует непрерывный полезный сигнал и шум квантования. Пусть интегратор имеет передаточную функцию 1/s.

Тогда, представив полезный сигнал как X(s), выход сигма-дельта модулятора как Y(s), а шум квантования как E(s), получаем передаточную функцию АЦП: Y(s) = X(s)/(s+1) + E(s)s/(s+1) То есть, фактически сигма-дельта модулятор является фильтром низких частот (1/(s+1)) для полезного сигнала, и фильтром высоких частот (s/(s+1)) для шума, причем оба фильтра имеют одинаковую частоту среза. Шум, сосредоточенный в высокочастотной области спектра, легко удаляется цифровым ФНЧ, который стоит после модулятора.Рис. 7. Явление «вытеснения» шума в высокочастотную часть спектра Однако следует понимать, что это чрезвычайно упрощенное объяснение явления вытеснения шума (noise shaping) в сигма-дельта АЦП. Итак, основным достоинством сигма-дельта АЦП является высокая точность, обусловленная крайне низким уровнем собственного шума. Однако для достижения высокой точности нужно, чтобы частота среза цифрового фильтра была как можно ниже, во много раз меньше частоты работы сигма-дельта модулятора. Поэтому сигма-дельта АЦП имеют низкую скорость преобразования. Они могут использоваться в аудиотехнике, однако основное применение находят в промышленной автоматике для преобразования сигналов датчиков, в измерительных приборах, и в других приложениях, где требуется высокая точность. но не требуется высокой скорости.

Немного истории

Самым старым упоминанием АЦП в истории является, вероятно, патент Paul M. Rainey, «Facsimile Telegraph System,» U.S. Patent 1,608,527, Filed July 20, 1921, Issued November 30, 1926. Изображенное в патенте устройство фактически является 5-битным АЦП прямого преобразования.Рис. 8. Первый патент на АЦПРис. 9. АЦП прямого преобразования (1975 г.

) Устройство, изображенное на рисунке, представляет собой АЦП прямого преобразования MOD-4100 производства Computer Labs, 1975 года выпуска, собранный на основе дискретных компараторов. Компараторов 16 штук (они расположены полукругом, для того, чтобы уравнять задержку распространения сигнала до каждого компаратора), следовательно, АЦП имеет разрядность всего 4 бита.

Скорость преобразования 100 MSPS, потребляемая мощность 14 ватт. На следующем рисунке изображена продвинутая версия АЦП прямого преобразования.Рис. 10. АЦП прямого преобразования (1970 г.

) Устройство VHS-630 1970 года выпуска, произведенное фирмой Computer Labs, содержало 64 компаратора, имело разрядность 6 бит, скорость 30MSPS и потребляло 100 ватт (версия 1975 года VHS-675 имела скорость 75 MSPS и потребление 130 ватт).

Литература

W. Kester. ADC Architectures I: The Flash Converter. Analog Devices, MT-020 Tutorial. www.analog.com/static/imported-files/tutorials/MT-020.pdf

Источник: https://habr.com/post/125029/

Учебный курс AVR. Аналоговый компаратор

Входы компаратора

Принцип работы компаратора AVR ничем не отличается от дискретного аналогового компаратора. У него есть два входа: неинвертирующий – AIN0 и инвертирующий – AIN1. Если напряжение на выводе AIN0 больше напряжения на AIN1 – на выходе компаратора будет единица.

Если напряжение на AIN0 меньше напряжения на AIN1, на выходе будет ноль.AIN0 можно подключать к выводу общего назначения PB2 или к внутреннему источнику опорного напряжения на 1.2 В. AIN1 – к выводу PB3 или к одному из 8-и входов модуля АЦП.

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

Регистры компаратора

Основной регистр управления компаратором – это ACSR (Analog ComparatorControl and Status Register). Он задает конфигурацию компаратора и хранит статусные флаги.

ACD (Analog Comparator Disable) – включение компаратора. 1 – запрещает работу аналогового компаратора, 0 – разрешает. По умолчанию компаратор всегда включен. Для уменьшения энергопотребления в спящих режимах, его рекомендуется отключать. При изменении бита ACD нужно запрещать прерывания компаратора, сбрасывая бит ACIE. В противном случае может произойти прерывание. 

ACBG (Analog Comparator Bandgap Select) – подключение внутреннего источника опорного напряжения (ИОН) на 1.23 В к положительному входу компаратора (AIN0). 1 – подключает ИОН, 0 – отключает.

ACO (Analog Comparator Output) – этот бит хранит состояние выхода аналогового компаратора, то есть результат сравнения входных напряжений.

ACI (Analog Comparator Interrupt Flag) – флаг прерывания. Он устанавливается аппаратно, когда происходит событие определенное битами ACIS1 и ACIS0. Если прерывания компаратора разрешены, то вызывается обработчик. Флаг ACI сбрасывается аппаратно при выполнении обработчика. Также он может быть очищен программно, если записать в него 1.

ACIE (Analog Comparator Interrupt Enable) – разрешение прерываний компаратора. Когда этот бит установлен в 1 и прерывания разрешены глобально ( установлен флаг I регистра SREG), компаратор генерирует запрос на прерывание при изменении состояния его выхода.

ACIC (Analog Comparator Input Capture Enable) – подключает выход компаратора к схеме захвата таймера Т1. 1 – выход компаратора подключен к схеме захвата, 0 – не подключен.

ACIS1, ACIS0 (Analog Comparator Interrupt Mode Select) – эти биты определяют событие, по которому будет вызываться прерывание компаратора. Все варианты перечислены в таблице.

Блок схема ниже поясняет работу компаратора и назначение конфигурационных битов регистра ACSR.

Если инвертирующий выход компаратора нужно подключить к выходу мультиплексора АЦП, то задействуются еще два регистра – SFIOR и ADMUX

Когда бит ACME регистра SFIOR установлен в 1 и модуль АЦП выключен (бит ADEN регистра ADCSRA сброшен), то отрицательный вход компаратора подключается к выходу мультиплексора АЦП. Если бит ACME сброшен, то вход компаратора подключается к выводу AIN1. С помощью регистра ADMUX можно выбирать, какой из восьми выводов ADC7 – ADC0 будет подключен к отрицательному входу компаратора.

Пример использования аналогового компаратора

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

Прерывания компаратора настроены на срабатывание по отрицательному фронту сигнала на его выходе. Таймер Т1 ведет непрерывный счет на максимальной частот (с прескалером = 1), прерывания и схема захвата не используется.

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

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

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

Файлы

Comparator-iar.rar
Comparator-AS6.rar
Comparator-Winavr.rar
Comparator-CV.rar
Comparator-proteus.rarОстальные проекты добавлю позже. 

У вас недостаточно прав для комментирования.

Источник: http://chipenable.ru/index.php/programming-avr/item/193

ATmega168: подключение нескольких ультразвуковых сенсоров HC-SR04 используя аналоговый компаратор

разделы: AVR , HC-SR04 , myRobot , дата: 6 марта 2016г

Описание регистра ACSR

Компаратор управляется через регистр “Analog comparator control and status register” т.е. ACSR:

где:

 Bit 7 – ACD: Analog comparator disable. When this bit is written logic one, the power to the Analog Comparat or is switched off. This bit can be set at any time to turn off the Analog Comparator.

This will reduce power consumption in Active and Idle mode. When changing the ACD bit, the Analog Comparator Interrupt must be disabled by clearing the ACIE bit in ACSR.

Otherwise an interrupt can occur when the bit is changed.

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

Это может быть полезно в активном и Idle режимах энергосбережения. Когда меняется ACD бит, прерывание аналогового компаратора должно быть выключено очисткой бита ACIE в ACSR регистре.

Иначе оно может сработать когда ACD бит был изменен.

 Bit 6 – ACBG: Analog comparator bandgap select. When this bit is set, a fixed andgap reference voltage replaces the positive input to the Analog Comparator.

hen this bit is cleared, AIN0 is applied to the positive input of the Analog Comparator. When the bandgap reference voltage is used as input to the Analog Comparator, it will take a certain time for the voltage to stabilize.

If not stabilized, the first conversion may give a wrong value. See “Internal voltage reference” on page 48.

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

 Bit 5 – ACO: Analog comparator output. The output of the Analog Comparator is synchronized and then directly connected to ACO. The synchronization introduces a delay of 1 – 2 clock cycles.

Выход аналогового компаратора. Он синхронизирован с тактовым генератором и напрямую подключен к ACO. Синхронизация дает задержку в 1-2 такта.

 Bit 4 – ACI: Analog comparator interrupt flag. This bit is set by hardware when a comparator output event triggers the interrupt mode defined by ACIS1 and ACIS0.

The Analog Comparator interrupt routine is executed if the ACIE bit is set and the I-bit in SREG is set. ACI is cleared by hardware when executing the corresponding interrupt handling vector.

Alternatively, ACI is cleared by writing a logic one to the flag.

Флаг  прерывания аналогового компаратора.

Устанавливается аппаратно, когда на выходе компаратора наступает событие установленное триггерами режима прерывания ACIS1 и ACIS0 Тогда  прерывание выполняется, если установлены биты: ACIE и I-бит регистра SREG. ACI очищается аппаратно, когда устанавливается соответствующий вектор прерывания. ACI очищается при программной  записи единицы в данный флаг.

 Bit 3 – ACIE: Analog comparator interrupt enable. When the ACIE bit is written logic one and the I-bit in the Status Register is set, the Analog Comparator interrupt is activated. When written logic zero, the interrupt is disabled.

Если ACIE бит установлен в единицу, а так же установлен I-бит регистра SREG, тогда прерывания аналогового компаратора разрешены. Иначе они запрещены.

 Bit 2 – ACIC: Analog comparator input capture enable. When written logic one, this bit enables the input capture function in Timer/Counter1 to be triggered by the Analog Comparator.

The comparator output is in this case directly connected to the input capture front-end logic, making the comparator utilize the noise canceler and edge select features of the Timer/Counter1 Input Capture interrupt. When written logic zero, no connection between the Analog Comparator and the input capture function exists.

To make the comparator trigger the Timer/Counter1 Input Capture interrupt, the ICIE1 bit in the Timer Interrupt Mask Register (TIMSK1) must be set.

ACIC бит установленный в единицу, подключает  функцию захвата таймера Timer/Counter1 к триггеру срабатывания аналогового компаратора. В этом случае, выход компаратора напрямую подключен к входу схеме схемы захвата таймера Timer/Counter1.

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

Чтобы включить прерывание по захвату таймера Timer/Counter1 подключенного к  выходу аналогового компаратора, должен быть установлен ICIE1-бит регистра TIMSK1.

Bits 1, 0 – ACIS1, ACIS0: Analog comparator interrupt mode select. These bits determine which comparator events that trigger the Analog Comparator interrupt.

The different settings are shown in Table 23-2
When changing the ACIS1/ACIS0 bits, the Analog Comparator Interrupt must be disabled by clearing its Interrupt Enable bit in the ACSR Register.

Otherwise an interrupt can occur when the bits are changed.

Эти биты определяют событие при котором будет вызвано прерывание аналогового компаратора. ACIS1 = 0 и ACIS0 = 0,  то страбатывание на любое измение фронта; ACIS1 = 0 и ACIS0 = 1,  не используется; ACIS1 = 1 и ACIS0 = 0,  то страбатыванеи по падающему фронту;

ACIS1 = 1 и ACIS0 = 1,  то срабатывание по растущему фронту.

Когда меняются биты ACIS1/ACIS0, прерывание  аналогового компраратора должно запрещено очисткой ACIE флага. Иначе прерывание может произойти когда, биты уже были изменены.

Переключение входа аналогового компаратора.

 Bit 6 – ACME: Analog comparator multiplexer enable. When this bit is written logic one and the ADC is switched off (ADEN in ADCSRA is zero), the ADC multiplexer selects the negative input to the Analog Comparator. When this bit is written logic zero, AIN1 is applied to the negative input of the Analog Comparator.

Если в ACME-бит установлена единица, и АЦП выключен(ADEN-бит регистра ADCSRA сброшен в ноль), то мультиплексор АЦП выбирает отрицательный вход аналогового компаратора.  Когда в этот в ACME-бит записывается ноль, AIN1 подключается к отрицательному входу аналогового компаратора.  

Таблица коммутации отрицательного входа компаратора:

Принцип работы компаратора заключается в том, что когда напряжение на положительном входе больше напряжения отрицательного входа, то ACO-бит принимает положительное значение, иначе – отрицательное.

Типовой пример использования аналогового компаратора – это монитор питания. Этот пример рассмотрен в книге Юрия Ревича “Практическое программирование микроконтроллеров AVR на языке ассемблера”. Меня же в компараторе заинтересовал мультиплексор, т.е. возможность комутации нескольких сенсоров.

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

Потому что, при напряжении ИОН ~1,22  Вольта, и логическом положительном сигнале(+5В) на отрицательном входе, получим логический ноль в ACO-бите.

В свою очередь, при нуле на отрицательном входе компаратора, получим получим единицу в ACO. И т.о. мы получаем еще один пин на который можно повесить прерывание.

Для проверки того, что все работает как следует, можно собрать такую отладочную схему:

Здесь, на PD2 будем подавать периодический сигнал, на ADC0 подключим компаратор в режиме захвата. Т.е. работать он будет аналогично ICP1 пину с той разницей, что  будет инвертирующим.

Таблица распиновки ATmega168/Arduino:

Для стендовых испытаний я использую плату CraftDuino с честным FT232RL (поэтому на макетке поставил Arduino Nano ), в которой я, по необходимости, меняю чипы. Сейчас  там сабжевый  ATmega168

Прошивки компилируются путем использования avr-gcc-4.9.2, прошивка заливается через загрузчик Arduino(работает через ft232rl).

теперь пишем такой проверочный код:

#include #include #include #include #define LED PB5 #define LED_PORT PORTB #define WIRE PD2 #define WIRE_PORT PORTD static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE); volatile uint8_t cmp_value; ISR(ANALOG_COMP_vect) { cmp_value=ACSR & (1

Источник: http://www.count-zero.ru/2016/comparator/

5.2 Описание работы устройства ввода аналоговой информации

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

Чтобы ввести информацию в ЭВМ, необходимо произвести ее преобразование в цифровой код. Такое преобразование осуществляется с помощью преобразователей типа «аналог – код».

Процесс преобразования непрерывной информации в цифровой код можно разбить на два этапа: квантование, кодирование [4].

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

Количество уровней квантования определяется, с одной стороны, требуемой точностью представления измеряемого параметра, с другой – разрешающей способностью чувствительного элемента, т.е. датчика.

На точность представления непрерывной величины дискретными значениями влияет частота квантования.

Кодирование – преобразование соответствующих квантовых уровней параметра Х в форму, удобную для ввода в машину.

В зависимости от принципа кодирования аналого-цифровые преобразователи разделяются на три группы:

а) преобразователи последовательного счета – преобразователи с кодированием по принципу счета квантовых уровней, каждому из которых соответствует электрически импульс, эквивалентный единице младшего разряда цифрового кода;

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

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

В качестве преобразователей аналоговых величин в дискретные используются преобразователи типа «вал – число» и «напряжение – число».

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

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

Разработанная для работы с приставкой программа обеспечивает наблюдение осциллограмм сигналов на экране монитора при скорости временной развертки 0,3… 100 мс/дел.

В режиме регистратора программа ведет запись отсчетов сигнала с максимальным периодом повторения 100 с в текстовый файл (кодировка ASCII), пригодный для анализа с помощью других программ.

Исследуемый сигнал поступает на разъем XW1. На ОУ DA1.2 выполнен повторитель, а на DA1.1 — узел сдвига уровня, необходимый для превращения биполярных (-1,25…+1,25 В) сигналов в однополярные (0…+2.5), которые способен обрабатывать АЦП DA2.

Образцовое напряжение +2,5 В подано на узел сдвига с соответствующего выхода АЦП через повторитель на ОУ DA1.3. Использован 12-разрядный АЦП AD7495 с последовательным интерфейсом.

Сигналом начала цикла преобразования служат смена высокого уровня на входе CS АЦП низким при вы-соком уровне на входе SCLK. Затем на вход SCLK подают 16 импульсов низкого уровня.

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

Для передачи результата преобразования в компьютер применен интерфейс USB, реализуемый с помощью ми-кросхемы FT232BM — преобразователя USB–RS-232.

Эта микросхема спо-собна работать в режиме Bit Bang , в котором линии ее порта RS-232 образуют восьмиразрядную параллельную шину данных с индивидуальной настройкой разрядов на ввод или вывод.

Программную поддержку режима Bit Bang в компьютере обеспечивает драйвер D2XX.

Чтобы сформировать нужную временную диаграмму сигналов управления АЦП, компьютерная программа заполняет выходной буфер USB байтами, несущими в соответствующих разрядах значения этих сигналов в каждом такте. Для одного цикла работы АЦП требуется сформировать и передать 34 байта (по два на каждый тактовый импульс и еще два для управления сигналом CS).

Темп выдачи значений из этих байтов на выходы DTR и RTS пре-образователя интерфейса, с которыми соединены входы CS и SCLK АЦП, зависит от настройки внутреннего синтезатора тактовой частоты преобразователя. Наст Настройку изменяют командами от компьютера, регулируя таким образом скорость работы АЦП, а вместе с ней и частоту дискретизации входного сигнала.

Последовательный выход АЦП соединен с входом CTS преобразователя интерфейса, благодаря чему результаты работы АЦП поступают в буфер преобразователя интерфейса, а из него по USB — в компьютер. В связи с особенностями протокола обмена по USB передача информации в компьютер происходит с довольно большой, а главное, непредсказуемой задержкой.

Чтобы решить проблему, на вход DSR преобразователя интерфейса подан тот же сигнал, что и на вход CS АЦП. Получая информацию об уровнях на входе CS и на выходе SDAT АЦП одновременно, компьютерная программа имеет возможность найти в полученной последовательности начало и конец каждого цикла преобразования и правильно декодировать его результат.

В приставке реализовано важное преимущество интерфейса USB — как уже сказано, ей не требуется отдельный источник питания. Напряжение +5 В поступает на микросхемы с контакта 1 розетки XS1 через развязывающие LC-и RC- фильтры.

Напряжение -5 В, необходимое для питания ОУ DA1, получено с помощью преобразователя напряжения DC-101 фирмы YCL. Аналогичный можно найти на плате неисправного компьютерного адаптера сети Ethernet, предназначенного для связи по коаксиальному кабелю.

Пригодны и другие модули преобразователей постоянного напряжения 5 В в 5…9 В с гальванической развязкой.

Приставка собирается на макетной плате. На плате распологаются все элементы, за исключением разъема XW1. Монтаж выполнен проводом МГТФ. Выводы малогабаритных микросхем соединены с контактными площадками макетной платы отрезками луженого провода диаметром 0,2 мм.

Коаксиальный разъем XW1 — СР-50-73ФВ (BNC Jack). XS1 — розетка USB-B для печатного монтажа, ее стандартным кабелем соединяют с одной из розеток USB-A компьютера.

Подключенную к разъему USB приставку операционная система компьютера автоматически опознает как новое USB-устройство. Прочитав его идентификаторы (микросхеме FT232BM по умолчанию присвоены

VID=0x0403 и РЮ=0х6001), она пытается найти в памяти компьютера и установить подходящий программный драйвер устройства. Если сделать это самостоятельно ей не удалось, система попросит пользователя указать путь к папке, в которой находятся необходимые файлы. Последние версии требующегося для работы приставки драйвера D2XX для различных операционных систем находятся на интернет-странице [8].

Разработанная для работы с приставкой программа USCOPE, основное окно которой показано на рисунке 8, позволяет измерить среднее значение входного напряжения АЦП и наблюдать осциллограмму поданного на его вход сигнала.

Рисунок 7 – Вид основного окна программы UScore

Кнопками на панели TIME/DIV-Scope изменяют скорость “развертки”, а на панели INPUT DIVIDER устанавливают соответствие показаний вольтметра измеряемому напряжению при использовании щупа-делителя.

Органами управления, расположенными на панели Syncro, выбирают вид синхронизации развертки и управляют условиями ее запуска. Синхронизация реализована программно и основана на поиске отсчета, удовлетворяющего заданным условиям, в буфере принятых от АЦП данных. Выбрав в меню “File” пункт “Save Image…”, можно записать наблюдаемую осциллограмму в графический файл.

В режиме регистратора, в который входят, нажав на панели TIME/DIV– Recorder одну из кнопок, задающих период повторения отсчетов в секундах, программа записывает принятую от АЦП информацию в текстовый файл практически неограниченного размера. По умолчанию будет создан файл data.txt, но это имя можно изменить, выбрав в меню “File” пункт “Save Data As…”.

В окне Options, открывающемся при выборе одноименного пункта главного меню, можно задать Device ID — имя, по которому программа ищет пристав-ку АЦП в списке подключенных к компьютеру устройств. Оно должно совпасть с заданным при установке драйвера, по умолчанию — “USB Serial”.

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

Кнопки Power ON/OFF служат для логического включения и выключения АЦП. При отключении приставки от компьютера программа автоматически переходит в режим OFF.

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

Источник: http://prog.bobrodobro.ru/110122

Способ ввода аналогового сигнала в персональный компьютер

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

Известен способ ввода аналогового сигнала в персональный компьютер, состоящий в том, что аналоговый сигнал преобразуют в код с помощью соответствующего аналого-цифрового преобразователя (АЦП) и затем этот код вводят в компьютер [Сопряжение датчиков и устройств ввода данных с компьютерами IBM РС/ред. Томпкинс У., Уэбстер Дж. М.: Мир. – 1992]. В этом случае могут использоваться АЦП различных типов, с различным быстродействием и т.д., в частности АЦП, построенные в соответствии с [Патент РФ 2171543, м.кл. Н03М 1/38, 2001 г., Патент 2205500, м.кл. Н03М 1/26, 2003 г.].

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

Наиболее близким техническим решением является способ ввода аналогового сигнала в персональный компьютер, состоящий в том, что этот сигнал подают на один из входов компаратора, на второй вход компаратора подают опорный сигнал, в каждом цикле ввода командами с компьютера опрашивают состояние компаратора, амплитуде сигнала ставят в соответствие число опросов компаратора от начала цикла до момента срабатывания компаратора, и это число заносят в память компьютера с учетом известной зависимости между амплитудой и числом опросов, причем начало каждого последующего цикла формируют командами с компьютера непосредственно после срабатывания компаратора [Аверченко О.Е. Устройство ввода аналоговой информации в микроЭВМ/ приборы и техника эксперимента, 1983 г. №6 – с.72-73].

Этот способ предназначен для ввода сравнительно низкочастотных сигналов. Однако во многих случаях при вводе сигнала требуется достаточно точное сохранение временной зависимости амплитуды сигнала. Это особенно важно при последующем разложении сигнала в ряд Фурье и других аналогичных методах обработки этого сигнала.

В современных компьютерах «свободно» доступные для пользователя метки времени имеют дискретность в единицы и даже десятки миллисекунд. Вследствие этого при использовании меток времени в способе [Аверченко О.Е. Устройство ввода аналоговой информации в микроЭВМ/ приборы и техника эксперимента, 1983 г. №6 – с.72-73].

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

Кроме того, в способе [Аверченко О.Е. Устройство ввода аналоговой информации в микро-ЭВМ/ приборы и техника эксперимента, 1983 г. №6 – с.

72-73] взаимодействие «внешнего» устройства и компьютера осуществляется по линиям, связанным непосредственно с материнской платой, что усложняет реализацию.

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

То есть способ [Аверченко О.Е. Устройство ввода аналоговой информации в микроЭВМ/ приборы и техника эксперимента, 1983 г. №6 – с.72-73] имеет ограничения по максимальной частоте вводимого сигнала и является сравнительно сложным в реализации.

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

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

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

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

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

В частности, при вводе сигнала через СОМ-порт компаратор опрашивают по линии (DSR), а команды начала каждого цикла опроса передают по линии (TxD); при вводе сигнала через LPT-порт компаратор опрашивают по линии АСК или BUSY, а команды начала каждого цикла опроса передают по одной из линий D0-D7; при вводе сигнала через USB-порт компаратор опрашивают по линии D-, а команды начала каждого цикла опроса передают по линии D+.

На фиг.1 представлена схема устройства для реализации способа; на фиг.2 – эпюры напряжений, соответствующие сигналам (напряжениям) на некоторых блоках устройства.

Устройство (фиг.1) содержит разъем 1 для подключения источника аналогового сигнала, подсоединенный к одному из входов компаратора 2, и генератор опорного пилообразного напряжения 3, подсоединенный ко второму входу компаратора 2.

Выход компаратора 2 подсоединен к разъему 4', соответствующему стандартному порту 4 компьютера, по линии готовности внешнего устройства (для порта LPT, например, по линии АСК).

Системный блок 5 компьютера содержит регистр 6, в который заносятся данные о числе Н импульсов опроса компаратора в каждом i-цикле ввода сигнала, регистр 7, в который заносятся данные об амплитуде Ui сигнала в каждом i-цикле ввода, и регистр 8, в который заносятся данные о текущем времени Тi для амплитуды сигнала в соответствующем i-цикле ввода.

Эпюры напряжений (фиг.

2) представляют собой: Us – исходный аналоговый сигнал; U0 – «номинальный» опорный сигнал (без учета срабатываний компаратора), где Т0 – «номинальный» период повторения, U0m – «номинальная» амплитуда опорного сигнала; U0* – опорный сигнал с учетом срабатывания компаратора, где t1=t2*-t1*, t2=t3*-t2* – длительность первого и второго циклов опроса; N – число опросов компаратора в каждом цикле ввода сигнала, где n1 и N2 – число опросов компаратора в первом и втором циклах ввода.

Работает устройство по предлагаемому способу следующим образом.

Искомый аналоговый сигнал через разъем 1 подают на один из входов компаратора 2. На второй вход этого компаратора подают опорный пилообразный сигнал с генератора 3, причем этот сигнал имеет «номинальный» период повторения Т0 и «номинальную» амплитуду U0m.

В каждом цикле ввода командами с компьютера, формируемыми соответствующей программой, опрашивают состояние компаратора. Этот опрос производится через разъем 4' по одной из линий стандартного порта 4 системного блока 5 компьютера, например по линии готовности внешнего устройства. Для LPT-порта такими линиями могут быть линии АСК или BUSY.

Компаратор 2 «срабатывает» (меняет свое состояние) в моменты времени ti*, соответствующие равенству опорного напряжения U0(t) напряжению входного сигнала Us(t), т.е U0(ti*)=Us(ti*). Требуемая программа обеспечивает счет числа опросов от начала каждого цикла до момента ti* (i=1, 2, …), и это число заносит в регистр 6.

Далее начало следующего цикла формируется в момент t1* путем подачи соответствующей команды на генератор 3 (фиг.1, 2) по одной из линий того же самого стандартного порта. Для LPT-порта такой линией может быть одна из линий D0-D7.

С учетом известной зависимости между амплитудой сигнала и числом опросов компаратора находят соответствие между числом опросов Н в каждом i-цикле и соответствующей амплитудой Ui сигнала, и значения амплитуд Ui заносят в регистр 7.

Полное время Тр ввода сигнала находят известным образом, например, с использованием доступных меток времени, формируемых компьютером. Далее находят полное число Np опросов компаратора (за это же время Тр), и вычисляют отношение kТ:kТ=Tp/Np.

Затем находят суммарное число Ns=n1+N2+…+Ni опросов компаратора от момента начала ввода сигнала (t=0) до момента ti*, и это число Ns умножают на указанное отношение kT.

В результате получают значения текущего времени Тi=Tp(Ns/Np), и эти значения Тi (соответствующие значениям амплитуды сигнала Ui) вводят в регистр 8.

То есть вычисление амплитуды сигнала в каждом цикле (занесение соответствующих данных в регистр 7) возможно непосредственно в процессе ввода сигнала. Вычисление же текущего времени (занесение данных в регистр 8) в рассматриваемом способе возможно лишь по завершению ввода этого сигнала.

Для занесения в регистр 7 данных об амплитудах сигнала Ui в каждом i-цикле ввода необходимо знать зависимость между амплитудой и числом опросов, т.е. зависимость Ui (Ni), причем эта зависимость должна быть однозначной. Эта зависимость наиболее просто может быть определена путем предварительной (до ввода обрабатываемого аналогового сигнала) «калибровки» устройства.

То есть на компаратор 2 через разъем 1 подают постоянный сигнал известной амплитуды Uk и определяют число опросов Nk, соответствующее этой амплитуде. В простейшем случае достаточно высокой линейности опорного напряжения коэффициент kU=Lk/Nk не зависит от амплитуды сигнала. Тогда искомая зависимость Ui (Ni) между числом опросов и амплитудой имеет вид: Ui=kUNi=Uk(Ni/Nk).

В общем случае, если опорный сигнал имеет заметную нелинейность, необходима калибровка при нескольких различных значениях амплитуды U постоянного сигнала, в частности при «малых» амплитудах U

Источник: http://www.FindPatent.ru/patent/242/2422895.html

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}