|
Фильтр между датчиком и 16-битным АЦП |
|
|
|
Nov 3 2012, 02:57
|
Группа: Новичок
Сообщений: 3
Регистрация: 3-11-12
Пользователь №: 74 226

|
Всем привет, Пишу здесь первый раз, прошу зараннее простить за ляпы. Есть датчик (гироскоп) ADXRS646, двумя выходами (температуры TEMP и угловой скорости RATEOUT) он подключается к 16-битному SAR АЦП AD7689B. АЦП именно этот, восьмиканальный, т.к. гироскопов будет три (шесть каналов данных), и под этот АЦП уже написана программа для дальнейшей обработки данных. Требуется точность все 16 бит для одного из двух выходов с каждого гироскопа - угловой скорости RATEOUT, без шума в младших разрядах. Напряжение VREF/VIO +5В, частота фактического семплирования каждого канала 500Гц. Как правильно выбрать или построить аналоговый антиалиасинг фильтр на входе АЦП с учетом достижения необходимой 16-битной точности? Я понимаю, что в идеале нужно срезать все, что идет после 250Гц, но не совсем понял, как, например, отбирать активные фильтры по уровеню нелинейных искажений до частоты среза, и вообще как выбирать и что - активный, пасивный или составлять какой-либо другой фильтр?
Сообщение отредактировал Cossacs - Nov 3 2012, 03:02
|
|
|
|
|
 |
Ответов
|
Nov 3 2012, 13:19
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Цитата(Cossacs @ Nov 3 2012, 04:57)  он подключается к 16-битному SAR АЦП AD7689B. Требуется точность все 16 бит Не получится. От 16-битного АЦП получить точность 16 бит удается крайне редко и нетривиально. Внимательно прочитайте раздел документации "SPECIFICATIONS", в нем параметры, собранные под шапкой "ACCURACY". Если Вы действительно знаете, как свести все указанные там величины, действующие сообща и одновременно (включая температурные зависимости), к максимальной ошибке +/- 0.5 LSB - честь Вам и хвала. Особенно интересно, как производить рассчеты для параметров, предельные значения которых не указаны (например, "Gain Error Temperature Drift" есть только типовой) Если это принципиально (точность 16 бит, причем не статистически, а гарантированно)- то меняйте АЦП. Лично я бы для такой задачи смотрел в сторону дельта-сигма 18 бит и более, с кучей параллельных каналов. Ну или если SAR то все равно с кучей АЦП в параллель, типа ADS1278 Ну и опять же, сенсор который гарантирует точность 16 бит- тут тоже может быть не все так гладко. Особенно если производитель приводит только типовые величины.
|
|
|
|
|
Nov 3 2012, 14:13
|
Группа: Новичок
Сообщений: 3
Регистрация: 3-11-12
Пользователь №: 74 226

|
Цитата(Ruslan1 @ Nov 3 2012, 15:19)  Если это принципиально (точность 16 бит, причем не статистически, а гарантированно)- то меняйте АЦП. К сожалению, я пока не знаю, насколько принципиальна точность 16 бит - это покажут фактические тесты. Если от АЦП не получится 16 бит, то требуется получить хотя-бы что-то близкое к этому показателю. Упрощенная схема всей цепочки сейчас выглядит так:
Ключевые условия задачи: 1) Выдавать на Cortex ARM M3 данные со всех каналов АЦП с частотой 500 Гц 2) напрямую Cortex невозможно подключить к АЦП, потому как у него нет времени конфигурировать SPI соединение, ждать результатов оцифровки и тп, поэтому используется буфер на базе Atmega 168. 3) АЦП, датчик, и буфер на Atmega168 уже выбраны - под них написан код, они подходят по гарабаритам, питанию и тп. С одной стороны, если семплировать каждый канал с частотой больше, чем 500Гц, в Atmega168 прийдется реализовывать цифровой фильтр и пересчитывать на выходную частоту 500Гц для Cortex, т.е. Atmega168 возьмет еще на себя функции DSP, а не простого буфера, что я не планировал и не знаю пока, насколько это реализуемо по ресурсам. С другой стороны, ставить частоту среза аналогового фильтра меньше чем 200, в самом крайнем случае 150 Гц уже критично для работы системы в целом. Поэтому вопрос пока все тот же - как подобрать аналоговый фильтр? Я читал, что обычно строят каскад на операционниках и пассивных фильтрах, отталкиваясь от частоты среза, частоты семплирования, нелинейных искажений в области среза, точности АЦП, но к сожалению понимаю этот процесс пока примерно. Или как-то по другому? Как я понимаю, RC-цепочки тут не хватит.
|
|
|
|
|
Nov 4 2012, 06:15
|

Местный
  
Группа: Свой
Сообщений: 397
Регистрация: 3-12-09
Из: Россия, Москва
Пользователь №: 54 040

|
Цитата(Cossacs @ Nov 3 2012, 18:13)  С одной стороны, если семплировать каждый канал с частотой больше, чем 500Гц, в Atmega168 прийдется реализовывать цифровой фильтр и пересчитывать на выходную частоту 500Гц для Cortex, т.е. Atmega168 возьмет еще на себя функции DSP, а не простого буфера, что я не планировал и не знаю пока, насколько это реализуемо по ресурсам. А почему нет? Воспользуйтесь оверсэмплингом (например х16), без всяких цифровых фильтров, что возможно приблизит Вас к требуемым 16 битам
|
|
|
|
|
Nov 4 2012, 09:25
|

Практикующий маг
     
Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576

|
Цитата(RabidRabbit @ Nov 4 2012, 10:15)  А почему нет? Воспользуйтесь оверсэмплингом (например х16), без всяких цифровых фильтров, что возможно приблизит Вас к требуемым 16 битам  ТС указал же однозначно, что частота сэмплов на выходе с Атмеги =500Гц. Какой тогда смысл в оверсэмплинге, если после него придется делать децимацию? 2 ТС: для Вашего случая (малый разнос между Fcp и Fs) порядок фильтра будет очень большим. Почитайте про наложения спектров, посмотрите спектр реального сигнала -возможно действительно нет нужды так круто ограничивать сигнал по частоте (типа 96дБ в полосе задержания); и-таки да, проиграйте возможность реализации цифрового фильтра в целочисленной арифметике в Атмеге. Хотя Кортекс для этого гораздо больше подходит  Учитывайте, что аналоговый фильтр в реализации будет на порядки сложнее и дороже, чем такой же по параметрам цифровой.
|
|
|
|
Сообщений в этой теме
Cossacs Фильтр между датчиком и 16-битным АЦП Nov 3 2012, 02:57 _pv Цитата(Cossacs @ Nov 3 2012, 08:57) Требу... Nov 3 2012, 07:59  Ruslan1 Цитата(Cossacs @ Nov 3 2012, 16:13) Поэто... Nov 3 2012, 14:55  _pv Цитата(Cossacs @ Nov 3 2012, 20:13) К сож... Nov 3 2012, 17:32    _pv Цитата(Alexashka @ Nov 4 2012, 15:25) ТС ... Nov 4 2012, 11:32     Alexashka Цитата(_pv @ Nov 4 2012, 15:32) и сильно ... Nov 4 2012, 16:24 Cossacs Спасибо за ответы и внимание
Я почитал внимательн... Nov 5 2012, 23:22
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|