Страница 1 из 2
Нужна ясность с АЦП
Добавлено: Пт июн 29, 2018 03:46:54
DenChik87
Рассчитываю RMS. Использую mega328p. Для определения периода входного сигнала собран детектор нуля, который привязан на внешнее прерывание int0. Далее все измеренные значения за период помещаю в массив, потом соответственно считаю RMS по всем значениям массива, которые успел намерить МК. Вообщем-то измеренные значения близки к эталонным. Но есть погрешность. Пытаюсь разобраться, может ошибка в коде.
Моделирую в протеусе, вывожу количество измеренных значений в терминал и есть несоответствия.
Правильно ли я считаю теоретическое количество измеренных значений ADC? В таблице приведены расчеты для частот входного, измеряеряемого сигнала 25, 50 и 100Гц, и рассчитанное число измерений которое успевает сделать ADC для предделителя ADC 32, 64 и 128
Re: Нужна ясность с АЦП
Добавлено: Пт июн 29, 2018 05:30:32
Z_h_e
Ну дык самим контроллером и считайте сколько замеров реально выходит. Особенно это существенно, если используется внутренний тактовый генератор, он не самый точный.
Re: Нужна ясность с АЦП
Добавлено: Пт июн 29, 2018 05:41:09
DenChik87
[uquote="Z_h_e",url="/forum/viewtopic.php?p=3410021#p3410021"]Ну дык самим контроллером и считайте сколько замеров реально выходит. Особенно это существенно, если используется внутренний тактовый генератор, он не самый точный.[/uquote]
Я и говорю то, что насчитал контроллер не сходится с тем, что я рассчитываю выше. А вопрос в том правильно ли рассчитал я? и использую я внешний резонатор 4Мгц
Re: Нужна ясность с АЦП
Добавлено: Пт июн 29, 2018 08:38:07
OKF
Скорость АЦП можно увеличить. У меня получалось до 1 мгц. Разрешение только страдает.)
Re: Нужна ясность с АЦП
Добавлено: Пт июн 29, 2018 08:47:29
DenChik87
[uquote="OKF",url="/forum/viewtopic.php?p=3410126#p3410126"]Скорость АЦП можно увеличитеь. У меня получалось до 1 мгц. Разрешение только страдает.)[/uquote]
Да это то тут причем?
Вопрос только в том, правильно ли я веду расчет. Повторюсь, есть детектор нуля, который определяет период входного сигнала, частота тактирования моего контроллера 4Мгц, допустим предделитель ADC выбран 32, допустим частота входного сигнала синус 50Гц, отсюда имеем:
Число измерений N=4000000/32/13/50=192, измерения
13-число тактов нормального преобразования.
А если например частота входного будет не 50, а 100Гц, то соответственно:
Число измерений N=4000000/32/13/100=96, измерений.
И если частота тактирования МК 4МГц, предделитель ADC=64, а частота входного сигнала 50Гц, то:
Число измерений N=4000000/64/13/50=96, измерений.
Правильно ли я рассчитываю число измерений?
Re: Нужна ясность с АЦП
Добавлено: Пт июн 29, 2018 08:59:06
ARV
не лучше ли запускать АЦП на максимально приемлемой скорости по таймеру? тогда вы сможете уложить в 1 период сигнала заранее желаемое количество семплов, например, ровно 100, а не 98,6
кстати, для вычисления RMS нет необходимости в детекторе 0. если вы заранее знаете частоту измеряемого сигнала, достаточно снять заданное количество семплов в течение интервала времени, равного периоду частоты, и начать этот процесс можно в любой момент.
Re: Нужна ясность с АЦП
Добавлено: Пт июн 29, 2018 09:12:32
DenChik87
[uquote="ARV",url="/forum/viewtopic.php?p=3410145#p3410145"]не лучше ли запускать АЦП на максимально приемлемой скорости по таймеру? тогда вы сможете уложить в 1 период сигнала заранее желаемое количество семплов, например, ровно 100, а не 98,6
кстати, для вычисления RMS нет необходимости в детекторе 0. если вы заранее знаете частоту измеряемого сигнала, достаточно снять заданное количество семплов в течение интервала времени, равного периоду частоты, и начать этот процесс можно в любой момент.[/uquote]
Частота входного заранее неизвестна, поэтому есть детектор и на да данном этапе интересует только правильность расчетов количества измерений
Правильно ли я веду расчет измерений?
Re: Нужна ясность с АЦП
Добавлено: Пт июн 29, 2018 10:32:44
OKF
[uquote="DenChik87",url="/forum/viewtopic.php?p=3410135#p3410135"]Да это то тут причем?[/uquote]
Да так, Деньчик, для разговору, не?
Re: Нужна ясность с АЦП
Добавлено: Пт июн 29, 2018 12:43:31
DenChik87
[uquote="OKF",url="/forum/viewtopic.php?p=3410240#p3410240"]Да так, Деньчик, для разговору, не?[/uquote]
Может я не понимаю ответа

вопрос в количестве измерений. Может и можно увеличить до 1Мгц, только зачем. В даташите написано для адекватного измерения надо частоту ADC 50-200kГц. Мой диапазон входного сигнала синус 40-65Гц. Но хочу спроектировать измерение в диапазоне по шире, где-нибудь 25-80Гц. Для этого большая скорость измерений не нужна. И так много данных хранить придется
Re: Нужна ясность с АЦП
Добавлено: Пт июн 29, 2018 14:32:41
Z_h_e
DenChik87 писал(а):Правильно ли я считаю теоретическое количество измеренных значений ADC?
У Вас расхождение с расчетным и фактическим в какую сторону? Быть может Вы не успеваете вовремя считать результат АЦП?
DenChik87 писал(а):13-число тактов нормального преобразования.
А время на включение АЦП? А время первого преобразования после включения? Время на старт АЦП?
ARV писал(а): для вычисления RMS нет необходимости в детекторе 0. если вы заранее знаете частоту измеряемого сигнала
Если сигнал боле-менее нормальной формы, то можно период определить по выбранным данным, но детектор самое удобное и проще с программой имхо.
Re: Нужна ясность с АЦП
Добавлено: Пт июн 29, 2018 16:17:15
ARV
Z_h_e писал(а):Если сигнал боле-менее нормальной формы, то можно период определить по выбранным данным, но детектор самое удобное и проще с программой имхо.
главное в расчете RMS - это знать частоту сигнала, ну или период. если делать измеритель RMS в расчете на любую частоту - это будет очень непростой задачей. а для стандартной "сетевой" (или любой наперед известной) частоты можно и без детектора обойтись - хоть аппаратного, хоть по данным.
Re: Нужна ясность с АЦП
Добавлено: Пт июн 29, 2018 17:08:01
Z_h_e
ARV писал(а):это знать частоту сигнала, ну или период
Я и говорю
Z_h_e писал(а):Если сигнал боле-менее нормальной формы, то можно период определить по выбранным данным
Re: Нужна ясность с АЦП
Добавлено: Пт июн 29, 2018 17:09:43
ARV
Я понял, что вы говорите. Видимо, я говорю не достаточно понятно. В бытовой сети более-менее нормальная синусоида. Так вот, определять её период вообще нет необходимости - ни по переходу через ноль, ни по массиву снятых данных - период УЖЕ известен.
Re: Нужна ясность с АЦП
Добавлено: Пт июн 29, 2018 17:16:56
Z_h_e
У ТС период неизвестен.
Re: Нужна ясность с АЦП
Добавлено: Пт июн 29, 2018 17:26:08
КРАМ
[uquote="DenChik87",url="/forum/viewtopic.php?p=3410388#p3410388"]Может я не понимаю ответа

[/uquote]
Как выполнена схемотехника измерения синусоиды? То есть как измеряется двухполярный сигнал?
Re: Нужна ясность с АЦП
Добавлено: Сб июн 30, 2018 03:03:35
DenChik87
[uquote="КРАМ",url="/forum/viewtopic.php?p=3410658#p3410658"]Как выполнена схемотехника измерения синусоиды? То есть как измеряется двухполярный сигнал?[/uquote]
Да, измеряется двухполярный сигнал. Синусоида сдвинута на 2,5 вверх от нуля. В железе еще не делал, но будет именно так, пока только моделирую в протеусе. Для этого подаю на вход ADC сигнал синусоиды сдвинутый на 2.5В от нуля. Программно вычитаю эти 2.5В, т.е из измерений adc-512. Затем вывожу значения измерений в терминал по UART. Контроллер считает значения близкие к правде, но есть погрешность.
На рисунке приведены эталонные сигналы, подаваемые на порты и те, что измерил контроллер. Измерение ведутся по шести портам ADC, последовательно опрашивая их. Как видно значения измерений близки к эталонным, но погрешность все же есть.
Хочу разобраться в связи с чем. Заметил что вроде как неправильно производит количество измерений за период. Так как количество значений измеренных за период, которые рассчитываю я не сходятся с количеством измерений, которые производит контроллер.
Для этого и прошу подсказать верны ли мои расчеты количества измерений, которые я привел выше
[uquote="Z_h_e",url="/forum/viewtopic.php?p=3410501#p3410501"]У Вас расхождение с расчетным и фактическим в какую сторону? Быть может Вы не успеваете вовремя считать результат АЦП?[/uquote]
Расхождение получается в разную сторону, Результаты после каждого прерывания ацп сохраняются в массив. Далее по внешнему прерыванию достаются, рассчитываются, затем передаются по uart
[uquote="Z_h_e",url="/forum/viewtopic.php?p=3410501#p3410501"]А время на включение АЦП? А время первого преобразования после включения? Время на старт АЦП?[/uquote]
Контроллер находится в режиме фриран и я так понимаю время включения и то что первое преобразование после включения 25тактов можно во внимание не брать?
Re: Нужна ясность с АЦП
Добавлено: Сб июн 30, 2018 06:33:36
Z_h_e
DenChik87 писал(а): Контроллер считает значения близкие к правде, но есть погрешность.
ПГ есть всегда. Термина близко не может существовать в измерениях. Вы сделали какие-то расчеты, определились с ПГ и в нее не укладываетесь? Какие критерии у Вас?
DenChik87 писал(а):Расхождение получается в разную сторону,
Т.е. нет повторяемости? Тогда появляются вопросы к программе.
DenChik87 писал(а):и то что первое преобразование после включения 25тактов можно во внимание не брать?
Если я правильно понимаю, если АЦП не выключается, то для последующих измерений такого времени не будет. Для фриран 2 такта на старт и 13.5 тактов АЦП на каждый замер.
Re: Нужна ясность с АЦП
Добавлено: Сб июн 30, 2018 06:40:51
КРАМ
[uquote="DenChik87",url="/forum/viewtopic.php?p=3411003#p3411003"]Синусоида сдвинута на 2,5 вверх от нуля. В железе еще не делал, но будет именно так, пока только моделирую в протеусе. Для этого подаю на вход ADC сигнал синусоиды сдвинутый на 2.5В от нуля. Программно вычитаю эти 2.5В, т.е из измерений adc-512.[/uquote]
Это, скорее всего, не относится к нынешней ошибке, но в реальном железе Вы ее получите совершенно точно.
Ноль не находится на 2,5 вольтах. Ни у АЦП контроллера при сдвиге на полшкалы, ни у ОУ и/или делителя, обеспечивающего сдвиг сигнала на полшкалы. Мало того, эти величины случайны для примененных экземпляров элементной базы, да еще и зависят от температуры.
Поэтому, нужно НЕПРЕРЫВНО измерять ноль В ПРИХОДЯЩЕМ МАССИВЕ СИГНАЛА. Для чего нужно просто находить его среднее значение по интервалу значительно превышающему период сигнала. Чтобы не расходовать ОЗУ, можно сделать не КИХ (скользящее среднее), а БИХ фильтр НЧ. Сиречь простейший однозвенный рекурсивный фильтр.
Re: Нужна ясность с АЦП
Добавлено: Сб июн 30, 2018 06:49:06
Z_h_e
КРАМ писал(а): Для чего нужно просто находить его среднее значение по интервалу значительно превышающему период сигнала.
А если сигнал не симметричный?
Re: Нужна ясность с АЦП
Добавлено: Сб июн 30, 2018 07:23:08
КРАМ
Вопрос с несимметричным сигналом справедлив. Строго говоря, если предполагается смешанный сигнал с переменной и постоянной составляющей (в сети постоянной составляющей не может быть по определению, ибо мы все питаемся от ТП), то потребуется замер нулей на лету с отключением сигнала от входа (периодически и тоже через цифровой фильтр).
Но в любом случае, формальный сдвиг на полшкалы АЦП - это ошибочное решение.
ЗЫ. Визуальная несимметрия сигнала и присутствие в нем постоянной составляющей - это не связанные вещи.