sulla precisione dei timer

Ciao, sembra collegato ad un posto che ho fatto precedentemente ma in realta' lo e' solo in parte.

Mi trovo nella situazione di dover cronometrare dei tempi: il segnale di star e stop viene triggerato da una linea apposita. Quello che mi preme e' poter misurare in modo preciso al decimillesimo di secondo tempi di circa dieci minuti all'incirca. Occorre una certa precisione.

Il circuito conterrebbe un PIC (o simili) che svolge varie funzioni. Non so se fidarmi del timer incorporato che conta i cicli di clock, oppure se fornire un segnale esterno dedicato a 10KHz di frequenza. La tolleranza deve essere appunto sufficiente a garantire una precisione tale che venga perso meno di un decimillesimo di secondo ogni sei milioni (i famosi dieci minuti). Voi come vi comportereste? Io sinceramente non so se i quarzi mi garantiscono tale precisione...

grazie e ciao Alessio Sangalli

Reply to
Alessio Sangalli
Loading thread data ...

in generale i quarzi hanno buone prestazioni in termini di stabilità in frequenza (poche ppm) ma a temperatura costante. quando questa cambia, la frequenza può slittare di decine di ppm. potrei consigliarti il DS32KHz che è un oscillatore a 32KHz della Dallas compensato in temperatura che garantisce + o - 1 min su un anno, ovvero + o - 1 sec su 525.600 sec. considerando i us avresti 100 us ( = 1/10.000 di s) su 52,56 s. sicuramente esistono TCXO più performanti ma siamo ancora lontani dai 10 minuti da te richiesti. tu vorresti praticamente 0.17 ppm e non credo che esistano oscillatori (almeno rimanendo su componenti commerciali) così precisi.

un barbatrucco che potresti usare sarebbe quello di realizzare un circuitino hardware che si occupa della misurazione del tempo. in questo caso potresti usare si un TCXO in HF tipo a 10 MHz o più su. se il componente ti garantisce un'incertezza di 1 ppm, dividendo la frequenza per arrivare a un periodo di 100 us (o quello che ti serve) aumenterai dello stesso ordine di grandezza la precisione. a questo punto usi un contatore a 24 bit e alla fine del conteggio leggi da PIC il valore del registro del contatore: quelli sono i 1/10000 di secondo passati tra lo start e lo stop. consiglio di usare un circuito e non il PIC per contare perchè visto che già farà altre cose e visto che la precisione che ti serve è così elevata non riuscirai mai (attendo smentite in caso contrario...) a raggiungerla.

ciao! Marco

Reply to
Marco Trapanese

Se non sto commettendo un errore grossolano di valutazione dovrebbe bastarti perfino un quarzo da

32KHz ed il contatore di un PIC... (soprattutto nel caso tu sia interessato a misurare tempi relativi e non assoluti). Anche le derive dovute alle variazioni di temperatura dovrebbero essere trascurabili nell'arco di 10 minuti! Se vuoi ottenere una precisione ancora maggiore usa un quarzo da qualche MHz e dividi il conteggio, otterrai una precisione molto maggiore di quella che ti serve... Ovviamente se usi il timer del PIC, e se fai in modo da non farlo andare in overflow (usando il prescaler per esempio), il conteggio è indipendente dall'esecuzione del programma, salvo per un contributo fisso dovuto alle istruzione per dare lo start e lo stop.

Ciao, A.D.

Reply to
Antonio Di Stefano

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.