Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AD7760-АЦП 24 разряда, 2,5 МГц, кто пользовал?
Форум разработчиков электроники ELECTRONIX.ru > Поставщики компонентов для электроники > Компоненты > Микросхемы
Страницы: 1, 2
SALOME
Сделали выбор АЦП с неожиданно скоростным для 24 разрядных дельта-Сигма. Просьба поделиться впечатлениями от применения. Чую, что есть подводные камни... Подозрительно хорошие характеристики smile.gif
anton
Для такой частоты это мульти битный дельта сигма.
В принципе у подобного построения проблемы с линейностью но аналог утверждает что у них спец алгоритм повышающий линейность.
(с самим чипом не работал)
el34
а он как и AD9260 может поставляется тока по лицензии ?....
ну или в кармане возить....
anton
В принципе если правильно помню таблицу то ограничение 1мгц 16бит.
Но народ покупает 16бит на 100мгц (тока мал мал по дороже).
SALOME
Цитата(anton @ Jun 12 2007, 12:21) *
В принципе если правильно помню таблицу то ограничение 1мгц 16бит.
Но народ покупает 16бит на 100мгц (тока мал мал по дороже).

Да, у него действительно с ростом частоты дискретизации увеличивается SNR и уменьшается динамический диапазон, правда цифры намного лучше. Но для наших задач (измерение в большом динамическом дипазоне амплитуд на разных частотах это не так страшно. По поводу лицензии - да лицензия нужна. Мы прошли этот этап. Он занял 3 месяца без особых заморочек.Потом еще 3 месяца ждали микросхемы. Заодно по этой же лицензии получили КИТ, подключенный к BlackFin. Однако КИТ (вернее его ПО) весьма ограничен по возможностям и имеет проблемы, хотя картинки показывает хорошие. И конечно о наличии подводных камней не делится.
igor5312
Добрый день.

Как у вас обстоят дела с AD7760?
Мы тут тоже прикупили и микросхем, и eval kit. Но вот встал вопрос по ПЛИС установленной на плате. Удалось ли вам на нее получить оригинальную прошивку у analog'а??

заранее спасибо
SALOME
Цитата(igor5312 @ Jan 17 2008, 22:27) *
Как у вас обстоят дела с AD7760?

Назначение ПЛИС не понятно, мы с ними не работаем. На КИТе его отключили перемычкой. Но думаю, что на КИТе ПЛИС согласовывает уровни и помогает организовать обмен, т.к у BF скорость внешней шины на пределе.
Мы подключили KIT AD7760 к DSP BF537, но не к комплектной плате EZ, а к своей разработке. При этом обмен организовали не через PPI, а через EBIU. Данные считываются. Однако имеются явно негодные отсчеты (артефакты примерно 1% от общего числа), хотя на оболочке от ADI этого не наблюдается (подозреваю, что ПЛИСка подыгрывает smile.gif ). Пробовали менять смещение и коэфф усиления - при этом какие-то непонятные процессы (если интересно, то обсудим). Флаги статусного регистра ведут себя не адекватно :-). Ну например два младших разряда "пляшут", а должны быть нули.
Откликнитесь кто еще с этой штуковиной работает. Много всяких вопросов по ней. Кстати на последнем семинаре от ADI эта микруха уже не позиционировалась как 24-х разрядная и ответы спеца по ней были какие-то мутные. Я плачу.
igor5312
Самое интересное в этой микросхеме не 24 бита, а то что в EVAL KIT за 4000рублей включена плата ADZS-537 EZlite которая отдельно стоит 15000 smile.gif))))

Analog'у привет! smile.gif)) Америкосы, блин smile.gif
SIA
Цитата(SALOME @ Jan 18 2008, 07:03) *
Назначение ПЛИС не понятно, мы с ними не работаем. На КИТе его отключили перемычкой. Но думаю, что на КИТе ПЛИС согласовывает уровни и помогает организовать обмен, т.к у BF скорость внешней шины на пределе.
Мы подключили KIT AD7760 к DSP BF537, но не к комплектной плате EZ, а к своей разработке. При этом обмен организовали не через PPI, а через EBIU. Данные считываются. Однако имеются явно негодные отсчеты (артефакты примерно 1% от общего числа), хотя на оболочке от ADI этого не наблюдается (подозреваю, что ПЛИСка подыгрывает smile.gif ). Пробовали менять смещение и коэфф усиления - при этом какие-то непонятные процессы (если интересно, то обсудим). Флаги статусного регистра ведут себя не адекватно :-). Ну например два младших разряда "пляшут", а должны быть нули.
Откликнитесь кто еще с этой штуковиной работает. Много всяких вопросов по ней. Кстати на последнем семинаре от ADI эта микруха уже не позиционировалась как 24-х разрядная и ответы спеца по ней были какие-то мутные. Я плачу.

По моим данным 7760 (как и 9260) первоначально были довольно глючными заказными ИС плюс госзаказчик крайне не заинтересован в их широком распространении. Соответственно "доводить" их фирме особого резона нет. Они попали в номенклатуру только из-за автоматического рассекречивания (закон такой есть в США). Более-менее работоспособны только младшие версии, 7763/4/5, на которые есть реальный спрос. Мне вместо 9260/7760 пришлось делать свой наворот (DS 2-го порядка на быстром неконвейерном 35 МГц 12-битнике), характеристики немного похуже (SNR 96, ТНD менее -90 в полосе 1,12 МГц), намучился, но работает и не очень дорого. Элементная база не AD (условие заказчика).
Linker
Цитата(SIA @ Jan 18 2008, 18:50) *
госзаказчик крайне не заинтересован в их широком распространении. Соответственно "доводить" их фирме особого резона нет. Они попали в номенклатуру только из-за автоматического рассекречивания (закон такой есть в США).

Не совсем понятно, при чем тут госзаказчик... Я думаю, что законы рынка посильнее будут, чем интересы заказчика. Зачем корпарации ADI "неохотно" продавать хорошее изделие? Вот недоведенное до ума изделие (особенно в части документации) - запросто и не впервой...Рискну предположить - группа разработчиков данного изделия слаба в эпистолярном искусстве и не может толком двигать свое детище. Или намеренно скрывает свои промахи в преждевременно разрекламированном недоноске - Х.Е.З.
Мы тоже имеем счастье обладать отладочным комплектом KIT-7760 и пытаемся что-то делать на нем. На NI осцилографе с прилагаемым софтом вроде бы все не плохо и даже наоборот слишком хорошо. Ну например "борода" шума при закороченном входе проходит на уровне 160дБ, хотя разработчик обещал 120дБ. И это на Ките, который забит всякой требухой и расположен рядом с шумящей цифровой платой BF. Серьезно испытать микруху на этом КИТе не представляется возможным: не предусмотрена синхронизация, не возможно проводить настройки регистров. Оболочка периодически подвисает, о чем разработчик честно предупреждает. Но какие причины этому? Ведь битовый поток по USB каналу не превышает 10 М/сек по худшему сценарию. Эран обновляется очень заметно для глазу. Несуразицы в даташите налицо. И к сожалению очень мало отзывов по этому изделию. Однако надежды его применить остались. Уж больно заманчивы характеристики.
Вот упоминали про AD7763/4/5. Хоть бы про них что-нибудь сказали - они же похожи по структуре. Однако Инет молчит. АУ 1111493779.gif
SIA
Цитата(Linker @ Jan 18 2008, 18:40) *
Не совсем понятно, при чем тут госзаказчик... Я думаю, что законы рынка посильнее будут, чем интересы заказчика.

Скорее всего ядро чипа сделали достаточно давно и для конкретного применения, где все функции/параметры не нужны, туда проходило (и небось с 20-битной цифрой). А доводить "до блеска", когда рассекретили - уже некому, люди заняты другими проектами. Просто в рекламных целях подняли разрядность выходного фильтра и на этом остановились.
С 9260 история была очень похожая, ее мариновали 4-5 лет до открытия даташита (про нее знаю из не более чем вторых рук, и даже видел образцы почти за 2 года до открытия даташита), а 7760 - ну те же признаки sad.gif
DS
А не кривизна ли рук всему причиной ? Микросхема ровно как описано в даташите работает. А изучать АЦП на ките а не в своей схеме - очень прямой признак кривизны рук. Да еще ждать месяцы лицензии, вместо того, чтобы найти поставщика, который за лишних 10-15 баксов привезет микросхемы безо всяких лицензий. Вам же не 10000 штук сразу надо было.
Вы до этого работали с сигналами с динамическими диапазонами в 100 децибел ? Или это первый раз ?
SIA
Цитата(DS @ Jan 19 2008, 13:09) *
А не кривизна ли рук всему причиной ? Микросхема ровно как описано в даташите работает. А изучать АЦП на ките а не в своей схеме - очень прямой признак кривизны рук. Да еще ждать месяцы лицензии, вместо того, чтобы найти поставщика, который за лишних 10-15 баксов привезет микросхемы безо всяких лицензий. Вам же не 10000 штук сразу надо было.
Вы до этого работали с сигналами с динамическими диапазонами в 100 децибел ? Или это первый раз ?

Может быть, и "кривизна рук", не знаю. Сейчас и 7760, скорее всего, должен работать нормально. Та разработка, о которой я писал (самодельный DS) - была сделана потому, что изначально требовалось отсутствие компонентов от AD. Для другой задачи я использовал 7763 (главная причина - последовательный интерфейс и меньшее энергопотребление, скорости хватало), работают хорошо, явных глюков не обнаружено. Никаких отладочных плат не применялось, сразу заложено в изделие. С 7760 лично у меня пока не было задачи на их применение, хотя, конечно, чип на заметку был взят давно. Отзывы со стороны и прошлый опыт учитываются, так, в свое время звали разбираться с 9260. У него (НЕ У 7760!) реальные искажения у большинства экземпляров на ВЧ (выше 400 кГц) несколько выше "типовых" цифр в даташите плюс у всех экземпляров на многотональном сигнале при наличии составляющих с частотами выше Fs/2 появляется модуляционный шум. На "обвязку" и джиттер тактового сигнала, к сожалению, грешить не приходится, разбирался лично, подтвердилось, что проблема была в ИС. Естественно, пришлось поставить аналоговый фильтр и скорректировать ТУ на изделие.

p.s. 2DS - опыт работы и серийного производства аналоговой техники с большим динамическим диапазоном (вплоть до 150 дБА, это не опечатка) у меня, не исключено, что самый большой среди участников данной конференции.
DS
А разве я Вам это писал ? Вроде не Вы жаловались, что купили-включили - не работает.

Ну и Вы сейчас пишете про параметры "на грани" - явно у вопрошающих товарищей руки до этого не дошли.
SIA
Цитата(DS @ Jan 19 2008, 13:54) *
А разве я Вам это писал ? Вроде не Вы жаловались, что купили-включили - не работает.

Ну и Вы сейчас пишете про параметры "на грани" - явно у вопрошающих товарищей руки до этого не дошли.


Лады! beer.gif
SALOME
Цитата(DS @ Jan 19 2008, 17:09) *
А не кривизна ли рук всему причиной ? Микросхема ровно как описано в даташите работает. А изучать АЦП на ките а не в своей схеме - очень прямой признак кривизны рук. Да еще ждать месяцы лицензии, вместо того, чтобы найти поставщика, который за лишних 10-15 баксов привезет микросхемы безо всяких лицензий. Вам же не 10000 штук сразу надо было.
Вы до этого работали с сигналами с динамическими диапазонами в 100 децибел ? Или это первый раз ?

Кривизной рук (как впрочем и ног) не страдаю smile.gif. Трудно согласиться с тем, что использование КИТ это подтверждает. Напротив, на изделии от разработчика удается существенно сократить время освоения изделия и это подтвержает кривизну мозговых извилин smile.gif .По моему этокозепонятно. Другое дело, что КИТ не такой ,как хотелось бы...
По поводу запроса отчета о имении дела со 100дБ отвечу уклончиво: имели и по более. Извените за ответку. Но по сути: Не могли бы Вы прокоментировать результат, полученный без использования прилад от производителя. Это продиференцированные отклики на единичный импульс в виде экспонененты. Частота дискретизации 1,25МГц. Сам сигнал порядка 100дБ, а на фрагменте его нижняя часть. Как Вам нравятся ровное ограничение шумов сверху на левом фрагменте, а "полочки" на экспоненте? Чтобы это значило. Спасибо за сотрудничество.
SIA
Цитата(SALOME @ Jan 19 2008, 15:57) *
Кривизной рук (как впрочем и ног) не страдаю smile.gif. Трудно согласиться с тем, что использование КИТ это подтверждает. Напротив, на изделии от разработчика удается существенно сократить время освоения изделия и это подтвержает кривизну мозговых извилин smile.gif .По моему этокозепонятно. Другое дело, что КИТ не такой ,как хотелось бы...
По поводу запроса отчета о имении дела со 100дБ отвечу уклончиво: имели и по более. Извените за ответку. Но по сути: Не могли бы Вы прокоментировать результат, полученный без использования прилад от производителя. Это продиференцированные отклики на единичный импульс в виде экспонененты. Сам сигнал порядка 100дБ, а на фрагменте его нижняя часть. Как Вам нравятся ровное ограничение шумов на левом фрагменте, а "полочки" на экспоненте? Спасибо за сотрудничество.

Посмотрел, статистика отсчетов действительно очень не нравится. Не исключено наличие "цифровых" ошибок (шаг линий напоминает 256, т.е. глюк 8-го бита). Но должен заметить малоизвестную вещь. Любой S-D АЦП не будет нормально работать со входным сигналом, производные которого превышают возможности модулятора. Смысл такой - модулятор - это система с ООС, ее глубина с частотой падает, соответственно возможность отслеживания сигнала - тоже. Поэтому спектр сигнала на входе должен спадать быстрее, чем петлевое усиление модулятора. Т.е. если модулятор третьего порядка - на входе нужен аналоговый ФНЧ 4-того, модулятор 4-того - ФНЧ 5-того, с частотой среза не более, чем на октаву выше полосы пропускания цифрового фильтра модулятора (в данном случае - не более 1,5...2 МГц).
Если этого не сделать, S-D модулятор просто не сможет нормально работать при попадании на вход устройства сигналов произвольного вида или ВЧ-шума.
SALOME
Цитата(SIA @ Jan 19 2008, 17:27) *
опыт работы и серийного производства аналоговой техники с большим динамическим диапазоном (вплоть до 150 дБА, это не опечатка) у меня, не исключено, что самый большой среди участников данной конференции.

Приведенный Вами фрагмент красив, однако скорости маловато. 24 разрядные АЦП 70КГц - достаточно объезженная штука - спасибо аудиорынку. А что-нибудь другое покажите плз.
SIA
Цитата(SALOME @ Jan 19 2008, 16:10) *
Приведенный Вами фрагмент красив, однако скорости маловато. 24 разрядные АЦП 70КГц - достаточно объезженная штука - спасибо аудиорынку. А что-нибудь другое покажите плз.

Там экономичный повторитель от емкости 18 пФ, это аналоговое устройство, причем без явной ООС (требование заказчика), поэтому линеаризация параметрическая. В этом и сложность задачи - предельно малая и линейная входная емкость при одновременно низких шумах и потреблении. У западных продуктов (B&K, Larson etc.) и то, и другое существенно хуже. По искажениям и шумам реальные характеристики лучше, чем на картинке, просто ограниченны возможности измерителя (AP). А насчет чего еще - очень экономичные высоковольтные усилители для перемещения иглы туннельного микроскопа с безвыбросным ПП на пьезоэлемент с кучей резонансов устроят (при вдесятеро меньшем токе покоя вчетверо меньший шум и вдвое более высокое быстродействие, чем Digital instruments, выпускалось серией в сотни штук) ? Атомарное разрешение обеспечено. Или весь фронт-енд для гигагерцевого АЦП, включая тактовые генераторы с джиттером в фемтосекундном диапазоне (SNR 38 дБ при оцифровке сигнала с частотой 1.63 ГГц).
Stanislav
Цитата(SALOME @ Jan 19 2008, 15:57) *
...Не могли бы Вы прокоментировать результат, полученный без использования прилад от производителя. Это продиференцированные отклики на единичный импульс в виде экспонененты. Частота дискретизации 1,25МГц. Сам сигнал порядка 100дБ, а на фрагменте его нижняя часть. Как Вам нравятся ровное ограничение шумов сверху на левом фрагменте, а "полочки" на экспоненте? Чтобы это значило. Спасибо за сотрудничество.
Согласен с SIA - здесь, по-видимому, цифровой сбой, типа "гонки фронтов" или "звона" на линиях данных. Скорее всего, из-за некачественной стыковки. Нужно проверять осциллком с малой ёмкостью щупа (активным пробником) и "короткой землёй".
Если пришлёте фото вашей "буратины", схему подключения, а также кусок кода, отвечающего за ввод данных, может быть, удастся поставить диагноз точнее.

ЗЫ. Графики и схемы нужно выкладывать в формате GIF, иначе получается тяжеловато.
DS
Я бы сказал, что имеет место неверное стробирование данных с выходов АЦП. Или что-то уж совсем безобразное во входном сигнале присутствует. Короче, хотите помощи, давайте схемы, фрагменты платы, спектры входного (тестового гармонического) сигнала и данных с АЦП и прочее. А так ляп может быть где угодно.
Для АЦП совершенно бессмысленно изучение его на kitе, потому что работа его определяется тем, как Вы сделали питание, опору, входные цепи, земли, проложили цифровые сигналы и т.п. В этом плане kit бесполезен, а данных в документации на АЦП более чем достаточно.
SIA - получеие атомарного разрешения на самодельном туннельном микроскопе было типичной задачкой для аспирантов во времена всплеска интереса к туннельной микроскопии в начале 90х. Оно получалось на достаточно примитивных схемах, так что картинка прямо не связана с качеством Вашей электроники. Но это, так, лирическое отступление.

Пока набирал, Stanislav практически то же самое написал smile.gif
Linker
Цитата(Stanislav @ Jan 19 2008, 19:55) *
Согласен с SIA - здесь, по-видимому, цифровой сбой, типа "гонки фронтов" или "звона" на линиях данных. Скорее всего, из-за некачественной стыковки. Нужно проверять осциллком с малой ёмкостью щупа (активным пробником) и "короткой землёй".
ЗЫ. Графики и схемы нужно выкладывать в формате GIF, иначе получается тяжеловато.

А я вот С SIA не вполне согласен. Очень похоже на то, что последние 8 разрядов (т.е. младший байт) гуляют по случайному закону и при этом не могут перескочить этот предел. Просматривается некий "младши_байтовый коридор", который делает какие-то свои преобразования, но честно двигается по измеряемому сигналу. Если этот байт из результата откинуть, то получится сносный 16 разрядный АЦП. Может тут и порылась собака секрета "высокопроизводительного 24 разрядного АЦП?" smile.gif.
DS
Да нет этого в АЦП на самом деле. Нормально там младший байт себя ведет. Здесь скорее всего ошибки при стробировании второго слова из АЦП.
Linker
Цитата(DS @ Jan 19 2008, 20:09) *
Или что-то уж совсем безобразное во входном сигнале присутствует.
Для АЦП совершенно бессмысленно изучение его на kitе, потому что работа его определяется тем, как Вы сделали питание, опору, входные цепи, земли, проложили цифровые сигналы и т.п. В этом плане kit бесполезен, а данных в документации на АЦП более чем достаточно.

Как Вы такое безобразное на входе можете представить? Компютерная графика что-ли? Автор же сказала - сигнал от дифцепи.
Странно, уже второй Гуру высказывает неприязнь к КИТам. Нахлебались видно smile.gif .Понятное дело, что на своей, на коленке сделанной макетке, ляпов будет меньше, чем у разработчиков от ADI. lol.gif Хотя согласен, свои ляпы исправлять проще.

Цитата(DS @ Jan 19 2008, 21:10) *
Да нет этого в АЦП на самом деле. Нормально там младший байт себя ведет. Здесь скорее всего ошибки при стробировании второго слова из АЦП.

Вы говорите, "такого нет" из личного опыта работы с этим АЦП или предполагаете?
Данные из этого АЦП считываются в два 16 разрядных слова: старший и средний байт, потом младший байт и байт статуса. Как раз таки старшие байты ведут себя нормально (экспонента явно прослеживается), а вот младшенький безобразит. Причем присмотритесь: В этом коридоре результаты более ограничены по верхней границе байта. Т.е у этой внутрибайтовой пляски есть некоторое среднее. Если это "среднее" опустить пониже, то получится равномерный закон распределения. Что-то мне напоминает про искусственно внесенный шум. Хорошо бы спросить у разработчиков.
Stanislav
Цитата(Linker @ Jan 19 2008, 18:06) *
А я вот С SIA не вполне согласен. Очень похоже на то, что последние 8 разрядов (т.е. младший байт) гуляют по случайному закону и при этом не могут перескочить этот предел. Просматривается некий "младши_байтовый коридор", который делает какие-то свои преобразования, но честно двигается по измеряемому сигналу.
Здесь, по моему мнению, очевиден сбой в 7-м бите, если считать от 0, только и всего. Скорее всего, есть и в других младших разрядах, только это менее заметно.

Цитата(Linker @ Jan 19 2008, 18:29) *
Странно, уже второй Гуру высказывает неприязнь к КИТам. Нахлебались видно smile.gif .Понятное дело, что на своей, на коленке сделанной макетке, ляпов будет меньше, чем у разработчиков от ADI. lol.gif Хотя согласен, свои ляпы исправлять проще.
Если данная сентенция относится и ко мне, хочу сказать, что вовсе не являюсь противником китов - у нас на фирме "буратины", причём весьма сложные, из них делают довольно часто. Для быстрого прототипирования - очень удобно.
Другое дело, что оценку качества продукта нужно делать только в его "боевом" варианте.

2 SALOME
Скажите, а чем Вам (или вашим разработчикам) PPI не угодил? С ним, по-моему, гимору было бы значительно меньше...
И ещё: почему выбран именно этот АЦП? Прибор, на мой взгляд, для очень специфичных применений...
DS
Не все йогурты (в смысле киты) одинаково полезны. Если кит от процессора, то он весьма полезен - в нем вполне можно что-то отлаживать, проверять, приделать свою периферию и так далее. В отдельно взятом АЦП проверять нечего - его работа критически зависит от того, что вокруг и данные с макетки ничего нового не дадут.
Учитывая, что платы сейчас делаются за несколько дней, смысла в непроцессорных китах немного.

Я работаю с этими АЦП, ничего там такого нет и в помине. Зато картинка отсчетов до боли знакомая и говорит о неправильном стробировании данных.
Stanislav
Цитата(DS @ Jan 19 2008, 19:18) *
Не все йогурты (в смысле киты) одинаково полезны. Если кит от процессора, то он весьма полезен - в нем вполне можно что-то отлаживать, проверять, приделать свою периферию и так далее. В отдельно взятом АЦП проверять нечего - его работа критически зависит от того, что вокруг и данные с макетки ничего нового не дадут.
Учитывая, что платы сейчас делаются за несколько дней, смысла в непроцессорных китах немного.
В принципе, именно так. Правда, не только процессорные киты полезны, а, скажем, ПЛИС или импульсные источники питания - легко проверить соответствие заявленных характеристик реальным для референсного дизайна, ну, и другая мелочь, вроде различных датчиков, для которых специально делать платы - облом.
АЦП-шный кит не брал ни разу - действительно, смысла в этом большого не было. Насколько оправдан подход коллег автора темы, судить тоже не берусь.
Linker
Цитата(DS @ Jan 19 2008, 22:18) *
Учитывая, что платы сейчас делаются за несколько дней, смысла в непроцессорных китах немного.

Я работаю с этими АЦП, ничего там такого нет и в помине. Зато картинка отсчетов до боли знакомая и говорит о неправильном стробировании данных.

Но я понимаю, что для Вас от КИТов нет пользы. Но почему ж так страстно не любить их и тех кто их использует smile.gif?.
А можно Вам задать вопросы, как практику работы с этим АЦП:
- как часто требуется калибровка нуля и коэффициент усиления и делаете ли Вы их и как;
- загружали ли Вы пользовательский фильтр и каков эффект;
- делали ли вы дополнительную аналоговую обвязку, защиту входа от перенапряжений и как;
- как ведет себя АЦП при оцифровке "крутофронтовых сигналов";
- анализируете ли вы статусное слово и как часто там выдается ошибка. Ну и последнее: хорошее изднлие или так себе?
Могу предположить еще один вариант байтовой пляски: при разделении младшего байта от статусного слова произошла ошибка. Может при преобразовании бинарного формата в десятичное слово в оболочке NI напутали . Но на железячную ошибку не похоже.
DS
Цитата(Linker @ Jan 19 2008, 20:00) *
Но я понимаю, что для Вас от КИТов нет пользы. Но почему ж так страстно не любить их и тех кто их использует smile.gif?.
А можно Вам задать вопросы, как практику работы с этим АЦП:
- как часто требуется калибровка нуля и коэффициент усиления и делаете ли Вы их и как;
- загружали ли Вы пользовательский фильтр и каков эффект;
- делали ли вы дополнительную аналоговую обвязку, защиту входа от перенапряжений и как;
- как ведет себя АЦП при оцифровке "крутофронтовых сигналов";
- анализируете ли вы статусное слово и как часто там выдается ошибка. Ну и последнее: хорошее изднлие или так себе?
Могу предположить еще один вариант байтовой пляски: при разделении младшего байта от статусного слова произошла ошибка. Может при преобразовании бинарного формата в десятичное слово в оболочке NI напутали . Но на железячную ошибку не похоже.


Я же не вообще про киты и их пользователей писал, а про конкретный случай. Из которого очевидно, что искать надо в консерватории, а не в микросхеме. Теперь про вопросы.

Калибровки я не делаю, т.к. постоянная составляющая меня не волнует, а ошибка усиления с очевидностью гораздо больше в аналоговых цепях, чем в АЦП. Да и проще усиление потом учитывать при обработке, если нужно.
Фильтр не загружал, это может потребоваться только в очень специфических случаях. И его лучше тогда просто выключить и обрабатывать данные самому.
Естественно, аналоговая обвязка нужна, как же без нее сигнал в АЦП заводить ? Защита от перенапряжений мне не нужна, т.к. АЦП находится внутри схемы.
Как он поведет себя при подаче скачка я не знаю, но очевидно, что модулятор собъется. Я спектр сигнала формирую с учетом того, что сигма-дельта АЦП не может обработать сигналы с большими производными.
Статус не анализирую, незачем. Изделие для тех целей, что я применяю - в самый раз.
Linker
Цитата(DS @ Jan 19 2008, 23:28) *
Естественно, аналоговая обвязка нужна, как же без нее сигнал в АЦП заводить?
Статус не анализирую, незачем. Изделие для тех целей, что я применяю - в самый раз.

я имел ввиду аналоговую обвязку кроме обвязки встроенного драйвера. Вопрос вот почему: встроенный драйвер имеет дифференциальный вход и его обвязка выполняет роль масштабирования сигнала и антиалайзингового фильтра. Какие еще аналоговые цепи могут потребоваться?
А в регистре статуса по крайней мере надо смотреть бит DVALID который говорит о корректности выходных данных.
DS
Цитата(Linker @ Jan 20 2008, 08:02) *
я имел ввиду аналоговую обвязку кроме обвязки встроенного драйвера. Вопрос вот почему: встроенный драйвер имеет дифференциальный вход и его обвязка выполняет роль масштабирования сигнала и антиалайзингового фильтра. Какие еще аналоговые цепи могут потребоваться?
А в регистре статуса по крайней мере надо смотреть бит DVALID который говорит о корректности выходных данных.


DVALID не информативен во время работы. Если нет регулярных SYNCов, то его анализ становится бессмысленным. А SYNC во время работы никто не дергает.
По поводу достаточности фильтра первого порядка для формирования сигнала под 24 битное АЦП я затрудняюсь комментировать. Если Вы так считаете - флаг Вам в руки. Может у Вас источник идеального сигнала надо цифровать.
Linker
Цитата(DS @ Jan 20 2008, 16:34) *
DVALID не информативен во время работы. Если нет регулярных SYNCов, то его анализ становится бессмысленным. А SYNC во время работы никто не дергает.

Т.е. вы считаете, что DVALID меняется только при синхонизации?
DS
Цитата(Linker @ Jan 20 2008, 13:59) *
Т.е. вы считаете, что DVALID меняется только при синхонизации?

Еще при перегрузке входа. Но в моем случае перегрузка может возникнуть тогда, когда все уже умерли, смотреть на прибор уже некому будет.
Linker
Цитата(DS @ Jan 20 2008, 17:08) *
Еще при перегрузке входа. Но в моем случае перегрузка может возникнуть тогда, когда все уже умерли, смотреть на прибор уже некому будет.

Понял - отстал smile.gif
SALOME
Цитата(Stanislav @ Jan 19 2008, 20:55) *
Согласен с SIA - здесь, по-видимому, цифровой сбой, типа "гонки фронтов" или "звона" на линиях данных. Скорее всего, из-за некачественной стыковки. Нужно проверять осциллком с малой ёмкостью щупа (активным пробником) и "короткой землёй".
Если пришлёте фото вашей "буратины", схему подключения, а также кусок кода, отвечающего за ввод данных, может быть, удастся поставить диагноз точнее.

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

Извиняюсь за тяжелый файл. Исправлюсь smile.gif. А как лучше архивировать: Нажмите для просмотра прикрепленного файлаRAR или ZIP?
Посылаю схему аналоговой части. Попинайте. Если хотите, то ногами smile.gif.
SALOME
Цитата(Stanislav @ Jan 19 2008, 22:36) *
Скажите, а чем Вам (или вашим разработчикам) PPI не угодил? С ним, по-моему, гимору было бы значительно меньше...
И ещё: почему выбран именно этот АЦП? Прибор, на мой взгляд, для очень специфичных применений...

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

Цитата(DS @ Jan 20 2008, 00:28) *
Как он поведет себя при подаче скачка я не знаю, но очевидно, что модулятор собъется.

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

Цитата(Linker @ Jan 19 2008, 22:29) *
Причем присмотритесь: В этом коридоре результаты более ограничены по верхней границе байта. Т.е у этой внутрибайтовой пляски есть некоторое среднее. Если это "среднее" опустить пониже, то получится равномерный закон распределения. Что-то мне напоминает про искусственно внесенный шум. Хорошо бы спросить у разработчиков.

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

Но если по существу - так бывает, это распространённые проблемы при запуске АЦП с таким разрешением, да ещё на такой скорости.
DS
Цитата(SALOME @ Jan 21 2008, 07:36) *
Извиняюсь за тяжелый файл. Исправлюсь smile.gif. А как лучше архивировать: Нажмите для просмотра прикрепленного файлаRAR или ZIP?
Посылаю схему аналоговой части. Попинайте. Если хотите, то ногами smile.gif.


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

При сбое модулятора скорее всего будут осцилляции выхода, которые заранее не предугадать, они от внутренней структуры микросхемы зависят. Поскольку в АЦП все фильтры FIR, то сбой будет продолжаться не более полного времени групповой задержки.
SALOME
Цитата(DS @ Jan 21 2008, 17:41) *
А в Pdf Можно вывести ?

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

Не владею конвертацией Pdf. Мне кажется, что дело не в стыковке. Вот гляньте еще каринку: Эторезультат программной калибровки смещения через внутренний регистр АЦП. Диф вход АЦП закорочен. Смещение меняю через каждые 1000 отсчетов. В третьей выборке хороший результат, а в остальных - коридор.Нажмите для просмотра прикрепленного файла
Ну т.е. сбой проявится в виде обобщенной переходной характеристики или в виде безобразия?
DS
Цитата(SALOME @ Jan 21 2008, 14:03) *
Не владею конвертацией Pdf. Мне кажется, что дело не в стыковке. Вот гляньте еще каринку: Эторезультат программной калибровки смещения через внутренний регистр АЦП. Диф вход АЦП закорочен. Смещение меняю через каждые 1000 отсчетов. В третьей выборке хороший результат, а в остальных - коридор
Ну т.е. сбой проявится в виде обобщенной переходной характеристики или в виде безобразия?


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

Есть такая штука - pdf creator, он ставится как драйвер принтера и можно из любой программы напечатать PDF файл. Если нету, могу сейчас на FTP сюда бросить.
forever failure
Попробуйте посмотреть как ведут себя разряды АЦП побитно. Такое может быть, что один из средних разрядов из-за какой нить ошибки имеет одно и тоже значение, независимо от реального результата преобразования. Прям вот так выписать в столбик несколько подряд отсчётов при разных смещениях, и посмотреть какие биты в них изменяются.
SALOME
Цитата(DS @ Jan 21 2008, 18:25) *
Да если у Вас строб не на месте на 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нс...
DS
Диаграмму сигнала CS на АЦП и момента строба данных нарисуйте, а то так не понятно. Процессор может данные защелкнуть через, скажем 5нс после выдачи CS, в общем случае. 7760 Из-за большой задержки данных с быстрым процессором как раз и может работать неправильно. И время между выполнениями считываний с АЦП у Вас чем контролируется ? Оно не может быть меньше 50 нс.
Stanislav
Цитата(SALOME @ Jan 21 2008, 09:10) *
PPI мне (разработчик я) угодил в другом применении - он отвечает за TFT дисплей. С EBIU был некоторый гимор, однако он преодолен. Ошибка в считывании младшего байта (не регулярная) не исключена.
.................................................
А что значит "модулятор собъется"? В смысе АЦП перезапускать надо? Как выглядит предполагаемая картинка после такого "сбоя модулятора"?
Похоже на младше_байтовый коридор. посылаю увеличенный фрагмент с HEX шкалой. Но коридор - односторонний - ограничение по верху. Если бы не это ограничение - то была бы обычная борода гаусова шума. Никакого искусственного шума я не вносила.
Нет сбоя никакого модулятора.
Очевиден сбой по данным. "Верхняя полка" получается оттого, что вместо младшего байта данных считываются нули. smile.gif Ну, и ещё мусор менее заметный имеет место быть, когда некоторые разряды считываются правильно, а некоторые - неправильно.


Цитата(DS @ Jan 21 2008, 15:18) *
Диаграмму сигнала CS на АЦП и момента строба данных нарисуйте, а то так не понятно. Процессор может данные защелкнуть через, скажем 5нс после выдачи CS, в общем случае. 7760 Из-за большой задержки данных с быстрым процессором как раз и может работать неправильно. И время между выполнениями считываний с АЦП у Вас чем контролируется ? Оно не может быть меньше 50 нс.
+1.
Задержек и вэйтстэйтов насажайте сначала, а то фин слишком шустрым может оказаться.
Тактовые частоты ядра и системной шины у Вас каковы?
Linker
Цитата(SALOME @ Jan 21 2008, 12:10) *
Никакого искусственного шума я не вносила.

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

Цитата(Stanislav @ Jan 21 2008, 18:35) *
"Верхняя полка" получается оттого, что вместо младшего байта данных считываются нули. smile.gif

Это так и есть. На "полках" считываются именно нули - это видно по отсчетам вертикальной шкалы. Вопрос в том, откуда они берутся. На картинке, где показаны результаты програмного изменения смещения видно, что статистика появления нулей меняется с изменением смещения. з-я выборка практически нулей не содержит, а другие содержат причем по разному. Но при этом алгоритм считывание данных-то не меняется... Ну разве, что АЦП меняет темп выдачи данных при изменении содержимого своего регистра "OFFSET".
Stanislav
Цитата(Linker @ Jan 21 2008, 18:38) *
...На картинке, где показаны результаты програмного изменения смещения видно, что статистика появления нулей меняется с изменением смещения. з-я выборка практически нулей не содержит, а другие содержат причем по разному. Но при этом алгоритм считывание данных-то не меняется... Ну разве, что АЦП меняет темп выдачи данных при изменении содержимого своего регистра "OFFSET".
Не знаю, а гадать не хочу. Сначала нужно снять циклограмму процесса считывания, для чего потребуется осциллограф.
Кроме того, такие процедуры лучше писать на асме.
SALOME
Цитата(DS @ Jan 21 2008, 19:18) *
Диаграмму сигнала CS на АЦП и момента строба данных нарисуйте, а то так не понятно. Процессор может данные защелкнуть через, скажем 5нс после выдачи CS, в общем случае. 7760 Из-за большой задержки данных с быстрым процессором как раз и может работать неправильно. И время между выполнениями считываний с АЦП у Вас чем контролируется ? Оно не может быть меньше 50 нс.

Частота ядра 400МГц, перефирии 133МГц. Время между CS > 50нс
Интерфейс считывания данных от АЦП у меня организован через EBIU. В качестве CS используется пин AMS0 (выбор асинхронной памяти). Соответственно все задержки согласно даташита BF. Фрагмент настройки EBIU (извеняюсь - вертик черточки не совпали с цифрами)
*pEBIU_AMBCTL0 = 0xF644F644; //управление АЦП-банк_0 (один цикл - 7,5нс)
// 1111 0110 0100 0100 - регистр управления АМС банков_0 и 1
// |||| |||! |||| |||| |||| |||! |||| |||+-B0RDYEN=1-разрешение сигнала ARDY банка_0 (in)
// |||| |||! |||| |||| |||| |||! |||| ||+--B0RDYPOL=1-полярность сигнала ARDY банка_0
// |||| |||! |||| |||| |||| |||! |||| ++---B0TT=01-время переключения банка_0(1цикл)
// |||| |||! |||| |||| |||| |||! ||++------B0ST=00-время установки банка_0 (до ARE)(4цикл)
// |||| |||! |||| |||| |||| |||! ++--------B0HT=01-время удержания банка_0 (после ARE) (1цикл)
// |||| |||! |||| |||| |||| ++++-----------B0RAT=0100-время доступа при чтении банка_0 (ARE) (6циклов)
// |||| |||! |||| |||| ++++----------------B0WAT=1010-время доступа при записи банка_0 (10циклов)

Момент считывания находится во время действия ARE и находится явно дальше 5нс.
Другое дело, что на осцилограмме пина CS видно, что первый импульс считывания боле_мене привязан к DRDY от АЦП, хотя его дрожание определяется асинхронностью захвата DRDY. А вот интересный нам второй импульс считывания гуляет шибче. Я отношу это за счет команды SSYNC, время действия которой так и не удалось установить. Эмпирически она длится где-то 30 нс и меняет свю длительность. Может вы скажите, какова длительность SSYNC?
Но в целом процесс считывания не выходит за рамки следующего DRDY. Хотя всяко может быть. Ведь сбои носят нерегулярный характер.

Цитата(Stanislav @ Jan 22 2008, 02:53) *
Кроме того, такие процедуры лучше писать на асме.

Полность с Вами согласная. У меня на ассемблере и лучше получается. Однако сделать ассемблерную вставку прооцедуры пока не умею. Была бы благодарно за простой рабочий пример.
DS
Все-таки снимите осциллограммы. То, что Вы пишете, это "как должно работать". А как на самом деле может только осциллограф показать.
По BF Stanislav большой специалист, может, правда, он и сходу увидит в чем дело.
Stanislav
Цитата(SALOME @ Jan 22 2008, 06:52) *
Фрагмент настройки EBIU (извеняюсь - вертик черточки не совпали с цифрами)
Надо делать так:
Код
*pEBIU_AMBCTL0 = 0xF644F644; //управление АЦП-банк_0 (один цикл - 7,5нс)
// 1111 0110 0100 0100 - регистр управления АМС банков_0 и 1
// |||| |||! |||| |||| |||| |||! |||| |||+-B0RDYEN=1-разрешение сигнала ARDY банка_0 (in)
// |||| |||! |||| |||| |||| |||! |||| ||+--B0RDYPOL=1-полярность сигнала ARDY банка_0
// |||| |||! |||| |||| |||| |||! |||| ++---B0TT=01-время переключения банка_0(1цикл)
// |||| |||! |||| |||| |||| |||! ||++------B0ST=00-время установки банка_0 (до ARE)(4цикл)
// |||| |||! |||| |||| |||| |||! ++--------B0HT=01-время удержания банка_0 (после ARE) (1цикл)
// |||| |||! |||| |||| |||| ++++-----------B0RAT=0100-время доступа при чтении банка_0 (ARE) (6циклов)
// |||| |||! |||| |||| ++++----------------B0WAT=1010-время доступа при записи банка_0 (10циклов)
smile.gif
Тайный смысл чёрточек и крестиков постигнуть, однакож, не удалось... sad.gif
Хорошо, теперь дайте соответствие выводов BF и платы, схему которой Вы привели. Интересуют только сигналы управления АЦП.


Цитата(SALOME @ Jan 22 2008, 06:52) *
...Момент считывания находится во время действия ARE и находится явно дальше 5нс.
Другое дело, что на осцилограмме пина CS видно, что первый импульс считывания боле_мене привязан к DRDY от АЦП, хотя его дрожание определяется асинхронностью захвата DRDY. А вот интересный нам второй импульс считывания гуляет шибче. Я отношу это за счет команды SSYNC, время действия которой так и не удалось установить. Эмпирически она длится где-то 30 нс и меняет свю длительность. Может вы скажите, какова длительность SSYNC?
Минимум 10 тактов, если склероз не изменяет. Только нафиг она Вам нужна во всех местах, также уразуметь неполучаецца.
Вообще-то, гулять сильно не должно...
Теперь по существу программного фрагмента из Вашего поста №42.
Делать чтение АЦП таким ужасным способом нельзя - проц только этим и будет заниматься.
Для подобных целей существуют автоматический ввод через PPI с DMA, или, на худой конец, прерывания. Организуйте его по запросу от сигнала DRDY, при вызове считывайте данные с АЦП и курите бамбук всё остальное время.
Только учтите, что макросы EX_INTERRUPT_HANDLER будут сильно тормозить - там в стэке весь контекст сохраняется, а потом восстанавливается. Так что писать прерывание нужно на асме.
А прерывания запрещены во время считывания? Если нет, временно запретите.

Цитата(SALOME @ Jan 22 2008, 06:52) *
...Полность с Вами согласная. У меня на ассемблере и лучше получается. Однако сделать ассемблерную вставку прооцедуры пока не умею. Была бы благодарно за простой рабочий пример.
Лехко:
Код
/********************************************************************************
***********
Description : This function performs FIR filter operation on given input.
Input:   R0-current address of input circular buffer, R1-address of coeff. vector,
         R2-number of taps*2.
Output:  R0-next address of input circular buffer.
Prototype: fract16* FIR_fract(fract16*, fract16*, u32).
*/
#include "Tru_def.h"
#include <defBF534.h>

.extern _Host_MC_Out; //output array

.section program;
.global _FIR_fract;
.align  8;

//-----------------------------------------------------------------------------------
_FIR_fract:
  L0=INPUT_LEN*2(Z);      // L0 = length of input buffer in bytes
  L1=R2;                  // L1 = length of coeff buffer in bytes
  I0=R0;                  // set up input pointer
................................
БЛА-БЛА-БЛА
................................
  L0=0;                    // Clear modulo registers
  L1=0;
  RTS;    
_FIR_fract.end:
Вызывается как обычная сишная функция с тремя входными параметрами и одним выходным, передавая их наиболее простым и быстрым способом - через регистры, не используя стек.
Обработчики прерываний писать на асме ещё проще.
Вообще, читайте хэлп к вижуалдиэспи, там всё очень подробно прописано. Начните с глав:

C/C++ Compiler Language Extensions,
C/C++ Run-Time Model and Environment,
C/C++ and Assembly Interface.

smile.gif
SALOME
Цитата(Stanislav @ Jan 23 2008, 05:57) *
Минимум 10 тактов, если склероз не изменяет. Только нафиг она Вам нужна во всех местах, также уразуметь неполучаецца.

Вообще-то, гулять сильно не должно...

Делать чтение АЦП таким ужасным способом нельзя - проц только этим и будет заниматься.
Для подобных целей существуют автоматический ввод через PPI с DMA, или, на худой конец, прерывания. Организуйте его по запросу от сигнала DRDY, при вызове считывайте данные с АЦП

Я понимаю буквально, что SSYNC надо ставить там, где идет обращениии к перфирии. В исходниках от ADI так и сделано. А как надо?
Кстати без SSYNC ситуация ухудшается.
Однако гуляет... Кстати, посмотрела CS на плате КИТа AD7760, который сформирован Алтерой. Там все чистенько. Джиттер вообще не просматривается.
А под УЖАСОМ вы имеете ввиду программный опрос состояния DRDY от АЦП? Отчего же? И чем тут прерывание будет лучше?
Воспользоваться PPI для загрузки - не в этот раз. Платы (3штуки) уже разведены и распаяны. Шеф бьет копытом в предвкушении результата.
Спасибо за фрагмент, буду его осмысливать. И вообще спасибо за участие. Сейчас займусь ревизией проги считывания АЦП.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.