Свежие обсуждения
Измерения

Дизайн народного RLC-метра (RLC-3)

1 76 174

chav1961: Софт - в студию
Софт уже был в этой ветке, ничего нового, состоит он из основной программы на си, и подпрограммы на ассемблере. Всё накопление и расчёт коэффициентов выполняется в подпрограмме, а основная программа считает действительную и мнимую часть импеданса. Вот основной фрагмент


samples(inputs,fcoffs);
a=fcoffs[0];
b=fcoffs[1];
c=fcoffs[2];
d=fcoffs[3];
nom=r0/((c-a)*(c-a)+(d-b)*(d-b));
rx=nom*(a*(c-a)+b*(d-b));
xx=nom*(b*(c-a)-a*(d-b));

Вот кусок кода цикла, который вычисляет частную сумму для коэффициентов а0 и с0


movl xar6,@pcos ;curent pointer
movx tl,*ar6%++ ;in cosine table
impyl p,xt,@refr ;64-bit product
qmpyl acc,xt,@refr ;of X(i)*cos(W(i))
addul p,@a0+0 ;current
addcl acc,@a0+2 ;64-bit sum
movl @a0+0,p ;save
movl @a0+2,acc ;in a0
impyl p,xt,@meas ;64-bit product
qmpyl acc,xt,@meas ;of Y(i)*cos(W(i))
addul p,@c0+0 ;current
addcl acc,@c0+2 ;64-bit sum
movl @c0+0,p ;save
movl @c0+2,acc ;in c0
movl @pcos,xar6 ;next tcos pointer

Ничего особенного, обычная 64-битная арифметика, ну если только тот факт, что считается за 1.5 мкс.

Ну, всё надо делать вовремя, так что, поздравляю

ВСЕХ ФОРУМЧАН С НОВЫМ ГОДОМ! Всех благ каждому.
Увидимся в Новом году.

 

GM: накопление 1000000 выборок

А сколько выборок вы делали за период? сколько у вас значений в таблице синуса\косинуса и не могли бы вы её выложить? И как вы вытягиваете диапазон, имея только только 12 битный ацп? за счёт большого количества выборок? или я что то неправильно понял, потому как новичок в этом деле

 

Прошу пардону, лишний ноль затесался, должно быть всего 100 000 выборок (за одну секунду при частоте выборок 100 кГц ), за период частоты 10 кГц, следовательно, 10 выборок. Таблицы для синуса и косинуса отдельные, содержат по десять слов каждое. Вот код для таблицы синуса


tcos: .asg 0,x ;The ideal cosine 10 kHz
.loop 10
.word $cvi(magn*$cos(0.62831853071*x)) ;10 points
.eval x+1,x
.endloop

За счёт большого количества выборок Fs полоса анализа преобразования Фурье В=Fs/N составляет 1 Гц. Цифровой шум на 10 дБ пониже младшего разряда АЦП, а сколько шума снаружи пролезет в такой полосе зависит от схемотехники. Теоретически, для 12-битного АЦП с опорным сопротивлением 1181 Ом диапазон измеряемых сопротивлений должен быть от 0.6 Ома до 2.4 МОма. Пока не могу подтвердить, какой диапазон получается, нет полного набора резисторов, чтобы проверить, заблокирован погодой в своей деревне, уже неделю не езжу на работу.

 

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

 

GM, резисторы Вы померяли (только я не понял, с чем Вы сравнивали, если флюк показывает только 2 знака (ну судя из вашего примера про 77 флюк).
А как дела с конденсатором или индуктивностью?

 

GM: За счёт большого количества выборок Fs полоса анализа преобразования Фурье В=Fs/N составляет 1 Гц. Цифровой шум на 10 дБ пониже младшего разряда АЦП, а сколько шума снаружи пролезет в такой полосе зависит от схемотехники
На счет шума я не соглашусь, ведь в вашей схеме нету собственно его источника. Ошибка квантизации будет жестко коррелировать со входным сигналом, часть его мощности уйдет в его собственные гармоники достаточно непредсказуемо. Для того чтобы реализовать преимущество оверсемплинга требуется либо подмешать во входной сигнал некий шум не закрывающий полезный сигнал либо положится на шум УВХ, но для этого как минимум необходимо его измерить чего у Вас нету(а так у тексасов увх практически бесшумный, можно уменьшать апертуру хоть до посинения и это не даст шума в половину младшего разряда АЦП).
Кстати а куда делась идея народного измерителя? Вроде бы купить комплект разработчика стартового уровня для тексаса стоит порядка 400 баксов, что недешево? И где тот забавный АЦП на 24бит который предполагался для исключения PGA ака усилителей с переменным КУ ?

 

Pitty: только я не понял, с чем Вы сравнивали, если флюк показывает только 2 знака

Не совсем понимаю, что вы говорите. Мой флюк измеряет сопротивления с точностью до одной десятой ома (отображает по крайней мере). Сравнивал я показания флюка, 5.8 Ом с показаниями своего прототипа 5.88 Ом (язык не поворачивается назвать прибором несколько плат с космами проводов). Все измерения основаны на сравнении с эталонным или опорным сопротивлением R=1181 Ом. Ещё у меня были R=120.1 Ом и R=63.7 кОм (как флюк намерял), там то же самое, ну это уже вопрос калибровки.

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

Немного изменил схему, поскольку у генератора 10 кГц амплитуда и частота дёргалась, не знаю в чём там дело, программа в DDS не моя и закрыта, временно заменил генератор на ЦАП, который управляется от проца по SPI. Ещё одна проблемка выявилась, при измерении сопротивлений 1 Ом и ниже (маленькое переменное напряжение вблизи нуля) у повторителя на ОУ LM358 меняется режим и он перестаёт быть повторителем (возможно надо его питать от двуполярного источника). Надо бы подтащить осцилл с работы и посмотреть. А вообще, лучше сразу закажу и поставлю инструментальные усилители.

Общий вывод на данный момент - надо делать нормальную плату для входной аналоговой части: DDS генератор и два ИУ, ну и два внешних АЦП поразряднее, по крайней мере 16-битные. Я параллельно прорабатываю вопрос 48-битной математики для атмеловского МК для работы со 100 Квыборками/с. Есть несколько частных решений, одно из них тютелька в тютельку успевает обработать четыре 48-битных МАКа за 10 мкс.

 

Neekeetos: На счет шума я не соглашусь, ведь в вашей схеме нету собственно его источника. Ошибка квантизации будет жестко коррелировать со входным сигналом

Ну как же нету? Сам АЦП и есть источник цифрового шума. И у меня нет оверсемплинга, извините, обычный гармонический анализ. И ошибка квантизации НЕ будет жестко коррелировать со входным сигналом, тут вы явно погорячились.

Neekeetos: Кстати а куда делась идея народного измерителя? Вроде бы купить комплект разработчика стартового уровня для тексаса стоит порядка 400 баксов, что недешево

Идея народного измерителя никуда не делась, имеется несколько вариантов реализации, несколькими постами выше была приведена конкретная аппробация алгоритма народного измерителя. Насчёт тексаса вообще ничего не понял, он у меня просто валялся без дела, есть ещё демо, например, для F2808 и C5402, есть и для пиков, почему бы не использовать их для отладки алгоритма?

 

GM: Насчёт тексаса вообще ничего не понял, он у меня просто валялся без дела, есть ещё демо, например, для F2808 и C5402, есть и для пиков, почему бы не использовать их для отладки алгоритма?

Завидую я Вам, сколько добра валяется без дела... В) щютка.

Судя по по речи Вы человек неплохо разбирающийся в метрологии. Флюк. измреряющий до одной десятой ома - смотря на каком сопротивлении. Для сопротивления 1 ом - это жутко грубый прибор, для сопротивления 10 кОм - очень точный. Я это к тому, что зная более точное измреение эталонным омметром для случая 5.8 Ом, можно было бы более корректно оценивать точность разрабатываемого прибора.

ЗЫ. А вообще, очень не плохо у Вас получилось. Только Вы говорили что провода прям на ноги камушка подпаяли, а потом речь появилась про LM358 - лукавите... В) И кстати, а нельзя ли на нескольких а-ля LM358 собрать инстр. усилитель. Просто это может быть НААММНООГО дешевле, немного потеряв в качестве. В этом плане мои познания очень скромны, просто недавно "просматривал" книгу по ОУ и там было несколько схем инстр. усилителей. один ИУ получается на 2-3 корпусах. А вот двуполярку сделать скорее всего придётся - всё-таки это более родной режим для ОУ. Даже однополярников.

 

Pitty: Только Вы говорили что провода прям на ноги камушка подпаяли, а потом речь появилась про LM358 - лукавите...

До нового года провода были подпаяны прямо к входам АЦП, честно. Причём именно провода, а не экранированные кабели, я уж не говорю про 4-х проводную схему, хотя шумов и наводок хватает. В результате всех телодвижений выявилось (хотя и не было неожиданным), что сопротивление источника достаточно ощутимо влияет на показания АЦП, пришлось добавить ещё одну платку с повторителями на ОУ. Не хочется народ грузить подробностями всех своих экспериментов, признаюсь только, что без ОУ спалил один вход АЦП, возможно потому, что выходной ОУ DDS питался от 12 вольт. Не исследовал, просто перепаял кабели на другую пару, плюс добавил два повторителя на ОУ, заработало. Теперь есть одно внешнее питание - 5В, ЦАП питается от линейного стабилизатора 3.3В для проца, оно же и опорное для ЦАПа (на плате имеется ещё один стаб на 1.8В для ядра). Проц работает на 100 МГц, внешний кварц - 20 МГц, накачка питания флеша (60 МГц) выключена.

Один ИУ на 3-х россыпных ОУ вполне можно сделать, хотя особого смысла не вижу. Вся проблема заключается в 4-х особо точных резисторах, которые в случае ИУ расположены прямо на подложке и подогнаны с помощью лазера, а на рассыпухе достичь того же результата можно, но обременительно. Кроме того, современные ИУ имеют ногу REF, которая позволяет установить смещение на 2.5В, что оптимально для диапазона 0-5В. Для народности хотелось бы обойтись одним источником питания.