Fórum témák
» Több friss téma |
Szerintem rossz az elméleted. A ppm azt adja meg, hogy a kvarc 1000000 rezgés ideje alatt maximum mennyivel rezeg többet vagy kevesebbet.
Nekem egy olyan Ricoh órakvarcom van, amit a ChipCad-ben vettem, és egy DS1306 jár róla, de nem olyan pontos, mint ami az általad írt ppm-ból jönne. Nekem napi 5-6 mp-et siet.
A ppm, mint írtad a magyarázatát is korábban, szerintem a névleges értéktől való eltérést fejezi ki, többnyire +/- irányban. Vagyis ha lenne egy 32768-as kvarcod 10 ppm alaphibával, akkor (32768 / 1 000 000) * 10, azaz 0.32768 Hz-et tévedhet a névleges értékhez képest, és ezt valószínűleg mindkét irányba (siet, vagy késik).
A ppm értéke nem fog attól megváltozni, hogy mekkora időegységen át számolod az oszcillációt; ehelyett az elvárthoz képest kapsz majd hosszabb-rövidebb időt.
Belefutottam egy érdekes problémába, leírom hátha valakit érdekel.
A SWPutsI2C fvt használtam több bájt átküldésére az i2c-n. Ez a fv a string végjelig küldi az adatokat. A probléma abból jött, h az óra, perc és másodperc értékek lehetnek 0-ák és a string végjel is a 0. Vagyis ha pl 0 a perc, akkor az óra értéke már nem kerül beállításra, mert a fv végjelként értelmezi. Ezt kiküszöbölendő írtam 1 fvt az eredeti SWPutsI2C mintájára, h ne a végjelet nézze. Paraméterként meg kell neki adni az átküldendő string hosszát. Így már be lehet állítani 0 értékeket.
Elkészült az órám.
Képek az óráról Mindenkinek nagyon szépen köszönöm a válaszokat és a sok segítséget!
Jól néz ki, gratulálok!
Olyan kérédsem lenne, hogy te milyen kvarcot tettél a DS1307 mellé (smd/furatszeret)? Most én is egy hasonló kaliberű órát csináltam, csak DCF nélkül egyenlőre (meg a DS1621-et még nem szereztem be - te hol vetted? vagy sample?) Képeket meg leírást találhatsz a Ki mit épített-ben, pár napon belül. Neked mennyire pontos az RTC (egy napra vetítve)?
Most ChiCad-os 10ppm-es kvarcot használtam. A pontosságát eddig nem néztem (hisz naponta töbször is szinkronizálódik az óra a DCF77 jelről).
A próbapanelon az elektrokontha-nál vásárolt típus van ami naponta 1-2 másodpercet sietett. A képeken láthatod, hogy hogyan szereltem. A DS1621-et vagy az elektrokontha-nál megrendelheted vagy pedig a hqvideo-nál raktárról is vehetsz, ha éppen van nekik.
Ami még talán fontos lehet, hogy a DS1307 használata mellett mindenképpen kapcsolja be az ember a Brown-Out Reset-et (BOR_ON).
Tapasztalataim szerint a bekapcsolásnál, és a kikapcsolásnál is problémát okoz a lassú feszültség fel- illetve leállás. Már pedig ha egy 1000-2000 µF-os kondi van a tápban, akkor ez elkerülhetetlen. Maga a PIC már kb 3v-tól működik, ahol az I2C-buszon lógó chippek (nálam DS1621 és DS1307) még nem igazán tudnak kommunikálni. A következő képpen próbálhatjátok ki miről beszéltem: a.) Írjatok egy I2C-hibát figyelő részt a progiba, ami a displayra kiír valamit (nálam ez 6 karakteren ERR_01). b.) BOR_OFF-al fordítsátok le a progitokat c.) Hirtelen bekapcs után (rákapcsolod a stabil 5V-ot) csökkentsétek a tápfeszt szép lassan. Nekem valahol 3.9V és 4.1V között előjött az I2C hiba. Ráadásul minden 3.-4. I2C hiba után resetelődőtt a DS1307 d.) Ugyan ezt megpróbálhatjátok a másik irányba. Hirtelen kikapcs után (5V-ot egyszerűen lekapcsolod) szép lassan 0V-ról indulsz a tápfesszel felfelé. A c-pontban leírt jelenséget figyelhettek meg, és sajnos majdnem 100%-ban I2C hibával indul a PIC. Ha a BOR-t (BOR_ON) bekapcsoljátok a proci csak valahol 4,0-4,1V-nál indul el. Ez pedig ad elég időt és feszt a külső I2C chipeknek hogy normálisan beindulhassanak és kommunikálhassanak a PIC-el.
DS1307-el épitettem egy órát. A DS tölti az akksit ha kap tápfeszt vagy azt külön meg kell oldani?
Szerintem a DS1307 mellé egyszerű lithium elem (gombelem) kell, az meg nem tölthető. Ha akkut kötsz mellé, akkor azt neked kell megoldani, hogy töltsd. De egyébként felesleges az akku, az sem birja a strapát 10 évnél tovább. Addig meg a lítium elem is elketyegteti az órát.
Letezik, hogy a DS1307 helytelen adattol megadja magat?
Kicsit belenyultam az ora forrasaba kiserlet keppen, es elszallt az RTC. Nincs i2c komunikacio. Probaltam kulsoleg resetelni,.. nem mukodik..(biztosan nem program hiba) A 3V-ra kiadott Varta elemen meg 3.58V-ot mertem, ez nyirta volna ki? Nem tudom elhinni....
Fejlemeny az ICvel kapcsolatban. V_BAT labat GND-re kotve mukodik az IC, viszont elemrol nem. Es tolti az elemet, ezert mertem 3.6V-ot az elemen. Valoszinu hogy a Power Control resze ment tonkre.
Valaki meg tuda merni, hogy nem backup uzemmodban, adott tipusu elemnel hany V van az elemen? Koszi.
Sziasztok,
dolgozott már valaki DS1337 RTC-vel? Most ezt szeretném használni, de sehogyan sem akar pontosan járni az óra.32768kHz-es kvarcot tettem rá,5V a táp, de 1perc alatt 15mp-et késik.3db van itthon, mindegyik ezt csinálja.Csökkentettem a tápfeszt 3,6-4,4V körülire, de akkor meg siet. 1,8-5,5V-ig lehet a tápfesz adatlap szerint.Nem értem. A kiolvasás rendben működik. A másik, meg hogy ha leveszem a kvarcot róla,ugyanúgy jár tovább, pedig a sima DS1337-ről van szó, nem a DS1337C-ről, amiben benne van a kvarc. Adatlap Találkozott már valaki ilyennel? köszi
A tápegysége szerintem rendben van:12V DC jön be,azután 100µF-100nF-7805-100nF-10uF.
Erről jár a PIC is.(16F877A) Amit nem írtam, hogy próbapanelen van öszerakva az áramkör, de minimális hosszúságú vezetékekkel,ahogy nézem ez nem zavarja.Kvarc teljesen közel van a tokhoz. üdv
Az enyém dugaszolós próbapanelon van és nem centiztem ki a vezetékeket.
Másik kvarcal próbáltad? Lehet, hogy az a hibás. Az IC táplábainál van 100nF kerámiakondenzátor zavarszűrésnek?
Ez is dugaszolós próbapanelen megy.Mindenféle kvarccal próbáltam már egészen 20MHz-esig.
Beteszek mindjárt egy 100nF-t a táplábakhoz,igaz kicsit odébb van egy. Arra valami ötlet hogy miért jár tovább az óra ha leveszem a kvarcot?
Másik órakvarcal próbáld.
Azt a típust nem ismerem, a másikkal meg eszembe se jutott kipróbálni, megy-e kvarc nélkül. Biztos, nem a C változat van meg?
Tényleg elég hihetetlen, hogy kvarc nélkül jár, ezért kérdezek furcsákat: Már bocs, de a PIC-ben a program rendben van? Nem valami bent maradt, korábbi óraprogram fut? Amikor a kvarcokat cserélgetted a PIC-en az I2C időzítését is módosítgattad? (Vagy nem is PIC kvarcát cserélgetted?)
A C az talán 16 "lábas" tokban van, talán meg lehet különböztetni a 8 "lábas"-tól.
Szia
A PIC programja:I2C-n kommunikál egy TC74 hőszenzorral, egy 24FC256 EEPROM-mal, és ezzel a DS1337-tel.A vett adatokat kiírja egy 4X20-as LCD-re.A hőszenzor olvasása is jó, az EEPROM írás olvasás is jó,a DS olvasása is jó, csak nem jár pontosan. Nem a PIC kvarcát cserélgettem, hanem a DS-ét.De bármit teszek rá, 3,2768-20MHz-ig ugyanolyan sebességgel jár az óra.Viszont, ha lejebb viszem a DS tápját 3,5-4,5V-ra akkor meg felgyorsul nagyon, tehát a tápfeszültséggel is összefügg a dolog. (Nem a -C változat van,mert az SO16 tokos ez meg DIP8) Aztán tegnap este levettem mindent a buszról csak a DS-t hagytam rajta, de ugyanaz a hiba.Következő lépés az lesz hogy rászkópolok a DS órajel kimenetére. üdv
Ha nem reagál a quartz sebességre, akkor vagy rossz a DS... vagy a PIC programja folyamatosan ismétel valamit amit nem kellene, esetleg más programhiba is lehet...
Szia! Én a DS1307 RTC-t használom de a DS1337 is 32.768kHz frekvenciájú órakvarcot kiván -NEM MEGAHERTZES !!- . Tehát hiába viszed 20MHz-re a frekit, persze hogy nem fog működni.
Tegyél be egy 32.768kHz és szerintem menni fog! Ja majd elfelejtettem a DS1337 adatlapján megtalálod a kvarc frekijét és a hozzátartozó beállitásokat!
Az órakvarc 32.768kHz-es.(tehát 32768kHz)Az 3,2768MHz nem?
Most tekintsünk el attól a pontatlanságtól, hogy nem órakvarcot tettem mellé, hanem "normál" HC49U tokozásút.Ez még nem indokolja a brutális késést, arról nem is beszélve hogy ha leveszem a kvarcot akkor is jár az óra. A DS1337 adatlapját átnyálaztam már ezerszer oda vissza. Másik application note-ban megemlíti a Maxim, hogy az óra késhet attól, ha zajos a kommunikáció,de még nem néztem utána alaposabban. Plusz adalék, hogy a buszon lévő másik két eszközzel (hőmérő, EEPROM) gond nélkül kommunikálok. üdv
Nem értem, miért hibáskodnak ezekkel a pontokkal meg vesszőkkel a gyártók, csak összezavarják az embert. Angol nyelvterületen a pont jelenti a tizedesek kezdetét, magyar területen meg előszeretettel használják az ezres csoportosításra. Aztán ha odaírja, hogy 32.768kHz, akkor aki a fentit nem tudja, azt hiszi, hogy kb. 32MHz-ről van szó, közben meg kb. 32kHz-ről. Simán írhatnák azt, hogy 32768Hz, akkor egyértelmű lenne. Szóval 32768Hz-es kvarc az órakvarc. Ha nem ilyened van, akkor nem csoda, hogy rosszul megy.
Nem mondod komolyan.
Akkor én a mai napig tévedésben éltem! Tehát akkor az órakvarc 32768 Hz-es. Teszek bele olyat.(nem kicsi ez a freki kvarchoz képest?) köszi a felvilágosítást! Most látom előbb elírtam, 32,768MHz-et akartam írni üdv
Viszont ha egy 32KHz-es kavicsot teszel bele, még pontos is lesz! Az hogy kvarc nélkül milyen környezeti kapacitások vannak és azokkal hogy indul be a DS már a véletlen műve. Tehát "Most tekintsünk el attól a pontatlanságtól, hogy nem órakvarcot tettem mellé..." - Ettől nem lehet eltekinteni ! A benzines autó sem megy gázolajjal...
Lehet hogy van a fiókodban egy rossz kvarcóra vagy egy öskövület alaplap (egyes alaplapok). Ezekben 32KHz-es kvarc található, tehát még a botba se kell elmenni érte. Nem HC49 -es a tokozása ezeknek a kavicsoknak általában 2.5mm átmérőjű henger ami kb 10mm hosszú. Ha találsz egy kvarcórát abban ilyen kvarcot keress. Sok sikert! Ha nem vagyok indiszkrét, ugye Te egy meterológiai állomást épitesz? Nagyon hasonlitanak ezek az alkatrészek az én projektemben lévőekhez...
Szia,
igen, közben kiderült, hogy az én tudatlanságom miatt nem működött rendesen.Tudom milyen az órakvarc tokozása, szerintem lesz is itthon, kipróbálom vele. Igazából csak az I2C kommunikáció programozása a célom vele, csak hát nem hagyott nyugodni, hogy pontatlanul jár az óra.(valamikor aztán majd egy 8 csatornás termosztát lesz belőle) köszi mégegyszer! üdv
Tettem mellé órakvarcot, ezzel már pontosan jár az óra.
Köszi Rumcájsz, Potyo.
Sziasztok !
Én még nem használtam I2C kommunikációt, ezzel az IC-vel /DS1307/ szeretnék egy órát önállóan létrehozni, de sehogy sem értem a DS1307-ből való olvasás folyamatát! Az írást azt igen de az olvasásnál nem értem hogy ha nem címzem meg a regisztert először akkor honnan olvasok ki adatot? Az adatlapban csak az I2C eszköz címe van /7.oldalon/ utána csak az adatok sorban egymás után: n, n+1, n+2 stb. Arra is gondoltam hogy a kiolvasás mindíg a 00 címen indul és folyamatosan olvassa ki a soron következő regisztert, de akkor végig kell mindíg olvastatnom az összes regisztert mire eljutok újra a 00 címig? Nagyon hálás lennék ha valaki felhomályosítana ebben a témában ! Előre is köszi. PS. |
Bejelentkezés
Hirdetés |