ATTINY2313 и кварц 32768Гц

Обсуждаем контроллеры компании Atmel.
Ответить
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

Что то вас, коты, совсем понесло. Все же просто, блин.
BOB51 писал(а):Речь идет об ошибке, накапливаемой последующими счетчиками, для которых уже чистого секунд (маркер) интервала не будет из-за задержек, вносимых той самой реакцией на прерывание
Ну как же не будет? Еще как будет, если счетчик таймера сам перезагружается (или переполняется), то никакая задержка перед входом в прерывание не будет вносить погрешность в счет таймера.
Представьте, что произошло прерывание таймера - он отсчитал одну секунду. Перезагрузился и считает дальше.
В этот момент выполняется какая-то команда программы... идет процесс перехода программного счетчика на метку начала обработчика прерывания. Это длится сколько-то там Х тактов. Эти Х тактов не повлияют на момент следующего прерывания, поскольку таймер как считал, так и считает дальше. просто с момента входа в прерывание до момента следующего прерывания пройдет не 1 секунда, а 1 секунда минус Х тактов. Главное, чтобы Х тактов не превысили интервал 1 секунда, поскольку иначе мы просто пропустим прерывание.
Ставим плюсы: )
Реклама
Мудрый кот
Аватара пользователя
Сообщения: 1800
Зарегистрирован: Вт окт 05, 2010 01:08:57

Сообщение O-LED »

BOB51 писал(а):НЕ компенсировать, а снизить, по возможности, их влияние и величину.
Зачем?
KIT
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15749
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

ЗАЧЕМ...
Так, к примеру, зацарапаем простенькое реле времени на 10 секунд... И вот чего получилось:
графка.GIF
(23.01 КБ) 417 скачиваний
график конечно утрирован, но смысл вроде понятен.
8)
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

BOB51, вы явно решили потроллить. Я уж думал все успокоилось.
Причем здесь время выполнения команд? и у вас на рисунке что-то не то с масштабом. в одну секунду при тактировании от 32768Гц кварца влезет ровно столько же тактов микроконтроллера(32768). У вас же нарисовано так, как будто в секунду может выполнится не более 20 команд... :shock:
Вы все еще не понимаете, что аппаратный таймер не останавливается в момент прерывания и продолжает дальше считать? приведите наконец кусок кода, который вызовет то, что вы описываете на картинке.
Ставим плюсы: )
Реклама
Эиком - электронные компоненты и радиодетали
Мудрый кот
Аватара пользователя
Сообщения: 1800
Зарегистрирован: Вт окт 05, 2010 01:08:57

Сообщение O-LED »

ibiza11 писал(а):BOB51, вы явно решили потроллить.
хм, а точно ведь...
KIT
Контактная информация:
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1518
Зарегистрирован: Пт дек 28, 2012 21:56:46
Откуда: St. Petersburg

Сообщение blackx »

BOB51, а вы вообще видите разницу между постоянной ошибкой и накапливаемой?
Изображение only pure true norwegian blackx Изображение
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15749
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Графка - всего лишь принцип появления ошибки, как там указано график весьма условный...
Для прерываний по таймеру она будет усредненной постоянной только в случае исключительного примненния в программе однословных команд (относительно AVR), а для последующих счетчиков вероятно уже накапливаемой.
:sleep:
Мудрый кот
Аватара пользователя
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

Согласен с ibiza11.
BOB51, покажи пример кода!
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Сообщение ILYAUL »

2Kavka 2ibiza11 Решили добить BOB51 :kill:
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Интересно как BOB51 представляет себе работу асинхронного таймера. Ну например ATmega8 может тактироваться от внутреннего RC скажем на 1 МГц и в то же время один из таймеров может работать от внешнего кварца на ногах 9 и 10. Причем может продолжать работу и генерировать прерывания даже в режимах сна когда остановлено ядро и прочие таймеры. Если время обработки его прерывания меньше чем период частоты его возникновения (а это обычно так и есть, было бы чего там обрабатывать) то накапливаться ошибка не будет. А постоянную ошибку, а это меньше секунды, человек и не заметит. Есть, конечно, искусственные способы накопления ошибки. Например, предложенный программный перезапуск таймера или задержки в обработчике (ага, больше чем на секунду или сколько там). Кстати из гифки так и не понял где же эта накапливающаяся ошибка и как ее получили.
Друг Кота
Аватара пользователя
Сообщения: 15749
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

А вот как раз о подобных аппаратных системах уже ранее говорилось - встроенные генераторы или полные RTC у некоторых мег (в частности у 162 и 128) и у пиков.
Графка касается применения 32768 в качестве внешнего кварца основного генератора.
Хоша также и работы асинхронника, но там уже две точки - первая это сама синхронизация входного сигнала с тактовым в МК и вторая - интервал между установкой флага прерывания и началом исполнения самого прерывания. А эти интервалы уже зависят от длительности тактов главного генератоора системы, а не от точности асинхронного счетчика. 8)
Да и от кода эти задержки не зависят - особенность построения и аппаратной обработки прерываний практически у всех МК одинакова. :)
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

BOB51, Вы уходите от ответа. Давайте не будем голословны. Приведите код, вызывающий ситуацию, которую Вы пытаетесь до нас донести...
Ставим плюсы: )
Друг Кота
Аватара пользователя
Сообщения: 15749
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

:)))
А причем код - то, да еще и конкретный?
Речь то о том, что часики собранные на основе ATtiny2313 (или по подобному принципу - с единым генератором тактового сигнала для ядра МК и для тайаера опорного интервала) будут показывать более точное время в случае, ежли будет применен более высокочастотный кварц ( в примере 8МГц), чем кварц 32768Гц. И причины данное утверждение объясняющие. А поскольку причины аппаратного происхождения, то какой-бы котд там не применялся результат будет одинаков.
:sleep:
akl
Друг Кота
Сообщения: 4468
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение 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.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

BOB51 писал(а)::))) А причем код - то, да еще и конкретный?
Да что же вы тогда нам всем тут голову морочили с временем выполнения команд и реакцией на прерывание???? признайте же уже, что лохонулись....
А с утверждением, что значение ppm будет делиться на бОльшее число при использовании более высокочастотного кварца никто и не спорил!
Ставим плюсы: )
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Сообщение pavel1979 »

тема интересная!!!
значит тини просто так не заставишь работать от кварца 32768,а если и заставишь то тинька будет медленно работать?
а если завести частоту 32768(генератор любой,на к176ла7 к примеру) на т0 или т1,а там делить на нужное число,получится?
изучаю даташит...
минимум 400 кгц и то от керамического резонатора,температурная нестабильность которого 0,5 процентов-больно много...
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1518
Зарегистрирован: Пт дек 28, 2012 21:56:46
Откуда: St. Petersburg

Сообщение blackx »

Да не, это все бред, можно и от 32768 запускать :)
Изображение only pure true norwegian blackx Изображение
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Сообщение pavel1979 »

blackx писал(а):Да не, это все бред, можно и от 32768 запускать :)
можно,но с внутренним генератором,частота очень нестабильная,а с внешним минимум 400 кгц
вот нагуглил http://eselit.com/?part=scheme&sub=mc.a ... h_signalov
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Сообщение pavel1979 »

вот еще http://malmon.ru/stati/podsistema-sinkh ... #more-7692
если сделать на 1 транзисторе то схема будет не сложная
попробывать чтоли...
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Да можно вешать на выводы любой кварц, чего извращаться-то. Единственное что tn2313 не поддерживает - отсутствия конденсаторов. Точнее ни один контроллер этого не поддерживает для всего диапазона кварцев, но некоторые поддерживают специальные для часового. В tn2313 этого нет, придется ставить внешние, вот и все.
Ошибка, разумеется. не накапливается
Ответить

Вернуться в «AVR»