PIC-es ora

hg12345 hg12345 at freemail.hu
Sat Mar 10 15:22:47 CET 2007


Hi!

PIC-s (de más esetben is) pontos órát akarsz csinálni akkor ne 
használj elöosztót. (Nem tudod mit csinál az elöosztó amikor irod a TMR 
regisztert, a PIC esetében törli magát....

A PIC esetén a TMR1-s ajálják a RTC negvalósításához. Itt viszonlag 
egyszerü a dolgod, közvetlenül rákötöd a 32768Hz quartz-t a PIC TMR1 
bemenetére és felkonfigurálod az eszközt megfelelően. Hogy jól 
müködjön két 15-27pF közötti értéket is rákell a két lábra akasztani, 
vagy amit a quartz adatlapjában látsz. A 18F sorozatban már lehet 
állítani a TMR1 bemenetek állapotát  kis és normál fogyasztásura.

Ha ezzel meg vagy akkor csak egy IT kell, és TMR1 átfordulás után 
TMR1H legfelső bitjét átbillenteni, igy az 1sec IT már meg is van.

Sajnos a QUARTZ pontosságá 5-150ppm között változhat (lásd 
adatlap) a leggyakoribbak 20ppm-s amit itthon kapsz. 

Tovább lehet hangolni a pontosságot ha van mihez, akkor a következő 
eljárással (a digitális hangolásu RTC is ezthasználják)
A 60. 1sec IT beütése után  a TMR1 hozzáadsz -+127 két egyszerü 
megoldás adódik erre:
- megvárod mig az értéke 128 lesz és betöltöd a konstanst (ez jobb)
- kikapcsolod az órát, WORD összadást végzel + a kikapcsolási idöt is 
hozzáadod, majd vissza kapcsolod. (Vigyázz az osszilátort nem szabad 
leállítani, mert idő mig berezeg)

Mindegy hogyan csinálod, de ez egy elérhető pontosítás:
 1/(60*32768) = 0.5ppm  és a maximális átfogás 127*0.5 = -+ 63ppm
ami már megfelelő lehet.

Igy a másodpercekben lehet egy kis pontatlanság, a perceid már 
hajszálpontosak lehetnek...

Érdemes külön RTC-t használni? Szerintem nem, több éve kellett 
csinálni egy telepes naplózó berendezést,  ami még mást is csinált.
Egy 16F628A a müködtető eszköze, hogy kevesset fogyasszon amikor 
fut a program akkor 4MHz jár, egyébbként csak a TMR1 müködik benne, 
és a minde más alszik. 0.8-1.2uA fogyaszt tartósan egy 3V litium 
telepről, immár 3éve..... (telepet még nem kellett cserélni).  
WATCHDOGot kikapcsoltuk...   Egy RTC fogyasztása is ennyi, ráadásul 
ha gyakran olvasod akkor változik a frekije (több olvasás 1sec alatt)
Az ujabb típusok még kevessebbet fogyasztanak...

Érdekes egyes ARM-s esetekben az kis frekijü 30-45Khz) közötti belső 
osszilátorhoz is megcsináljak, ráadásul HW-böl van hozzá hasonló tört 
osztó, amit a magas frekijű quartzhoz húznak be, és erről jár az RTC 
amikor csak RAM és RTC tartó feszültség van :-)

 Üdv

Huszti Andras <kyrk at villamvadasz.hu> írta:

> Hali!
> 
> Mar egy ideje ezen a probleman torom a fejem. Tehat adva van egy 
PIC uC.
> Timer olyan van benne ami epp kellhet, tehat konret tipushoz nincs 
kotve
> a dolog. Kalendariumos orat szeretnek megvalositani benne.
> 
> A problema a kovetkezo: 1s -es idoalapot kell eloallitani 
meglehetosen
> pontosan. Milyen megoldasok vannak ra amik csak a PIC eroforrasait
> igenylik. GPS,RTC nem jatszik. Esetleg kulso kvarz lehet. A problema 
nem
> is az 1s elollaitasa hanem az, hogy miert nem sikerult pontosan.
> 
> Amit en kigondoltam az az alabbi nehany megoldas:
> - Valamelyik TMR szamolgat, es ha interrupt van akkor
> feltoltom(hozzaadok) a TMR-t egy adott ertekkel. Plusz vannak elo 
meg
> utoosztasok is adott esetben. 
> - Valamelyik TMR szamolgat es a PR2 regiszterbe be van toltve egy 
ertek.
> - Valamelyik TMR szamolgat egy kulso osszci jelet. Ez epphogy meg
> belefer a dologba mivel csak egy plusz kristalyt jelent.
> 
> Tapasztalatom szerint a harmadik megoldas adja a legpontosabb 
jelet.
> 
> Az elso megoldas igazan pontatlan, mivel az interruptban mit kiderult
> van egy kis jitter. Amit nem ertek, az az, hogy ha van jitter attol a
> TMR meg pontosan szamol. Vagy nem? Hosszu tavon a jitter ellenere 
lehet
> pontos az 1s, de rovid tavon lehet elteres. De ez engem nem zavar. A
> vicc az, hogy ennek ellenere ugy tunik ez a megoldas nem ad pontos
> jelet. Miert nem? Mi okohatja az elterest? A jitter abbol adodik, hogy
> az interrupt meghivasakor lehet, hogy epp 2 ciklusu utasitas 
hajtodott
> vegre. De ez alatt a TMR ugyan ugy szamol tovabb? Tehat en az
> interruptbol azt lathatnam ,hogy nem TMR=0x02-re ertem a TMR 
interrupt
> reszehez hanem TRM=0x03-ra. De ez mind1, hiszen ugyis hozzadok 
X-et a
> TMR-hez. Tehat elvileg hiba nem kepzodik. Jol latom?
> 
> A masodik megoldas ugy tunik pontos, legalabbis 4-5 nap alatt fel 
perc a
> tevedes. A vicc az, hogy kiszamoltam a PR2 erteket. Miert kell annal
> 1-el kevesebbet oda beirni?
> 
> -----------------------------------------
>           elektro[-flame|-etc]
> 

_______________________________________________________
Tavaszi ingatlankínálat! - http://ingatlanapro.origo.hu/



More information about the Elektro mailing list