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

Скоростной АЦП

Господа! Никогда не было необходимости в быстрой оцифровке сигналов. Планирую следующее: с помощью МК гоню 256-разрядный ШИМ (длительность импульса по синусоидальному закону) частотой 8.192МГц через фильтр и на выходе (через буфер Ку = 1) хочу получить синус, если с 256 разрядами его можно так назвать. Синус соответственно получается частотой 32кГц. В этом смысле все вроде бы понятно. Далее стоит задача по обратной связи с нагрузки снять пиковое значение амплитуды этого синуса. Сначала было бросился на 5 мегагерцовый АЦП (AD7731), но при детальном его изучении оказалось, что униполярный сигнал он может мерять только до середины шкалы опорного напряжения, что полностью, как я понимаю, убивает его 24-битность (ну или эффективную разрядность в 18 бит, не суть). По сути мне не очень важно измерять с такой скоростью, главное отловить пик амплитуды, и.. тут я засомневался - а нужен ли вообще быстрый АЦП для моей задачи? По сути мне не важно за сколько сэмплов/циклов АЦП отловит пик, можно и 100 выборок сделать и из них выбрать максимальный (отбросив помехи на частотах отличных от 32кГц). Правильно ли я понимаю, что Sigma-delta АЦП накапливают заряд во входной "запоминающей" емкости? Если так то мне по идее должно хватить и ацп со скоростью 250k, вопрос только в том за сколько циклов такой ацп выловит истинный пик синуса. Я адекватно рассуждаю? А то почти 4 утра и уже мозг закипает..

 

И в догонку вопрос №2, если позволите: существуют ли у мировых лидеров (AD, TI, ST и др.) готовые интегральные решения прецизионного пикового детектора? Это бы решило мою задачу без применения супер-пупер крутого ацп, с которым еще по шумам можно отгребсти больших проблем. Может кто пнет к нужному производителю, а то я роюсь роюсь и не нахожу таких ИМС.

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


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

А вы померьте ваш синус авометром :) через диод, заряжающий конденсатор. Поскольку авометр имеет высокое внутреннее сопротивление, то конденсатор зарядится до амплитудного значения. Его-то вы и измерите. Диод для этой цели надо бы взять высокочастотный, а не выпрямительный. Как вам такая идея? :)

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


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

через диод-то вы и измерите

 

<b>Xenia</b>, а как же падение на диоде? И от прямого тока через диод оно зависит и от температуры. Допустим, ток будем условно считать стабильным (стабильно крайне малым, по крайней мере после зарядки он будет практически отсутсвовать). Температурную зависимость скомпенсировать, задействовав еще один такой же диод, пропуская через него стабильный ток и отслеживая падение на нем? А как же разброс по падению? Или из отдельно взятой партии диодов им можно пренебречь?

 

А как вам такой вариант: 1. Ставлю быстродействующий компаратор, на прямой вход подаю синус с нагрузки. 2. Между инверсным входом компаратора и источником постоянного напряжения (заведомо больше максимально возможного пикового значения) ставлю транзисторный ключ с управлением от МК (пусть будет "Ключ 1"). 3. Между инверсным входом компаратора и землей ставлю такой же ключ, но с последовательно включенным резистором для разрядки конденсатора и управлением от выхода компаратора ("Ключ 2"). 4. Между инверсным входом и землей параллельно ставлю конденсатор. 5. Выход компаратора также завожу кроме ключа на порт МК для контроля срабатывания схемы. Логика такая: Принудительно заряжаю конденсатор включением Ключа 1, предварительно выключив Ключ 2. После полной зарядки выключаю Ключ 1 и включаю Ключ 2 для начала процесса разрядки. Как только проскочит пиковое значение синуса чуть большее, чем остаточный заряд на конденсаторе компаратор тут же сработает и выключит Ключ 2, тем самым прекратив разрядку конденсатора. Значение напряжения на конденсаторе и будет пиковым значением пойманного синуса. Фильтровать от помех можно путем замера частоты синуса по уровню близкому к 0В на протяжении разрядки конденсатора. Если частота синуса до момента сработки компаратора была стабильна и равна частоте генерируемого синуса, то отловленное пиковое значение идет в зачет, если синус смешался с помехами, что отразится на итоговой измеренной частоте, то меряем пиковое значение заново. Что скажете? Имеет право на жизнь?

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


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

Когда ток через диод уменьшится в конце заряда УВХ, то и падение на нем пропадет. Чудо.

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


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

Xenia, а как же падение на диоде? И от прямого тока через диод оно зависит и от температуры. Допустим, ток будем условно считать стабильным (стабильно крайне малым, по крайней мере после зарядки он будет практически отсутсвовать). Температурную зависимость скомпенсировать, задействовав еще один такой же диод, пропуская через него стабильный ток и отслеживая падение на нем? А как же разброс по падению? Или из отдельно взятой партии диодов им можно пренебречь?

 

Не думала, что определить падение напряжения на конкретным диоде составляет проблему. Что мешает перед тем, как провести измерение амплитуды переменного напряжения, предварительно замерить известное постоянное? Разница как раз и составит ту поправку, которую потом можно будет прибавить. А температура диода между двумя этими измерениями едва ли сильно изменится.

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


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

Xenia, а про вариант с компаратором и ключами с наносекундными задержками что думаете? :) мне этот вариант кажется более рентабельным (и по простоте реализации и по бюджетности).

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


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

кто пнет к нужному

Например, LM324 — сперва на одном ОУ, диоде и двух резисторах сделать идеальный выпрямитель, выход подать на пиковый детектор на втором ОУ, диоде и конденсаторе. Выход второго ОУ подать на компаратор на третьем ОУ, двух резисторах его делителя и резисторе подтяжки его выхода. Выход компаратора подать на вход прерывания МК, конденсатор пикового детектора — через резистор на вход АЦП МК.

 

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

 

Если в МК есть встроенный компаратор, то задача решается сдвоенным ОУ, т.е. LM358, например.

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


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

Переформулируйте задачу.

Вам ведь не обязательно знать именно амплитуду, среднеквадратичное устроит?

Тем более, что частота сигнала точно известна и, более того, Вы можете синхронизировать скорость оцифровки с генерацией тестового сигнала.

Тогда достаточно просто накапливать сумму квадратов отсчётов в течение времени, равного целому числу периодов сигнала.

 

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

Для весьма узкополосного сигнала частота оцифровки может быть весьма низкой, но и копить отсчёты тогда придётся весьма долго :)

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


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

Моя задача в том, чтобы подать через эталонное сопротивление на активно-реактивную нагрузку синус, а потом также подать постоянку такой же амплитуды, что и синус. С измерением постоянки все как бы понятно. А вот в случае с синусом мне нужно поймать пики - максимальный и минимальный, чтобы определить полный размах амплитуды по переменному току (Vp-p). Затем я хочу из полученного Vp-p отнять постоянную составляющую (измеренную при постоянном токе) и получить реактивную составляющую сигнала. Далее вычислять отдельно емкость и отдельно индуктивность нет нужды, просто нужна реактивная составляющая, а точнее значение реактивной составляющей в % от значения Vp-p. Вот собственно и вся задачка.

 

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

 

Например, LM324 — сперва на одном ОУ, диоде и двух резисторах сделать идеальный выпрямитель, выход подать на пиковый детектор на втором ОУ, диоде и конденсаторе. Выход второго ОУ подать на компаратор на третьем ОУ, двух резисторах его делителя и резисторе подтяжки его выхода. Выход компаратора подать на вход прерывания МК, конденсатор пикового детектора — через резистор на вход АЦП МК.

 

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

 

Если в МК есть встроенный компаратор, то задача решается сдвоенным ОУ, т.е. LM358, например.

 

Как-то все сложновато на мой взгляд. "Идеальный выпрямитель" (больше всего стращает), низкое Rвх указанных ОУ и их Voffset не представляются условиями для получения хотя бы натянутой прецизионности без серьезных заморочек с калибровкой.. Да и скорость нарастания по выходу у LM358 слабовата. В моем случае шим гонится частотой 8.192МГц, соответственно минимальная длительность ступеньки ШИМ 122нс. Компаратор на борту МК есть, но он не потянет с задержкой > 500нс. МК дешевенький, простенький, не хочу применять в этой задаче что-то "сложный" МК. Думаю в сторону LM219D, вроде как и питание подходящее и задержка 80нс и как раз два штуки в одном корпусе, чтобы одновременно и мин/макс пики на эталонном сопротивлении вылавливать (нижний/минимальный пик не всегда = 0В, скорее даже никогда). И цена у этого компаратора гуд. Но еще пороюсь. Плохо, что как всегда времени на все в обрез, щас в попыхах понаберу комплектующих, а потом времени уже не будет на перезаказ более подходящих.

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

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


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

Не понял юмора. Тактовая "простенького и дешёвенького" микроконтроллера 8 МГц, тактовая таймера его модуля ШИМ те же 8 МГц, период таймера "256-разрадной" ШИМ, соответственно, 32 кГц. На выходе фильтра Вы в итоге толкуете о, допустим, "прецизионном синусе 50 Гц", созданным, соответственно, 32000/50=640-байтной его таблицей и 640 периодами таймера ШИМ. Соответственно, прерывания с компаратора пикового детектора идут с частотой 100 Гц и у подпрограммы и АЦП МК есть порядка 9900 мкс на оцифровку его напряжения.

 

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

 

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

 

А если же у Вас и в самом деле синус 32 кГц, то, в целях просвещения, поведайте, пожалуйста, что же это за простенький и дешёвенький микроконтроллер с тактовой 2 ГГц?

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


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

А, так Вам нужен измеритель импеданса.

Вот готовый http://www.analog.com/AD5933

но можно тем же методом и свой сделать.

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


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

А, так Вам нужен измеритель импеданса.

Вот готовый http://www.analog.com/AD5933

но можно тем же методом и свой сделать.

 

Ежкин кот.. кде ж Вы раньше-то были) Я уже успел нагородить примерно то же самое на основе AD9833 с обвязкой на нескольких ОУ, калибровкой смещений с помощью ШИМ, налеплено, вобщем-то много чего в сильно ограниченный размер, что потянуло за собой 4хслойную плату... А эта AD5933 похоже делает все что мне нужно + плату можно будет обычную 2хслойку сделать. СПАСИБО за наводку!!!

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


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

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

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

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

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

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

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

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

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

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