Обсуждаем контроллеры компании Atmel.
Ответить

Re: Калибровка встроенного RC-генератора

Вт окт 19, 2021 09:48:09

Dimon456, а какая 2я эталоннаф частота такая же?

anw может быть несколько подходов:
1. напр исследовать интерференцию замешав их напр в A(+)B
затем выделить скажем разность dsp фильтрацией.
2.можно поделить одну из частот в 2^N раз и посчитать количество периодов другой частоты в периоде разделенной, тогда разрешающая способность будет Nbit.
3. если частоты сравнительно низкие - можно сравнивать количества какихто быстрых периодов в периоде одной и другой частоты. тогда разрешающая способность определяется соотношением периодов измеряемых частот и самого короткого измерительного интервала который можно создать, напр макс частотой таймера.

Re: Калибровка встроенного RC-генератора

Вт окт 19, 2021 10:21:46

AlexS4 писал(а): а какая 2я эталоннаф частота такая же?
Да, такая же, 32768Гц, ну раз имеем дело с часиками, и с точностью до одного герца.
AlexS4 писал(а):anw может быть несколько подходов:
Нет, что нибудь по проще.
Если бы был синус можно было бы осциллограф использовать, фигура Лиссажу, кстати с какой точностью можно осциллографом выставить?

А меандр, как насчет D-тригера?

Re: Калибровка встроенного RC-генератора

Вт окт 19, 2021 10:23:20

...Как это сделать?
Как вариант. ...

Вообще-то у меня несколько иной вариант предполагался...
Выставляем базовый RC у аттини13 на 9,6 МГц
переводим CLKPR с 8 на 1 после запуска программы
Задается коэффициент для прескалера Т0 х64
коэффициент для таймера 150
В итоге имеем прерывание с интервалом в 1 миллисекунду (за время исполнения 9600 одноцикловых команд)
Данное прерывание выставляет байтик флагов для "заинтересованных процессов", одним из которых является наш таймер.
Собственно сам таймер состоит из двух счетчиков -
досчета до секунды (х1000), где собственно и вводится поправка коррекции отклонения точности хода,
и счетчика заданного пользователем интервала в секундах.
Это под ассемблером.
Для адуринки (Си) используем функцию millis() и те же два счетчика.
8)

Re: Калибровка встроенного RC-генератора

Вт окт 19, 2021 13:04:49

BOB51, не важно как вы там сделаете, но вы должны с чем-то сравнивать.

Идея такова: берем D-тригер (может что еще можно, не знаю), к примеру на к155ла3 собрать, до 2МГц она спокойно работает,
на один вход D-тригер подаем сигнал образцовой частоты
на другой - сигнал с МК

на выходе D-тригера смотрим осциллографом, при равенстве частот там будет идеальный сигнал, вопрос состоит на сколько этот метод эффективен?

Подали на вход 32768Гц - с точностью 1Гц.
Подали 65536 - с точностью 0,5Гц.
131072 - с точностью 0,25Гц.

Вот и подгоняйте ваши прескалеры, коэффициенты, досчеты и пр.

Re: Калибровка встроенного RC-генератора

Вт окт 19, 2021 13:31:36

Сравнение простейшее выше уже предлагалось:
опорный генератор, линейка счетчиков с дешифратором но заданный интервал, счетчик рассогласования с индикацией и некоторая обвязка для одновременности подачи сигнала запуска и контроля сигнала останова(завершения) счета.
Правда насколько точен будет эталон - также вопрос.
8)
Подгонка константы коррекции такая же как и в обычных часах тик-так энное количество часов - убежали вперед - ставим в минус 1-2 условны единицы, опять проверяем - ежли не так как желаемо ставим соответственно коррекцию в + или в - на некоторое количество тех УЕ. И так пока не добиваемся приемлемого результата.
Долго, но весьма просто и доступно.
8)

Re: Калибровка встроенного RC-генератора

Вт окт 19, 2021 16:45:31

BOB51 писал(а):Сравнение простейшее выше уже предлагалось:
вы предлагаете собрать простейший частотомер.
BOB51 писал(а):Правда насколько точен будет эталон - также вопрос.
производитель уверяет точность 10 минус 12 степени.
По крайне мере я прогнал диапазон до 1МГц, контролируя показания прибором DM90A, единичку в единичку показывает.
BOB51 писал(а):Долго, но весьма просто и доступно.
С часами как-то дело проще обстоит.
За основу можно взять часы тырнета.
На ds1307 получилось, за 455 часов отстали на 136 секунд, это на кварце 32768Гц с материнки.
Асинхронный таймер удалось настроить, за 215 часов отстал на 3 секунды, это на китайском кварце 32кГц.
Основной минус, долго ждать, а прибора измеряющего с точностью до 9 знака нет.

Re: Калибровка встроенного RC-генератора

Вт окт 19, 2021 17:49:27

Не частотомер, а специализированный комплект с элементами частотомера(в части измеритель -формирователя контрольного интервала) с автоматическим синхронным формированием импульсов запуска и останова счета. Дополнительный счётный узел считает разницу между импульсами завершения контрольного интервала. Тем самым исключая субъективность восприятия, обычную при визуальной сварке между экраном ПК и дисплеем проверяемого таймера.
8)

Re: Калибровка встроенного RC-генератора

Ср окт 20, 2021 16:42:00

Как вариант использовать метод биений.
Допустим, автомат или программа запускает счетчики периодов No и Kx в момент совпадения фронтов Fo и Fx. Автомат или программа определяет момент следующего совпадения фронтов. Тогда
To*No=Tx*Kx или, после преобразования
Fx=Fo*Kx/No
Пример:
No=5'000'001
Kx=5'000'000
100*Fx=32'768*5'000'000/5'000'001=3276799

Думаю, на той же tiny13 такое можно реализовать.

Re: Калибровка встроенного RC-генератора

Ср окт 20, 2021 16:51:43

а как узнать, что фронты совпали?

Re: Калибровка встроенного RC-генератора

Ср окт 20, 2021 17:02:49

Код:
.INCLUDE "tn13def.inc"

.def   ZERO=R15

.equ   Fo=9600000
.equ   Fo_PIN=1
.equ   Fx_PIN=2
.CSEG
;
;
;
SET_00:
   IN   R22,PINB
   ANDI   R22,1<<Fo_PIN|1<<Fx_PIN
   BRNE   SET_00
;пойманы оба 0
SET_11:
   IN   R22,PINB
   ANDI   R22,1<<Fo_PIN|1<<Fx_PIN
   CP   R22,R23
   BRNE   SET_11
;пойманы оба 11

Re: Калибровка встроенного RC-генератора

Ср окт 20, 2021 19:25:31

а что такое R23? он у тебя не определен.
по логики-то понятно, что там должно быть 11 ...
и пока твои циклы крутятся в поиске совпадения, будет опоздание к совпадению до 4 машинных циклов. что может дать существенную ошибку.

Re: Калибровка встроенного RC-генератора

Ср окт 20, 2021 21:12:26

К155ЛА3 + осциллограф
Подал меандр с МК вот код
Тактовая МК 16МГц, выход с МК 32кГц.
Более менее стабильные показания, но не совсем стабильные, мне удалось получить на эталонной частоте 31996Гц - 31997Гц, к сожалению не могу дробнее выставить.

А теперь посчитайте какая реальная частота кварца МК?

Re: Калибровка встроенного RC-генератора

Чт окт 21, 2021 06:22:13

я бы детектировал совпадение фронтов сравнивая 2 бита gpio предыдущего(сохраненного) и текущего состояний, 00->11 так количество битов/сигналов неважно, хоть 2 хоть 8. и полная синхронность сэмплирования! и конечно это легко сводится к 1 операции сравнения например сдвигом и сравнением с паттерном. или xor+and.

Re: Калибровка встроенного RC-генератора

Чт окт 21, 2021 08:23:13

Продолжаем эксперимент с К155ЛА3 и осциллографом.
32кГц это много и грубо.

100Гц.
Почти стабильные показания удалось получить при 10001us 99,99Гц.

Спускаемся ниже, 10Гц
Почти, почти, идеальные показания удалось получить при 100011us 9,9989Гц.
По чему почти, я ловлю либо фронт либо спад сигнала, селектор развертки в положении 1ms, за 15 минут наблюдения сигнал сместился на 3 деления (не на три клеточки) от середины.

Думаю при 1 секунде можно получить идеальные показания.

Пока вы будете
детектировал совпадение фронтов сравнивая 2 бита
до 4 машинных циклов.
я определил точную частоту кварца МК 16001760Гц.

Re: Калибровка встроенного RC-генератора

Чт окт 21, 2021 09:00:38

Dimon456 писал(а):... определил точную частоту кварца МК 16001760Гц.
Это ошибка. До правки число 15998240 было правильнее.

Re: Калибровка встроенного RC-генератора

Чт окт 21, 2021 09:19:17

Dimon456, может, сегодня не мой день,но я ничего не понял из твоего эксперимента с К155ЛА3 и осциллографом.
что ты подаешь на К155ЛА3 и что ты видишь на осциллографе?
и откуда взялись 100011 мкс?
Dimon456 писал(а):я определил точную частоту кварца МК 16001760Гц.
ну да, ошибка тут.
нужно 9,9989 Гц умножить на 1600000

Re: Калибровка встроенного RC-генератора

Чт окт 21, 2021 09:26:47

akl, да вы правы.
Все равно это не поможет.


Добавлено after 4 minutes 52 seconds:
Starichok51, берем D-тригер (может что еще можно, не знаю), к примеру на к155ла3 собрать, до 2МГц она спокойно работает,
на один вход D-тригер подаем сигнал образцовой частоты
на другой - сигнал с МК

на выходе D-тригера смотрим осциллографом, при равенстве частот там будет идеальный сигнал, я имею ввиду ширина импульса не будет изменяться.

Это то же самое, что вы пытаетесь
детектировал совпадение фронтов сравнивая 2 бита
, таким бы способом я бы совпадение фронтов ждал бы вечность.

Re: Калибровка встроенного RC-генератора

Чт окт 21, 2021 09:39:33

...Спускаемся ниже, 10Гц
Код:
TCCR1A=(0<<COM1A1) | (1<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (1<<WGM12) | (0<<CS12) | (1<<CS11) | (1<<CS10);
OCR1A = 0x30D3;
Почти, почти, идеальные показания удалось получить при 100011us 9,9989Гц.
...определил точную частоту кварца МК 16001760Гц.

OC1A=F_CPU/Fout/PRESCALER/2 -> F_CPU=12'500*2*64*9,9989=15'998'240

Re: Калибровка встроенного RC-генератора

Чт окт 21, 2021 10:06:22

На кварце написано 16.000, я думал что 16 и 000 он должен выдавать, ладно после 000 там не гарантируется.

Re: Калибровка встроенного RC-генератора

Чт окт 21, 2021 10:12:50

Dimon456 писал(а):на выходе D-тригера смотрим осциллографом, при равенстве частот там будет идеальный сигнал, я имею ввиду ширина импульса не будет изменяться.
а еще был вопрос
Starichok51 писал(а):и откуда взялись 100011 мкс?
Ответить