|
|
|
|
Link: эта нелинейность АЦП постоянна при разном выходном сопротивлении источника сигнала? по идее она будет плавать в зависимости от сопротивления источника сигнала Ну та нелинейность о которой я говорил связана с тем что пороги дискретизации не распределены равномерно как у идеального АЦП а сдвинуты, эти сдвиги называются DNL в даташитах и являются (относительно) постоянными для конкретного кристалла. Можно получить искажения при измерении сигнала за счет нелинейности УВХ, но это все будет значительно меньше DNL. |
|
|
DNL - Differential Non-Linearity из вашего файла я правильно понял что дифференциальная нелинейность порой достигает семнадцати квантов? |
|
|
Link: из вашего файла я правильно понял что дифференциальная нелинейность порой достигает семнадцати квантов? Да, порядок такой, примерно +-15 шагов если одну ступеньку поделить на 100 шагов. Но это одна ступенька измерена в разных местах шкалы АЦП, понятное дело что эти ошибки суммируются и могут быть например с одним знаком и сложатся. |
|
|
Neekeetos: если одну ступеньку поделить на 100 шагов. Но это одна ступенька измерена в разных местах шкалы АЦП, понятное дело что эти ошибки суммируются и могут быть например с одним знаком и сложатся. Теперь понял в чём подвох... Спасибо за разъяснение. |
|
|
Пока суть да дело изучаю природу этого DNL, текущий метод измерения позволяет его увидеть воочию, теперь хочется придумать процедуру калибровки, чтобы убрать все нелинейности. Нарисовал тут графики http://neekeetos.embedders.org/dnl1.PNG , http://neekeetos.embedders.org/dnl2.PNG, первый это график вцелом, второй это кусок где видно что переход между соседними шагами ацп произошел со сдвигом, я немного почеркал красным чтобы было понятно что с чем связано. Желтый график везде это данные с ацп, синий это точный замер с помощью дизера относительно измерения ацп. |
|
|
Neekeetos: Ну вот двигаюсь по вашим следам  Взял stm32l-discovery, прицепил к ней экран от Нокии 1616 аж за 90 рублей и ваш измерительный мостик навесом на разъемы. За неделю борьбы с чудо-библиотеками (от слова чудовищные) имени СТ-майкро накарябал софтину-полуфабрикат. Сегодня все это безобразие заработало. В детали лезть было уже некогда, но в значениях векторов вроде как дрожит только пятый знак. Для расчетов собираю параллельно три массива по 1024 точки, каждая из которых получена усреднением восьми смежных измерений. Вообще, у этих кортексов сочетанием АЦП, DMA и каскадных таймеров довольно удобно пользоваться. Смотреть на получившиеся параметры и допиливать до кондиции, пригодной для разведения платки, буду уже, видимо после праздников. |
|
|
evilimp Т.к. тема имеет познавательно обучательный характер, не коммерческий проект, не могли бы Вы выложить свою программу на посмотреть и покомментировать. С комментариями где что какая буква. Понимаю что проще написал подрихтовал заработало и ничего не надо, но вот общаться то же нужно, а для продолжения ету программу бы посмотреть и поучиться чему нибудь. пока все в теме. Оно никогда не вредно, да и в общем форум поднять, а то пора уже общему народу с avr-ов то слезать. |
|
|
viczai: Да выложу, конечно, когда будет достругано до приемлемого результата. Тут, собственно, вся проблема в методике измерений - реализация идеи Neekeetos-а с радикальной передискретизацией, а само программирование штука тривиальная, не бином Ньютона ))) |
|
|
Здравствуйте. Хочу поведать о своих экспериментах с с stm32f100c4. По моим прикидкам им можно генерировать синус в 11 точек на период для частоты примерно 50кГц. Сигнал 50Кгц можно оцифровывать через такт ЦАП, то есть 11 точек на 2 периода. Все это делается с использованием DMA. В обработчике прерывания производится умножение оцифрованной величины на sin и cos и сбор сумм произведений сигнала на sin и cos. На одном периоде сети (20ms) обработчик прерывания отдает посчитанные суммы произведений в основной цикл программы. Все это работает на 24 мегагерцах тактовой. После обработчика прерываний и dma по прикидкам останется мегагерца 2-3 что бы обсчитать полученные суммы. В качестве аналоговой части я использовал усилитель DAC - фильтр на mcp602. Преобразователь тока в напряжение, инструментальный усилитель и усилитель на 12 на нем же. Инструментальный усилитель имеет 3 ступени регулировки усиления: 1,10,100. После него стоит усилитель на 4 или на 12. Преобразователь тока в напряжение - как у GO: 100, 1k, 10k,100k. Сигнал подается на измеряемый элемент через 100 ом. Схема похожа на rlc2 но у меня нет развязки конденсаторами. Результаты: Вроде бы сигнал 50 кгц удалось сгенерить и измерить. То есть генерируется 11 точек на периоде, измеряется 11 точек на 2 периодах. Добится стабильности сумм не удалось. То ли происходит пропуск измерений или генерации из-за нехватки чатототы контроллера, то ли шумы огромны. На максимальном усилении при измерении тока шумы составляют примерно 1000 единиц АЦП из 4000. Что бы посмотреть пропуски нужен осциллограф. Я думаю, что моя ошибка была так же в использовнии связи по постоянному току. У операционников шум на низкой частоте максимален. И весь он передается на вход АЦП. Я видел термин дизер в обсуждении, но не понял, что это. Как я понимаю идея Neekeetos в измерении 3-4 точек на периоде меандра. Измерения в этих точках суммируются в счетчики. По окончании измерений нескольких тысяч или десятков тысяч периодов производится умножение сумм на SIN и COS для получения мнимой и действительной части. После этого производится расчет измеряемой величины. Аналоговая часть представляет собой практически только шунт. Я правильно понял идею?
|
|
|
http://www.md4u.ru/forum/viewtopic.php?f=22&t=5799 вот интересная статейка |
|
|
|
|