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


Всем привет. Сегодня мы затронем серьезную тему под названием АЦП. Как всегда начну с характеристик АЦП, на примере, ATmega8. И так на борту имеется 6-канальный аналого-цифровой преобразователь(АЦП) который имеет 4 канала с 10-разрядной точностью и 2 канала с 8-разрядной точностью.
И так что-же значит «10-разрядной точностью». Это значит что измерение будет разбито на 2 10 частей, и для того что бы определить шаг измерения нужно поделить напряжение АЦП на 2 10 =1023(т.к. отсчет с 0), например, если измеряемое напряжение равно 2.56В, то наш шаг составит 2.56/1023=0,0025В. Далее нужно будет просто умножить шаг на значение регистра ADCH(старший бит) и ADCL(младший бит), где хранится результат преобразования.


Теперь подробнее:
Для управления АЦП нам нужно записать нужные числа в регистры управления АЦП под названиями ADMUX и ADCSRA(ADCSR)
ADMUX – регистр мультиплексора АЦП.

Биты 7:6 (REFS1:REFS0) - биты выбора опорного напряжения. Если мы будем менять эти биты во время преобразования, то изменения вступят в силу только после текущего преобразования. В качестве опорного напряжения может быть выбран AVcc (напряжение источника питания), AREF или внутренний источник опорного напряжения 2.56В.

Биты 7:6
REFS1:REFS0
00 AREF
01 AVcc, с внешним конденсатором на AREF
10 Резерв
11 Внутренний 2.56В источник, с внешним конденсатором на AREF

Бит 5 – ADLAR. Определяет как результат запишется в регистры

Биты 3:0 – MUX3:MUX0 – Биты выбора канала.
MUX3:0
0000 ADC0
0001 ADC1
0010 ADC2
0011 ADC3
0100 ADC4
0101 ADC5
0110 ADC6
0111 ADC7

Следующий регистр – ADCSRA где хранятся главные настройки АЦП

Бит 7 – ADEN. Разрешение АЦП.
0 – АЦП выключен
1 – АЦП включен

Бит 6 – ADSC. Запуск преобразования (в режиме однократного преобразования)
0 – преобразование завершено
1 – начать преобразование

Бит 5 – ADFR. Выбор режима работы АЦП
0 – режим однократного преобразования
1 – режим непрерывного преобразования

Бит 4 – ADIF. Флаг прерывания от АЦП. Бит устанавливается, когда преобразование закончено.

Бит 3 – ADIE. Разрешение прерывания от АЦП
0 – прерывание запрещено
1 – прерывание разрешено
Прерывание от АЦП генерируется (если разрешено) по завершении преобразования.

Биты 2:1 – ADPS2:ADPS0. Тактовая частота АЦП, а точнее делитель тактовой частоты МПС
ADPS2:0
000 2
001 2
010 4
011 8
100 16
101 32
110 64
111 128

Чем больше частота - тем быстрее преобразование, но больше погрешность.

Вот так происходит преобразование

Ну и в качестве примера сделаем вольтметр на 10В.
Расчетная часть будет выглядеть так:
Будем использовать старший байт ADCH поэтому количество измерений будет 2 8 =255. Опорное напряжение – внутренний источник на 2.56В. Далее рассчитываем шаг 2.56/255=1мВ. Для того что бы измерить наши 10В нужно поставить делитель напряжения, несложными расчетами подбираем наиболее правдоподобные резисторы на 56КОм и 15КОм, тогда наш коэффициент равен 4.73. Окончательная формула выглядит так
Значение в Вольтах = ADCH*0.01*4.73;


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

Теперь программная часть:
Как всегда создаем проект в кодвижине (CodeVision) удаляем все и пишем:
// с библиотеками всё понятно #include #include #include #include #include //наши переменные char result; unsigned char volt; //выбор порта для ЖКИ-порт В #asm .equ __lcd_port=0x18 ; #endasm //Функция инициализации void ADC_init() { ADMUX = 0xf0; //если более понятно пишем 0b11110000 ADCSRA = 0x8d; //0b10001101 } //Функция измерения unsigned char ADC_result(unsigned char adc_input) { ADMUX=adc_input | (ADMUX & 0xF0); //выставляем канал delay_us(30); //задержка для стабилизации ADCSRA |= 0x40; while((ADCSRA & 0x10)==0); //Ждём флаг окончания измерения ADCSRA|=0x10; return ADCH;//Возвращаем старший байт } //Наша главная функция void main() { ADC_init(); volt=ADC_result(0)*0.01*4.73*10; //умножение на 10 для точности до десятых sprintf(result,"V=%i.%u",volt/10,volt%10); lcd_init(16); lcd_gotoxy(0,0); lcd_puts(result); }

Дерзайте!
Хотите подробнее – читайте даташит, ну или бегите на форум.

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

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

АЦП параллельного действия- это зеркально отраженный простейший ЦАП на основе дешифратора, описанный в предыдущем разделе. В таких АЦП имеется делитель из к одинаковых резисторов, к каждой ступени кото­рого подключен компаратор, сравнивающий напряжение на делителе с вход­ным сигналом. Выходы компараторов образуют равномерный код, вроде то­го, что используется для управления шкальными индикаторами в описанном ранее простейшем ЦАП. Эти выходы подключены к шифратору с к входами, который преобразует этот код в двоичный с числом разрядов «, равным оё2{к).

Трудности на этом пути уже описывались: схема получается крайне громозд­кая, для «-разрядного кода требуется к =2" резисторов и компараторов, при­чем резисторов точно согласованных между собой, и компараторов также с как можно более идентичными характеристиками. Поэтому такие АЦП с раз­рядностью, большей 8, почти и не выпускают. А зачем их делают вообще? По одной простой причине - этот тип АЦП является самым быстродейст­вующим из всех, преобразование происходит фактически мгновенно и лими­тируется только быстродействием применяемых компараторов и логики. Фактическое быстродействие АЦП Tai^ro типа может составлять десятки и сотни мегагерц (наиболее экстремальные типы, как МАХ 108, допускают час­тоты до единиц гигагерц). Все остальные типы АЦП, как мы увидим, рабо­тают значительно медленнее.

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

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

Главная деталь АЦП последовательного приближения - ЦАП нужной раз­рядности (именно поэтому мы рассматривали ЦАП раньше, чем АЦП). На его цифровые входы подается код по определенному правилу, о котором да­лее. Выход ЦАП соединяется с одним из входов компаратора, на другой вход которого подается преобразуемое напряжение. Результат сравнения подается на схему управления, которая связана с регистром - формирователем кодов.

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

В другой модификации этой же схемы для формирования кодов используется реверсивный счетчик, подобный 561ИЕ11, с нужным числом разрядов. Вы­ход компаратора попросту подключают к выводу переключения направления счета. Изначально счетчик сбрасывают в нули во всех разрядах, после чего подают на него тактовые импульсы. Как только счетчик досчитает до соот­ветствующего значения кода, и выход ЦАП превысит входное напряжение, компаратор переключает направление счета, и счетчик отрабатывает назад. После окончания этого периода установления, если напряжение на входе не меняется, величина кода все время колеблется в пределах младшего разряда. Здесь выбросы не так страшны, но большое время установления и неизвест­ное заранее время реакции на быстрые изменения входного сигнала являются недостатком такого АЦП, получившего название «следящего».

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

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

Кроме выборки-хранения, в АЦП последовательного приближения требуется также время на вывод данных и подготовку к следующему циклу измерения. Все указанные причины приводят к тому, что наиболее распространенные 10-12-разрядные АЦП последовательного приближения имеют реальное быстродействие не выше 50-200 кГц. Как пример достаточно продвинутой модели приведем МАХ 1132, который имеет разрешение 16 бит при частоте выборок 200 кГц. Тем не менее, АЦП последовательного приближения очень распространены и применяются там, где требуется средняя точность при дос­таточно высоком быстродействии.

Интегрирующие АЦП

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

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

Схема самого простого интегрирующего АЦП показана на рис. 17.4. Это так называемый АЩ1 с однократным интегрированием. В начале преобразования на вход С динамического D-триггера поступает положительный фронт, кото­рый устанавливает выход Q в состояние логической единицы. Она является разрешающим уровнем для элемента «И-НЕ», и на вход счетчика поступают импульсы. Одновременно через выход Q запирается транзистор VT1. Кон­денсатор начинает заряжаться от источника стабильного тока. При равенстве значения входного измеряемого напряжения и напряжения на конденсаторе компаратор срабатывает и обнуляет триггер («ворота» на логическом элемен­те «И-НЕ» запираются, транзистор открывается и разряжает конденсатор, счетчик обнуляется). Количество импульсов, накопленных в счетчике к это­му моменту, пропорционально входному напряжению.

Источник тока вместе с конденсатором в данном случае образуют так на­зываемый ГЛИН- генератор линейно изменяющегося напряжения. Схему можно упростить, если вместо источника тока поставить простой резистор, питающийся от стабильного источника напряжения, но так как форма кри­вой нарастания напряжения при этом не линейная, а экспоненциальная (см. рис. 5.7 в главе 5), то приходится ограничиться небольшим диапазоном входных напряжений, где форма кривой еще близка к прямой линии. Одна­ко на практике так часто и поступают, поэтому источник тока я подробно не рисовал.

Рис. 17.4. АЦП однократного интегрирования

Если все же задаться целью расширения входного диапазона вплоть до зна­чений, близких к напряжению питания, то придется делать «нормальный» источник тока. Использование простого полевого транзистора, как мы делали в схеме лабораторного источника питания (рис. 9.11), не выход, так как он все же является достаточно грубым источником. С другой стороны, чем го­родить источник тока (например, по варианту, представленному на рис. 12.5, г), проще вообще построить ГЛИН по-иному, в виде обычного ин­тегратора по рис. 12.5, б, только добавив к нему ключ для сброса по оконча­нии преобразования.

Подробности

Для сброса можно использовать вместо полевого обычный маломощный /?-р-/?-транзистор, но диапазон входного напряжения будет тогда ограничен еще и снизу значением напряжения на коллекторе открытого транзистора (примерно 0,3 В). Поэтому при снижении питания до 5 В лучше для сброса использовать электронный ключ, вроде 561 КТЗ. При конструировании таких схем на микро­контроллерах (см. далее) для сброса конденсатора можно применить тот же вывод порта, который является входом компаратора, если его переключать на вход в рабочем цикле и на выход с нулевым уровнем для сброса.

У схемы по рис. 17.4 единственное достоинство- простота, и куча недос­татков. При взгляде на нее непонятно, чего это я ранее распинался насчет выдающихся характеристик интегрирующих АЦП. Главным ее недостатком является то, что результат преобразования тут зависит от всего на свете - от стабильности источника тока и самого ГЛИН (и каждого его элемента в от­дельности, в первую очередь - конденсатора), от стабильности порога ком­паратора, от неидеальности ключа для сброса и т. п. Еще хуже то, что схема в данном варианте срабатывает от мгновенного значения входного сигнала и потому весьма восприимчива к его дребезгу и вообще любым помехам. А если тактовая частота случайно окажется кратной частоте помехи (в пер­вую очередь сетевой с частотой 50 Гц), то мы вообще можем получать каж­дый раз значения, весьма далекие от истины^. Поэтому такая схема годится лишь для измерения сигналов постоянного тока - для контроля напряжения батареек или чего-нибудь в этом роде (подобная схема, например, использу­ется в компьютерном игровом порту для измерения положения привязанного к движку потенциометра управляющего рычага джойстика).

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

Сделать это несложно - достаточно подать измеряемое напряжение на вход ГЛИН, а опорное - на компаратор. Тогда сигнал будет интегрироваться за время преобразования, причем интегрироваться очень точно, мы будем полу­чать истинное среднее арифметическое значение сигнала за это время. Но легко увидеть, что сама функция преобразования при этом окажется обрат­ной - то есть время заряда (и значение выходного кода на счетчике) окажет­ся обратно пропорциональным значению входного напряжения. Это неудоб­но, так как сильно усложняет обработку результата. Можно использовать какой-нибудь хитрый метод деления частоты с использованием реверсивного счетчика,’ можно также попробовать инвертировать входной сигнал и затем сдвинуть его в положительную область, но все это приводит к усложнению схемы, причем неоправданному - сама по себе точность преобразования в любом случае не увеличится, избавляемся мы только от помехи.

По всем этим причинам АЦП с однократным интегрированием, несмотря на его простоту, в настоящее время не употреб1ляют вообще и даже не выпуска­ют в виде специализированных микросхем. Единственная область, где можно было бы рекомендовать использовать такой метод - использование микро­процессоров, имеющих встроенный компаратор. В этом случае с помощью одного внешнего резистора и конденсатора можно получить простейший преобразователь аналогового сигнала в код. Но и эта рекомендация потеряла в настоящее время всякий смысл, так как доступны микроконтроллеры со встроенными «нормальными» АЦП, без всяких внешних элементов, причем мультиканальными, с гарантированной точностью, и разрешением до 10-ти и даже 12-ти разрядов, чего для большинства практических нужд более чем достаточно.

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

Рис. 17.5. Цикл работы АЦП двойного интегрирования: 1 -- идеальный случай; 2 -- при сдвиге порога компаратора; 3 - при изменении емкости конденсатора

Идея метода, который называется «двойным» или «двухстадийным» интег­рированием, показана на рис. 17.5. Посмотрим сначала на график, обозна­ченный цифрой 1. В первую часть цикла работы за фиксированное время так­та /2 – /] конденсатор интегратора заряжается током, который определяется входным (измеряемым) напряжением f/вх- Во второй части этот конденсатор разряжается точно известным током, определяющимся опорным напряжени­ем Uon, до момента равенства напряжения нулю (/3). Чем больше входное на­пряжение, тем до большей величины зарядится конденсатор в первой части, и тем дольше он будет разряжаться во второй. Легко показать, что отношение интервала времени /3 ~ ^2 к известному времени такта /2 ~ Л будет равно от­ношению входного напряжения U^x к опорному Uon- Таким образом, измерив полученный интервал времени /3 ~ t2 обычным методом с помощью счетчика, как это сделано в схеме на рис. 17.4, мы получим на выходе код, пропорцио­нальный входному напряжению.

На самом деле напряжение, до которого разряжается конденсатор, задается порогом компаратора и может в общем случае быть отличным от нуля на ве­личину 5 за счет «гуляния» порога, например, при изменении температуры. Но так как в начале цикла измерения напряжение определялось тем же зна­чением порога, то, как вы видите из графика 2 на рис. 17.5, в данном случае имеет значение только изменение порога за время преобразования. А оно да­же в самых «неповоротливых» АЦП такого типа не превышает долей секун­ды, потому это изменение можно не принимать в расчет. На результате не скажется и изменение емкости конденсатора, так как при этом наклон пря­мой и заряда и разряда изменится в одинаковой степени (график 3).

В самых точных АЦП такого типа дополнительно проводят цикл «автокор­рекции нуля», когда на вход подают нулевое напряжение и результат потом вычитают из значения кода, полученного в рабочем цикле. Мало того, здесь даже не требуется «кварцованная» частота, и всю схему можно заводить от любого RC-генератора при условии, что время такта /2А и частота заполне­ния «ворот» для подсчета длительности результирующего интервала /3 – /2 задаются от одного и того же генератора.

Но чудес не бывает - точность и стабильность преобразования здесь полно­стью определяются точностью и стабильностью значения Uon- От этого нику­да не денешься, и, как мы говорили, это общее условие для всех без исклю­чения конструкций АЦП и ЦАП. Между прочим, обратите внимание, что f/вх и Uon образуют в совокупности нечто вроде неинвертирующего и инверти­рующего входа ОУ. Эта аналогия куда более полная, чем кажется, и, манипу­лируя этими величинами, можно выделывать с выходным кодом всякие шту­ки, в частности, подгонять масштаб преобразования к нужному диапазону. Другое облегчение, которое можно получить от этой связи, заключается в возможности проведения относительных измерений, когда входное и опор­ное напряжения получаются от одного источника и тем самым имеют одина^ ковую относительную погрешность (получается нечто вроде явления ослаб­ления синфазного сигнала в ОУ).

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

Простой вариант практической схемы АЦП двойного интегрирования (пре­образователя напряжение-время, ПНВ) показан на рис. 17.6. Счетная часть на схеме не показана. Для понимания того, как работает схема, следует обратить внимание, что управляющий вход Y у ключей типа 590КН2 инверсный, то есть при низком уровне на управляющем входе ключ распахнут, а при высо­ком - заперт.

Рассмотрим диаграмму работы (рис. 17.6, справа). В момент отрицательного перепада на тактовом входе Т, RS-триггер устанавливается в единицу по вы­ходу Q. Так как на входе Т в этот момент отрицательный уровень, ключ D1/1 открывается, остальные ключи заперты. Конденсатор подключается в обрат­ную связь верхнего ОУ (DA1/1) и начинается цикл интегрирования входного напряжения (напряжение на конденсаторе возрастает по абсолютной величи­не, то есть на выходе DA1/1 падает, так как интегратор инвертирующий). В момент окончания отрицательного полупериода тактовой частоты ключ D1/1 запирается, а ключ D1/3 открывается, заряженный конденсатор оказывается подключенным в обратную связь второго ОУ (DA1/2). Начинается цикл ин­тегрирования опорного напряжения (изменение напряжения на конденсаторе показано на диаграмме пунктирной линией). Так как обратная связь в первом ОУ теперь отсутствует, то он сработает, как компаратор - сначала на его выходе установится напряжение, равное отрицательному питанию (или близ­кое к нему), а в момент равенства напряжения на конденсаторе нулю выход резко устремится от отрицательного к положительному питанию (но его ог­раничит на уровне примерно +0,6 В включенный в обратную связь диод, ко­торый нужен для того, чтобы не затягивать переходной процесс). Положи­тельный перепад передастся на обнуляющий вход RS-триггера и установит его выход Q в состояние логического нуля. При этом откроется ключ D1/2 и закоротит конденсатор, прерывая таким образом процесс интегрирования. На входе верхнего ОУ установится напряжение, равное нулю, а на выходе, во­обще говоря (так как обратная связь по-прежнему отсутствует), оно станет неопределенным, и на диаграмме показано условно в виде нулевого уровня.

Рис. 17.6. Простой вариант АЦП двойного интефирования (ПНВ)

Это состояние длится до конца периода тактовой частоты, а с отрицательным перепадом на входе Т ключи D1/3 и D1/2 закроются, и все начнется сначала. На выходе схемы образуется положительный импульс напряжения, длитель­ность которого /з – /2 пропорциональна входному напряжению, согласно со­отношению, сформулированному ранее.

Схема рассчитана для получения разрешающей способности 12 разрядов или 4096 градаций. Стабильность схемы напрямую зависит от стабильности рези­сторов, поэтому их нужно выбирать с точностью не хуже 0,1%, в этом случае абсолютная точность может достигнуть 10 разрядов без дополнительной ка­либровки. Однако Uon тоже должно иметь не меньшую стабильность, поэто­му для его получения следует использовать прецизионные источники опор­ного напряжения. В данном случае подойдет микросхема МАХ875, дающая на выходе 5 В с точностью 0,04%. Подробный анализ всех погрешностей этой схемы, в том числе температурных, занял бы слишком много места, по­этому рассмотрим еще только принцип выбора частоты преобразования и требования к элементам.

Максимальная частота отсчетов может быть подсчитана из следующих сооб­ражений. Так как мы имеем дело с КМОП, то максимальную частоту счетных импульсов примем равной 1 МГц. Нам требуется обеспечить 12 разрядов, то есть число импульсов за время «ворот» при максимально возможном входном напряжении, равном опорному, должно составить как минимум 4096 штук. По­делив 1 МГц на это число, мы получим частоту около 244 Гц, однако ее надо еще уменьшить вдвое, так как у нас в рабочем периоде должно быть два та­ких такта- прямого и обратного интегрирования. Итого получаем 122 Гц, что и есть максимальная частота при выбранной элементной базе. Исходя из этого выбраны величины сопротивлений и емкость конденсатора. При ука­занных на схеме их величинах, напряжение на выходе интегратора при вход­ном напряжении 5 В достигнет примерно 9 В за время интегрирования, рав­ное половине периода частоты 122 Гц.

Входное напряжение ограничено для данной схемы диапазоном от нуля до примерно 4,95 В. Напряжение выше этого значения расстроит работу схемы, потому что импульс обнуления за счет RC-цепочки все еще будет длиться, когда придет импульс установки. Импульс обнуления можно было бы сокра­тить, например, за счет введения «корректной» дифференцирующей цепочки (по рис. 16.6, а), но к ограничению уровня входного напряжения ведет и дру­гое обстоятельство - а именно конечное время разряда конденсатора через ключ при приведении схемы в исходное состояние. При использованных на схеме элементах и при условии достаточно полного разряда оно составит не менее 20-30 микросекунд (сопротивление ключа около 50 Ом), то есть до 1% от максимальной длительности, что и ограничивает время рабочего им­пульса и максимальное напряжение примерно на эту величину. Избавиться от этого можно только усложнением схемы и введением дополнительного ин­тервала специально для обнуления - в серийных АЦП так и поступают.

О выборе элементов. При указанных частотах скорость нарастания сигнала на выходе верхнего по схеме ОУ, служащего компаратором, должна быть такой, чтобы сигнал изменялся от напряжения насыщения до нуля не более чем в пределах одного импульра счетной частоты, длящегося 1 мкс. То есть скорость нарастания должна быть не меньше 10 В/мкс, иначе мы получим ошибку за счет неточного определения момента окончания интегрирования (то же требование справедливо и для скорости срабатывания ключей). Вто­рое требование к ОУ - для более точного интегрирования желателен доста­точно малый входной ток смещения, не более нескольких наноампер. Он рассчитывается исходя из величины максимального тока интегрирования, в данном случае около 250 мкА, деленного на ту же величину в 12 разрядов, то есть 4096. Входной ток ОУ должен удовлетворять условию «много меньше», чем полученная величина около 60 нА.

Если принять во внимание допустимое напряжение питания (не менее 12 В), то не так уж и много ОУ удовлетворят указанным требованиям. Микросхема ОРА2132 (два ОРА132 в одном корпусе DIP-8) фирмы Texas Instruments представляет собой прецизионный ОУ с высоким быстродействием (полоса 8 МГц, скорость нарастания до 20 В/мкс), очень малым входным током сме­щения (50 пА) и высоким допустимым напряжением питания до ±18 В. Из классических отечественных ОУ в коридор требований с некоторой натугой влезет 544УД2 или некоторые ОУ серии 574. Впрочем, номенклатуру при­годных чипов можно значительно расширить, если снизить напряжение пи­тания до ±5 В (при этом допустимый диапазон входного напряжения необя­зательно снизится, так как оно может превышать напряжение питания, просто манипулировать многими питаниями неудобно) и/или уменьшить час­тоту счета, например, до 100 кГц (частота отсчетов снизится до 12 Гц, а тре­бования к быстродействию ОУ соответственно уйадут). Все это иллюстриру­ет сложности, которые приходится преодолевать разработчикам при проектировании подобных АЦП в интегральном исполнении, и объясняет, почему интегрирующие АЦП обычно работают так медленно - у большин­ства прецизионных АЦП частота отсчетов не превыщает величины несколько десятков или сотен герц.

Сконструированное нами АЦП относится к типу ПНВ- преобразователей напряжение-время. Ранее широко использовались ПНЧ- преобразователи напряжение-частота (в основном на основе микросхемы 555, см. главу 16), однако большинство их реализаций обладает тем же недостатком, что и од­нократный интегратор, то есть в них точность зависит от качества компонен­тов напрямую. Сейчас мы рассмотрим интегрирующий преобразователь, ко­торый также использует двойное интегрирование, но на выходе его получается не интервал времени, который еще нужно сосчитать, а число-импульсный код, то есть сразу число импульсов за определенный промежу­ток времени, пропорциональное входному напряжению. Это не частота, как можно бы подумать, точнее, не совсем частота.

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

Рис. 17.7. Принцип работы АЦП с уравновешиванием заряда

Принципиальная схема работы ПНК показана на рис. 17.7. Работает она сле­дующим образом. Как только напряжение на выходе интегратора DA1 стано­вится меньше нуля, компаратор D1 переключается, и тактовые импульсы на­чинают поступать на вход счетчика и одновременно на ключ, коммутируя источник опорного тока к суммирующей точке интегратора. Входной ток Дх и опорный /оп имеют разные знаки и опорный больше по величине, поэтому с каждым тактовым импульсом напряжение на конденсаторе будет уменьшать­ся, а на выходе интегратора- стремиться к нулю. Как только оно опять сравняется с нулем, компаратор переключится, и тактовые импульсы пере­станут поступать на счетчик и на ключ. Заряд, который сообщается интегра­тору за каждый тактовый импульс, строго одинаков, поэтому количество та­ких тактовых импульсов в единицу времени N, необходимых для уравнове­шивания заряда, сообщаемого источником входного напряжения, будет в точности пропорционально входному напряжению. Разумеется, токозадаю-щие резисторы в цепи входного и опорного напряжения вовсе не обязаны быть равны друг другу, но в любом случае число N будет пропорционально входному току и обратно пропорционально опорному, если соблюдается со­отношение /оп ^ /вх. при их равенстве число импульсов N за секунду будет равно тактовой частоте. Манипулируя величиной Uon и номиналами резисто­ров, можно получать различный масштаб. Отметьте, что импульсы на входе счетчика, представляющие число N, могут быть неравномерно распределены во времени, и тем самым ПНК отличается от ПНЧ.

Здесь точность преобразования зависит практически только от стабильно­сти /оп (Uon)- при условии, конечно, выбора остальных компонентов по быстродействию в соответствии с рекомендациями для АЦП двойного ин­тегрирования. Автор этих строк строил схему подобного ПНК на самых что ни на есть рядовых элементах- ключах 590КН2, ОУ 544УД1 и КМОП 561-й серии, в качестве источника тока использовалась схема по типу рис. 12.5, г на ОУ 140УД20 и стабилитроне КС 170. Тем не менее, при так­товой частоте 2048 Гц (то есть разрешающей способности 11 разрядов при времени измерения 1 с), стабильность схемы составляла не хуже 3 единиц кода (0,15%) в диапазоне от -18 до +40 градусов! А если тщательно прора­ботать вопрос стабильности и быстродействия элементов, то можно полу­чить нечто вроде МАХ 1400- прецизионного 18-разрядного АЦП с быст­родействием 4800 отсчетов в секунду.

Узкополосный случайный процесс

Литература: [Л.1], стр. 177-180 [Л.2], стр. 457-460 [Л.3], стр. 106-109 Случайный процесс, энергетический спектр которого сосредоточен в относительно узкой полосе частот вблизи некоторой частоты Приведем некоторые соотношения, характеризующие и ……..

Литература: [Л.2], с 141-142 (метод интеграла положения, метод интеграла Дюамеля) основывается на представлении входного сигнала цепи в виде суммы элементарных сигналов вида единичного скачка или очень короткого импульса (– функции)……..

Рассмотрим процесс образования электромагнитных волн на примере антенны симметричного или полуволнового вибратора, питаемого в середине от источника переменного напряжения UT. Процесс излучения электрического поля и изменение напряжения источника Ur (генератора)…….

Так сложилось, что основной МК с которым я работаю постоянно и на котором делаю подавляющее большинство задач это ATTiny2313 — он популярен, а, главное, это самый дешевый контроллер из всей линейки AVR с числом ног более 8. Я их брал числом около трех сотен за 18, чтоль, рублей штучка. Но вот западло — у него нет АЦП . Совсем нет. А тут он понадобился — нужно замерить сигнал с датчика. Засада. Не переходить же из-за такой фигни на более фаршированную ATTiny26 — она и стоит дороже и фиг где купишь у нас, да и что тогда делать с той прорвой ATTiny2313 что уже закуплена? Пораскинул мозгами…

А почему бы не сварганить АЦП последовательного сравнения? Конечно, быстродействие и точность будет не фонтан, зато, не меняя тип МК и всего с двумя копеечными деталями дополнительного обвеса, я получу полноценный, хоть и тормозной, 8ми разрядный АЦП, вполне удовлетворяющий моим скромным запросам!

Как работает АЦП последовательного сравнения.
Что у нас есть в ATTiny2313 аналогового? Правильно — . Теперь достаточно подать на его вход замеряемый сигнал и методично сравнивать с опорным напряжением, линейно изменяя величину опорного напряжения. На каком из опорных напряжений произойдет сработка компаратора, тому и примерно равен измеряемый сигнал +/_ шаг изменения опорного.

Осталось получить переменное опорное напряжение, а чем, из сугубо цифрового выхода контроллера, можно вытянуть аналоговый сигнал? ШИМом! Предварительно его проинтегрировав. Для интеграции используем простейший RC фильтр. Конденсатор у нас будет интегрировать заряд, а резистор не даст сдохнуть порту при зарядке кондера. Результатом прогона ШИМ’а через подобный фильтр станет достаточно стабильное постоянное напряжение.

Осталось только прикинуть номиналы фильтра. Частота среза — частота, начиная с которой, фильтр начинает глушить переменную составляющую, у Г образного RC фильтра равна обратной величине из его постоянной времени w=1/RC . Я воткнул кондер на 0.33Е-6 Ф и резистор на 470 Ом, получилось что w=6447 рад/c . Поскольку угловая частота нам никуда не уперлась, то делим ее на 2pi = 6.28 получили около килогерца, 1026.6 Гц, если быть точным. Раз частота ШИМ а у нас запросто может быть порядка десятков килогерц, то на выходе будет гладенькая такая постоянка, с незначительными пульсациями.

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

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

  • — Головной файл
  • — Таблица векторов прерываний
  • — Инициализация периферии
  • и — Макросы и макроопределения

Прокомментирую лишь главную функцию Calc .
При вызове процедуры Calc у нас первым делом:

  1. Конфигурируется аналоговый компаратор и, главное, активизируются его прерывания.
  2. Затем в сканирующий регистр (R21) закидывается начальное значение сканирования 255.
  3. После чего это значение забрасывается в регистр сравнения ШИМ OCR1AL . ШИМ был заранее, в разделе init.asm сконфигурирован и запущен, так что сразу же на его выходе появляется сигнал скважностью (скважность это отношение длительности сигнала к периоду этого сигнала) 1 т.е., фактически, пока это просто единица.
  4. Выжидаем в функции Delay некоторое время, чтобы закончился переходный процесс (конденсатор не может мгновенно изменить свое напряжение)
  5. Уменьшем значение сканирующего регистра (что при загрузке в OCR1AL уменьшит скважность на 1/255), проверяем не стало ли оно нулю. Если нет, переходим на пункт 3.
Итогом станет последовательное уменьшение скважности сигнала с 1 до 0, с шагом в 1/255 , что будет преобразовано после фильтра в уменьшающееся напряжение. А, так как в главной процедуре у меня Calc вызывается циклически, то на входе компаратора будет пила.

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

Вот так, применив немного смекалки, а также две дополнительные детали общей суммой в один рубль и десяток строк кода, я сэкономил кучу бабла =)

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

Введение

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


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

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

АЦП имеет множество характеристик, из которых основными можно назвать частоту преобразования и разрядность. Частота преобразования обычно выражается в отсчетах в секунду (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 млн. Однако таких высот техника еще не достигла.

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

Аналого-цифровой преобразователь последовательного приближения (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 изображена структурная схема сигма-дельта АЦП первого порядка. Сигма-дельта АЦП второго порядка имеет два интегратора и две петли обратной связи, но здесь рассматриваться не будет. Интересующиеся данной темой могут обратиться к .

На рис. 5 показаны сигналы в АЦП при нулевом уровне на входе (сверху) и при уровне Vref/2 (снизу).

Рис. 5. Сигналы в АЦП при разных уровнях сигнала на входе.

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

Рассмотрим структурную схему сигма-дельта модулятора, изображенную на рис. 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.

Аналоговые (АЦП) входы контроллера. Не каждому и не сразу понятно, что это такое и с чем его едят. Потому попытаюсь объяснить своими словами.

Вообще, что такое "аналоговый" вход? У контроллера два типа входов: цифровой и аналоговый. Цифровой может принимать только два значения: ноль и единица. Ноль - нет напряжения, единица - есть напряжение. Информация передается на цифровой вход импульсами во времени. А вот аналоговый вход способен принимать не только эти два значения, но вообще любое напряжение.

У контроллера NM8036 имеются два аналоговых входа (см. ). На каждый из этих входов может быть подано любое напряжение в пределах от 0 до напряжения питания (5 в). Например, 1,8 вольта, или 3,2 вольта... Короче, любое, но не более 5 вольт.

Что с этим напряжением делает контроллер? Очень просто: измеряет и представляет его в цифровом виде. Причем, делает он это в пределах от 0 до 1023. Это бинарные данные (bin-data), в которых верхний предел (1023) приравнивается к напряжению в 5 вольт. Это и есть Аналого-Цифровое Преобразование (АЦП).

Но фактическое напряжение - оно и есть фактическое. 5 вольт - они и есть 5 вольт. Это значение рассматривается здесь, как "Вольты". И правильно, вольты и есть.

Но здесь можно представить это напряжение и в других физических величинах (Физика). Например, подключили мы ко входу датчик давления или влажности, или тоже датчик температуры, но не цифровой, как DS1820, а терморезисторный. Этот терморезисторный датчик выдаст нам напряжение от 0 до 5 вольт (электронщики, не возбуждайтесь! Это лишь для примера.), но ведь нам важно знать температуру, а не напряжение!

Вот мы и калибруем эти значения. Нижний предел в настройках (см. Управление отоплением частного дома. Advanced Manager.) установим, например, в 16 градусов, а верхний - в 30 градусов. Вот такой вот у нас датчик, видите ли, подключен. А количество знаков после запятой поставим 2. И префикс укажем: С (то бишь, градусов цельсия).

И что мы при этом получим? А получим то, что когда датчик пришлет на вход напряжение, например, в 2,5 вольта, контроллер быстренько все пересчитает и выдаст нам три варианта результатов: 512 (bin-data), 2,5в (Вольты) и 23.00 С (градусов цельсия). Вот таким образом можно настроить работу практически с любым датчиком, выдающим на своем выходе аналоговое значение напряжения.

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

Простой выключатель на 2 положения. Может иметь на выходе Data либо 0 вольт, либо 5 вольт. Подключается тремя проводами: Vcc (+5в), Data (данные) и Gnd (общий провод). Таким выключателем можно устанавливать два разных режима работы нагрузок при программировании системы.

Переключатель на большее количество положений может обеспечить возможность программирования и большего количества режимов. Вот, скажем, на 3 положения. Каждое положение имеет свое напряжение на выходе. Самое нижнее положение - на выходе 1,25 в, среднее 2,5 в и верхнее 3.75 в. Увеличивая количество резистров в цепочке, можно увеличивать и количество положений переключателя.

Это были варианты ступенчатой регулировки, но ведь есть и вариант плавного регулирования. Здесь величина выходного напряжения зависит от положения движка переменного резистора. Можно применить, например, для ручной регулировки температуры. Сделать программу так, чтобы она поддерживала температуру в помещении такой, какая задана регулятором. Автоматическая регулировка - это одно, но нередко хочется где-то что-то повернуть, щелкнуть, чтобы было потеплее, или, наоборот, попрохладнее. Человек ведь существо привередливое.

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

Если же продолжать фантазировать, то можно еще измерять уровень освещенности и в нужное время включать/отключать лампу... Короче, возможностей у этих аналоговых входов масса, NM8036 вполне может осилить немало задач не только в управлении отоплением частного дома, но и для решения многих других задач. О возможностях программирования поговорим в следующих статьях.

Кстати, по поводу регулировки температуры в помещении есть очень даже неплохое решение, взятое мною из . В ответ на чей-то вопрос автор сообщения Brokly (он же автор Advanced Manager) привел пример применения аналогового входа. Привожу дословно:
Вы бы еще сложнее че нить придумали. Поставьте контактный настенный термостат, подключите к аналоговому входу, и пусть алкаши сами его крутят. И уборщицу освободите, и пъяным забава. Да и контроллеру меньше работы, сработал термостат - можно не греть.

Как тебе такое, Мастер? А мне, знаешь, понравилось.

Продолжение следует...



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: