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

AD7760-АЦП 24 разряда, 2,5 МГц, кто пользовал?

я имел ввиду аналоговую обвязку кроме обвязки встроенного драйвера. Вопрос вот почему: встроенный драйвер имеет дифференциальный вход и его обвязка выполняет роль масштабирования сигнала и антиалайзингового фильтра. Какие еще аналоговые цепи могут потребоваться?

А в регистре статуса по крайней мере надо смотреть бит DVALID который говорит о корректности выходных данных.

 

DVALID не информативен во время работы. Если нет регулярных SYNCов, то его анализ становится бессмысленным. А SYNC во время работы никто не дергает.

По поводу достаточности фильтра первого порядка для формирования сигнала под 24 битное АЦП я затрудняюсь комментировать. Если Вы так считаете - флаг Вам в руки. Может у Вас источник идеального сигнала надо цифровать.

Поделиться сообщением


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

DVALID не информативен во время работы. Если нет регулярных SYNCов, то его анализ становится бессмысленным. А SYNC во время работы никто не дергает.

Т.е. вы считаете, что DVALID меняется только при синхонизации?

Поделиться сообщением


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

Т.е. вы считаете, что DVALID меняется только при синхонизации?

Еще при перегрузке входа. Но в моем случае перегрузка может возникнуть тогда, когда все уже умерли, смотреть на прибор уже некому будет.

Поделиться сообщением


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

Еще при перегрузке входа. Но в моем случае перегрузка может возникнуть тогда, когда все уже умерли, смотреть на прибор уже некому будет.

Понял - отстал :)

Поделиться сообщением


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

Согласен с SIA - здесь, по-видимому, цифровой сбой, типа "гонки фронтов" или "звона" на линиях данных. Скорее всего, из-за некачественной стыковки. Нужно проверять осциллком с малой ёмкостью щупа (активным пробником) и "короткой землёй".

Если пришлёте фото вашей "буратины", схему подключения, а также кусок кода, отвечающего за ввод данных, может быть, удастся поставить диагноз точнее.

 

ЗЫ. Графики и схемы нужно выкладывать в формате GIF, иначе получается тяжеловато.

Извиняюсь за тяжелый файл. Исправлюсь :). А как лучше архивировать: adc24.zipRAR или ZIP?

Посылаю схему аналоговой части. Попинайте. Если хотите, то ногами :).

Поделиться сообщением


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

Скажите, а чем Вам (или вашим разработчикам) PPI не угодил? С ним, по-моему, гимору было бы значительно меньше...

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

PPI мне (разработчик я) угодил в другом применении - он отвечает за TFT дисплей. С EBIU был некоторый гимор, однако он преодолен. Ошибка в считывании младшего байта (не регулярная) не исключена. Прога написана на С и времена считывания на пределе (к сожалению пока не научилась делать ассемблерные вставки). Однако, при ошибочном считывании характер отклонений был бы другим. Я потом пришлю еще интересные картинки.

Именно AD7760 выбирала не я, однако для наших применений он заманчив с точки зрения охвата большого динамического диапазона сигнала при достаточной частоте дискретризации. Наш исследуемый сигнал весьма похож на сигнал с выхода диф. цепи: т.е он ранополярен, имеет крутой передний фронт и спад по экспоненте. Представляемый интерес амплитуд от 10В до сотен нановольт с точностью порядка до сотни нановольт (кстати ТЗ весьма расплывчато и на уровне: точность как можно больше, частота - выше, диапазон - шире :). Все участки спада - информативны. А Вы можете предложить другой вариант АЦП?

 

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

А что значит "модулятор собъется"? В смысе АЦП перезапускать надо? Как выглядит предполагаемая картинка после такого "сбоя модулятора"?

 

Причем присмотритесь: В этом коридоре результаты более ограничены по верхней границе байта. Т.е у этой внутрибайтовой пляски есть некоторое среднее. Если это "среднее" опустить пониже, то получится равномерный закон распределения. Что-то мне напоминает про искусственно внесенный шум. Хорошо бы спросить у разработчиков.

Похоже на младше_байтовый коридор. посылаю увеличенный фрагмент с HEX шкалой. Но коридор - односторонний - ограничение по верху. Если бы не это ограничение - то была бы обычная борода гаусова шума. Никакого искусственного шума я не вносила.

post-28349-1200895810_thumb.jpg

Поделиться сообщением


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

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

 

Но если по существу - так бывает, это распространённые проблемы при запуске АЦП с таким разрешением, да ещё на такой скорости.

Поделиться сообщением


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

Извиняюсь за тяжелый файл. Исправлюсь :). А как лучше архивировать: adc24.zipRAR или ZIP?

Посылаю схему аналоговой части. Попинайте. Если хотите, то ногами :).

 

А в Pdf Можно вывести ?

 

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

Поделиться сообщением


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

А в Pdf Можно вывести ?

 

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

Не владею конвертацией Pdf. Мне кажется, что дело не в стыковке. Вот гляньте еще каринку: Эторезультат программной калибровки смещения через внутренний регистр АЦП. Диф вход АЦП закорочен. Смещение меняю через каждые 1000 отсчетов. В третьей выборке хороший результат, а в остальных - коридор.post-28349-1200913810_thumb.jpg

Ну т.е. сбой проявится в виде обобщенной переходной характеристики или в виде безобразия?

Поделиться сообщением


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

Не владею конвертацией Pdf. Мне кажется, что дело не в стыковке. Вот гляньте еще каринку: Эторезультат программной калибровки смещения через внутренний регистр АЦП. Диф вход АЦП закорочен. Смещение меняю через каждые 1000 отсчетов. В третьей выборке хороший результат, а в остальных - коридор

Ну т.е. сбой проявится в виде обобщенной переходной характеристики или в виде безобразия?

 

Да если у Вас строб не на месте на 1 нс, как раз такое и может быть. Это надо в первую очередь исключить. Если тактируете 40 Мгц, данные на выходах появляются через 25нс+немного еще (как я вижу на осциллографе), Я пользую длительность СS 50 нс и паузу между ними тоже 50 нс. Проверьте все-таки осциллографом стробы и учтите задержки в Ваших входных цепях.

 

Есть такая штука - pdf creator, он ставится как драйвер принтера и можно из любой программы напечатать PDF файл. Если нету, могу сейчас на FTP сюда бросить.

Поделиться сообщением


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

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

Поделиться сообщением


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

Да если у Вас строб не на месте на 1 нс, как раз такое и может быть. Это надо в первую очередь исключить. Если тактируете 40 Мгц, данные на выходах появляются через 25нс+немного еще (как я вижу на осциллографе), Я пользую длительность СS 50 нс и паузу между ними тоже 50 нс. Проверьте все-таки осциллографом стробы и учтите задержки в Ваших входных цепях.

Я не поняла, как это "строб не на месте на 1 нс". Строб для BF появляется асинхронно и длится 25 нс. После этого можно считывать данные. Что я и делаю:

for (k=0; k<kol_ADC; k++)

{

while (!(*pPORTHIO & ADC_DRDY)); //ожидание DRDY от АЦП

*pPORTHIO_CLEAR=ADC_DRDY; // сбросить залипающий бит DRDY

 

*store_ADC=*adr_ADC; //считать старший байт данных

ssync();

store_ADC++; //записать в память

 

*store_ADC=*adr_ADC; //считать младший байт данных+байт STATUS

ssync();

store_ADC++;

}

 

На осцилограмме цена деления времени - 800нс...

Поделиться сообщением


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

Диаграмму сигнала CS на АЦП и момента строба данных нарисуйте, а то так не понятно. Процессор может данные защелкнуть через, скажем 5нс после выдачи CS, в общем случае. 7760 Из-за большой задержки данных с быстрым процессором как раз и может работать неправильно. И время между выполнениями считываний с АЦП у Вас чем контролируется ? Оно не может быть меньше 50 нс.

Поделиться сообщением


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

PPI мне (разработчик я) угодил в другом применении - он отвечает за TFT дисплей. С EBIU был некоторый гимор, однако он преодолен. Ошибка в считывании младшего байта (не регулярная) не исключена.

.................................................

А что значит "модулятор собъется"? В смысе АЦП перезапускать надо? Как выглядит предполагаемая картинка после такого "сбоя модулятора"?

Похоже на младше_байтовый коридор. посылаю увеличенный фрагмент с HEX шкалой. Но коридор - односторонний - ограничение по верху. Если бы не это ограничение - то была бы обычная борода гаусова шума. Никакого искусственного шума я не вносила.

Нет сбоя никакого модулятора.

Очевиден сбой по данным. "Верхняя полка" получается оттого, что вместо младшего байта данных считываются нули. :) Ну, и ещё мусор менее заметный имеет место быть, когда некоторые разряды считываются правильно, а некоторые - неправильно.

 

 

Диаграмму сигнала CS на АЦП и момента строба данных нарисуйте, а то так не понятно. Процессор может данные защелкнуть через, скажем 5нс после выдачи CS, в общем случае. 7760 Из-за большой задержки данных с быстрым процессором как раз и может работать неправильно. И время между выполнениями считываний с АЦП у Вас чем контролируется ? Оно не может быть меньше 50 нс.
+1.

Задержек и вэйтстэйтов насажайте сначала, а то фин слишком шустрым может оказаться.

Тактовые частоты ядра и системной шины у Вас каковы?

Поделиться сообщением


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

Никакого искусственного шума я не вносила.

Мои слова "узнать у разработчика" относятся не Вам, а к ADI. При всем моем уважению к Вам и Вашему необычеому увлечению электроникой.

 

"Верхняя полка" получается оттого, что вместо младшего байта данных считываются нули. :)

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

Поделиться сообщением


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

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

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

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

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

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

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

×
×
  • Создать...