Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Кварц за часовник
http://mcu-bg.com/mcu_site/viewtopic.php?f=4&t=8062
Страница 1 от 3

Автор:  npelov [ Чет Авг 19, 2010 10:20 am ]
Заглавие:  Кварц за часовник

Наскоро си правих часовник за снемане на едни графики. Използвах 32,768 kHz кварц и 16 битов брояч (Т1 май беше на ПИК18). При прекъсване просто увеличавам старшия байт с 128. Вървеше добре, но доста избързваше. За едно денонощие с около 20 сек. Видях че кварца е 20 ппм което означава че на 1 000 000 секунди е неточен с до 20. 1М сек са около 278 часа. Това е около 1 сек. на 14 часа. Очевидно моята схема (или програма) има други проблеми, но почти 2 сек. на денонощие си е голяма неточност дори моето изпълнение да е перфектно.
Намират ли се някъде по-добри кварцове? Или пък има друг начин да се компенсира? Гледах ПДФ-то на кварца и пише че старее с 3 ppm на година и температурна нестабилност 0.006 ppm на градус. Т.е. ако се змери неточността на кварца и се компенсира с брояча на теория трябва да остане приблизително точен - 1 сек неточност за 192 дни при 10 градуса под или над 25C - по-приемливо.
За тази цел - графики - не е проблем че за графика снемана за 48 часа ще е неточна с 10-20 сек. Но ми се налага да използвам часовник и в други цели където трябва малко по-точно време за дълъг период от време.

Отделен чип като DS1338Z ще подобри ли стабилността?

Автор:  velio [ Чет Авг 19, 2010 10:42 am ]
Заглавие: 

Откъде ти е купуван кварца? Някои кварцове просто не са некачествени.
Друго - изполваш ли подходящия кварц за твоя генератор?

Автор:  dan [ Чет Авг 19, 2010 11:05 am ]
Заглавие: 

Дай и точната схема.

Автор:  Cekins [ Чет Авг 19, 2010 1:19 pm ]
Заглавие: 

Значи генератора на пика е направен да може от 32кХз до 200 кХз - следователно за да си докараш точност ти трябват и добре подбрани кондензатори. DS1307 (примерно) е направен да работи само с 32кХз и няма нужда от кондензатори за да отлепи кварца - явно са му вградени.

Пробвал съм с три-четири вида кварцове (от Комет и от други места) и наблюденията ми са че с един и същ модел с DS1307 ми дава около 30 сек. на месец а директно с пика до 5-6 на ден. Ако гониш вече точност в комета има TCXO - ама е скъпичко.

Автор:  zaphod [ Чет Авг 19, 2010 1:43 pm ]
Заглавие: 

тръгнал е на другия си резонанс , щом избързва начи честотата му е висока, значи караш на паралелен резонанс, а трябва на сериен
Изображение

Автор:  plameniv [ Чет Авг 19, 2010 5:19 pm ]
Заглавие: 

zaphod написа:
тръгнал е на другия си резонанс , щом избързва начи честотата му е висока, значи караш на паралелен резонанс, а трябва на сериен

Няма такова нещо да тръгне на друг резонанс особенно при ниска честота.
При DS... няма никакъв софтуер а са едни броячи и само им четеш изходите затова са за предпочитане, друг е въпроса с точноста на кварца .
Като се прави с контролер винаги има неточност заради времето за влизане в прекъсване забавяне във инструкциите и т.н., задължително трябва да има компенсиране в програмата. Има и друг момент че външните кондензаотри около този кварц също оказват влияние на честотата, при определена температура може да е по висока а при друга по ниска.

Най добре си мини на DS.. така няма да имаш всички тези главоболия.

Автор:  bateAz [ Чет Авг 19, 2010 7:44 pm ]
Заглавие: 

А бе я пусни да видим и сорса. Аз като видя "ПИК" и веднага си представям и софтуерни недоклащания.

Автор:  Cekins [ Чет Авг 19, 2010 9:14 pm ]
Заглавие: 

Бате, принципно при 32кХз времето за записване на $80 в горния байт на таймера + времето за влизане в прекъсването е доста по малко от един период на 32-та. кхз. Това са си всичко на всичко не повече от 10 - 20 инструкции (като слагам и проверка за поне още 5 прекъсвания). А и ако се гони точност може да се сложи първо в ISR-а.

Автор:  bateAz [ Чет Авг 19, 2010 9:38 pm ]
Заглавие: 

Cekins написа:
Бате, принципно при 32кХз времето за записване на $80 в горния байт на таймера + времето за влизане в прекъсването е доста по малко от един период на 32-та. кхз. Това са си всичко на всичко не повече от 10 - 20 инструкции (като слагам и проверка за поне още 5 прекъсвания). А и ако се гони точност може да се сложи първо в ISR-а.


тъй, тъй ...
И ти би го сбъркал ...

Автор:  Cekins [ Чет Авг 19, 2010 10:08 pm ]
Заглавие: 

Кое да сбъркам?

едит : всъщност когато ще правя часовник ползвам DS1307. Когато само ще меря някакви кратки интервали(оборотомери, таймери и др. подобни) тогава ползвам осцилатора на пика.

Автор:  bateAz [ Чет Авг 19, 2010 11:20 pm ]
Заглавие: 

Cekins написа:
Кое да сбъркам?

едит : всъщност когато ще правя часовник ползвам DS1307. Когато само ще меря някакви кратки интервали(оборотомери, таймери и др. подобни) тогава ползвам осцилатора на пика.


Когато е необходимо ПРЕЦИЗНО да се измерва време, таймерите се сетват в режим на автоматично презапускане. Така времето и моментът на обработка на прекъсването няма значение, важното е само да не се пропусне прекъсване. А пропускът е ГСП ( Груба Селска Проява ). Какви 10-20 инструкции, какви 5 лева с лихва 9% ?
Ефектът, който е описан по-горе, се получава, когато таймерите се презапускат програмно. Тогава се появява едно недефинирано закъснение в отчитането на времето, като ефектът е закъснение на часовника. Това се компенсира софтуерно със зареждане на по-малка константа в регистрите на таймера. При прекомпенсиране имаме избързване.
Това е типична слабост на ПИК-програмистите. Дължи за на компилатора CCS, който си мисли, че можа да прави всичко и то добре. Ама не е така. :roll:

Автор:  Ники [ Чет Авг 19, 2010 11:39 pm ]
Заглавие: 

чета и не мога да вдяна що се хабите

В чаршафите на всеки пик е описано с примерен код как се ползва таймер за 32кхз осцилатор

тук няма пускане и спиране, таймера непрекъснато си брои, само при пиковете е особеност да се сетва старшия бит na TMR1H всяка секунда, за да брои винаги до 32768, закъснение от няколко инструкции няма как да окаже влияние, с изключение на процесорите в които има хардуерен бъг, описан е, че може да се пропуска 1 период от брояча заради програмното несинхронизирано обновяване на таймер с външен източник., но има описан и уоркъраунд

Автор:  HappyMan [ Пет Авг 20, 2010 6:24 am ]
Заглавие: 

Аз пък просто ползвам кварц на 4.096 MHz :)

Автор:  Cekins [ Пет Авг 20, 2010 8:44 am ]
Заглавие: 

Ники, за да бъдем честни пиковете с тоя бъг са ... 90% от всички най използвани. Обаче пък един клок грешка е 2,6 секунди на денонощие. Което пак е доста по малко отколкото казва колегата.

Бате аз не ползвам CCS.

Автор:  zaphod [ Пет Авг 20, 2010 9:13 am ]
Заглавие: 

добре де, а защо не пробваш с оня архаичен уред наречен честотомер? знам, не са на мода днес, но вършат работа.

Страница 1 от 3 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/