Перейти к содержанию

Проблема с АЦП AD7892


Рекомендуемые сообщения

Добрый день! Изначально требовалось создать устройство для снятия зондовой характеристики плазмы, которая представляет собой обычную ВАХ. Так как предполагается работа в импульсном режиме с частотой десятки кГц, то нужен был быстрый АЦП, в качестве которого был выбран AD7892. Проблема заключается в том, что АЦП имеет какую-то слишком большую нелинейность, которую можно увидеть на графике. Думал что проблема может быть в кривом синусе подаваемого на вход АЦП, однако осциллограф показал чистую синусоиду. Перед АЦП стоит повторитель напряжения на ОУ AD823. ОУ не искажает сигнал - проверено осциллографом. Подавал на вход и постоянный ток, нелинейность все также имеется. Схему прилагаю. Может быть у кого-нибудь была такая же проблема? И как с ней справиться?   

image.png

image.png

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

По оси Х номер снятой точки, по оси Y напряжение.

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

На графике отображено всего около 1000 точек, потому что из-за периодичности синусоиды бывает измерение одного и того же значения напряжения, ранее измеренная точка в таком случае перезаписывается.

Изменено пользователем Levanisov.Vadim
Ссылка на комментарий
Поделиться на другие сайты

19 minutes ago, Levanisov.Vadim said:

в произвольные моменты времени

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

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

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, maxssau сказал:

как вариант попробовать без защитных диодов на входе

Пробовал, ничего не меняется.

50 минут назад, Yurkin2015 сказал:

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

Тоже так думал, но, если подать на вход АЦП постоянное напряжение при котором на графике происходит скачок, то почему то АЦП измеряет какую-то чушь. Например, подаю около 3 В постоянки, АЦП при этом считает что на входе 1,8 В. 

И еще при увеличении числа измерений до 100000 картина не изменилась.

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

Изменено пользователем Levanisov.Vadim
Ссылка на комментарий
Поделиться на другие сайты

по какой шине обменивается с МК? может просто "залипший" бит? 

 

У меня была проблема с постоянкой, долго я менял детали на плате, а оказалось что в Firmware неверно делалась инверсия значения (из-за особенностей схемотехники пришлось один канал инвертировать).

Евгений

Идеи, проекты, готовые девайсы: https://vk.com/hifi_samara

Ссылка на комментарий
Поделиться на другие сайты

Обмен с МК происходит по параллельной шине. Как определить что бит "залип"? Можете пояснить?

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

Ссылка на комментарий
Поделиться на другие сайты

самое простое - проверить настройки портов. На графике очень похоже что не отрабатывает какой то из бит. Подвайте постоянку на вход и смотрите что приходит в буфер чтения МК, посчитать сколько примерно должно быть не сложно, особенно старшие биты. Вход +- 5В, правильно я понял? Это и есть полная шкала, в даташите была таблица представления данных на выходе АЦП.

Евгений

Идеи, проекты, готовые девайсы: https://vk.com/hifi_samara

Ссылка на комментарий
Поделиться на другие сайты

У меня используется AD7892-1, у него полная шкала +- 10 В. Делал как вы и говорили. Подал 3 В на вход АЦП. Получил двоичный код который приходит с АЦП, перевел его в десятичный и умножил на 4,88 мВ (именно столько вольт приходится на один младший разряд), в итоге получил свои 1,8 В. При этом если на него подать 5 В постоянки и провести те же манипуляции с полученным двоичным кодом, то все ок и получается 5 В.

Да, при написании прошивки сверялся с даташитом.

Изменено пользователем Levanisov.Vadim
Ссылка на комментарий
Поделиться на другие сайты

смотрите побитно значения, какой не меняется, вполне возможно какой то из старших всё время в 1

Изменено пользователем maxssau

Евгений

Идеи, проекты, готовые девайсы: https://vk.com/hifi_samara

Ссылка на комментарий
Поделиться на другие сайты

Скорее не слипшиеся, а отсутствие контакта. Либо пин на МК неправильно настроен. Либо перепутаны местами, скажем D8 и D9

Изменено пользователем BARS_
Ссылка на комментарий
Поделиться на другие сайты

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

Слипшихся ног не обнаружил, но биты действительно меняются парно. А именно 7 и 8 биты на одном АЦП и 6 и 7 на другом. Прозвонил их между собой, и опять замыканий не было. Отключил внутреннюю подтяжку ног на Arduino, теперь вдруг почему-то поднимается 9 бит на одном АЦП и 8 на другом. Например, вот строчки из файла записанных точек:

Напряжение, В                                             Ток, А

"10,8674"         "000001101100"                 "5,553e-05"    "000000111010"
"11,6724"         "000001110100"                 "5,36152e-05"    "000000111000"
"55,3433"         "001000100110"                 "0,000265204"    "000100010101"
"55,444"           "001000100111"                 "0,000265204"    "000100010101"

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

Можно подумать что при измерении были пропущены точки поэтому так получилось, но перед этим до 11,6 В измерение шло линейно, то есть да есть некоторые пропущенные точки, но разница напряжений между двумя соседними точками не превосходит 0,4 В, а тут такой скачек на 44 В. График значений прилагаю.

По оси Х здесь номер точки, по оси Y напряжение.

Так и не понял в чем трабл.

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

image.png

image.png

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, Levanisov.Vadim сказал:

Напряжение, В                                             Ток, А

"10,8674"         "000001101100"                 "5,553e-05"    "000000111010"
"11,6724"         "000001110100"                 "5,36152e-05"    "000000111000"
"55,3433"         "001000100110"                 "0,000265204"    "000100010101"
"55,444"           "001000100111"                 "0,000265204"    "000100010101"

второй и пятый (счет от 0) биты заморожены

Евгений

Идеи, проекты, готовые девайсы: https://vk.com/hifi_samara

Ссылка на комментарий
Поделиться на другие сайты

Да действительно, не заметил. 

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

В параллельном режиме вот такие траблы.

Хотя при измерении низких напряжений все ок.

Напряжение (В)                            Ток (А)
"0,00000"    "000000000000"    "3,82966e-06"    "000000000100"
"0,20125"    "000000000010"    "3,82966e-06"    "000000000100"
"0,40249"    "000000000100"    "6,7019e-06"    "000000000111"
"0,60374"    "000000000110"    "6,7019e-06"    "000000000111"
"0,70437"    "000000000111"    "6,7019e-06"    "000000000111"
"0,80499"    "000000001000"    "7,65931e-06"    "000000001000"
"1,00624"    "000000001010"    "8,61673e-06"    "000000001001"
"1,20749"    "000000001100"    "9,57414e-06"    "000000001010"
"1,30812"    "000000001101"    "9,57414e-06"    "000000001010"
"1,40874"    "000000001110"    "1,05316e-05"    "000000001011"
"1,60999"    "000000010000"    "1,1489e-05"    "000000001100"
"1,81124"    "000000010010"    "1,24464e-05"    "000000001101"
"2,01248"    "000000010100"    "1,34038e-05"    "000000001110"
"2,21373"    "000000010110"    "1,53186e-05"    "000000010000"
"2,31436"    "000000010111"    "1,53186e-05"    "000000010000"
"2,41498"    "000000011000"    "1,6276e-05"    "000000010001"
"2,51561"    "000000011001"    "1,6276e-05"    "000000010001"
"2,61623"    "000000011010"    "1,53186e-05"    "000000010000"
"2,81748"    "000000011100"    "1,72335e-05"    "000000010010"
"3,01873"    "000000011110"    "1,91483e-05"    "000000010100"

Ссылка на комментарий
Поделиться на другие сайты

Сигнал подается с ЛАТРа подключенного к сети, то есть на входе синус. 

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • У меня больше всего вопросов вызвала необычная схема обеспечения отрицательного питания. Автор этой обстоятельной заметки пишет: For this supply to work correctly, the transformer must have a secondary voltage of at least 18V RMS.  Почему? Что будет не так с отрицательным питанием, если напряжение на трансформаторе будет меньше 18В?   https://tinyurl.com/23mlwxtt - я в простейшей эмуляции ставлю 12В пикового напряжения для трансформатора и на стабилитроне все как положено: -5.6В.
    • Согласен, очень криво объяснил. Это работа трёх вольтовой линии, просто на диод шотки сдвоенный, на один анод приходит сигнал напрямую с трансформатора, а на второй через дроссель. Вольт/деление 5 вольт в клетке, тайминг по моему 10 МС. Третья фотография это сигнал на катодах уровень земли ровно по центру экрана. Но все линии по итогу в порядке 3.3 в, 5, в, 12 в и -12 в. Нагрузить все линии не могу сразу ,так как тут же выгорают транзисторы (имеется нагрузка 250 ватт по 10 ампер на каждую линию за исключением-12в), поэтому нагружаю 3.3 вольтовую линию на 10 ампер,  подключаю переменный резистор 50 ватт на 15 ом на 5 вольтовую линию и постепенно довожу до той той картины с перекосом (это гдето  50 ватт общее). По поводу микросхемы, вверху имеется скрин где между импульсами проскакивает мини импульс, если так можно сказать, он проскакивает и на одной  и на второй ноге (7,8). Микросхема не tl 494, а lw4933/abx942.1/c9421646. Далее они приходят на базы транзисторов 945g  коллекторы этих транзисторов соединены с  выводами трансформатора. Просто схема типовая, легче мне кажется просто привести фото самого блока, для тех кто разбирается будет гораздо информативне.  Диод шотки по 12 вольтовой линии был подгоревший, заменил на донора. Приводить скрины не буду что бы не захламлять тему. В итоге, пока все так же, при достижении определенной нагрузки суммарно где-то 50 ватт, появляется этот "выброс и перекос". По этому имеются мысли на два варианта, это микросхема , этот мини импульс между периодами, на низкой нагрузке особо не влияет, но при достижении определенной приводит с самовозбуждению входной цепи и непроизвольному открытию транзистора нижнего плеча. Либо дело в "горячей части", плавающий дефект в обвязке силовых ключей.  Спасибо за ответ.
    • @Gomerchik а вы контролировали как меняется уровень сигнала на А1 ардуины?
    • Спасибо за совет. Автором данного проекта я не являюсь, мне нужно было воссоздать уличный датчик для метеостанции взамен пропавшего(( Из разного найденного в интернете этот проект работает с моей станцией Орегон (спасибо автору). В понедельник попробую последовать Вашему совету. Но все равно куча непоняток  как блин это работает)) Если дело в неправильной отправки команды, то как на это влияет подключение датчика температуры? Если совсем не подключать таймер, то передача идет один раз (как и прописано в программе), станция принимает и отображает, но минут через сколько-то естественно станция уже ни чего не показывает, но с таймером питание полностью не пропадает с ардуинки, но передача сигнала каким-то образом работает по таймеру.  В моем понимании данная команда подается один раз потому, что таймер должен отключать питание МК после передачи сигнала и каждые 43 сек снова подавать питание (так того требует станция).  Ардуино передает показания температуры отключается полностью и 43 секунды мк не работает.  Сейчас у меня питание пока сделано на подпитке от солнечной батареи, но пару пасмурных дней и аккумулятор съедается до отключения(
    • thickman Так и сделаю. Вытащу из бу БП.  Буду знать, как отличить. Благодарю. Заменил транзисторы на IRFB20N50K. Картина стала, совсем другой.  Похоже трудность не в драйвере, на момент подвозбуда, переходные процессы, в нем, завершены. Увеличил затворные резисторы до 50ом, стало немного лучше.  Не понятно, почему верхний ключ греется несколько сильнее. Возможно, стоит посмотреть ток в коллекторе.  Снабберные емкости временно удалил, изменений не произошло.  Замена ТГР на другой, на кольце MSTN-16A-TH, так же, результата не принесла.   irfb20n50k.pdf
    • А что нить из ассортимента активных щупов производства СССР..))
×
×
  • Создать...