LINUX.ORG.RU

24-битные АЦП

 ,


1

2

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

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

Итак, а теперь к делу. Сегодня я открыл для себя 24-битные АЦП с дифференциальным входом. Собственно, получается, что некоторые из них могут заменить все аналоговые компоненты вообще. Ни инструментальных усилителей, ни фильтров частоты. А это хорошо, ведь растёт компактность схемы, снижается энергопотребление и уменьшается шанс где-нибудь налажать (а ошибка в схемотехнике это не ошибка в программе - влечёт к денежным тратам и ожиданию деталей из Китая).

Ну а теперь вопросы:

1) Если точность и разрядность АЦП позволяет замерять напряжение без усиления (при этом иметь нормальный динамический диапазон), значит ли это, что не нужен аналоговый фильтр 50 Гц (только простая RC-цепочка, чтобы подавить килогерцевый уровень, который АЦП просто не сможет захватить нормально)? Нельзя ли будет давить лишнее полностью цифровыми методами?

2) Насколько подходящим является АЦП AD7194? Вроде у него даже есть встроенный фильтр 50-60 Гц.

3) Почему все проекты типа OpenEEG не используют такие чипы, а используют сложные схемы на нескольких операционных усилителях и одном инструментальном?

★★★★★

Последнее исправление: KivApple (всего исправлений: 1)

3) Почему все проекты типа OpenEEG не используют такие чипы, а используют сложные схемы на нескольких операционных усилителях и одном инструментальном?

дифференциальность там достаточно условная. посмотри в даташите, какими напряжениями пробиваются входы насмерть (таблица absolute maximum ratings). ты ведь живешь не в лесу и носишь одежду со статикой. впрочем, в лесу тоже лэп можно найти.

registrant ★★★★★
()

Последнее время я много спрашивал про всякие АЦП и это всё неспроста.

на этом мой интерес к этой теме закончился

anTaRes ★★★★
()
Ответ на: комментарий от anTaRes

а, стоп, я по ошибке чуть дальше прочитал : "...У меня правда больше программистский склад ума и в аналоговой схемотехнике могу выдавать странные вещи..." «Я уже долгое время вынашиваю идею самодельного ЭЭГ, чтобы потом делать с ним что-нибудь интересное, типа простейшего нейроитерфейса.»

чувак, наркоту изобрели задолго до тебя , один баг - ты просыпаешься ровно там где и заснул

anTaRes ★★★★
()

1) в нормальных АЦП есть аппаратный фильтр на 50/60Гц (частоту программно выберешь). Цифровыми давить не сильно получится.

2) ХЗ, лень читать даташит. Пользуюсь AD7794, не жалуюсь. Классный АЦП. У меня даже получается честных ~18 разрядов получать. А при экранировании и термостатировании наверняка и все 20 выдрать можно будет!

3) мало кто любит с нуля все переделывать.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от registrant

В OpenEEG перед инструментальным усилителем стоит защита от статики на транзисторах. Ничто не мешает прикрутить к этому АЦП тоже защиту. Ну либо выбрать АЦП со встроенной защитой (такие есть, но они немного дороже и надо дольше искать).

KivApple ★★★★★
() автор топика
Ответ на: комментарий от anTaRes

Я имел ввиду интерфейс человек -> компьютер, а не наоборот. То есть мышкой там управлять силой мысли и т. д.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

защита — это полдела, тебе ведь еще и измерить надо ма-а-а-хонький дифференциальный сигнал в условиях, когда синфазное напряжение может запросто меняться на десятки вольт. для этого и ставят инструментальный усилитель

registrant ★★★★★
()
Последнее исправление: registrant (всего исправлений: 1)
Ответ на: комментарий от Eddy_Em

Сравнил AD7794 и AD7194. У последнего меньше Offset Error (0.5 мкВ против 1 мкВ), Offset Error Drift vs. Temperature (5 нВ/градус вместо 10 нВ/градус), Full Scale Error (1 мкВ vs 10 мкВ), Gain drift vs Temperature одинаковый, Power supply rejection хуже (у моего 90 дБ, у твоего 100), подавление 50/60 Гц лучше (у твоего 65-90 Дб, в зависимости от настроек, у моего от 110 Дб и выше). То есть получается, что мне мой вариант должен подойти. Только пара вопросов.

Не совсем могу понять, что это у него за режим такой «chop enabled». В нём все параметры становятся лучше, а максимальная частота дискретизации падает в 4 раза. А ещё «Output Update Rate» - это частота, с которой он может читать ВСЕ 8 каналов или суммарное количество преобразований (то есть если читать 8 каналов, то частота будет в 8 раз меньше)?

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от registrant

Не совсем понял. Если бы на поверхности кожи наводились десятки вольт, то я бы выводил из строя технику, прикасаясь к печатным платам и беря в руки радиокомпоненты, а я могу это сделать лишь из-за статики. Так что мне таки думается, что наведённое напряжение в лучшем случае будет измеряться сотнями милливольт. Без усиления это уложится в диапазон опорного напряжения от 0 до 3В. А если разрядность АЦП при этом позволит считывать значения в десятки-единицы микровольт, то я увижу и наводки и полезный сигнал и отсеять уже цифровым фильтром всё лишнее. Где я ошибаюсь? В идеальности цифровых фильтров?

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от Pavval

Минимальное напряжение, на которое мне нужно реагировать - единицы микровольт. В таком случае разрядности 20 бит вполне хватит.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

Минимальное напряжение, на которое мне нужно реагировать - единицы микровольт.

Так вот, единицы микровольт - это уровень теплового шума, от которого ты не избавишься.

Pavval ★★★★★
()
Ответ на: комментарий от KivApple

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

registrant ★★★★★
()
Ответ на: комментарий от registrant

Ну у меня сейчас есть два варианта:

1) МК читает данные со своего встроенного 10-битного АЦП, с помощью оверсемплинга доводит до 12-битной точности и передаёт на компьютер для анализа. При опорном напряжении в 1.5В получается точность замеров до 360 мкВ в лучшем лучше, реально немного похуже. Уровень чувствительности у большинства нейроинтерфейсов 0.5-1 мкВ. Значит умножаем в 1000 раз с помощью ОУ и инструментального усилителя, попутно фильтруя 50 Гц.

2) Используем 24-битный АЦП со встроенным фильтром 50 Гц и инструментальным усилителем. МК занят тупо чтением данных и отправкой на ПК. Из аналоговых компонентов только защита от статики и RC-фильтр для среза частот, которые сравнимы с частотой дискретизации (1 кГц).

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

Какой мне лучше выбрать вариант?

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 3)
Ответ на: комментарий от KivApple

2-й вариант как-то посовременнее, да и контроллер никто не мешает какой-нибудь предварительной обработкой загрузить

registrant ★★★★★
()
Ответ на: комментарий от registrant

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

И, судя по отзывам местных, с 24-битным АЦП есть куча подводных камней, поэтому я и создал тему, чтобы уточнить подходит ли мой выбор и на какие параметры вообще надо обращать внимание.

Мне хотелось бы получить 8 каналов и 1000 выборок/сек на канал с чувствительностью 1 мкВ.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

Сравнил AD7794 и AD7194

Смотрю, по цене они практически одинаковы. Но я уже написал мини-библиотечку для работы с 7794, так что на 7194 переходить вряд ли буду, несмотря на более приличные характеристики. Да и незачем: паспортный дрейф платиновых ТРД составляет 0.1-0.2%, что уже значительно выше внутренних шумов АЦП. И внешние шумы при правильной схеме почти не мешают. Почти — потому что надо экранировать, если планируется поблизости двигатели гонять или релюхами щелкать (при работе вакуумного насоса у меня шум был не ~0.02°C, а почти 2°C!).

Не совсем могу понять, что это у него за режим такой «chop enabled»

Та же хрень. Кстати, не знаю как 7194, а в 7794 я выбирал экспериментально коэффициент усиления: оказалось, что на 2-4 он шумит намного меньше, чем без усиления! Ну, понятно, при усилении раз в 16 уже задница получается.

А ещё «Output Update Rate» - это частота, с которой он может читать ВСЕ 8 каналов или суммарное количество преобразований (то есть если читать 8 каналов, то частота будет в 8 раз меньше)?

ХЗ, надо мануал подробно читать. А тебе скорость что ли нужна? У меня 8 термодатчиков опрашиваются в течение около 10 секунд, причем, основная задержка — именно время измерений, т.к. состояние КА в основном цикле микроконтроллера проверяется/меняется раз в 1мс. Правда, для снижения шумов, у меня дважды считываются показания — со сменой полярности.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Pavval

Можно и 30 получить. И даже получают! Только стоимость агрегата будет охрененная, думаю, миллиона полтора рублей как минимум. И размер будет нехилый.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от KivApple

1000 выборок/сек на канал с чувствительностью 1 мкВ

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

С другой стороны, если динамический диапазон небольшой, то все ОК. Какой там разброс напряжений у человека?

Кстати, может, тогда просто возьмешь АЦП звукового чипа? Берешь малошумящий усилитель, с него сигнал на звуковую карту, с частотой 196кГц оцифровываешь и оверсемплингом поднимаешь точность, заодно можно медианным фильтром выбросы откидывать.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от KivApple

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

registrant ★★★★★
()
Ответ на: комментарий от registrant

Проблема в том, что инструментальный усилитель и ОУ для фильтров стоят соизмеримо с 24-битным АЦП. Я думал немного переплатить и получить 100% работающую схему, однако насколько я понимаю, всё не так уж просто.

Поэтому я прихожу к выводу, что лучше мне для начала собрать схему на АЦП МК. Тем более я наткнулся на какую-то презентацию, где указано что в большинстве ЭЭГ стоит 12-битный АЦП. Как раз, как я хочу сделать.

KivApple ★★★★★
() автор топика

Нельзя ли будет давить лишнее полностью цифровыми методами?

Конечно можно.

no-such-file ★★★★★
()
Ответ на: комментарий от Pavval

Так вот, единицы микровольт - это уровень теплового шума

Рассуждать об этом без указания полосы частот как-то странно.

no-such-file ★★★★★
()
Ответ на: комментарий от KivApple

ты спектр посмотри ЭЭГ (причем именно переходных процессов, а не всяких «ритмов»), там весьма не маленькие частоты

EEG has very high temporal resolution, on the order of milliseconds rather than seconds. EEG is commonly recorded at sampling rates between 250 and 2000 Hz in clinical and research settings, but modern EEG data collection systems are capable of recording at sampling rates above 20,000 Hz if desired. MEG and EROS are the only other noninvasive cognitive neuroscience techniques that acquire data at this level of temporal resolution.

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

Ну я вот как раз хочу 1 кГц, что является средним показателем для систем ЭЭГ. 20 кГц это, вероятно, для каких-то глубоких исследований.

KivApple ★★★★★
() автор топика

Для фильтрации 50/60 Гц есть адаптивные фильтры.

amaora ★★
()
Ответ на: комментарий от KivApple

клинические приборы позволяют грубую патологию диагностировать, то что хочешь ты очень тонкие эффекты

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

Ну вот допустим посмотрим на Emotiv EPOC: http://emotiv.wikia.com/wiki/Emotiv_EPOC

У них чувствительность 0.5 мкВ/LSB, частота дискретизации 128 Гц (написано «2048 Hz internal», вероятно, это для всяких фильтров и т. д.). Это самый функциональный известный нейрокомпьютерный интерфейс. А недавно они анонсировали новую модель, в которой даже уменьшили количество датчиков (с 14 до то ли 5, то ли 7, не помню), частота дискретизации и чувствительность не изменилась.

Таким образом получается, что разрешения 0.5 мкВ и частоты дискретизации 1 кГц, что я хочу получить, вполне достаточно для всего самого интересного с точки зрения простого обывателя, который не является учёным.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

нейрокомпьютерный интерфейс

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

Мозг по сути — голограмма. Эдакая мультипроцессорная система. И хоть "скорость мысли" очень мала, благодаря отличной параллелизации получается вполне хорошая производительность. Но вот наружу выходит только шум. Представь себе пару миллиардов радиостанций, которые одновременно вещают разную хрень в одном и том же диапазоне! Единственное, что можно будет засечь — это суммарную степень активности "радиостанций": т.е. мы проводим НЧ-фильтрацию, чтобы выбросить шумы, вызванные наложением уймы полезных сигналов, и просто смотрим на амплитуду получающейся огибающей.

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от KivApple

в большинстве ЭЭГ стоит 12-битный АЦП. Как раз, как я хочу сделать.

но большинство ЭЭГ и не ставит целью «читать мысли», не? я тебе говорю про стандартный паттерн проектирования аппаратуры: ставим всего и побольше, отрабатываем алгоритм, по ходу отработки уточняются требования к аппаратуре, потом уже перезапуск по уточненным требованиям

registrant ★★★★★
()
Ответ на: комментарий от KivApple

1. это игрушка-концепт для которой нет и не будет никакого софта о котором ты мечтаешь

2. все прессрелизы которые тебя вдохновляют получены на функциональном мрт (или с его поддержкой)

PS в оригинальных статьях, а не прессрелизах (о «восстановлении картинки в поле зрения»), ты можешь почитать что реально используют исследователи для успеха

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

Я понимаю, что моя конструкция, даже если заработает, не позволит считывать картинки из воображения и т. д. Это можно понять даже просто по тому, как мало данных гонится в компьютер.

Я рассчитываю в первую очередь на управление компьютером типа передвинуть мышку силой мысли. Вот такие вещи на ЭЭГ как раз таки делают (правда, с кучей матана, насколько я понимаю, но я никуда не тороплюсь, это хобби). Ну а для начала задача попроще - определять состояние мозга типа расслабленности, сосредоточенности, медитации и т. п.

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 2)
Ответ на: комментарий от KivApple

то что было по ссылке, скорее всего, максимум способно ловить артефакты ээг с мышщ, и всё «управление» сводиться к напряженному «морщенью лба» :(

psv1967 ★★★★★
()
Ответ на: комментарий от Eddy_Em

Eddy_Em, а что скажешь насчёт вот такой схемы на ADS1258 (взято из даташита): http://itmages.ru/image/view/2160388/174060b0

Вместо измерительных мостов будут электроды (тоже дифференциальные), вместо 5В опорного напряжения 0.5В (по даташиту допустимо), ОУ по формуле настраивается на 10-кратное усиление. В итоге нам хватит даже 16-17 бит без шума, чтобы считывать все сигналы. Фильтрацию 50 Гц реализовать цифровым фильтром. В том же OpenEEG аналоговая фильтрация 50 Гц идёт уже после измерительного усилителя с коэффициентом 16, так что усиление в 10 раз не убьёт полезный сигнал (наводки 50 Гц не должны привести к зашкаливанию АЦП с потерей полезных данных на пиках).

Требования всё такие же - 8 каналов, 1000 выборок/сек. По даташиту точность 16 бит обеспечивают на всех доступных частотах.

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 3)
Ответ на: комментарий от KivApple

Минимальное напряжение, на которое мне нужно реагировать - единицы микровольт. В таком случае разрядности 20 бит вполне хватит.

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

prischeyadro ★★★☆☆
()
Ответ на: комментарий от Eddy_Em

В смысле та схема включения ОУ рассчитана исключительно на измерительные мосты и не подходит для ЭЭГ? Просто эта схема практически повторяет внутреннее устройство измерительного усилителя, только вместе третьего, выходного ОУ стоит АЦП.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от prischeyadro

Я посмотрел на аналоги моего прибора и пришёл к выводу, что чувствительность лучше всего иметь 1-0.5 мкВ, а максимальное напряжение - 30-40 мВ. В таком случае хватит 16-битной точности, но, насколько я понимаю, получить 16 бит без шума можно только на 24-битном АЦП. В итоге с такими требованиями нашёл АЦП ADS1258, который обеспечивает на всех частотах дискретизации разрешение не меньше 16 бит свободных от шума.

В итоге возник новый вопрос: 24-битные АЦП (комментарий)

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

Короче, я прочитал тред, и мне тоже кажется, что не взлетит. Люди и с функциональной МРТ-то мучаются и проводят серии измерений, чтобы определить, что где-то что-то активируется.

prischeyadro ★★★☆☆
()
Ответ на: комментарий от KivApple

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Я, возможно, что-то не понимаю, но в OpenEEG для каждого канала используется два электрода, которые тыкаются в разные места головы, а разность потенциалов между ними замеряется и усиливается с помощью инструментального усилителя. То есть сигнал получается таки дифференциальный.

Меня интересует вопрос выбора ОУ, чтобы он не внёс искажения в сигнал (точнее понятное дело, что искажения он по-любому внесёт, но мне надо, чтобы их не хватило, чтобы испортить старшие 16 бит сигнала).

АЦП по даташиту должен мерить на нужной частоте с нужной точностью: http://itmages.ru/image/view/2160607/de282894

Так что сомнения вызывает больше ОУ. Ну и хотелось бы общих рекомендаций по разводке печатной платы.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

Занятно. Я просто с ЭЭГ вашпе никак не знаком, даже не представляю что там а нафиг.

А что, нельзя встроенный усилок АЦП использовать? Все дешевле и проще!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

У данного АЦП нет встроенного усилителя, а те, у которых есть, и которые по даташиту нормально реагируют на 1 мкВ на входе стоят дороже, чем связка АЦП + усилитель. К тому же в случае, если усилитель окажется плохим, можно будет заменить усилитель, не меняя АЦП.

Да, кстати, не успел отредактировать комментарий. Данные по шуму в таблице даны для Vref = 4.096В. Но есть график http://itmages.ru/image/view/2160610/2950bb92, который показывает, что при уменьшии Vref шум только падает.

Судя по всему АЦП, если к нему добавить десятикратный усилитель, должен удовлетворить мои потребности. Но что насчёт выбора ОУ? OPA365 подойдёт или нужно что-то покруче? Я до сих пор не могу до конца понять, какие параметры ОУ определяют минимальное напряжение (с частотами всё обычно проще, в даташите есть куча графиков насчёт зависимости шума от частоты), которое он будет хорошо воспринимать.

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от KivApple

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Хорошо. В таком случае что насчёт вот этого АЦП - ADS131E08 (http://www.ti.com/lit/ds/symlink/ads131e08.pdf)?

8 дифференциальных каналов. При том каналы независимые (там 8 АЦП, а не один АЦП с мультиплексором). Поэтому я смогу использовать частоту выборки 1 кГц вместо 8. Есть встроенный усилитель. Я выберу максимальное усиление - 12. Вот параметры шума:

http://itmages.ru/image/view/2160885/e461824e

http://itmages.ru/image/view/2160886/147502a6

Получается, что при усилении 12 и частоте выборок 1 кГц я должен получить 18 бит. Большое входное сопротивление тоже радует. Но есть и минусы. Во-первых, минимальное опорное напряжение - 2 вольта. Впрочем, если там действительно будет 18 бит, то это не страшно, потому что (2В / (2 ^ 18) / 12) < 1 мкВ. Во-вторых, большое значение Offset error - 350 мкВ.

Я не знаю на какие ещё параметры стоит посмотреть. Это лучше, чем городить собственный усилитель?

KivApple ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

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

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

сомневаюсь, что это будут "честные" 18 бит.

Но тебе, по идее, и 12 за глаза хватит.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от KivApple

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

Думаю, т.к. пилильщиков в твоем случае нет, тысяч в 200 "деревянных" уложишься на прототипировании.

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.