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

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

Пт окт 22, 2021 15:29:45

так и быть должно.
допустим, стартуем с нуля.
счетчик набрал 7 раз по 9216 = 64512.
в следующий раз счетчик наберет 64512 + 9216 - 65536 = 8192 и сделает еще одно переполнение с номером 245.
у тебя при вычитании из 8192 числа 64512 получается правильный результат 9216 и флаг переноса.
на ассемблере понятно, что делать.
после вычитания нужно из счетчика переполнений вычесть ноль с переносом.
тогда получишь правильное число 244.

Добавлено after 16 minutes 15 seconds:
Dimon456 писал(а):Ха, решил проблему
получилось, что я написал ответ, не видя твоего дополнения к твоему посту.

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

Пт окт 22, 2021 15:54:16

...решил проблему... прогнал по всему диапазону, любую частоту подавал, идеально считает.
Вот и ладненько... :)
TEST_M8.zip
(100.78 KiB) Скачиваний: 110

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

Пт окт 22, 2021 16:35:15

akl, ну и зачем такие громоздкие навороты. когда то же самое делается гораздо проще?
надо тебе 4 байта в счетчике, вот с 4-мя байтами то же самое:
Код:
.include "m8def.inc"   ; ATMega8

.def IC_L      = R20
.def IC_H      = R21
.def counter_L      = R22
.def counter_H      = R23
.def counter_ovf_L   = R24
.def counter_ovf_H   = R25

.cseg
.org 0
rjmp nachalo_code

.org ICP1addr
rjmp timer1_ICP

.org OVF1addr
rjmp timer1_OVF

nachalo_code:
ldi R26,  low(RAMEND)
out SPL, R26
ldi R26, high(RAMEND)
out SPH, R26

clr IC_L
clr IC_H
clr XL
clr XH

;--- Timer1 ---
ldi R26, (0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10)
out TCCR1A, R26
ldi R26, (1<<ICNC1) | (1<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10)
out TCCR1B, R26
ldi R26, (1<<TICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (1<<TOIE1)
out TIMSK, R26

sei

cycle:
rjmp cycle

timer1_ICP:
in counter_L, ICR1L
in counter_H, ICR1H
sub counter_L, IC_L
sbc counter_H, IC_H
brcc no_carry
sbiw XL, 1
no_carry:
mov counter_ovf_L, XL
mov counter_ovf_H, XH
in IC_L, ICR1L
in IC_H, ICR1H
clr XL
clr XH

reti

timer1_OVF:
adiw XL, 1
reti

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

Пт окт 22, 2021 16:57:50

Ну ладно, что в итоге показывает реальность

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

Пт окт 22, 2021 17:03:21

Dimon456 писал(а):получилась 15,9982585 - 15,9982580
одна лишняя цифра. это после деления на 2 получившегося числа?

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

Пт окт 22, 2021 17:06:15

А так 15998258,5 Гц ?

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

Сб окт 23, 2021 06:12:32

а я так и понял.

Добавлено after 4 hours 20 minutes 3 seconds:
а в итоге мы получили самый натуральный измеритель периода внешнего сигнала.
а поскольку измерять период выгодно у низкочастотного сигнала, то такого кварца, как у Димона, может оказаться достаточно для получения удовлетворительной точности измерений.

Добавлено after 7 hours 52 minutes 15 seconds:
Dimon456, ты рановато жалуешься на свой кварц.
как известно, емкость параллельно кварцу снижает резонансную частоту.
в некоторых советских часах специально ставили параллельно кварцу подстроечный конденсатор для регулировки хода часов.
не знаю, какие фьюзы ты ставишь, я у себя на высокочастотный кварц ставлю 0xFF и не ставлю на кварц конденсаторы вообще. и прекрасно работает.
попробуй и ты убрать конденсаторы и опять измерь частоту. должна повыситься.

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

Сб окт 23, 2021 07:05:07

Starichok51, вот такая платка
Прошивку загружаю через bootloader по uart, bootloader не менял, фьюзы не трогал.
По этому не знаю что там из фьюзов стоит.

Единственно могу взять другою мегу в дип корпусе, и уже в нее потыкать кварцы и по изменять фьюзы.
Если интересно, в качестве эксперимента, пиши, проверю.

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

Сб окт 23, 2021 07:24:44

ну да, на этой плате экспериментировать трудно ...
конешно, интересно, что у тебя получится без конденсаторов.
если тебе не трудно будет это сделать, то сделай, пожалуйста.
и даже интересно, что с обоими конденсаторами будет, что с одним и что вообще без конденсаторов.

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

Сб окт 23, 2021 12:37:28

Starichok51, сделал

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

Сб окт 23, 2021 15:50:32

быстро ты справился, я думал, дольше будет. спасибо за проведенную работу.
частота без конденсаторов возросла, как это должно и быть.
видим, что правый влияет сильнее, чем левый.
а один конденсатор между выводами 9 и 10 снижает частоту еще сильнее, чем два конденсатора на своих местах.
по кварцу 4 МГц видим, что с двумя конденсаторами там и так всё практически идеально, и конденсаторы ему не мешают, а помогают.
по кварцу 20 МГц видим, что ему нужны или 2 конденсатора емкостью больше 22 пФ (нужно подбирать), или один конденсатор между выводами 9 и 10, но емкостью меньше, чем 22 пФ (тоже подобрать).
2 конденсатора через "землю" соединены последовательно, то есть емкость у них относительно кварца 11 пФ.
то есть, для получения точной частоты один конденсатор между выводами 9 и 10 должен иметь емкость больше 11 пФ, но меньше 22 пФ.

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

Сб окт 23, 2021 17:08:16

Starichok51, вот еще, для сравнения

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

Сб окт 23, 2021 17:56:41

про точность внутренних генераторов нет смысла говорить.
тут несколько дней назад один товарищ принес советские часы на большом вакуумном экране, уже дано неработающие. 91 года выпуска.
со словами "может что-то из них тебе пригодится".
как раз сегодня я в них полез, посмотреть, что там есть.
так вот, там есть 2 конденсатора стандартно по сторонам кварца (по 18 пик) и параллельно одному из конденсаторов стоит подстроечный конденсатор.
на подстроечном надписи нет или полностью выцвела.
часы на часовой микросхеме кр145ик1901. кварц 32768 Гц.

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

Вт окт 26, 2021 14:58:51

Dimon456, а какой ты называл правым конденсатором и какой левым?
для меня правый - который подключен к РВ7. а левый - к РВ6.
так у меня правый влияет меньше, чем левый.
валялась у меня старая материнка. снял с нее часовой кварц и сделал на нем приладу с выходом 1 Гц - подавать на захват.
исследовал один свой кварц на 8 МГц.
без конденсаторов он дает 8001490 Гц -весьма плохо.
подобрал ему конденсаторы - левый 18 пик и правый 22 пики. но это их номиналы, точная емкость не известна.
частота именно в этот момент колеблется от 8000003-8000004 Гц.
и такой результат можно считать отличным.

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

Вт окт 26, 2021 16:18:50

Starichok51, Атмега328 в dip28 корпусе, левый 9 нога PB6, правый 10 нога PB7.
Так как я тестировал вот на такой
я не могу сказать что это зер гут.
Но из этих экспериментов я понял одно, чем выше МГц у кварца, тем хуже стабильность, кварц становится чувствительным.

Кварц от материнки я бы не стал считать за эталон, еще не на одной материнке часики не шли точь в точь.
Как я уже писал, если нет прибора измеряющего длительность секундного импульса с точностью до 9 знака, остальное не имеет значения
ds3231 имеет годовой уход всего 6ppm, а это всего 6 секунд за год.

То есть, остальное почти точно, но не совсем точно.

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

Вт окт 26, 2021 18:02:40

вообще-то, на материнках весьма точные кварцы.
я сначала сделал секундомер на нем. за несколько часов в сравнении с компом ухода куда-либо я не заметил.
ну, я тоже уже подумывал купить модуль с ds3231. не передумал - мне не нужна офигенная точность частоты, часы я не делаю.
а для нескольких часов работы моих изделий (где используются секундомеры) мне вполне хватит калибровки по этому часовому кварцу.
я же до сих пор пользовался своими изделиями и не переживал, что там существенная ошибка из-за того, что я конденсаторы на кварц не ставил.
а похоже, что кварцы изготавливаются с учетом того, что конденсаторы будут стоять.
тогда я обследовал на макетке отвлеченный кварц.
а я еще успел обследовать и подстроить конденсаторами кварц в одном из своих изделий.
там ситуация без конденсаторов была еще хуже, чем с первым кварцем - частота была еще выше, лишних было более 2600 Гц.
я поставил 2 штуки по 22 пики, получилось у меня 8000052 в среднем.
то есть, одну из емкостей можно чуть увеличить. но у меня нет таких мелких подходящих номиналов
52 лишних Герца дают примерно 1 сек на 42 часа. мне этого за глаза.
а конкретно, это измеритель емкости аккумуляторов, разряд там обычно несколько часов.
так что, можно сказать, что результат калибровки для моего измерителя практически идеален.

Добавлено after 1 hour 15 minutes 49 seconds:
Dimon456 писал(а):ds3231 имеет годовой уход всего 6ppm, а это всего 6 секунд за год.
это 189,2 секунды в год.

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

Ср окт 27, 2021 08:44:32

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

Вообще, при 32кгц кварце используются внутренние конденсаторы. В мега8 CKOPT есть для этого, в 328 автоматом при выборе low-frequency xtal. Только нужно смотреть REV и errata.

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

Ср окт 27, 2021 10:06:35

ну что сказать уже надеюсь понятно что кварц в схеме генки на КМОП инверторе должен быть нагружен на кондер(ы) определеной мвеличины примеры есть например в дш 176ие12 ие5 ие18
для трубчатого импорта резонансная нагрузка указана на самом кварце и входит в обозначение

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

Ср окт 27, 2021 11:15:21

OKF писал(а):Вообще, при 32кгц кварце используются внутренние конденсаторы. В мега8 CKOPT есть для этого,
я не включал CKOPT, использовал внешние конденсаторы. внешними можно подогнать частоту близко к номиналу.
по даташиту внутренние имеют номинал 36 пик, что может оказаться даже лишнего и частота получится ниже номинала.
я таймер2 перевел в асинхронный режим, там автоматом заработал генератор на ногах РВ6 и РВ7 (XTAL1 и XTAL2). ну, и поделил частоту до 1 Гц на выходе ОС2.
заказал я вчера, все-таки, модуль с ds3231 для этих "игр" с частотой.
и, все-таки, этот часовой кварц с конденсаторами на 22 пики может давать частоту, заметно отличающуюся от номинала.
я проверил часовой кварц с подключенным подстроечным конденсатором - и у этого часового кварца есть зависимость от емкости подключенных конденсаторов.

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

Чт дек 30, 2021 20:05:41

А почему какой-то педераст удалил вложение из 1-го поста?

Добавлено after 2 hours 24 minutes 42 seconds:
Полужоп, это вопрос к тебе.
Не смейся. Ничего смешного.
Ответить