Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: непонятки с AD7766
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Вопросы аналоговой техники
kumle
Всем привет !
Три дня мучаюсь, непойму в чем дело ?
В схеме измерения стоит АЦП AD7766-2, сигнал на него подаю с генератора через два операционника для получения дифф. сигнала. Таким образом получается сигнал
с размахом 5 вольт относительно 2.5 вольт.
На ножку Vref+ подаю 5v c прецизионного источника ADR435. Из даташита сказано что максимальный код ацп будет при напряжении Vref (когда скажем Vin+ = 5v, a Vin- = 0v),
но смотря оцифрованный сигнал вижу, что уже при размахе поданного с генератора сигнала чуть выше 2.5v (Амплитуда чуть выше 1.25v) ацп начинает заахлебываться, и выдавать максимальные коды, а местами и вовсе нули, хотя по идее я подал только половину диапазона !!! До размаха 2.5 вольт все нормально, но коды естественно выдает как будто умноженные на 2!!! Мерял сигнал непосредственно на входах АЦП, там все в порядке (соответствует поданному с генератора).
Може я чего-то не понимаю.
Прилагаю даташит на всякий случай (Удалено)
Вот не нужно так делать, а нужно так -
http://www.analog.com/static/imported-files/data_sheets/AD7766.pdf
MaxPIC
Могу предположить, что у Вас проблема с настройкой SPI (как будто считываете со сдвигом, начиная не со старшего байта, а со следующего за ним). Посмотрите осциллографом SCLK, CS, SDO и проконтролируйте момент защёлкивания данных с SPI.
kumle
Цитата(MaxPIC @ Mar 11 2014, 16:37) *
Могу предположить, что у Вас проблема с настройкой SPI (как будто считываете со сдвигом, начиная не со старшего байта, а со следующего за ним). Посмотрите осциллографом SCLK, CS, SDO и проконтролируйте момент защёлкивания данных с SPI.


Спасибо, совсем упустил это из виду, надо будет завтра с утра проверить!
ms1
Для начала подайте на Vref на Vin+, а Vin- соедините с землей или наоборот.
Еще нагляднее будет включить три последовательно соединенных одинаковых резистора, например 1к между Vref и землей. Vin+и Vin- подключите к на выводы с среднего резистора (т.е. между Vin+- будет 1/3 Vref)
посмотрите на отсчеты идущие с вашего АЦП и сравните с тем что Вы ожидали бы увидеть. Вообще должна быть 1/6 FS.
Если все в порядке тогда можно подавать синусоиду и разбираться с ней.
Однако боюсь что уже на постоянном будет не все в порядке, если все что вы описываете верно и не допущены какие нибудь ошибки в схеме или в считывании/интерпретации данных

Цитата(MaxPIC @ Mar 11 2014, 16:37) *
Могу предположить, что у Вас проблема с настройкой SPI (как будто считываете со сдвигом, начиная не со старшего байта, а со следующего за ним).


Если коды беспорядочные, то сокрее даже не пропуск старшего байта (хотя и эта причина вполне вероятна) а невыдержанные задержки между клоком и данными или просто данные интерпретируются как LSB-first вместо MSB-first
Топикстартеру:
В любос случае проверку считывания данных лучше начинать с постоянного сигнала, а не с синусоиды.
kumle
Еще в этом АЦП есть ножка REFGND (это помимо AGND)

Вот ее описание, слова вроде бы все ясны я смысл не складывается:

Reference Ground. Ground connection for the reference voltage. The input reference voltage (VREF+) should be decoupled to this pin

Я просто заземлил ее тоже a на вход Vref+ подключил емкости как указано в даташите.


Если коды беспорядочные, то сокрее даже не пропуск старшего байта (хотя и эта причина вполне вероятна) а невыдержанные задержки между клоком и данными или просто данные интерпретируются как LSB-first вместо MSB-first
Топикстартеру:
В любос случае проверку считывания данных лучше начинать с постоянного сигнала, а не с синусоиды.
[/quote]

Я понимаю, но вот что у меня выводится:Нажмите для просмотра прикрепленного файла


На оси не смотрите, это я в окно спектра временно для отладки вывел выборки!
_pv
дифф сигнал с генератора честно подаёте? а то там
Common-Mode Input Voltage: VREF+/2 − 5%; VREF+/2; VREF+/2 + 5%

upd: хотя не, судя по картинке, со знаковостью перепенных при отображении на графике что-то напутали. очень уж аккуратно оно через 2^23 переполнилось.
kumle
Цитата(_pv @ Mar 11 2014, 17:00) *
дифф сигнал с генератора честно подаёте? а то там
Common-Mode Input Voltage: VREF+/2 − 5%; VREF+/2; VREF+/2 + 5%

upd: хотя не, судя по картинке, со знаковостью перепенных при отображении на графике что-то напутали. очень уж аккуратно оно через 2^23 переполнилось.



Максимальный код АЦП для положительного напряжения как раз 0x7FFFFF (8388607), что видно на графике (хотя подано в два раза меньше !!!!)

Насчет Vref/2 +-5%, у меня есть разбаланс порядка 0.25 вольт!, С генератора подаю просто синус. смещение и дифф сигнал делаю на двух операционниках
ms1
Цитата(kumle @ Mar 11 2014, 16:59) *
Я понимаю, но вот что у меня выводится:


Это совсем не беспорядочные коды.
Либо ошибка масштабирования на ОУ, либо ошибка в программе визуализации (тоже кстати не стоит сбрасывать со счетов)
Напряжение опоры проверяли?
Хотя загиб верхушки все же похож на неверную интерпретацию верно считанных данных.

kumle
Цитата(ms1 @ Mar 11 2014, 17:12) *
Это совсем не беспорядочные коды.
Либо ошибка масштабирования на ОУ, либо ошибка в программе визуализации (тоже кстати не стоит сбрасывать со счетов)
Напряжение опоры проверяли?
Хотя загиб верхушки все же похож на неверную интерпретацию верно считанных данных.


Ошибку масштабирования отметаю, так как смотрю сигнал осциллом непосредственно на ножках АЦП, там сигнал амплитудой 1.25 относительно уровня 2.5v, но сигналы V+ b V- немного сдвинуты (по напряжению нуля) примерно на 0.2 вольта.

Визуализация тут очень простая, получаю массив во float и загоняю в компонент TChart.


я пока пошел домой завтра еще буду разбираться и отпишусь, спасибо всем
alexPec
Цитата(kumle @ Mar 11 2014, 18:25) *
я пока пошел домой завтра еще буду разбираться и отпишусь, спасибо всем


Почитайте тут если время будет. АЦП не ваш, но с AD-АЦП напоролся на явный косяк чипа, и косяк этот не документирован был на то время нигде. После такого не исключаю что чип так может работать. Конечно надо перед такими вердиктами все остальное дотошно проверить...
kumle
Всем привет снова.
Сегодня попробовал подавать пост. напряжения на V+ и V-
На V+ подал чуть меньше 5v, на V- 2.5v, в итоге получил практически зашкал АЦП по положительному напряжению!!! (4.99-2.5=2,49)

До этого тщательно установил Vref/2, теперь он у меня точно 2.5v

Все это не соответствует даташиту!!! Там ведь на стр. 20 ясно сказано что напряжение приложенное к дифференциальным входам мжет меняться от 0 до 5v вокруг 2.5 вольт
Вот дословно из даташита:
(When the AD7766-2 Vref pin has a 5v supply, the common mode is at 2.5v, meaning that the maximum inputs that can be applied on the differential inputs are a 5v p-p input around 2.5 v)

Теперь даже не знаю что дальше делать ?

_4afc_
Цитата(alexPec @ Mar 11 2014, 18:56) *
Почитайте тут если время будет. АЦП не ваш, но с AD-АЦП напоролся на явный косяк чипа, и косяк этот не документирован был на то время нигде. После такого не исключаю что чип так может работать. Конечно надо перед такими вердиктами все остальное дотошно проверить...


У меня с AD7694 были похожие проблемы. Оцифровывал звук с частотой 100кГц. Перед АЦП стояд НЧ фильтр на 5кГц.
Всё работало, но если громко зашипеть в микрофон - тогда АЦП зависал и выдавал аброкадабру пока не снимешь с него питание.
Проблема была решена ограничением динамического диапазона с 0-3.3 до 0.6-2.7В.
_pv
Цитата(kumle @ Mar 12 2014, 17:11) *
Всем привет снова.
Сегодня попробовал подавать пост. напряжения на V+ и V-
На V+ подал чуть меньше 5v, на V- 2.5v, в итоге получил практически зашкал АЦП по положительному напряжению!!! (4.99-2.5=2,49)

Теперь даже не знаю что дальше делать ?

соблюдать требования по common mode voltage описанные в даташите.
(Vpos + Vneg) / 2 должно быть в диапазоне 2.375 .. 2.625. для 5В опоры
а у вас (5+2.5) / 2 = 3.75В
kumle
Цитата(_pv @ Mar 12 2014, 14:39) *
соблюдать требования по common mode voltage описанные в даташите.
(Vpos + Vneg) / 2 должно быть в диапазоне 2.375 .. 2.625. для 5В опоры
а у вас (5+2.5) / 2 = 3.75В


Я соблюдаю, это я временно подал 5v, чтоб посмотреть что получится, а так у меня строго по 2.5 на каждом входе
Plain
Цитата(kumle @ Mar 12 2014, 13:11) *
Теперь даже не знаю что дальше делать ?

Очевидно, идентифицировать, наконец уж, себя во времени и пространстве, потому как, с тех пор, как Вы пообещали, как минимум себе же:
Цитата(kumle @ Mar 11 2014, 16:41) *
совсем упустил это из виду, надо будет завтра с утра проверить!

приложенных сил не видно, и все мы тут всё ещё лишь лицезреем международное чудо разделения труда:
Цитата(kumle @ Mar 11 2014, 17:25) *
получаю массив
kumle
Цитата(Plain @ Mar 12 2014, 14:45) *
Очевидно, идентифицировать, наконец уж, себя во времени и пространстве, потому как, с тех пор, как Вы пообещали, как минимум себе же:

приложенных сил не видно, и все мы тут всё ещё лишь лицезреем международное чудо разделения труда:



Проверил, у меня данные с ацп читаются через DMA, там все гладко: Пришло прерывание DRDY c АЦП, включаю DMA на получение 3-х байт, затем получаю прерывание от DMA о получении 3-х байт, выключаю DMA складываю байты в буфер и жду следующих данных. Если был бы сдвиг байт (бит) при получении то график такой бы не был, было бы черти-что.
Tanya
Цитата(kumle @ Mar 12 2014, 15:43) *
Я соблюдаю, это я временно подал 5v, чтоб посмотреть что получится, а так у меня строго по 2.5 на каждом входе

А трудно сразу попробовать нормально?
Вот взять два одинаковых резистора, соединить, на среднюю точку подать 2.5 вольта, их концы - на входы АЦП, последовательно с этой цепочкой батарейку и переменный резистор...
kumle
Цитата(Tanya @ Mar 12 2014, 15:14) *
А трудно сразу попробовать нормально?
Вот взять два одинаковых резистора, соединить, на среднюю точку подать 2.5 вольта, их концы - на входы АЦП, последовательно с этой цепочкой батарейку и переменный резистор...



Я уже попробовал с 5-ю и 2.5 вольтами, зачем еще переменник ?

У меня на плате прецизионный источник 2.5 вольт ADR431, вот его и подаю на положительные входы операционников чтоб организовать смещение
Tanya
Цитата(kumle @ Mar 12 2014, 16:27) *
Я уже попробовал с 5-ю и 2.5 вольтами, зачем еще переменник ?

У меня на плате прецизионный источник 2.5 вольт ADR431, вот его и подаю на положительные входы операционников чтоб организовать смещение

Схему нарисуете?
kumle
Цитата(Tanya @ Mar 12 2014, 15:31) *
Схему нарисуете?


Да, 10 мин дайте

вотНажмите для просмотра прикрепленного файла
Tanya
Цитата(kumle @ Mar 12 2014, 16:55) *
Да, 10 мин дайте

А где обратная связь у первого ОУ?
kumle
Цитата(Tanya @ Mar 12 2014, 16:07) *
А где обратная связь у первого ОУ?


Да, там 160 КОМ, в обр связи (просто с платы рисую, упустил)Нажмите для просмотра прикрепленного файла
Plain
Цитата(kumle @ Mar 12 2014, 15:08) *
там все гладко

В библиотеке, прошедшей с 1988 года через пару тысяч индусских голов? Снова приходится корректировать выдаваемые Вами координаты.
WHALE
У вас на схеме Vref и AVdd на AD7766 не попутаны?
kumle
Нажмите для просмотра прикрепленного файла

Вот это получилось когда на вход подаю 2 вольта (p-p), а коды ацп соответствуют размаху 4 вольта и уже близки к пределу АЦП !!!

Цитата(WHALE @ Mar 12 2014, 16:33) *
У вас на схеме Vref и AVdd на AD7766 не попутаны?


Сейчас проверил, не не попутаны, и напряжения на месте


Ладно, я домой, написал аналогичный вопрос на analog.com, может завтра чего-нибудь прояснится.
Всем спасибо!
kumle
Цитата(MaxPIC @ Mar 11 2014, 16:37) *
Могу предположить, что у Вас проблема с настройкой SPI (как будто считываете со сдвигом, начиная не со старшего байта, а со следующего за ним). Посмотрите осциллографом SCLK, CS, SDO и проконтролируйте момент защёлкивания данных с SPI.



Проблема разрешилась, и дело было действительно в SPI, оказалось что проглатывался самый первый бит посылки, что равносильно умножению на 2 !!!
А не заметил этого, так как числа были не большие и поэтому при сдвиге не один разряд влево знак числа не менялся!!!

Всем спасибо тему можно закрывать!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.