Vizitator VanHauser Postat Septembrie 28, 2005 Partajează Postat Septembrie 28, 2005 TIMER1 poate lucra cu un cristal extern, de 32768 Hz sa zicem. Timer-ul fiind pe 16 biti, un overflow va avea loc la exact 2 secunde. Setand valoarea timer-ului in fiecare intrerupere la 0x8000 va fi un overflow la exact o secunda. Totul depinde de precizia cristalului de ceas. Mai multe detalii in datasheet. Link spre comentariu
MirceaM Postat Septembrie 28, 2005 Autor Partajează Postat Septembrie 28, 2005 Baieti, imi pare rau ca ma repet. Datasheet deci. Iata ce scrie acolo (fisier: PIC16F87X DataSheet - 30292.PDF). 20 MHz, EPSON CA-301 20.000M-C, ? 30 PPM.?30 la un milion inseamna ?3 la 100 mii. ?3 secunde la 100 mii secunde. 100000 / 86400 = 1.157 zile. Adica intr-o zi poate sa o ia inainte cu 3 secunde? La 20 de zile cu un minut? Este corect acest calcul? In cazul in care se iau anumite masuri ca sa fie mai bine (eroare mai mica) care sunt acestea si care sunt valorile concrete, testate, ale preciziei obtinute?Fara a utiliza alt circuit integrat decat pic-ul. Link spre comentariu
tavix Postat Septembrie 28, 2005 Partajează Postat Septembrie 28, 2005 eu am facut un ceas de camera cu PIC16F84A folosind TMR0 (singurul disponibil la 16F84) si merge foarte precis (10 sec / luna), insa aceasta precizie poate fi obtinuta numai prin ajustare dupa punerea in functie a bazei de timp a ceasului, permisa printr-o programare adecvata. Cuartul este de 4 MHz si are nativ o dispersie de fabricatie care poate duce la erori mari la un ceas fara posibilitatea de ajustare sau de selectie a cristalelor folosite.daca folosesti TMR0 une din probleme poate fi prescalerul care se reseteaza la fiecare rescriere in TMR0 si astfel pierzi microsec. Cand l-am pus prima data in functie ramanea in urma peste 20 minute / zi care depasea plaja sistemului de ajustare deci rau de tot, apoi am fixat problema si am putut sa-l ajustez in jur de 10 sec /luna. Link spre comentariu
cirip Postat Septembrie 28, 2005 Partajează Postat Septembrie 28, 2005 MirceaM,Calculul mi se pare corect, dar ceea ce cred eu ca trebuie luat in consideratie este ca cei 30ppm sunt limta maxima pe tot intervalul de temperatura. Temperatura intr-o casa e relativ constanta si asta ajuta. Cred ca asta este explicatia preciziei mai mari pe care au obtinut-o cei care au facut montajul.Daca cerintele sunt mai dure, probabil ca ar trebui un TCXO sau ceva asemanator, adica mai precis.Cirip Link spre comentariu
MirceaM Postat Septembrie 28, 2005 Autor Partajează Postat Septembrie 28, 2005 Da, cerintele sunt mai dure, trebuie sa mearga pe masina, in limite largi de temperatura. Scopul nu este sa fac un ceas pur si simplu. Este vorba de o aplicatie care face lucruri mai importante si careia vreau sa-i adaug aceasta functie: sa fie si ceas. De fapt aplicatia (programul) are deja variabile pt sec, min, ora deci este destul de simplu, ca soft. Vreau insa sa fie la fel de bun precum ceasurile uzuale de pe masini, care sunt bune. Altfel, utilizatorul (pe buna dreptate) va stramba din nas. Luni si luni de zile constati ca un ceas de pe masina arata ora corect (pana la minut). Link spre comentariu
sofian Postat Septembrie 29, 2005 Partajează Postat Septembrie 29, 2005 mai baieti precizia este data de quartzceasul de pe dacia parca este facut cu un mmc351 si mergea foarte binese poate face foarte precis si cu pic cu i in coada ptr gama extinsa de temperaturaeu am facut unul si merge foarte bine toata smecheria este in program Link spre comentariu
MiniTehnicus Postat Octombrie 21, 2005 Partajează Postat Octombrie 21, 2005 Daca doresti o precizie mai mare se poate ajusta frecventa prin comparatie cu un ceas extern, este modul pe 77Khz folosit de ceasurilegermane controlate prin radio sau daca este nevoie de precizie mai marese poate folosi un sistem GPS, la care se pot lega si alte aplicatii. Link spre comentariu
MirceaM Postat August 7, 2006 Autor Partajează Postat August 7, 2006 MirceaM,Calculul mi se pare corect, dar ceea ce cred eu ca trebuie luat in consideratie este ca cei 30ppm sunt limta maxima pe tot intervalul de temperatura. Temperatura intr-o casa e relativ constanta si asta ajuta. Cred ca asta este explicatia preciziei mai mari pe care au obtinut-o cei care au facut montajul.Daca cerintele sunt mai dure, probabil ca ar trebui un TCXO sau ceva asemanator, adica mai precis.CiripCirip,multumesc pt explicatii. M-ar interesa sa despicam firul in continuare. Deci max 30 ppm. Este adevarat ca el fabricant de controllere se refera la aceasta valoare "intre un exemplar de controller si altul"? Adica daca avem un exemplar concret in mana este posibil ca acesta sa fie caracterizat (de exemplu) de +10ppm si, daca un sistem facut cu acest exemplar de controller merge la o temp constanta (la 20 de grade, la temp camerei) putem aplica o corectie prin soft a acestei valori de +10ppm precum si o corectie a erorii provocate de frecventa cuartului (corectie cam ca la anii bisecti) si putem obtine un ceas foarte precis? Daca da, ar mai ramane doar dependenta de temperatura. Link spre comentariu
Abram Burel Postat August 7, 2006 Partajează Postat August 7, 2006 Desigur, se poate face o astfel de "compensare custom" pentru un anumit exemplar. Numai că "preţul" timpului consumat pentru o astfel de operaţiune (dezvoltare de cod, tatonarea propriu-zisă) e cu siguranţă mai mare decât cel al unei referinţe mai bune (evident, până la un... punct).Corecţia temperaturii se face de regulă prin termostatare la o temperatură mai mare decât cea ambientală. Link spre comentariu
XAN77 Postat August 7, 2006 Partajează Postat August 7, 2006 mai oameni buni eu am facut ceas cu quartz de 4.194304 MHz, este super precis acea valoare impartita la 4 cat are ciclu instruictiune, inpartit la 256 prescaler si la 256 cat numara temporizatoru da valoare 16 care o contorizez soft si la trecerea prin 0 incrementez secunda. Este valoarea de quartz care prin acele impartiri da o valoare rotunda. Si datorita picului/alimentarii/quartzului tot am o abatere de 11 secunde la 24 ore in sensul ca ramane in urma si la 03 dimineata o corecteaza soft, atunci cand nu-l vede nimeni sa nu se simta picu prost :yawinkle: Link spre comentariu
Abram Burel Postat August 7, 2006 Partajează Postat August 7, 2006 11 secunde la 24 de ore este foarte mult >0,1 la mie. Nu poate fi de la toleranţe (decât dacă ai folosit un cuarţ de geam de termopan ), ci mai degrabă din program. Link spre comentariu
XAN77 Postat August 7, 2006 Partajează Postat August 7, 2006 nu cred, adica sunt sigur ca nu e din program. Nu am pierderi de intreruperi, iar acele 11 secunde sunt batutencuie de 3 ani de zile. Deci daca ar pierde vreo intrerupere care se produce la 62,5 milisecunde (interval in care are timp picu suficient sa faca ce vrea muschiu lui) deci 16 pe secunda, s-ar decala cu mai mult . Eu zic ca sigur este de la quartz etc. Si nu inteleg de ce te miri ca doar matematic este exact, practic este altceva :smt003 atunci cum iti explici ca o gramada de ceasuri de pe piata au quartz de 32,768 deci matematic tot perfecte dar in practica ..... daca quartzul meu luat de la telezimex e de calitate indoielnica, asta e , teapa mea . Link spre comentariu
cirip Postat August 8, 2006 Partajează Postat August 8, 2006 Este adevarat ca el fabricant de controllere se refera la aceasta valoare "intre un exemplar de controller si altul"?Nu. Eu vorbeam de cuart, nu de controler. Controlerul nu are nici o treaba. Poate cel mult prin contributia capacitiva la incarcarea cuartului, dar asta se compenseaza prin condensatorii externi.Controlerul primeste un cloc si "i se spune" prin soft (constante) ca e de 4MHz. Daca cei 4MHz nu sunt de fapt 4, controlerul habar n-are si putin ii pasa.Pe de alta parte, ceea ce se pierde de multe ori din vedere la calificarea cuarturilor drept "proaste" este ca frecventa scrisa pe orice cuart este legata de o anumita incarcare capacitiva sau un anume mod de oscilatie. Daca nu sunt respectate, cuartul o ia prin papusoi. Si e normal sa fie asa, daca ne uitam la schema echivalenta a unui cuart. In particular, la oscilatoarele ptr controlere, cele cu 2 conzi si un cuart, cuartul functioneaza dezacordat inductiv. Frecventa de oscilatie se afla undeva intre rezonanta serie si cea derivatie si trebuie sa poata fi reglata f aproape de cea scrisa pe capsula.Mai demult, cand imi construiam transceivere de scurte, facusem rost cu mare greutate de un XF9 si un purtator. Spre disperarea mea, frecventa era cu 2.5-3KHz mai departe decat cea ideala, raportata la gabaritul filtrului. Mai tarziu am inteles ca nu foloseam cuartul cum trebuie, adica trebuia sa folosesc rezonanta serie; eu foloseam cuartul in zona inductiva. Schimband schema oscilatorului, cuartul s-a tras f aproape de pozitia corecta.Revenind, cei 30ppm sunt ai cuartului. Cand am nevoie de taiming f precis, fac oscilatorul si vad daca e mai sus sau mai jos. De obicei e mai sus si maresc capacitatile de acord. Aia de pe intrarea portii o pun trimer. Daca marirea capacitatii nu e suficienta, pun o bobinuta in serie cu cuartul.Cirip Link spre comentariu
MirceaM Postat August 8, 2006 Autor Partajează Postat August 8, 2006 Bun, mersi din nou. Una peste alta, aflandu-ne in fata unui montaj concret cu cuart de 16000 KHz, 2 conzi de 22 pF si un 16F876A este posibila strategia mentionata? Anume: - vad incotro o ia ceasul dupa cateva zile sau o saptamana (in sus sau in jos si cu cate secunde) si aplic o corectie ca la anii bisecti (adica la nu stiu cate intreruperi, desi ar trebui sa incrementez ceva, NU incrementez). Sau, dimpotriva, adun 2 in loc sa adun 1. - pun un senzor de temperatura pe placa si aplic o corectie cu temperatura. Se poate asa ceva sau nu? Numai cu aceste piese. Scopul (anuntat initial in acest topic) este sa obtinem un ceas precis cat ceasurile obisnuite de pe masini (care si dupa 1 an arata minutele corect, "trecand" printr-un range larg de temperatura). Ca "depinde" inteleg dar nu cumva dependenta este previzibila, inteligibila, anticipabila si corectabila prin soft? Link spre comentariu
Abram Burel Postat August 8, 2006 Partajează Postat August 8, 2006 Eu până acum n-am văzut un ceas de maşină care să nu devieze vara şi iarna. Merge o compensare soft, inclusiv cu temperatura, dacă ai un senzor. Algoritmul de compensare trebuie însă studiat cu atenţie, deoarece ai procese de-a face cu procese rapide (tactul) influenţate de procese lente (variaţia temperaturii). Ar merge poate o mediere a temperaturii pentru un anumit interval de corecţie şi apoi corectarea timpului cu valori luate dintr-un tabel. Chiar dacă nu se doreşte utilizarea unui RTC (de exemplu DS1307) consideraţiile din nota asta de aplicaţie http://www.maxim-ic.com/appnotes.cfm/an_pk/58 pot fi utile. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum