Прошу помощи! Не могу победить 16-разрядный АЦП AD7683. Плавно меняю входное (измеряемое) напряжение, и код в некоторых местах как бы "застряёт", а затем перескакивает сразу на несколько разрядов. Эта ситуация повторяется регулярно через 128 бит кода. Программа считывания - проще не придумаешь: шесть холостых циклов (sample) и два цикла по восемь сдвигов. Шумов практически нет (+-1 бит) - сигнал от батарейки.
Такое впечатление, что сбоит что-то внутри ИМС. Или все же не внутри ...?
Однозначно у Вас ошибка синхронизации по границе байта. Смотрите на предмет иголок - интерфейс АЦП быстродействующий и при манипуляциях с байт-ориентированным интерфейсом запросто можно "продернуть" выход на 1 бит. В остальном - прибор кондовый и никаких глюков не имеет.
one_eight_seven
Aug 23 2011, 19:44
Не согласен. Сейчас борюсь с ним же, и веду переписку с Analog Devices. Глитчей нет, сигналы - постоянные, от аппаратного SPI отказался при первых проблемах, а вот сигнал на половине шкалы принимает два значения 32768 и 32524. Если сдвинуть от середины шкалы, то количество разных, но повторяющихся кодов - растет, 0 и fullscale воспринимает корректно.
Аппаратным SPI я тоже не пользуюсь. Что касается границы байт, то тогда был бы перескок на 256 единиц. Я пробовал манипулировать количеством сдвигов в обоих байтах, и результат был адекватным - данные на выходе менялись, все становилось еще неправильней.
А здесь ситуация какая-то глупая. Я с этим АЦП знаком не первый год. Он стоит в нескольких серийных приборах, но там сигнал более шумящий, да и такой точности не требуется. А тут образцовый измеритель. Нужно использовать максимум бит, а код скачет...
Ишите все-таки у себя ошибки. Кроме маловероятного случая, что Вам продали бракованную партию. У нас он стоит в серийных приборах и работает точно в соответствии со спецификацией. Были бы такие скачки - меня давно бы уже закидали претензиями. Инверсия старшего бита в байте, кстати, как раз изменяет значение на 128.
Как маловероятный вариант - косяк с опорой. АЦП построен на конденсаторах и весьма чувствителен к ненулевому импедансу опоры и помехам в ней.
alexPec
Aug 24 2011, 08:05
Цитата(SerSh @ Aug 23 2011, 23:35)

Прошу помощи! Не могу победить 16-разрядный АЦП AD7683. Плавно меняю входное (измеряемое) напряжение, и код в некоторых местах как бы "застряёт", а затем перескакивает сразу на несколько разрядов. Эта ситуация повторяется регулярно через 128 бит кода. Программа считывания - проще не придумаешь: шесть холостых циклов (sample) и два цикла по восемь сдвигов. Шумов практически нет (+-1 бит) - сигнал от батарейки.
Такое впечатление, что сбоит что-то внутри ИМС. Или все же не внутри ...?
А сигнал меняете на одной ноге? Если да, то это плохо, получается что common mode меняется. Надо менять строго дифференциально. Т.е. на сколько подняли на ноге "+" на столько и опустить на ноге "-". Посмотрите
тут. Ступеньки ушли когда начал драйвить входы строго в противофазе.
PS хотя посмотрел в даташит вашей м/с - там про common mode ничего не сказано....
Цитата(alexPec @ Aug 24 2011, 12:05)

А сигнал меняете на одной ноге? Если да, то это плохо, получается что common mode меняется. Надо менять строго дифференциально. Т.е. на сколько подняли на ноге "+" на столько и опустить на ноге "-". Посмотрите
тут. Ступеньки ушли когда начал драйвить входы строго в противофазе.
PS хотя посмотрел в даташит вашей м/с - там про common mode ничего не сказано....
Посмотрите на Fig.1 на первой странице - там четко нарисовано, куда должен IN- подключаться. Никаких true-дифференциальных включений для этого АЦП не предусмотрено.
one_eight_seven
Aug 24 2011, 08:26
Цитата
Ишите все-таки у себя ошибки. Кроме маловероятного случая, что Вам продали бракованную партию.
Именно у себя и ищу. Проблема может быть и не с микросхемой АЦП - она же не одна там стоит. Как найду - скажу, что было.
Цитата
Кроме маловероятного случая, что Вам продали бракованную партию.
Кстати, с ADS8325 от TI Именно так и было - купили сначала их, потом в качестве альтернативы ADI. Вне зависимости от опоры, входных сигналов, чего угодно, старший бит младшего байта всегда был установлен в 1.
Цитата(one_eight_seven @ Aug 24 2011, 12:26)

Именно у себя и ищу. Проблема может быть и не с микросхемой АЦП - она же не одна там стоит. Как найду - скажу, что было.
Если в "цифре" уверены, проверяйте импедансы по входу и опоре. Например, присоедините прямо у микросхемы конденсаторы x7r 2.2 мкф к опоре и входу и посмотрите, поменяется ли поведение схемы. Кстати, что у Вас по этим входам стоит ?
one_eight_seven
Aug 24 2011, 08:57
Цитата
Если в "цифре" уверены, проверяйте импедансы по входу и опоре. Например, присоедините прямо у микросхемы конденсаторы x7r 2.2 мкф к опоре и входу и посмотрите, поменяется ли поведение схемы. Кстати, что у Вас по этим входам стоит ?
Пока ни в чем не уверен. Именно сейчас монтажники пересобирают схему, отключая входы АЦП от опоры и входного сигнала.
А так по входу стоит
AD8553 , опора берется с опорного резистора, в качестве буфера опоры использую
LTC2050HV.
Опора скорее всего не правильная. Посмотрите Fig. 22 даташит. Керамический конденсатор с большой емкостью обязательно должен присутствовать в непосредственной близи от АЦП. А обычный ОУ не потянет работу на такой конденсатор. Если конденсатора нет, или ОУ "дергает" выходом при скачкообразном изменении тока, что имеет место во время преобразования, Вы и получаете перескакивающий разряд.
one_eight_seven
Aug 24 2011, 11:14
Цитата
When REF is driven by a very low impedance source (such as an unbuffered reference voltage like the low temperature drift ADR43x reference or a reference buffer using the AD8031 or the AD8605), a 10 μF (X5R, 0805 size) ceramic chip capacitor is appropriate for optimum performance.
Поставил керамику 4,7 на REF в непосредственной близи к мелкосхеме АЦП. Каплями припоя закоротил +IN на REF, -IN на GND. код колеблется от 65525 до 65521, что уже лучше. В качестве источника опоры использовал ADR391 (а она тоже не очень-то хорошо работает на большую емкостную нагрузку)
В общем, понятненько всё с этой микросхемой. Точнее, почти всё - зачем ей режим пониженного энергопотребления - ведь для нормальной работы надо вокруг неё городить схему, жрущую, как небольшой свечной заводик. Какое-то время я её ещё попробую её помучать, но что-то мне подсказывает, что небольшого устройства с низким энергопотреблением не получится
Может Вам opa350 поможет ?
Кстати, опоры бывают со входом выключения.
one_eight_seven
Aug 24 2011, 13:42
Цитата
Кстати, опоры бывают со входом выключения.
Оно понятно. Та опора, что у меня сейчас имеет вполне низкое энергопотребление, но её нельзя использовать в ратиометрических измерениях.
Видимо, надо перерабатывать всю плату.
Кроме того ADR391 всё-таки легко должна держать 4,7uF (в даташите до 10uF). Но замкнув вход на опору я получаю код в диапазоне 0xFFF1 - 0xFFF7 (с различными конденсаторами от 0,1 до 4,7uF диапазон кодов одинаковый), вместо кошерных 0xFFFF. Если это не беда самой микросхемы (а это скорее всего именно так, с сигма-дельтой от тех же ADI таких проблем нет), то это проблема разводки платы. Физически расположить элементы по-другому у меня не получится. Выход один - не использовать эту микросхему в этой разработке вовсе.
P.S. Opa 350 в наличии не имеется. Завтра сравню по параметрам с Opa300, и, быть может попробую с ней.
Цитата(one_eight_seven @ Aug 24 2011, 17:42)

Видимо, надо перерабатывать всю плату.
Кроме того ADR391 всё-таки легко должна держать 4,7uF (в даташите до 10uF). Но замкнув вход на опору я получаю код в диапазоне 0xFFF1 - 0xFFF7 (с различными конденсаторами от 0,1 до 4,7uF диапазон кодов одинаковый), вместо кошерных 0xFFFF. Если это не беда самой микросхемы (а это скорее всего именно так, с сигма-дельтой от тех же ADI таких проблем нет), то это проблема разводки платы. Физически расположить элементы по-другому у меня не получится. Выход один - не использовать эту микросхему в этой разработке вовсе.
P.S. Opa 350 в наличии не имеется. Завтра сравню по параметрам с Opa300, и, быть может попробую с ней.
Это может быть не проблема разводки платы, а влияние внутреннего входного сопротивления АЦП. Обратите внимание, что в нем нет буфера. opa350 отличается от других ОУ тем, что может работать на любую емкостную нагрузку.
Прошу прощения, что я вмешиваюсь в ваш диалог, но как топикстартер хочу вернуться в тему ветки.
Перепробовав и дополнительные конденсаторы на АЦП, опоре и последовательные RC-цепочки в SPI-интерфейсе и извращения в программе я видел примерно одно и тоже, а именно: код "скачет" на 8-32 младших бита, нечётные данные практически не встречаются, иногда происходит "замораживание" выходного кода.
Решил перепроверить это на глазами и на осциллографе увидел, что сигнал CLK чистенький, ровненький, без "бороды" и "иголок". Количество импульсов ровно 22, как и требуется по DataSheet. При изменении входного сигнала выходные данные адекватно меняются в части старших бит, но в младшей тетраде (последние 4-5 клоков) единиц не появляется практически никогда. Перепайка камня на другой со склада ничего не дала.
Далее взял другой АЦП LTC1865 от Linear Technology, припаял его просто проводками к контактным площадкам платы (цоколевка слегка другая) и...
О, чудо! Видны все биты во всем диапазоне. Шумов почти нет, сигнал стоит, как у молодого

.
Так что опора - это хорошо, экранирование - это хорошо, нулевой импеданс - это хорошо, но для начала нужен хороший АЦП.
Может это какой-то брак с китайского мусорника (куплено в "Симметрон", Киев)?
one_eight_seven
Aug 25 2011, 12:31
У моей схемы те же симптомы. Куплено в Аргуссофте, они официальные распространители ADI.
Вывод про качество микросхемы у меня точно такой же, как у вас. Только TI ещё хуже.
Про TI пока не могу ничего сказать. У меня в одном из серийных приборов стоит ADS8341 от Texas Instruments. Вроде к нему претензий не было. Раньше вместо AD7683 стоял ADS8325 и вел себя, похоже, точно так же, хотя тогда таких исследований я не проводил.
Как-то я использовал LTC1865, но потом из-за дороговизны и плохой доставаемости камней от LT я перешел на TI и AD. Теперь получается LT1865, завалявшийся на складе, меня выручил.
Теперь собираюсь провести всеобъемлющий тест-контроль применяемых АЦПов.
Короче, вскрытие покажет...
one_eight_seven
Aug 25 2011, 14:37
Я имею в виду именно ADS8320 или ADS8325, не помню уже что именно покупали. В общем, аналог AD7683.
Ну что за привычка у разработчиков ругать производителей микросхем, в случаях, когда они не могут их правильно включить. Много Вы знаете 16 разрядных АЦП на 100 КГц c собственным шумом около 0.3 разрядов МЗР ?
Вообще-то я не ругал, а только констатировал факт - рассказал о своих приключениях и высказал предположение. Что касается производителей микросхем, то и TI и AD очень серьезные и уважаемые фирмы. Я даже почти не допускаю мысли (почти

), что они решили нам продать брак. Но есть еще изоляторы брака, которые иногда очищаются. А что касается всяких китайских подделок и пиленых корпусах, то сообщений об этом полно на разных радио-форумах.
По поводу неправильного включения - может быть я ее и не правильно включил, по LTC сама включилась правильно на той же плате. А 100 кГц мне и не нужно, а нужно 16 разрядов кода и я его получил. И слава Богу!
Вдогонку: Между прочим, у LTC1865 даже не 100, а 250kSPS.
В этой серии у AD есть и 500 КГц. Ключевым тут является шум 0.3 LSB.
А вообще, надо внимательнее изучать описания. Должно было Вас насторожить отсутствие буферных усилителей на опоре и входе.
Цитата(DS @ Aug 25 2011, 19:32)

В этой серии у AD есть и 500 КГц. Ключевым тут является шум 0.3 LSB.
прошу прощения, объясните пожалуйста про 0,3 LSB. Откуда ?
имхо про 96дБ SNR они вроде бы не пишут для AD7683
Цитата(тау @ Aug 25 2011, 20:43)

прошу прощения, объясните пожалуйста про 0,3 LSB. Откуда ?
имхо про 96дБ SNR они вроде бы не пишут для AD7683
Посмотрите диаграмму разброса значений для этого АЦП - там в одно и то же значение попадает 78% выборок при фиксированном входе. На 20 КГц они дают 92.7 Дб сигнал/шум. Измерение пика для сигнала и статистические диаграммы разброса значений - несколько разные методы измерения и для разных случаев.
one_eight_seven
Aug 25 2011, 17:25
Для меня ключевым было низкое энергопотребление, малый футпринт и 16 бит. Всё это присутствует в описании микросхемы.
При условии малого занимаемого места и малого энергопотребления 16 бит нет.
На другой микросхеме есть, и без плясок с бубном. Что значит неправильно включить? Поставить усилители без шатдауна с 7-15 мА потребления, опору такую же, да ещё всё в минимум SO8. И где те low power и small footprint?
REF192 и та не может обеспечить это недоразумение опорой, а у неё headroom 1,5 вольта, что уже недопустимо. В низкопотребляющих устройствах оно не должно быть больше 300 мВ.
Это не я не могу включить микросхему, как надо, это микросхема не работает, как должна работать микросхема подобного класса.
Прошу прощения, а для меня ни энергопотребление ни футпринт никакого значения не имели. В качестве опоры и питания я использовал как раз REF195, а измерительный сигнал брал от батарейки. В качестве входного усилителя - операционник OP07 в инвертирующем включении, а на входе в АЦП - RC-цепочка. Так что все как в DataSheete. И если бы значения выборок реально попадали в какое-то там место

, то так бы оно и было. Что и произошло на другом АЦП.
Так все же в даташите написано. Я и говорю, надо внимательно его изучать до, а не после. Из АЦП вынесена вся активная аналоговая часть, кроме компаратора, конечно он мало будет потреблять.
Так в даташите рекомендованы "несколько" более крутой ref adr43x и буфер ad8031, тоже пошустрее op07.
При чем здесь шустрость. Сигнал постоянный - стоит как забор, и во времени не меняется.
Шустрость нужна для удержания выхода при коммутации емкостной нагрузки. Попробуйте к выходу обычного ОУ подключить аналоговый ключ и посмотрите на осциллографе, какие кренделя будет его выход выписывать при перекидывании ключика.
one_eight_seven
Aug 25 2011, 18:17
Вообще-то в datasheete черным по белому написано: Easy to drive, коммутируемая нагрузка - последовательное соединение 600 Ом, и 30пФ всего лишь.
REF195 по Load Regulation не уступает ADR43x.
Да, к ним не придерешься, они написали очень малое выходное сопротивление требуется от опоры и т.п. А очень мало - это сколько?
Может быть, может быть. Очевидно, AD7683 - очень хороший девайс. Но, для того чтобы достичь всех его супер-параметров нужно выполнить очччень много разных телодвижений. И проверять все это нет никакого желания.
Оказалось проще применить другой девайс от другого производителя без всяких наворотов и с результирующими параметрами не хуже.
Цитата(one_eight_seven @ Aug 25 2011, 22:17)

Да, к ним не придерешься, они написали очень малое выходное сопротивление требуется от опоры и т.п. А очень мало - это сколько?
это очень очень мало

, иначе DNL
Цитата(DS @ Aug 25 2011, 20:57)

Посмотрите диаграмму разброса значений для этого АЦП - там в одно и то же значение попадает 78% выборок при фиксированном входе. На 20 КГц они дают 92.7 Дб сигнал/шум. Измерение пика для сигнала и статистические диаграммы разброса значений - несколько разные методы измерения и для разных случаев.
на гистограмме +- 3 сигмы нормального распределения заняли 3 LSB , никак не 2.
one_eight_seven
Aug 25 2011, 18:41
Цитата
И проверять все это нет никакого желания.
А у меня есть. и мелкосхемки закажу, и плату. Но вот в моё устройство, скорее всего, оно не влезет.
Цитата
А у меня есть.
Ну что ж. Охота пуще неволи (С).
Но все эти DNL, 92.7 Дб и пр. не имеют никакого отношения к начальным проблемам, а именно: шума на выходе практически нет, но младших битов - тоже нет.
Цитата(тау @ Aug 25 2011, 22:38)

на гистограмме +- 3 сигмы нормального распределения заняли 3 LSB , никак не 2.
Вы, наверное, на левую диаграмму смотрите, для ref=2.5 В. А я про правую - там, думаю, сильно меньше 2 LSB. Ну и по измерениям, если не диаграмму строить, а RMS по отсчетам посчитать, у меня получалось в районе 0.5
Цитата(DS @ Aug 26 2011, 01:16)

Вы, наверное, на левую диаграмму смотрите, для ref=2.5 В. А я про правую - там, думаю, сильно меньше 2 LSB. Ну и по измерениям, если не диаграмму строить, а RMS по отсчетам посчитать, у меня получалось в районе 0.5
Да, Вы правильно предположили. После точного расчета оказалось что правая гистограмма показывает rms шума в 0,38 LSB. Спасибо.
bullit
Aug 29 2011, 10:40
Решил заложить эту АЦП AD7683 для измерения в токовой петли (4..20 мА - аналог и -20..+20 мА - цифра). Маленькая, маленький шум, не прихотливый интерфейс. Ну может семплов много - зато на 2-4 канала разбросать можно (опять же через буфер). Да тока понял что не очень то она и хороша? или проблема уже решена?
Частот выше 20 кГц похоже не будет.
Какой-то более подходящей, по размеру скорости и точности не попадалось.
Цитата(bullit @ Aug 29 2011, 14:40)

Да тока понял что не очень то она и хороша? или проблема уже решена?
Есть обратная сторона медали - высокие (а точнее, нестандартные) требования к импедансу опоры и входному буферу. Главное условие - по опоре должно быть не менее 2.2 мкф x7r прямо в непосредственной близости от микросхемы, остальные микрофарады могут стоять чуть подалее. И мало замечаемое - источник опоры и буфер не должны выписывать "кренделя" по выходам при резком изменении тока потребления входами АЦП. Часто даже при нагрузке на 100 мкф после изменения тока имеется заметный переходный процесс.
one_eight_seven
Aug 29 2011, 18:59
Цитата
Решил заложить эту АЦП AD7683 для измерения в токовой петли (4..20 мА - аналог и -20..+20 мА - цифра). Маленькая, маленький шум, не прихотливый интерфейс.
Маленькой она точно не будет. Рекомендуемые опоры выпускаются минимум в SO-8. Ну или пониженной точности в MSOP
Цитата
Какой-то более подходящей, по размеру скорости и точности не попадалось.
Попробуй LTC1864 для одного канала или LTC1865 для двух каналов. Про нее в DataSheet написано "The high impedance analog inputs allow direct connection to signal sources in many applications, eliminating the need for external gain stages." То бишь - высокоимпедансные входы.
Еще использую ADS8341 тоже 16-разрядный и четырехканальный.
Все они есть в микрокорпусах, и подобных проблем с ними не было.
bullit
Aug 31 2011, 06:19
ADS8341 - не плохой вариант, но его SYSTEM PERFORMANCE честно говоря не очень радует. Тут и смещение в 13 lsb при 5 вольтах и т.д. и т.п.
Насколько он хорош при измерении низкочастотных сигналов порядка 10-30 кГц? Есть статистика на этот диапазон напряжений?
Цитата
Есть статистика на этот диапазон напряжений?
У меня такой статистики нет, извини. Я его использую для измерения постоянных и выпрямленных (демодулированных) напряжений.
bullit
Aug 31 2011, 10:50
Ладно, а воопче болтанка кода, влияние температуры имеют место быть? Опять же, то смещение (Offset Error) +/- 1 мв максимум по даташиту... это ж почти 13 LSB.
Имеет ли смысл свободные входы использовать для калибровки АЦП?
1. В моих приборах установлен термодатчик, компенсирующий влияние температуры (связано с методом измерения) или прибор находится в активном термостате. Поэтому что-то конкретное сказать про влияние температуры не могу. В DataSheet на графиках (стр.6) приведены зависимости изменения OFFSET и GAIN от температуры.
2. По смещению: использую цифровое градуирование сигнала, поэтому смещение не волнует, поскольку это величина аддитивная.
3. Что касается цифр (1 мВ), так у горячо любимого AD7683 Offset Error = +-1,6 мВ. Мне кажется, что некоторые параметры ADS8341 если и хуже некоторых одноканальных собратьев, то это связано с входным мультиплексором (вносит небольшие искажения в сигнал).
Есть еще одноканальный вариант - ADS8325. Как он устроен не понятно (может быть также как и AD7683), но на структурной схеме на входе нарисован операционник...?
AntonKam
Nov 5 2012, 09:26
Столкнулся с такой же проблемой - залипание младших 4-х битов АЦП. Вскрытие показало, что неправильная трассировка ПП. Керамика на референсе должна стоять не просто рядом с микросхемой, а находиться впритык. У меня все биты заработали, когда я конденсатор (4,7 мкФ X7R) положил прямо на «спинку» АЦП и припаял его короткими проволочками.
Также не лишней оказалась установка RC цепочки (39 Ом, 33 нФ) на положительном входе. В результате заметно уменьшился шум p-p (с 30 до 8-10 единиц кода).
В качестве опорника использовал TL431. Драйвер АЦП - AD8541.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.