Страница 4 из 6
Re: ATTINY2313 и кварц 32768Гц
Добавлено: Вт авг 27, 2013 10:40:23
ibiza11
Что то вас, коты, совсем понесло. Все же просто, блин.
BOB51 писал(а):Речь идет об ошибке, накапливаемой последующими счетчиками, для которых уже чистого секунд (маркер) интервала не будет из-за задержек, вносимых той самой реакцией на прерывание
Ну как же не будет? Еще как будет, если счетчик таймера сам перезагружается (или переполняется), то никакая задержка перед входом в прерывание не будет вносить погрешность в счет таймера.
Представьте, что произошло прерывание таймера - он отсчитал одну секунду. Перезагрузился и считает дальше.
В этот момент выполняется какая-то команда программы... идет процесс перехода программного счетчика на метку начала обработчика прерывания. Это длится сколько-то там Х тактов. Эти Х тактов не повлияют на момент следующего прерывания, поскольку таймер как считал, так и считает дальше. просто с момента входа в прерывание до момента следующего прерывания пройдет не 1 секунда, а 1 секунда минус Х тактов. Главное, чтобы Х тактов не превысили интервал 1 секунда, поскольку иначе мы просто пропустим прерывание.
Re: ATTINY2313 и кварц 32768Гц
Добавлено: Вт авг 27, 2013 11:37:42
O-LED
BOB51 писал(а):НЕ компенсировать, а снизить, по возможности, их влияние и величину.
Зачем?
Re: ATTINY2313 и кварц 32768Гц
Добавлено: Чт авг 29, 2013 09:46:45
BOB51
ЗАЧЕМ...
Так, к примеру, зацарапаем простенькое реле времени на 10 секунд... И вот чего получилось:
график конечно утрирован, но смысл вроде понятен.

Re: ATTINY2313 и кварц 32768Гц
Добавлено: Чт авг 29, 2013 12:18:33
ibiza11
BOB51, вы явно решили потроллить. Я уж думал все успокоилось.
Причем здесь время выполнения команд? и у вас на рисунке что-то не то с масштабом. в одну секунду при тактировании от 32768Гц кварца влезет ровно столько же тактов микроконтроллера(32768). У вас же нарисовано так, как будто в секунду может выполнится не более 20 команд...
Вы все еще не понимаете, что аппаратный таймер не останавливается в момент прерывания и продолжает дальше считать? приведите наконец кусок кода, который вызовет то, что вы описываете на картинке.
Re: ATTINY2313 и кварц 32768Гц
Добавлено: Чт авг 29, 2013 15:06:50
O-LED
ibiza11 писал(а):BOB51, вы явно решили потроллить.
хм, а точно ведь...
Re: ATTINY2313 и кварц 32768Гц
Добавлено: Чт авг 29, 2013 18:37:11
blackx
BOB51, а вы вообще видите разницу между постоянной ошибкой и накапливаемой?
Re: ATTINY2313 и кварц 32768Гц
Добавлено: Чт авг 29, 2013 18:57:58
BOB51
Графка - всего лишь принцип появления ошибки, как там указано график весьма условный...
Для прерываний по таймеру она будет усредненной постоянной только в случае исключительного примненния в программе однословных команд (относительно AVR), а для последующих счетчиков вероятно уже накапливаемой.

Re: ATTINY2313 и кварц 32768Гц
Добавлено: Чт авг 29, 2013 19:59:45
Kavka
Согласен с ibiza11.
BOB51, покажи пример кода!
Re: ATTINY2313 и кварц 32768Гц
Добавлено: Чт авг 29, 2013 20:31:52
ILYAUL
2Kavka 2ibiza11 Решили добить
BOB51 
Re: ATTINY2313 и кварц 32768Гц
Добавлено: Чт авг 29, 2013 21:00:38
COKPOWEHEU
Интересно как BOB51 представляет себе работу асинхронного таймера. Ну например ATmega8 может тактироваться от внутреннего RC скажем на 1 МГц и в то же время один из таймеров может работать от внешнего кварца на ногах 9 и 10. Причем может продолжать работу и генерировать прерывания даже в режимах сна когда остановлено ядро и прочие таймеры. Если время обработки его прерывания меньше чем период частоты его возникновения (а это обычно так и есть, было бы чего там обрабатывать) то накапливаться ошибка не будет. А постоянную ошибку, а это меньше секунды, человек и не заметит. Есть, конечно, искусственные способы накопления ошибки. Например, предложенный программный перезапуск таймера или задержки в обработчике (ага, больше чем на секунду или сколько там). Кстати из гифки так и не понял где же эта накапливающаяся ошибка и как ее получили.
Re: ATTINY2313 и кварц 32768Гц
Добавлено: Пт авг 30, 2013 06:58:05
BOB51
А вот как раз о подобных аппаратных системах уже ранее говорилось - встроенные генераторы или полные RTC у некоторых мег (в частности у 162 и 128) и у пиков.
Графка касается применения 32768 в качестве внешнего кварца основного генератора.
Хоша также и работы асинхронника, но там уже две точки - первая это сама синхронизация входного сигнала с тактовым в МК и вторая - интервал между установкой флага прерывания и началом исполнения самого прерывания. А эти интервалы уже зависят от длительности тактов главного генератоора системы, а не от точности асинхронного счетчика.

Да и от кода эти задержки не зависят - особенность построения и аппаратной обработки прерываний практически у всех МК одинакова.

Re: ATTINY2313 и кварц 32768Гц
Добавлено: Пт авг 30, 2013 08:08:28
ibiza11
BOB51, Вы уходите от ответа. Давайте не будем голословны. Приведите код, вызывающий ситуацию, которую Вы пытаетесь до нас донести...
Re: ATTINY2313 и кварц 32768Гц
Добавлено: Пт авг 30, 2013 12:09:41
BOB51
А причем код - то, да еще и конкретный?
Речь то о том, что часики собранные на основе ATtiny2313 (или по подобному принципу - с единым генератором тактового сигнала для ядра МК и для тайаера опорного интервала) будут показывать более точное время в случае, ежли будет применен более высокочастотный кварц ( в примере 8МГц), чем кварц 32768Гц. И причины данное утверждение объясняющие. А поскольку причины аппаратного происхождения, то какой-бы котд там не применялся результат будет одинаков.

Re: ATTINY2313 и кварц 32768Гц
Добавлено: Пт авг 30, 2013 12:35:52
akl
Стартёр не появляется в ветке, видимо, как-то для себя решил вопрос. Но, я не об этом. В качестве пятничной развлекухи сделал прогу - генератор 10 секундного импульса на ATtiny2313 с кварцем "8.000" для демонстрации отсутствия накопления ошибок.
Спойлер
Код: Выделить всё
; ’…‘’-®ЇаҐ¤Ґ«ҐЁҐ з бв®вл Єў а楢®Ј® ЈҐҐа в®а AT90S2313 Fclk=8000000kHz
.INCLUDE "2313def.inc"
.CSEG
.def _FF=R1
.equ Fo=8002729 ; 8002729 в этой строке пользователем устанавливается
; частота кварца
RESET:
RJMP START ; On Reset
COMP_A:
SET ; On Interrupt 0
RETI ; On Interrupt 1
RETI ; Timer 1 capture
RJMP COMP_A ; Timer 1 compare
TIM1:
SBIW R24,1
BRNE TIM1_OUT
CBI PORTD,6
LDI R20,$40
OUT TIMSK,R20
LDI R20,$09 ; START T1
OUT TCCR1B,R20
OUT TIFR,_FF
SEI
TIM1_WAIT:
BRTC TIM1_WAIT
SBI PORTD,6
SET
TIM1_OUT:
RETI
;************************************************
START:
LDI R16,LOW(RAMEND)
OUT SPL,R16
SER R16
MOV _FF,R16
OUT PORTB,R16
OUT DDRB,R16 ; €ЁжЁ «Ё§ жЁп Ї®ав B
OUT PORTD,R16
OUT DDRD,R16 ; €ЁжЁ «Ё§ жЁп Ї®ав D
LDI R20,$80
OUT ACSR,R20 ; DISABLE ANCOMP
CLR ZH
OUT TCCR1B,ZH
OUT TCNT1H,ZH
OUT TCNT1L,ZH
LDI XH,HIGH(10*Fo-10*(Fo/65536)*65536-0)
LDI XL,LOW(10*Fo-10*(Fo/65536)*65536-0)
; LDI XH,HIGH(10*Fo-10*(Fo/65536)*65536-110)
; LDI XL,LOW(10*Fo-10*(Fo/65536)*65536-110)
OUT OCR1AH,XH
OUT OCR1AL,XL
START1:
LDI R25,HIGH(10*Fo/65536)
LDI R24,LOW(10*Fo/65536) ; 122dec KOLITCHESTVO PEREPOLNENI T1 1SEC
CLT
LDI R20,$80
OUT TIMSK,R20
LDI R20,$01 ; START T1
OUT TCCR1B,R20
OUT TIFR,_FF
SEI
WAIT:
BRTC WAIT
RJMP START1
;************************************************
;************************************************
;************************************************
После программной коррекции частоты генератора, были получены следующие результаты
Спойлер
9'999'999.82 мкс
10'000'000.13
10'000'000.51
10'000'001.01
10'000'001.01
10'000'001.05
10'000'001.16
отсутствовал
10'000'001.30
10'000'001.26
10'000'001.32
отсутствовал
10'000'000.06
10'000'000.05
10'000'000.13
отсутствовал
9'999'999.92
9'999'999.91
9'999'999.95
9'999'999.97
10'000'000.04
9'999'999.97
10'000'000.01
9'999'999.97
Как всегда, кварц в корпусе HC49C не имеет конденсаторной обвязки и его корпус соединен напрямую с 10 лапой ATtiny2313.
Re: ATTINY2313 и кварц 32768Гц
Добавлено: Пт авг 30, 2013 14:05:03
ibiza11
BOB51 писал(а):
А причем код - то, да еще и конкретный?
Да что же вы тогда нам всем тут голову морочили с временем выполнения команд и реакцией на прерывание???? признайте же уже, что лохонулись....
А с утверждением, что значение
ppm будет делиться на бОльшее число при использовании более высокочастотного кварца никто и не спорил!
Re: ATTINY2313 и кварц 32768Гц
Добавлено: Пт авг 30, 2013 17:11:22
pavel1979
тема интересная!!!
значит тини просто так не заставишь работать от кварца 32768,а если и заставишь то тинька будет медленно работать?
а если завести частоту 32768(генератор любой,на к176ла7 к примеру) на т0 или т1,а там делить на нужное число,получится?
изучаю даташит...
минимум 400 кгц и то от керамического резонатора,температурная нестабильность которого 0,5 процентов-больно много...
Re: ATTINY2313 и кварц 32768Гц
Добавлено: Пт авг 30, 2013 19:27:43
blackx
Да не, это все бред, можно и от 32768 запускать

Re: ATTINY2313 и кварц 32768Гц
Добавлено: Пт авг 30, 2013 20:05:49
pavel1979
blackx писал(а):Да не, это все бред, можно и от 32768 запускать

можно,но с внутренним генератором,частота очень нестабильная,а с внешним минимум 400 кгц
вот нагуглил
http://eselit.com/?part=scheme&sub=mc.a ... h_signalov
Re: ATTINY2313 и кварц 32768Гц
Добавлено: Пт авг 30, 2013 20:13:40
pavel1979
вот еще
http://malmon.ru/stati/podsistema-sinkh ... #more-7692
если сделать на 1 транзисторе то схема будет не сложная
попробывать чтоли...
Re: ATTINY2313 и кварц 32768Гц
Добавлено: Пт авг 30, 2013 21:03:01
COKPOWEHEU
Да можно вешать на выводы любой кварц, чего извращаться-то. Единственное что tn2313 не поддерживает - отсутствия конденсаторов. Точнее ни один контроллер этого не поддерживает для всего диапазона кварцев, но некоторые поддерживают специальные для часового. В tn2313 этого нет, придется ставить внешние, вот и все.
Ошибка, разумеется. не накапливается