| Автор |
Съобщение |
|
npelov
Ранг: Почетен член
Регистриран на: Пет Яну 22, 2010 5:46 pm Мнения: 680
|
 Кварц за часовник
Наскоро си правих часовник за снемане на едни графики. Използвах 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 ще подобри ли стабилността?
|
| Чет Авг 19, 2010 10:20 am |
|
 |
|
velio
Ранг: Форумен бог
Регистриран на: Вто Юни 07, 2005 6:20 pm Мнения: 3538
|
Откъде ти е купуван кварца? Някои кварцове просто не са некачествени.
Друго - изполваш ли подходящия кварц за твоя генератор?
|
| Чет Авг 19, 2010 10:42 am |
|
 |
|
dan
Ранг: Форумен бог
Регистриран на: Вто Май 29, 2007 2:23 pm Мнения: 3715 Местоположение: Високо в планината
|
Дай и точната схема.
_________________ Хайде де!
|
| Чет Авг 19, 2010 11:05 am |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9123 Местоположение: Разград
|
Значи генератора на пика е направен да може от 32кХз до 200 кХз - следователно за да си докараш точност ти трябват и добре подбрани кондензатори. DS1307 (примерно) е направен да работи само с 32кХз и няма нужда от кондензатори за да отлепи кварца - явно са му вградени.
Пробвал съм с три-четири вида кварцове (от Комет и от други места) и наблюденията ми са че с един и същ модел с DS1307 ми дава около 30 сек. на месец а директно с пика до 5-6 на ден. Ако гониш вече точност в комета има TCXO - ама е скъпичко.
|
| Чет Авг 19, 2010 1:19 pm |
|
 |
|
zaphod
Ранг: Форумен бог
Регистриран на: Нед Юли 24, 2005 10:28 am Мнения: 2692
|
тръгнал е на другия си резонанс , щом избързва начи честотата му е висока, значи караш на паралелен резонанс, а трябва на сериен

|
| Чет Авг 19, 2010 1:43 pm |
|
 |
|
plameniv
Ранг: Форумен бог
Регистриран на: Нед Окт 10, 2004 9:55 am Мнения: 1718
|
Няма такова нещо да тръгне на друг резонанс особенно при ниска честота.
При DS... няма никакъв софтуер а са едни броячи и само им четеш изходите затова са за предпочитане, друг е въпроса с точноста на кварца .
Като се прави с контролер винаги има неточност заради времето за влизане в прекъсване забавяне във инструкциите и т.н., задължително трябва да има компенсиране в програмата. Има и друг момент че външните кондензаотри около този кварц също оказват влияние на честотата, при определена температура може да е по висока а при друга по ниска.
Най добре си мини на DS.. така няма да имаш всички тези главоболия.
_________________ Избийте баламите и тарикатите сами ще умрат!
Няма невъзможни работи - има много трудни работи!
----------------------------------------------------------------------------------
"Я в Москве с киркой уран найду, при такой повышенной зарплате" !
|
| Чет Авг 19, 2010 5:19 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
А бе я пусни да видим и сорса. Аз като видя "ПИК" и веднага си представям и софтуерни недоклащания.
|
| Чет Авг 19, 2010 7:44 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9123 Местоположение: Разград
|
Бате, принципно при 32кХз времето за записване на $80 в горния байт на таймера + времето за влизане в прекъсването е доста по малко от един период на 32-та. кхз. Това са си всичко на всичко не повече от 10 - 20 инструкции (като слагам и проверка за поне още 5 прекъсвания). А и ако се гони точност може да се сложи първо в ISR-а.
|
| Чет Авг 19, 2010 9:14 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
тъй, тъй ...
И ти би го сбъркал ...
|
| Чет Авг 19, 2010 9:38 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9123 Местоположение: Разград
|
Кое да сбъркам?
едит : всъщност когато ще правя часовник ползвам DS1307. Когато само ще меря някакви кратки интервали(оборотомери, таймери и др. подобни) тогава ползвам осцилатора на пика.
|
| Чет Авг 19, 2010 10:08 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Когато е необходимо ПРЕЦИЗНО да се измерва време, таймерите се сетват в режим на автоматично презапускане. Така времето и моментът на обработка на прекъсването няма значение, важното е само да не се пропусне прекъсване. А пропускът е ГСП ( Груба Селска Проява ). Какви 10-20 инструкции, какви 5 лева с лихва 9% ?
Ефектът, който е описан по-горе, се получава, когато таймерите се презапускат програмно. Тогава се появява едно недефинирано закъснение в отчитането на времето, като ефектът е закъснение на часовника. Това се компенсира софтуерно със зареждане на по-малка константа в регистрите на таймера. При прекомпенсиране имаме избързване.
Това е типична слабост на ПИК-програмистите. Дължи за на компилатора CCS, който си мисли, че можа да прави всичко и то добре. Ама не е така. 
|
| Чет Авг 19, 2010 11:20 pm |
|
 |
|
Ники
Ранг: Почетен член
Регистриран на: Съб Окт 30, 2004 11:19 pm Мнения: 609
|
чета и не мога да вдяна що се хабите
В чаршафите на всеки пик е описано с примерен код как се ползва таймер за 32кхз осцилатор
тук няма пускане и спиране, таймера непрекъснато си брои, само при пиковете е особеност да се сетва старшия бит na TMR1H всяка секунда, за да брои винаги до 32768, закъснение от няколко инструкции няма как да окаже влияние, с изключение на процесорите в които има хардуерен бъг, описан е, че може да се пропуска 1 период от брояча заради програмното несинхронизирано обновяване на таймер с външен източник., но има описан и уоркъраунд
|
| Чет Авг 19, 2010 11:39 pm |
|
 |
|
HappyMan
Ранг: Новодошъл
Регистриран на: Чет Апр 12, 2007 4:53 am Мнения: 156
|
Аз пък просто ползвам кварц на 4.096 MHz 
|
| Пет Авг 20, 2010 6:24 am |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9123 Местоположение: Разград
|
Ники, за да бъдем честни пиковете с тоя бъг са ... 90% от всички най използвани. Обаче пък един клок грешка е 2,6 секунди на денонощие. Което пак е доста по малко отколкото казва колегата.
Бате аз не ползвам CCS.
|
| Пет Авг 20, 2010 8:44 am |
|
 |
|
zaphod
Ранг: Форумен бог
Регистриран на: Нед Юли 24, 2005 10:28 am Мнения: 2692
|
добре де, а защо не пробваш с оня архаичен уред наречен честотомер? знам, не са на мода днес, но вършат работа.
|
| Пет Авг 20, 2010 9:13 am |
|
|