Отговори на тема  [ 38 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща
Кварц за часовник 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Мар 08, 2006 2:12 pm
Мнения: 2017
Местоположение: Котел
Мнение 
Ще му трябва обаче доста сериозен уред като точност ;)


Пет Авг 20, 2010 9:19 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Фев 01, 2007 4:04 am
Мнения: 1539
Мнение 
Ако грешката е постоянна, може още с второто сверяване да я компенсираш софтуерно с една-две корекции в епрома.


Пет Авг 20, 2010 11:22 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юли 24, 2005 10:28 am
Мнения: 2720
Мнение 
milenjs написа:
Ще му трябва обаче доста сериозен уред като точност ;)

сериозен? говорим за 20 секунди на ден, това си е грешка в четвъртия знак, с малко изпипване RC генератор има повече точност.


Пет Авг 20, 2010 4:18 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение 
Аре бе, тия кварцове струват стотинки и то добрите. Ако иска човек да е сигурен
може да счупи един часовник от 5 лева, дето работи горе-долу точно (много обичам тоя
израз, "горе-долу точно" :D ) и да пробва с него.

А това, че в пикоборството имало и вариант пикоборецът да не знае дали таймерът е таймер
направо е и отвъд моите подозрения за това докъде е отишло онеграмотяването... :D :D :D

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Пет Авг 20, 2010 4:25 pm
Профил WWW
Ранг: Популярен
Ранг: Популярен

Регистриран на: Чет Ное 29, 2007 2:22 pm
Мнения: 309
Местоположение: Vratsa
Мнение 
Даласците някога имаха едни кафяви книжки дето търговците ги раздаваха , та там бяха много подробно описали за часовниците и кварцовете - кога избързват кога изостават , товарни капацитети имало 12пф и 6 пф ... причина за избързване беше влизане на смущение , бяха дали и примери за опроводяване около кварца , заграждане на кварца и пиновете с пистичка свързана към гнд ...


Пет Авг 20, 2010 4:48 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Пет Яну 22, 2010 5:46 pm
Мнения: 680
Мнение 
12pF са кондензаторите.
Сглобката не е от най-добрите - експериментална платка, но кварца е на 1 пин от ПИК-а и кондензаторите са много близо. обаче кондензаторите на са много точни май. Важно ли е да са точно 12 пФ. Ако единия е 10 а другия 13 ще има ли проблем?

ето и малко код (Част от кода е взет от книгата на млад конструктор):

Код:

ISR_HI

   btfss   PIR1, TMR1IF      ; Прекъсване от Таймер 1?
   bra      end_rtc_int      ; Не, изход
   bcf      PIR1, TMR1IF   ; Нулиране на флага за прекъсване

   movlw   H'80'      ; Зареждане на стойност 80h в старшия регистър
   addwf   TMR1H      ; байт на Таймер 1

   incf   ts0
   bnz      endIncTs
   incf   ts1
   bnz      endIncTs
   incf   ts2
   bnz      endIncTs
   incf   ts3
endIncTs
   incf   sec
   movlw   .59
   cpfsgt   sec
   bra      endRtcIncrement

   bsf      flags, T1_INT

   clrf   sec
   incf   min

notMinute
   movlw   .59
   cpfsgt   min
   bra      endRtcIncrement
   clrf   min
   incf   hour

notHour
   movlw   .23
   cpfsgt   hour
   bra      endRtcIncrement
   clrf   hour
   incf   day
notDay

endRtcIncrement

end_rtc_int

..............................

initPeripherals
   clrf   PIR1
   clrf   PIR2
   clrf   IPR1
   clrf   IPR2

   ; timer1
   clrf   T1CON
   ; 8 bit read/write
   ;bsf      T1CON, RD16
   bsf      T1CON, T1OSCEN
   bsf      T1CON, T1SYNC
   bsf      T1CON, TMR1CS
   bsf      PIR1, TMR1IF
   bsf      IPR1, TMR1IP
   movlw   H'80'      ; Зареждане на стойност 80h в старшия регистър
   movwf   TMR1H      ; байт на Таймер 1
   clrf   TMR1L

        ; Т1 го пускам накрая, след като привърши инициализацията
   ;bsf      T1CON, TMR1ON

   ;ADC
   clrf   ADCON0
   bsf      ADCON0, ADCS0
   bsf      ADCON0, ADCS1
   bsf      ADCON0, ADON

   ;bsf      ADCON0, CHS0
   ;bsf      ADCON0, CHS1
   ;bsf      ADCON0, CHS2

   clrf   ADCON1
   bsf      ADCON1, ADCS2

   bsf      ADCON1, PCFG0
   ;bsf      ADCON1, PCFG1
   bsf      ADCON1, PCFG2
   ;bsf      ADCON1, PCFG3
   setf   TRISA
   
   bcf      TRISC, 6
   bsf      TRISC, 7
   ;init RS232 serial port
   movlw   SPBRG_VAL   ;set baud rate
   movwf   SPBRG
   movlw   0xc0      ;set tris bits for TX and RX
   iorwf   TRISC,F
   movlw   TXSTA_INIT
   movwf   TXSTA
   movlw   RCSTA_INIT
   movwf   RCSTA
   ;clrf   RCSTA

   bsf   RCSTA, SPEN
   bsf   RCSTA, TXEN
   
   clrf   buffLen
   clrf   buffStart
   
   return   0

initInterrupts
   clrf   INTCON
   clrf   INTCON2
   clrf   INTCON3

   ;bsf      RCON, IPEN
   bcf      RCON, IPEN   ; Използване на приоритетни прекъсвания
   ;bsf      INTCON, PEIE
   bsf      PIE1, TMR1IE
   bsf      PIE1, ADIE
   bsf      IPR1, TMR1IP

   bcf      PIR1, TMR1IF   ; Нулиране на флага за прекъсване

   bsf      INTCON, PEIE   ; low priority interrupts

   bsf      INTCON, GIE
   return 0


_________________
PIC SPBRG values calculator


Нед Авг 22, 2010 11:59 am
Профил WWW
Ранг: Популярен
Ранг: Популярен

Регистриран на: Чет Ное 29, 2007 2:22 pm
Мнения: 309
Местоположение: Vratsa
Мнение 
срава дума за капацитета м/у пиновете на кварца (не тези към маса) има кварцове сметнати за различни тов. капациети , да няма някой съседен пин който се клати с висока честота ? Аз бих пробвал с отделен цмос осцилатор със сигурни 32768Хз за да разбера дали е софтуерен проблем или кварца си вмъква допълнителни цикли.


Нед Авг 22, 2010 1:34 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9136
Местоположение: Разград
Мнение 
Ама те тия 12пф не са ли им малко? В манюала пише 33 :wink:


Нед Авг 22, 2010 9:21 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Пет Яну 22, 2010 5:46 pm
Мнения: 680
Мнение 
Cekins написа:
Ама те тия 12пф не са ли им малко? В манюала пише 33 :wink:


не. виж пак. 6 до 12.5 pF, но това се отнася за цялата серия кварцове 30 до 350 kHz. Мисля че ги гледах на доста места с около 12 pF.

_________________
PIC SPBRG values calculator


Пон Авг 23, 2010 1:09 am
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Сря Апр 05, 2006 9:52 pm
Мнения: 877
Местоположение: Разград
Мнение 
Има и формула за изчисляване на товарния капацитет

C= (C1*C2)/(C1+C2) + C монтажен

За твоя кварц се препоръчва товарен капацитет 6 - 12 pF, ако
имаш по малък товарен капацитет, кварца ще избързва, ако е по голям
ще забавя, това го казват от Dallas за DS1307, така че и с RTC пак може да не е точно
времето.


Пон Авг 23, 2010 1:09 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение 
Бе коментарите в сорса са повече от оскъдни а и без да съм пикоборец може да
греша, ама май на всяко прекъсване пише в таймера $8000 - та какви капацитети
какви точности.
Инак като стигне до капацитети ако кварцът е свестен с едно тримеркондензаторче
може да се нагласи доста точно (за дадена температура.... :D ).

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

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Пон Авг 23, 2010 2:39 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9136
Местоположение: Разград
Мнение 
@tgi, "на всяко прекъсване" означава 1/32768 част от секундата при минимум 1 мипс на ядрото при 2(3) инструкции за влизане в прекъсването, при 2 инструкции за проверка дали е това прекъсване (вектора на 16-ките е един, 18-ките 2, 24-ки и нагоре за всяко прекъсване си има отделен вектор), та 2 инструкции ако е първо в списъка, което не е проблем, и 2 инструкция за записване на $80 в горния байт на таймера (долния няма смисъл да се пипа щото той си е все още $00) и при положение че таймера работи в асинхронен режим. Пък в крайна сметка може да и да не се пише в таймера - тогава ще си цъка на две секунди.

Тук въпроса е чисто хардуерен - трябва да си много тъп за да объркаш боравенето с таймера. Какво като имаш да пишеш нещо някъде си. Тия дръвца работят много праволинейно - затова НЕ са подходящи за сложни работи. Ама пък за сметка на това за прости задачи са си добре.

Мога да добавя само едно относно таймера - желателно е да се настрои за писане поотделно в двата регистъра. Така ввендага след MOVWF TMR1H ше се запише само той (ама то това май само за 18-ките беше)


Пон Авг 23, 2010 9:30 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение 
Аха, не бях схванал, че пише само горния байт - мислех, че просто не виждам нулата, дето
я пише в долния, нали не съм пикоборец и асемблерът им не ми е очевиден.
Е значи едно тримерче му трябва, то аз тук и такива кварциве и май и няколко тримера имам
всъщност. Тия кварцове без никакви кондензатори с един часовников чип май 2-3 секунди
на денонощие грешат, имаше един май секунда на няколко дни беше (ама той замина
с устройство а и беше изключение).

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Пон Авг 23, 2010 10:54 am
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Пет Яну 22, 2010 5:46 pm
Мнения: 680
Мнение 
tgi написа:
Бе коментарите в сорса са повече от оскъдни а и без да съм пикоборец може да
греша, ама май на всяко прекъсване пише в таймера $8000 - та какви капацитети
какви точности.
Инак като стигне до капацитети ако кварцът е свестен с едно тримеркондензаторче
може да се нагласи доста точно (за дадена температура.... :D ).

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


не пише $8000, а добавя $80 в старшата част. Ако брои от 0х0000 до 0хFFFF това са 65536 такта. при 32.768кХз прави 2 сек. аз го карам да брои само 32768 такта. Пипам само старшата част а младшата през това време брои - идеята е от книгата на млад конструктор и работи.

иначе има какво да се иска от коментарите :) кода е писан за тест, не за реалния проект ... е можело е да го поокрася


Cekins написа:
трябва да си много тъп за да объркаш боравенето с таймера

Нищо подобно. Не е нужно да си тъп за да объркаш нещо на асемблер.

Cekins написа:
желателно е да се настрои за писане поотделно в двата регистъра.

направено е:
Код:
; timer1
   clrf   T1CON
   ; 8 bit read/write
  ;bsf      T1CON, RD16


Иначе не знаех че кондензаторите влияят чак толкова на честотата. мислех че се слагат за стабилност. Все пак каспаров казва че ще изостава при по-голям капацитет а моя е с горната граница и избързва доста.

_________________
PIC SPBRG values calculator


Пон Авг 23, 2010 4:15 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9136
Местоположение: Разград
Мнение 
Ами аз ги слагам 33пФ и работят що годе точно. Или поне не съм забелязал толкова големи разлики. Ама вече няколко пъти беше казано - като искаш точно напиши в комета в търсачката TCXO. Закачаш го на един DS1307, подпираш ги с една батерийка и си готов с точността. После от изхода му си вади каквито искаш честоти.


Пон Авг 23, 2010 6:15 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 38 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 9 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни