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

Измеритель RLC-2

Подправить под 16 МГц эту программу можно только за счет уменьшения отсчетов SIN на период (размера таблицы).
Я не специалист по Atmel, но думаю, что простой прикидкой можно обойтись:
20 000 000 Гц / 200 (отсчетов) = 100 000
100 000 /10 000 = 10 - один отсчет SIN выводится за 10 циклов МК.
Очевидно это последовательность
f10000: nop
nop
f10001: lpm tmp,z+
out portb,tmp
out portd,r17 ;00
cpi zl,50
brne f10000
nop
что похоже на правду (кол-во циклов на команду при желании можно уточнить).
Здесь нет резерва времени, чтобы получить 200 отсчетов на период при 16 МГц.
Придется менять таблицу. Кстати, это все равно нужно делать по нескольким причинам:
1. если присмотреться к числам в таблице, видно что она начинает формировать SIN в 1 квадранте, при этом в районе
90 градусов числа практически не меняются - ...0x7B,0x7B,0x7C,0x7D,0x7D,0x7E,0x7E,0x7E,0x7F... - значит резерв для сокращения таблицы есть
2. Присмотримся ко второй половине таблицы, в частности к переходу через 0: ...0x07,0x03,0x00,0xFD,0xF9,...
похоже на использование чисел со знаком. Это не подходит к формированию SIN с помощью просто R-2R.

На PIC ситуация будет немного хуже, там команда выполняется минимум за 4 такта генератора, поэтому на период SIN получится еще меньше отсчетов, или нужно будет использовать 18F с умножением, а это теряет смысл.

 

GM: Вывод такой, вместо использования неидеальных СД с неидеальными сигналами лучше вычислять идеальное преобразование Фурье неидеального сигнала, тогда гармоники не будут играть никакой роли.
Следствие этого вывода - зачем возиться с генерацией синуса, подаем на Zx меандр, далее на АЦП и вся обработка на МК программно.

 

GM: Вы такой знаток, я погляжу.
Извините но в таком тоне обсуждать тему не вижу смысла. Реализуйте свои идеи в железе.....

 

пересчёт,
в программе поправить размеры таблицы и места вставки квадратурных меандров

171917.zip

 

забыл край подвинуть

171918.zip

 

GO: Следствие этого вывода - зачем возиться с генерацией синуса, подаем на Zx меандр, далее на АЦП и вся обработка на МК программно.
В принципе да,если иметь большую дискредитацию сигнала. Она нужна для точек перехода меадра. Малые емкости иначе не поймаем. На практике достаточно подать фигуру с плавными переходами(синус). как-то ошибся с табличей синуса и фигура была похожа на "речь" с множественными изломами.
Подключил конденсатор 10nF и прибор показал 10.4 nF.
Успехов!!

 

AnSi: в программе поправить размеры таблицы и места вставки квадратурных меандров
Места вставки меандров как раз трогать не нужно, нужно в командах
cpi zl,50
cpi zl,100
cpi zl,150
cpi zl,200
поменять на 40, 80, 120,160 соответственно.
И должно заработать на 16 МГц. Кто проверит? На каком-нибудь TINY2313?

 

Выберусь из мед учереждения - испробую. Пока надо фильтр изобрести и все-ж требования к генератоьру получше сформулировать. DDS на 2313 с R2R ЦАПом делал до 30 кГц при 12 МГц тактовой все шло нормально с простейшим RC ФНЧ

 

А если вместо прямоугольника формировать DDS синус R2R ЦАПом то может пассивного переключаемогоФНЧ и хватит. Каковы КНИ выходного сигнала в реальном приборе с МАХом ? И второе - а в кдючах, что ФНЧ переключают применить полевые транзисторы не удобнее-ли будет ?
------------R/mL6Cdk0FDq+brzjuoUzi
Content-Disposition: form-data; name="upload"; filename=""
Content-Type: application/octet-stream

------------R/mL6Cdk0FDq+brzjuoUzi--

 

напямую на вывод контроллера(конденсаторы фильтра)
попробовать можно и без комутатора - пока выходная частота одна, комутировать нечего
если будет нормально - сделать 3-4 частоты, комутацию фильтра
------
100кгц сделать заманчиво - электролиты проверять на "рабочей" частоте
------
МАХ по даташиту гармоники+шумы - менее 71дБ(0,03%)