Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Точность АЦП Меги48 при переключении каналов
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Burner
Кто знает - если АЦП работает примерно при 60 ksps, как рекомендует даташит, но им все время меряют по очереди 3 или 4 канала - он сохраняет свою 10-битную точность? И сколько тактов при этом уходит на каждое измерение?
ILYAUL
Цитата(Burner @ Dec 4 2009, 22:16) *
Кто знает - если АЦП работает примерно при 60 ksps, как рекомендует даташит, но им все время меряют по очереди 3 или 4 канала - он сохраняет свою 10-битную точность? И сколько тактов при этом уходит на каждое измерение?


Он сохраняет, а куда ему деваться и от переключения каналов это не зависит , если Вы не дергаете его до окончания преобразования. Tпреоб=14x(количество циклов преобраз)/Fацп. Где (количество циклов преобраз)= 1 -> бесконечность , Fацп = частота самого ацп , после предварительного делителя. Да , забыл 14 - это как раз такты
Dx!
Цитата
как рекомендует даташит

Где же он такое рекомендует? Где вы такие даташиты берете???

Цитата
By default, the successive approximation circuitry requires an input clock frequency between 50
kHz and 200 kHz to get maximum resolution. If a lower resolution than 10 bits is needed, the
input clock frequency to the ADC can be higher than 200 kHz to get a higher sample rate.

И такое, за редкими правками, практически в любом даташите на авр, во всяком случае на mega48 точно...

Up to 15 kSPS at Maximum Resolution

Цитата
A normal conversion takes 13 ADC clock cycles. The first conversion after the ADC is switched
on (ADEN in ADCSRA is set) takes 25 ADC clock cycles in order to initialize the analog circuitry.
Burner
Спасибо, что отписали!
- Где же он такое рекомендует? - Видимо, выдал желаемое за действительное - там написано • Up to 76.9 kSPS (Up to 15 kSPS at Maximum Resolution).
в ПДФ вроде написано - если переключать ADMUX через один такт АЦП(ну или еще позже) после начала преобразования, то выборка будет сделана из того канала, который был включен при начале преобразования. Это когда "normal conversion takes 13 ADC clock cycles".
Это правда, и измерение при этом получается не хуже, чем если ADMUX вообще не трогать? У меня возникли сомнения, потому что в другом месте ПДФ написано, что выборка при "normal conversion" занимает 1,5 такта АЦП.
Если я запущу АЦП Меги48 в режиме Free running на 53 kSPS - на какую точность и линейность можно рассчитывать?
Предположим, плата разведена правильно, переключать каналы буду при каждом измерении.
niXto
При 53 Ксэмплов будет точность 9...8 бит... АЦП в АВРках - это не АЦП а диверсия...

Если переключать каналы В КОНЦЕ каждого измерения (в прерывании от АЦП или ПЕРЕД стартом нового), то никаких задержек не будет и при выходе из прерывания и старте нового измерения будет захвачен новый канал. Это только если менять канал ПОСЛЕ СТАРТА преобразования, когда он УЖе работает - тогда новый канал будет захвачен только после финиша текущего преобразования
Burner
Спасибо, вроде понял.
Ну альтернативы покуда не вижу.. Дешево и сердито, такскать. И к АВР я привык, а другой контроллер еще изучать надо.
_Pasha
Это для моторных применений? Если да - то Free Running там не нада. Лучше по таймеру, в середине фазокорректного (треугольного) ШИМа
oran-be
В даташитах на АВРы есть конретная дырень - в них совершенно не описана УВХ. И при переключении каналов необходимо учитывать время на заряд емкости УВХ. В противном случае результат изиерения будет среднепотолочный между двумя соседними каналами. Если надо быстро переключать каналы - единственный выход - вешать входы мультиплексора АЦП прямо на выходы операционников. При сопротивлении источника сигнала примерно 500 ом на заряд емкости УВХ до 10-битной точности надо потратить примерно 1000 тактов процессора (при 8 Мгц) - это где (это один цикл преобразования на частоте около 100кГц). Следует учесть, что преобразование можно осуществлять в то время, пока УВХ заряжается от другого канала - т.е. можно запустить преобразование, а потом сразу же, не дожидаясь конца преобразования, переключить канал.
З.Ы. !!! если мерить внутреннюю опору в АВР, то у нее выходое сопротивление около 30 кОм и, для нормального ее измерения, необходимо удерживать мультиплексор на ней в течении не менее 10000 тактов (при 8 Мгц)
З.Ы. З.Ы. Для более полной информации можно почитать даташиты на Микрочиповские контроллеры - там это расписано дастаточно подробно, а схемы УВХ, как я понимаю, особой разницы не имеют.
Rst7
Цитата
В даташитах на АВРы есть конретная дырень - в них совершенно не описана УВХ.


Не хочу Вас расстраивать, но все там описано. И в худшем случае время до достижения точности 0.1% будет порядка 9мкс - 100кОм (максимальное последовательное сопротивление последовательно с ключом УВХ согласно даташиту) на 14пФ (емкость конденсатора УВХ, смотри там же).

Посему, где Вы взяли мифические 1000 тактов - я хз. Сотня - еще куда ни шло, это при худшем раскладе.
smk
Цитата
З.Ы. !!! если мерить внутреннюю опору в АВР, то у нее выходое сопротивление около 30 кОм и, для нормального ее измерения, необходимо удерживать мультиплексор на ней в течении не менее 10000 тактов (при 8 Мгц)

Подскажите, если не трудно. Мне нужно непрерывно мерять 4 канала по очереди. Тактовая 10 МГц / 64. Как это правильно делать чтоб иметь корректный результат по каждому каналу? Спасибо.

Раньше часто говорилось про некорректность первого результата после переключения канала.
oran-be
Цитата(smk @ Jan 20 2010, 17:46) *
Подскажите, если не трудно. Мне нужно непрерывно мерять 4 канала по очереди. Тактовая 10 МГц / 64. Как это правильно делать чтоб иметь корректный результат по каждому каналу? Спасибо.

Раньше часто говорилось про некорректность первого результата после переключения канала.

Я строил движок так - запускал АЦП в режиме Free Running Conversion и разрешал прерывания по АЦП. В прерывании я вынимаю значение значение из регистра ADC, а потом переключаю канал. Можно запускать АЦП и в обычном режиме, но тогда надо ручками его каждый раз запускать.
Вот пример для ИАРа:
Код
#pragma vector = ADC_vect
__interrupt void AdcHdr(void){
          switch((ADMUX & MUX_MASK))  // поднимаем контекст преобразования
          {                                            //
                  case 2:   // Мультиплексор был установлен на канал 2
                  {  //!!! ВНИМАТЕЛЬНО !!! Преобразован канал 1 (!) - канал 2 закончил заряжать УВХ    
                         wCurrCh1 = ADC;   //Сохраняем канал 1
                         ADMUX |= 1;          //  Включаем мультиплексор на канал 3 - канал 2
                                                             //конвертируется, канал 3 заряжается
                         break;
                  }
                  case 3:
                     ..........................................................
          }
}

Если необходимы задержки в случае высокого выходного сопротивления источника сигнала, необходимо задерживать переключение мультиплексора и делать пустые преобразования.
SasaVitebsk
Я могу только добавить, что лучше порт ADC полностью освободить от цифровых задач.
У меня 2 аналогичных проекта. Один на м8/м88 - там задействованы несколько ног PORTC(ADC) для управления нагрузкой ~ 20ма. Всё делается синхронно с переключением каналов и т.д. Пробовал DIDR использовать.
Во втором проекте используется CAN128. Там порт АЦП полностью свободен.

Качество работы АЦП на CAN128 - отличное. На м8/м88 - значительно хуже (~7 разрядов).
Александр Куличок
Цитата
Следует учесть, что преобразование можно осуществлять в то время, пока УВХ заряжается от другого канала

У авр ацп последовательного приближения. И УВХ используется преобразователем во время процесса преобразования. Соответственно, преведенное выше утверждение неверное. Чтобы это понять, достаточно посмотреть на блок-схему ацп в даташите или посмотреть вышеприведенную ссылку.
Кроме того, в даташите совершенно конкретно указано, когда и на протяжении какого времени осуществляется выборка и захват:
Цитата
The actual sample-and-hold takes place 1.5 ADC clock cycles after the start of a normal conversion

И анилизируя графики из даташита, видим что выборка и захват почти всегда (кроме первого запуска) осуществляется чарез 1,5 цикла АЦП после обновления адреса на мультиплексоре. То есть при рекомендованой максимальной частоте 200 кГц имеем время выборки 7,5 мкс
А " в случае высокого выходного сопротивления источника сигнала" на него нужно ставить повторитель, так как рекомендуемое выходное сопротивление источника сигнала - не более 10кОм. Как вариант можно попробывать уменьшить частоту АЦП до 50 кГц. Или сменить чип (напр, на мегу16) и использовать дифференциальный режим (для него сопротивление источника - не более "пару сотен" кОм).
Цитата
Подскажите, если не трудно. Мне нужно непрерывно мерять 4 канала по очереди. Тактовая 10 МГц / 64. Как это правильно делать чтоб иметь корректный результат по каждому каналу? Спасибо.

Если запустить в режиме непрерывного преобразования (Free Running Mode), то по прерыванию от АЦП:
a) читаем регистр ADC б) меняем канал. Порядок пунктов а) и б) в общем случае не важен. При этом прочитанный регистр ADC будет показывать значение из канала, который был выбран в позапрошлом прерывании.
А первые 2 прерывания (после запуска АЦП) дадут занчение канала, который был выбран при запуске.

Для понимания сути:
когда мы вошли в прерывание, то:
1. ADCH:ADCL содержит значение из канала, выбранном в позапрошлом прерывании
2. канал, выбранный в прошлом прерывании, в данный момент обрабатывается
3. новый канал, который мы записали в ADMUX, попадает в буферный регистр. Он
автоматически будет перезаписан в ADMUX за 1 такт(АЦП-ешный) до конца преобразования. По истечению этого такта получим новое прерывание от АЦП.

Естественно, что нельзя допускать пропусков прерываний от АЦП и в прерывании обязательно вычитывать ADCL (опционально) и после него ADCH.
stells
Цитата(Александр Куличок @ Jan 20 2010, 21:59) *
выборка и захват почти всегда (кроме первого запуска) осуществляется через 1,5 цикла АЦП после обновления адреса на мультиплексоре. То есть при рекомендованой максимальной частоте 200 кГц имеем время выборки 7,5 мкс

но действительно
Цитата(smk @ Jan 20 2010, 16:46) *
Раньше часто говорилось про некорректность первого результата после переключения канала.
singlskv
Цитата(stells @ Jan 20 2010, 22:10) *
но действительно

Такое получалось при высокоомном источнике только...
oran-be
Александр Куличок, у вас практикой, похоже, проблем нет, поскольку понимание о что в регистре АЦП в случае Free Running Conversion и переключения каналов будет не те данные, на которые указывает мультиплексор, у вас есть. А, если открыть даташит, то становится ясно, что теоретик из вас никудышний, ибо если прочесть параграф Changing Channel or Reference Selection, то там можно вычитать следующее:
Цитата
Once the conversion starts, the channel and reference selection is locked to ensure a sufficient sampling time for the ADC.
, что говорит о том, что схема, приведенная в даташите, мягко скажем, не совсем полная, и АЦП в своем составе имеет еще одну типо УВХ, которая на момент преобразования отключена от внешнего мира. Хотя на самом деле, скорее всего сам конвертер построен не на R-2R матрице, а на конденсаторах - в момент запуска преобразования за 1.5 такта заряд с емкости на выходе мультиплексора перезаряжается в емкость АЦП, после чего АЦП начинает процесс преобразования.
З.Ы. И еще по выходному сопротивлению источника сигнала. При частоте преобразований 10 кГц (для 10-битной точности) при выходном сопротивлении источника сигнала 1 ком каналы уже начинают влиять друг на друга в пределах 1-2 LSB. При 10 ком, рекомендованых Атмелями, либо надо тормозить АЦП неимоверно, либо удивлятся результатами измерения. Читая Атмелевский даташит, возникает ощущение, что Атмели этот АЦП чисто содрали, или купили как это называется без исходников и тупо привинтили к процессору.
З.Ы. З.Ы. На практике режим подавления шумов при нормально разведенной плате и нормального набора блоировок тоже не дает качественного улучшения точности - шум примерно 1 LSB в обоих случаях.
Александр Куличок
То, что преобразование требует некоторого колличества тактов, уже само за себя говорит о том, что там не R-2R матрица. И на блок-схеме нарисовано типичное АЦП последовательного приближения. А это означает, что с каждым тактом АЦП вичисляет по одному биту результа. И на каждом такте идет сравнение сигнала с УВХ с сигналом ЦАПа. И в это время нельзя трогать ни reference selection (которое есть опорой цля ЦАПа), ни открывать УВХ (которое должно быть отключено от внешнего мира). Что и подтверждается приведенной Вами цитатой.

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

Измеряли при постоянном уровне напряжения на каналах?
На мой взгляд (и мат. расчеты подтверждают), что разницы между 1 и 10 кОм при входном сопротивлении УВХ даже в 100 кОм вообще быть не должно (0,5МЗР).
oran-be
Цитата(Александр Куличок @ Jan 22 2010, 08:10) *
То, что преобразование требует некоторого колличества тактов, уже само за себя говорит о том, что там не R-2R матрица. И на блок-схеме нарисовано типичное АЦП последовательного приближения. А это означает, что с каждым тактом АЦП вичисляет по одному биту результа. И на каждом такте идет сравнение сигнала с УВХ с сигналом ЦАПа. И в это время нельзя трогать ни reference selection (которое есть опорой цля ЦАПа), ни открывать УВХ (которое должно быть отключено от внешнего мира). Что и подтверждается приведенной Вами цитатой.

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

Ну просто раздел для начинающих.... Рекомендую для общего развития ознакомится с основными типами АЦП, с их построением и внутренним устройством. Начать с того, что АЦП не ВЫЧИСЛЯЕТ, ибо это ПРЕОБРАЗОВАТЕЛЬ. А "типичное АЦП последовательного приближения", по классической теории, строится как раз на матрице R-2R, которая выполняет функцию ЦАП, цифрового автомата и компаратора. Автомат поразрядно подбирает цифровой код, используя обратную связь, закрученную через ЦАП и компаратор, который сравнивает входное напряжение свыходом ЦАП. Насколько я знаю, Техасы придумали как избавится от R-2R матрицы - они использовали вместо резисторов конденсаторы. Т.е. - заряжается входной конденсатор, потом к нему подключается точно такой же - напряжение падает в 2 раза, и т. д. А компаратор дает информацию, какие кондеры оставить, а какие отключить. В итоге получается цифровой код. Такой АЦП гораздо меньше жрет, и очень удобен для разводки на кристалле и обладает большей точностью, ибо емкости на кристалле гораздо стабильнее резисторов. Отсюда и неслабая емкость на выходе мультиплексора - она должна быть неизмеримо больше входной емкости АЦП.
Цитата(Александр Куличок @ Jan 22 2010, 08:10) *
Измеряли при постоянном уровне напряжения на каналах?
На мой взгляд (и мат. расчеты подтверждают), что разницы между 1 и 10 кОм при входном сопротивлении УВХ даже в 100 кОм вообще быть не должно (0,5МЗР).

Измерял, подавая постоянное напряжение, но разное на разные каналы. И о каких мат рассчетах идет речь, если Атмели не кладут формулы для рассчетов, а схема очень условная (резистор 1-100 ком). Вы попробуйте подать на АЦП переменные сигналы или разные постоянные через 100 ком резисторы на входы и померить , переключая каналы - будет весело)))
Александр Куличок
Цитата
И о каких мат рассчетах идет речь, если Атмели не кладут формулы для рассчетов, а схема очень условная (резистор 1-100 ком).

Тем не менее, для меня не составляет труда оценить разность напряжений, до которых зарядится конденсатор с "неслабой емкостью" 14pF за время выборки 1,5такта АЦП через резистор 1...100кОм от источников сигналов с выходными сопротивлениеми 1 и 10 кОм.
Цитата
Вы попробуйте подать на АЦП переменные сигналы или разные постоянные через 100 ком резисторы на входы и померить , переключая каналы - будет весело)))

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

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

P.S. Чтобы не быть голословным, приведу оценочный расчет, которым я пользовался. Хотя здесь "расчет" звучит громко.
Допустим, мы переключаемся с канала, на котором 0В, на канал с напряжением U = 1024МЗР.
Модуль свободной составляющей напряжения при заряде конденсатора равен uc(t) = U*exp(-t/T).
Физически, он выражает значение недозаряда конденсатора до напряжения U за время t.
T = RC - постоянная времени. С = 14пФ, R = (1...100 кОм + Rвых). Rвых - выходное сопротивление источника сигнала.
Для худшего случая примем R = 100кОм + Rвых
При частоте выборок 10 кГц частота АЦП составляет 130 кГц. Время захвата и выборки по даташиту составляет 1,5 или 2 такта АЦП, т.е. 11,5 или 15,4мкс
Я расчеты проводил при времени выборки 1,5 такта, т.е. t = 11.5мкс. Далее сплошная математика.

В таблице ниже результаты для источников c выходными сопротивлениями 1, 10 и 100кОм. Как видно, разница между 1 и 10 кОмами - 0,3МЗР.
Если подавать разные постоянные сигналы через 100 ком резисторы на входы, то уже в теории мы должны получить разность 16,6 МЗР.
Повторюсь расчет оценочный.
Код
Rвых,     T,        t/T      exp(-t/T)  1024*exp(-t/T)
кОм       1/с                             МЗР
1       707 214     8.16     0,000286     0,292
10      649 351     7.49     0,000557     0,571
100     357 143     4.12     0,01623     16,6


P.P.S. Появится немного свободного времени на работе - соберу схему, проверю на "живом" камне.
oran-be
Цитата(Александр Куличок @ Jan 22 2010, 20:49) *
Хоть убейте, не пойму, зачем там большая емкость? Зачем она там вообще нужна? Мультиплексор - это обычный ключ. Возможно, он и есть частью УВХ. Открылся - зарядил конденсатор УВХ - и отключился. И до конца преобразования не изменяет своего состояния. Перед ним не стоит задача одновременной выборки со всех каналов с последующем последовательным (во времени) преобразовании кождого канала.
Есть УВХ подключенное к одному входу компаратора. Есть ЦАП подключенный к другому входу. На чем зделан ЦАП - абсолютно все равно. хоть на резисторах, хоть на конденсаторах, хоть на лампах. От принципа его построения не зависит, сколько емкости должно быть на УВХ.

Я же образно) описал принцип работы АЦП на разряде емкости. АЦП такого типа уже само по себе представляет собой УВХ - для начала преобразования необходимо зарядить основную емкость до напряжения входа. После чего вход отключается и автомат начинает эту емкость разряжать ступенями, подбирая напряжение. Поэтому, если на входе не будет изрядной емкости, то время, необходимое для старта преобразования, будет совсем не 1.5 такта, а немного побольше). Т.е. Емкость, которая висит после мультиплексора, с которой берется заряд в емкость АЦП должна быть больше, чем в 2*2^10 больше емкости АЦП, дабы при старте АЦП не появилось ошибки более, чем 0.5 МЗР.
Serj78
Цитата(Александр Куличок @ Jan 22 2010, 20:49) *
Хоть убейте, не пойму, зачем там большая емкость? Зачем она там вообще нужна? Мультиплексор - это обычный ключ. Возможно, он и есть частью УВХ. Открылся - зарядил конденсатор УВХ - и отключился. И до конца преобразования не изменяет своего состояния. Перед ним не стоит задача одновременной выборки со всех каналов с последующем последовательным (во времени) преобразовании кождого канала.
Есть УВХ подключенное к одному входу компаратора. Есть ЦАП подключенный к другому входу. На чем зделан ЦАП - абсолютно все равно. хоть на резисторах, хоть на конденсаторах, хоть на лампах. От принципа его построения не зависит, сколько емкости должно быть на УВХ.


Александр- все гораздо проще- УВХ НЕТ ВООБЩЕ!!! это просто для лучшего понимания он нарисован smile.gif
Ацп построен именно так, как сказаз oran-be. Он измеряет фактически не напряжение, а ЗАРЯД своей емкости. то есть это преобразователь заряд-код. И чем точнее (фактически- чем дольше от источника напряжения) эту емкость вы зарядите, тем точнее будет результат.
Qwertty
Цитата(Serj78 @ Jan 23 2010, 16:17) *
Александр- все гораздо проще- УВХ НЕТ ВООБЩЕ!!!

Где почитать про такие интересные АЦП последовательного приближения без УВХ?
Потому что tlc549 например - АЦП на переключаемых конденсаторах, однако УВХ в нем имеется, даже эквивалентные входные схемы в режиме samle и в режиме hold приведены. Емкость в УВХ 60pF. Собственно должно быть без разницы на каком принципе основано дальнейшее преобразование. Важно за время samle успеть зарядить емкость в УВХ (которой в м48 нет???) до входного напряжения.
stells
Цитата(Qwertty @ Jan 23 2010, 20:37) *
Где почитать про такие интересные АЦП последовательного приближения без УВХ?

я так понял, что выборка-то есть, а вот хранения как такового - нет
SasaVitebsk
Если много входов, то это хранение и ни к чему. Подключается - заряжается конденсатор - отключается от входа - подключается к АЦП - идёт преобразование. А в чём вопрос то?
Serj78
Цитата(Qwertty @ Jan 23 2010, 20:37) *
Где почитать про такие интересные АЦП последовательного приближения без УВХ?


Есть книжка про основы и принципы построения DSP у AD. Автор кажется Уолт Кестер. Там описаны разнообразные типы ацп. С точки зрения физики работы все именно так происходит как вы описали.- надо успеть зарядить емкость за определенное время с заданной точностью. Далее входное напряжение отключается и происходит преобразование.
ILYAUL
Нажмите для просмотра прикрепленного файла
Цитата(oran-be @ Jan 23 2010, 15:16) *
...АЦП такого типа уже само по себе представляет собой УВХ - для начала преобразования необходимо зарядить основную емкость до напряжения входа. После чего вход отключается и автомат начинает эту емкость разряжать ступенями, подбирая напряжение...

Вы мягко говоря , заблуждаетесь. На фото блок схема типичного АЦП AVR.В начальный момент времени на конденсатор выборки хранения , через ключ S подаётся входное напряжение с мультиплексора. Конденсатор заряжается . Ключ размыкается и конденсатор остается заряженным всё время преобразования. Метод преобразования таких АЦП заключается в следующем.
Сначала на ЦАП подается код равный половине диапазона измерения ( 10 0000 0000) , если значение напряжение на конденсаторе больше значения выработанного ЦАП , значение (1) остается в старшем разряде кода , нет сбрасывается в (0)
Затем присваивается 1 в предпоследний разряд кода для ЦАП (11 0000 0000 или 01 0000 0000, если значение меньше) и процедура повторяется, и так далее до МЗР
Qwertty
Цитата(Serj78 @ Jan 23 2010, 23:06) *
надо успеть зарядить емкость за определенное время с заданной точностью. Далее входное напряжение отключается и происходит преобразование.

Это в тех, где УВХ все же есть. А что заряжать там, где конденсатора нет?
Собственно весь сыр-бор в ветке из за того, что конденсатор и ключ на эквивалентной схеме АЦП от атмел отсутствуют. И тут же предположения о том, что АЦП на переключающихся конденсаторах, что конденсаторов ( кроме тех что в АЦП) два - один неотключаемый на выходе мультиплексора и другой в АЦП. Или их вообще нет. И что первый, если все же есть, в 2000 раз больше второго. Вообще все это сильно смахивает на бред. Потому как DAC и компаратор на схеме все же есть. А на схеме tlc549, который как раз на конденсаторах, ЦАП отсутствует. Так что ИМХО АЦП в мегах классическое последовательного приближения, на резисторной матрице и никаких хитрых конденсаторов там нет. Кроме того, который в УВХ, но который забыли нарисовать в даташите.


Цитата(ILYAUL @ Jan 23 2010, 23:15) *
На фото блок схема типичного АЦП AVR.

А в даташите схема несколько другая - нет ключа и конденсатора. Была бы такая и обсуждать было бы нечего. smile.gif
rx3apf
Цитата(Qwertty @ Jan 23 2010, 23:39) *
Это в тех, где УВХ все же есть. А что заряжать там, где конденсатора нет?
Собственно весь сыр-бор в ветке из за того, что конденсатор и ключ на эквивалентной схеме АЦП от атмел отсутствуют.
.....
А в даташите схема несколько другая - нет ключа и конденсатора. Была бы такая и обсуждать было бы нечего. smile.gif

Да куда же они делись ? Во всех даташитах на камни с ADC есть картинка "Analog input circuitry". И везде этот "s/h" конденсатор емкостью 14 pF, подключенный к половине питания...
ILYAUL
Цитата(Qwertty @ Jan 23 2010, 23:39) *
А в даташите схема несколько другая - нет ключа и конденсатора. Была бы такая и обсуждать было бы нечего. smile.gif

Не ожидал , что тема так далеко зайдёт laughing.gif
Вот время свободное появилось - отсканировал
Qwertty
Цитата(rx3apf @ Jan 23 2010, 23:46) *
Да куда же они делись ? Во всех даташитах на камни с ADC есть картинка "Analog input circuitry". И везде этот "s/h" конденсатор емкостью 14 pF, подключенный к половине питания...

Схема есть и в ней выход мультиплексора идет напрямую на компаратор. Вот такие атмел шутки шутит.
Для SAM7S схема АЦП еще лаконичнее, там емкости вообще не нашел.
Для LPC213x и схемы нет. Как говорится - нет человека нет и проблемы. smile.gif
Подождем господина oran-be, у него трава забористей... smile.gif
rx3apf
Цитата(Qwertty @ Jan 24 2010, 00:33) *
Схема есть и в ней выход мультиплексора идет напрямую на компаратор. Вот такие атмел шутки шутит.

Излишней информативностью даташиты от Atmel никогда не страдали. Однако этот узел расписан достаточно ясно. Не на большой блоксхеме, а на схеме входа.
SasaVitebsk
УВ должно быть обязательно. Не может же быть АЦП подключен ко входу напрямую. Бред будет мерить. Схема изображена упрощённая. Кондёр - понятен 14pf. Разброс входного сопротивления конечно великоват. Может закладывались для различных техпроцессов?
Ёмкость, к слову, небольшая. То есть АЦП достаточно быстродействующий. Если кондёр во время преобразования не разряжается, то при значительном входном сопротивлении каналы будут влиять друг на друга.
Кстати я работал с каким-то внешним АЦП, в котором время преобразования было очень мало, но если переключаешь канал, то возрастало в десятки раз. Прямо по готовности было видно.
Rst7
Цитата
Так что ИМХО АЦП в мегах классическое последовательного приближения, на резисторной матрице и никаких хитрых конденсаторов там нет.


Безусловно. Более того, некоторые тонкости поведения АЦП говорят именно о классической схеме.

Для тех, кому нужен конденсатор на общей схеме, рекомендую увидеть, что компаратор там подписан как Sampe and Hold Comparator. И на следующей странице этот Sample and Hold разрисован в виде эквивалента, достаточного для оценки параметров.

Цитата
Разброс входного сопротивления конечно великоват. Может закладывались для различных техпроцессов?


Там не очень хороший аналоговый ключ. Имеется сильная зависимость сопротивления ключа от входного напряжения.
SasaVitebsk
Цитата(Rst7 @ Jan 24 2010, 14:51) *
Для тех, кому нужен конденсатор на общей схеме, рекомендую увидеть, что компаратор там подписан как Sampe and Hold Comparator. И на следующей странице этот Sample and Hold разрисован в виде эквивалента, достаточного для оценки параметров.

Так это тогда всё объясняет.
Цитата
Имеется сильная зависимость сопротивления ключа от входного напряжения.

В это тоже верится легко. О ключе подумалось в первую голову, так как разброс приличный даже во внешних ключах, которые нормированы по данному параметру. А вот о напряжении я не подумал.
Действительно. Здесь скорее всего сложно говорить только о сопротивлении ключа - надо рассматривать процесс заряда ёмкости. Это как-бы косвенно характеризует входное сопротивление схемы. А ток заряда будет плавать в зависимости от соотношений напряжений вход-ёмкость и кучи технологических параметров. Вот они и указали столь размытые границы.
IGK
Цитата(SasaVitebsk @ Jan 24 2010, 15:39) *
А вот о напряжении я не подумал.


Меня всегда смущало, что в разделе "Электрические характеристики" параметры приведены для +4 В. Причем и питание, и опора. А я от +5 с атмелем работаю. Причем опора +2.5. Ни одной совпадающей цифры. Непорядок...

Ну чего спорите то? Был бы АЦП приличный, от 16 бит и выше - еще понятно. А так, в него что ни ткни, одни споры начинаются. Нефиг им измерять напряжение, он для этого не заточен. Вот сравнить два напряжения на протяжении нескольких милли-секунд (одно как опора выступает) им можно, даже с применением усиления х200. Проверено.
oran-be
Цитата(ILYAUL @ Jan 23 2010, 23:15) *
Откуда схемка, можно поинтересоваться?
потому что, глядя на эту схему, возникают ассоциации с Хоровицем и Хиллом, откуда взяли с картинку и слегка ее модифицировали, чтобы она не противоречила Атмелевскому даташиту.
А вообще я для работы с Атмелевским АЦП я пользовался Микрочиповским даташитом (не на АВРы, ес-но )), где АЦП и, в частности эти приколы с переключением каналов расписаны достаточно подробно. Правда, есть много формул - кому то понравится, кому то нет ) Результатом явилось то, что АЦП в АВР заработал на свои заявленные 10 разрядов а, если затормозить рекурсивником, то и больше.)
ILYAUL
Цитата(oran-be @ Jan 26 2010, 15:48) *
Откуда схемка, можно поинтересоваться?


Вольфганг Трамперт " Измерение , управление и регулирование с помощью AVR микроконтроллеров " стр 66

Цитата
Результатом явилось то, что АЦП в АВР заработал на свои заявленные 10 разрядов

А до этого на сколько разрядов он работал?

Цитата
а, если затормозить рекурсивником, то и больше.)

Не понятно, больше 10 разрядов , это как - поясните
Александр Куличок
Цитата
АЦП такого типа уже само по себе представляет собой УВХ - для начала преобразования необходимо зарядить основную емкость до напряжения входа. После чего вход отключается и автомат начинает эту емкость разряжать ступенями, подбирая напряжение. Поэтому, если на входе не будет изрядной емкости, то время, необходимое для старта преобразования, будет совсем не 1.5 такта, а немного побольше). Т.е. Емкость, которая висит после мультиплексора, с которой берется заряд в емкость АЦП должна быть больше, чем в 2*2^10 больше емкости АЦП, дабы при старте АЦП не появилось ошибки более, чем 0.5 МЗР.

И сколько нужно будет потратить времени, чтобы зарядить "основную емкость"? Каково будет быстродействие данного АЦП при работе на 1 канал? По моим расчетам при источнике с Rвых = 1кОм только время выборки должно составить ~215 мкс. Я уже молчу о входном сопротивлении 100кОм, из-за которого это самое время выборки нужно увеличить в 100 раз.
xemul
Цитата(Александр Куличок @ Jan 27 2010, 06:02) *
По моим расчетам при источнике с Rвых = 1кОм только время выборки должно составить ~215 мкс. Я уже молчу о входном сопротивлении 100кОм, из-за которого это самое время выборки нужно увеличить в 100 раз.

Если считать УФХ RC-фильтром 1-го порядка, то при C = 14 пФ, R = 1 кОм напряжение на C установится с точностью 1% за 64 нс, при R = 100 кОм - за 6.4 мкс; с точностью 0.1% при R = 100 кОм - за 9.7 мкс.
Эти цифири вполне согласуются с даташитами, но не делают очередные заявления о 10-битной точности АЦП АВР осмысленными.
SasaVitebsk
Цитата(ILYAUL @ Jan 26 2010, 22:44) *
Не понятно, больше 10 разрядов , это как - поясните

15 разрядов. А при хорошей фильтрации и все 20-22.

Цитата(xemul @ Jan 27 2010, 12:44) *
но не делают очередные заявления о 10-битной точности АЦП АВР осмысленными.

В ветке по xMega кто-то провёл исследования, вполне технически грамотные. И разрядность вполне соответствует заявленной. Другое дело что условия весьма комнатные. Но это говорит лишь о том, что приложив усилия - можно получить заявленный результат. Возможно, правда, что приложенные усилия, по стоимости будут несопоставимы. Я просто никогда не оценивал измерительные качества. Мне, до настоящего момента было достаточно 8 бит, причём низкоскоростных и, скажем, оценочных.
rx3apf
Цитата(oran-be @ Jan 26 2010, 15:48) *
Результатом явилось то, что АЦП в АВР заработал на свои заявленные 10 разрядов а, если затормозить рекурсивником, то и больше.)

Ну, лично у меня проблем с 10 битами от AVRовского ADC пока вроде не возникало. А вот на счет увеличения разрядности - в самом деле интересно. Я встречал разные решения, но всегда интересно узнать что-то новое (тем более мне это сейчас актуально, а то, что я использую, особых восторгов не вызывает) - посему интересно бы узнать подробности. Если это не коммерческая тайна, разумеется...
ae_
Цитата(rx3apf @ Jan 27 2010, 19:59) *
А вот на счет увеличения разрядности - в самом деле интересно. Я встречал разные решения, но всегда интересно узнать что-то новое (тем более мне это сейчас актуально, а то, что я использую, особых восторгов не вызывает) - посему интересно бы узнать подробности. Если это не коммерческая тайна, разумеется...

http://www.atmel.com/dyn/resources/prod_do...nts/doc8003.pdf
AVR121: Enhancing ADC resolution by oversampling (14 pages, revision A, updated 09/05)
This Application Note explains the method called "Oversampling and Decimation" and which conditions need to be fulfilled to make this method work properly to achieve a higher resolution without using an external ADC.
oran-be
Цитата(rx3apf @ Jan 27 2010, 14:59) *
...

К вышеуказанному даташиту могу добавить, что в реальных сигналах на входе АЦП так или иначе присутствует шум, благодаря которому можно вполне спокойно подымать разрядность АЦП без дополнительной модуляции. Фильтровать, конечно придется немного подольше... Но для серьезных девайсов лучше такое не пользовать, потому что общеизвестно, что если пулю отливать не из свинца, то с поражением цели будут однозначные проблемы))))
xemul
Цитата(SasaVitebsk @ Jan 27 2010, 14:47) *
В ветке по xMega кто-то провёл исследования, вполне технически грамотные. И разрядность вполне соответствует заявленной.
Другое дело что условия весьма комнатные. Но это говорит лишь о том, что приложив усилия - можно получить заявленный результат. Возможно, правда, что приложенные усилия, по стоимости будут несопоставимы. Я просто никогда не оценивал измерительные качества.

Не видел ветки с исследованиями, но когда мне было не лень поковыряться с АЦП АВР, я сделал (для себя) вывод, что их можно безболезненно использовать только на 8 бит и с внешней опорой. По напряжению питания уход получился мизерный. По температуре не гонял. Разброс встроенной опоры у ~30 экземпляров контроллеров составил порядка 5% (в даташитах точность встроенной опоры почти в 2 раза хуже). Но стабильность встроенной опоры по температуре и напряжению в даташитах заявлена лучше 1 LSB, и если кто-то может позволить себе в серии калибровку внутренней опоры, то она вполне юзабельна. Каких-либо данных по долговременной стабильности параметров АЦП АВР мне найти не удалось.
Из характеристики АЦП DNLtyp = 0.25 LSB можно предположить возможность софтового выковыривания ещё пары разрядов, но практическая ценность этих разрядов без дополнительных измерений параметров _конкретного_ экземпляра АЦП сомнительна. имхо, с тем же успехом можно расширить разрядность парой разрядов от генератора случайных чисел.
Цитата
Мне, до настоящего момента было достаточно 8 бит, причём низкоскоростных и, скажем, оценочных.

Совершенно с Вами угу - АЦП АВР применим для измерений с точностью до 1% @ <20 ksps. Для большей точности/скорострельности есть (и во множестве) более разумные альтернативы.
IGK
Цитата(SasaVitebsk @ Jan 27 2010, 13:47) *
15 разрядов. А при хорошей фильтрации и все 20-22.


Т.е. Вы получили 15-22 разряда только оверсемплингом? У меня так не получилось. Я использовал известную схему с ЦАП такой же разрядности и усилителем, и при 15-17 разрядах требуется фильтр с очень малой частотой среза, вплоть до нескольких герц. Иначе приличные ошибки. Хотя работает. При оверсемплинге замешивал сигналы от несинхронного прерывания, через конденсаторы небольшой емкости. Получил +3 разряда стабильно, +4 с некоторой натяжкой. Но можно купить МСР3301 за смешные деньги, там те же 13 разрядов и гораздо более стабильные...
SasaVitebsk
Цитата(IGK @ Jan 27 2010, 21:03) *
Т.е. Вы получили 15-22 разряда только оверсемплингом? У меня так не получилось. Я использовал известную схему с ЦАП такой же разрядности и усилителем, и при 15-17 разрядах требуется фильтр с очень малой частотой среза, вплоть до нескольких герц. Иначе приличные ошибки. Хотя работает. При оверсемплинге замешивал сигналы от несинхронного прерывания, через конденсаторы небольшой емкости. Получил +3 разряда стабильно, +4 с некоторой натяжкой. Но можно купить МСР3301 за смешные деньги, там те же 13 разрядов и гораздо более стабильные...

rolleyes.gif Я пошутил. Оказывается неудачно. Получить дополнительные разряды не фокус. Вопрос только насколько они имеют отношение к реальности.
Можно уже купить и 16-ти разрядные, за столь же смешные деньги.
IGK
Цитата(SasaVitebsk @ Jan 27 2010, 20:48) *
rolleyes.gif Я пошутил. Оказывается неудачно. Получить дополнительные разряды не фокус. Вопрос только насколько они имеют отношение к реальности.
Можно уже купить и 16-ти разрядные, за столь же смешные деньги.

Ну, я не понял. Все ведь возможно... Насчет 16-18 разрядных. Там деньги бывают совсем не смешные. Пульсар от аналоговых девиц от 12 до 20 долларей.

Вот, кстати, реальная вещь. Я, для оценки возможности затрат в конечном изделии, реализовал АЦП 17-18 бит на основе меги16, ЦАП на резисторах, двух регистрах НС164 и сумматоре. Используется последовательное преобразование х1, х10, х200. На ЦАП выдаются коды с поправочным коэффициентом, формула простейшая. В изделии работает так же, как и "нормальный" 18-битный АЦП, но после фильтрации. Разница только в "отставании" сигнала на 60-70 мс относительно АЦП. И, знаете, выигрыш в затратах получил существенный. Но меня не волновала абсолютная точность, только относительная за время менее 1 с. Т.е. никак не могу этот метод рекомендовать для измерительных целей. Но в данном применении на тот же пульсар тратится не надо.

Вот поэтому шутки и не понял - разные, видимо, перед нами задачи стояли...
rx3apf
Цитата(ae_ @ Jan 27 2010, 15:19) *
AVR121: Enhancing ADC resolution by oversampling (14 pages, revision A, updated 09/05)

А, ну это я уже читал, само собой. Думал, что-нибудь свеженькое. Мне сама идея не очень понравилась. Ну да, можно шум подмешать, можно линейно изменяющееся напряжения. Я пока экспериментирую с дополнительным малоразрядным DAC на весовых резисторах...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.