Fórum témák
» Több friss téma |
Ez pedig valóban az, amit kyrk írt; ha pontosan 1 másodpercenként olvasod ki, akkor bizony nagyon könnyen előfordulhat ilyen probléma (tapasztalat). A megoldás vagy az, hogy 1 másodpercnél sűrűbben olvasod ki és frissíted az értéket, vagy amit én még szoktam használni, hogy mondjuk csak 10 vagy akárhány percenként olvasod ki az időt a DS1307-ből, és két kiolvasás között pedig szoftveresen megvalósítod az órát. Így a DS1307-tel gyakorlatilag csak pontosítod X időközönként, hogy biztosan ne késsen/siessen az óra.
A DS1307-ben egész biztosan nem tud "átugrani" a másodperceket számláló regiszter. De erről magad is rettentő egyszerűen meggyőződhetsz; állítsd át a kiolvasást/kijelzést mondjuk 500 ms-ra. Ilyen esetben kizárt, hogy akármikor kimaradjon egy másodperc a kijelzésben.
Jaaa. Szoval aszinkronban olvasol. Talan (ha lehet arduinoban) interruptal kellene kezelni. Beallitani a SQW/OUT kimenetet 1 Hz frekire, es ezt valahova bekotni, ahol interruptot kerfet. A kiolvasast az IT rutinban kellene megoldani, ugy biztos a leptetes.
Még csak ismerkedek az ethernet shieldel, de akkor nem az RTC chippel van gond hanem a kóddal. Utánanézek mit lehet vele kezdeni. Köszi.
Sziasztok!
A DS1307-el ismerkedem a gondom az hogy el indul de a másodperc számlálás kicsit furcsa. 60 helyett 90 másodpercig számol és ott nullázodik, viszont számolás közben kihagy 7 számot többször is ugyanott.Szerintem valami szám kodólási hiba van.Segitséget előre is köszi.
Szia!
Bár simpi kcisit félreérthetően írta, de a lényeg, hogy BCD-ben kapod meg az értékeket, vagyis a másodperc alsó bájtja hordozza az egyes helyiértéket, a felső pedig a tizest.
Fúúú te gonosz vagy.
*kicsit A hozzászólás módosítva: Máj 1, 2013
Sziasztok! Van egy TinyRTC v1.1 modul áramköröm. Van rajta egy DS1307 és egy 24C32WP eprom. A kérdésem az lenne, hogy milyen szerepe van a 24C-s epromnak az óra modulban? Esetleg teljesen különálló, tetszőlegesen használható? Egy LCD-s órát szeretnék építeni, I2C kommunikációt, csak elméletben ismerem, most csinálnám élesben, szerintetek nem túl nagy falat kezdésnek? (csak soros kommunikációkban vagyok kezdő) Vagy próbáljam írni olvasni, csak az epromot? Köszi! Üdv!B
Szia az EEPROM - al nem kell foglalkozni ha nem akarsz. Ha az RTC áramkör Slave címét küldöd ki, akkor csak azzal fogsz kommunikálni, az EEPROM - al nem.
Szia, köszi szépen, akkor lehet hogy az eprommal próbálkozom elöbb...
Szerintem nyugodtan kezd a DS1307 - el, ha órát akarsz építeni nemhiszem hogy szükséged lesz az EEPROMra. Amúgy az RTC is tartalmaz 56B RAMot amit tetszőlegesen fel tudsz használni. Arra figyelj hogy az RTC - ben a control register egyik bitjét át kell állítani hogy elinduljon az oszcillátor. Én elég sokat szívtam miatta. AVR - el csinálod?
Szia! A vezérlő egy PIC18F14K50 lesz, (USB bootloaderrel) A megjelenítő pedig egy 2x16 os kék-fehér LCD. Lesz mit leprogramozni Remélhetőleg a jövő héten kész lesz a "hardver"... Közben tanulmányozom az adatlapokat.
Közben elkészültem az áramkörrel, és sikerült írnom az RTC modult. Viszont ha olvasok minden honnan nulla jön, próbáltam több regbe is írni de nem tudom vissza olvasni, mármint onnan is nullát ad... Az író rutin biztosan jó, mert a control regisztert tudom írni, már az SQ kimeneten beállítottam ez 1Hz-t. Ha az SQ kimeneten megjelent az 1Hz akkor a CH bit nulla, és megy az óra? Az olvasás rutint még vizsgálom, mert lehet hogy ott van a hiba, viszont jó lenne tudni hogy most megy-e az óra vagy még nem...
Sziasztok! Már egy jó ideje tökéletesen működik az óra, észrevettem egy érdekes dolgot. A számítógépem és az óra között 34-40mp eltérés van. Azt vettem észre, hogy napi 1-2 mp et elcsúszik, de 3-4 naponta visszakorigál. Ezen eléggé meglepődtem. Találkozott már valaki ezzel? Vagy ez csak nekem meglepő?
Mármint a számítógép órája csúszkál? Ha igen, minden bizonnyal a netről szedi a pontos időt.
Nem a PC órája, hanem az RTC modulom DS1307 IC-je.
Üdv. Összeraktam 20mhz-en beállítva 18f4550-en a ds1307-em de azt vettem észre hogy az adatok oda vissza ugrálnak , pl.: a másodperc számláló elmegy 2-ig majd visszaugrik nullára aztán a délelőtt és délután jelző rövidítések is ugrálnak de fogalmam nincs mitől. SCL-SDA lábak 4,7k-val fel vannak húzva VDD-re 32,768khz-es quartz a helyén van backup elemet is rákötöttem. Egyébként most volt először indítva az rtc.
A DS1307-nek most akkor mi a címe? 0x68 vagy 0xD0? Neten írnak ezt is, azt is, az adatlapban 0x68 van, mégis csak 0xD0-val működik... Elmagyarázná ezt nekem valaki?
A hozzászólás módosítva: Máj 23, 2014
A 0x68-at tartalmazza az adatlap (1101000) de ezt a címet kiegészíti az írás és az olvasás bitje:
Idézet: „The slave address byte contains the 7-bit DS1307 address, which is 1101000, followed by the direction bit (R/W), which for a write is 0.” Ezért a kiküldendő bájt már 0xD0 (11010000) íráskor és 0xD1 (11010001) olvasáskor. A hozzászólás módosítva: Máj 23, 2014
Sziasztok!
Van valakinek tapasztalata DS1302 kezelésben? Az init részben kiadom a clear write protect (0x8e) és a clear clock halt (0x80) parancsot, majd olvasom a sec regisztert (0x81), de a legfelső bit = 1 marad, ami azt mutatja elvileg, hogy clock halt állapotban maradt. lásd a mellékelt képernyőt. Mi lehet a baj? Köszi előre is.
A Clear Clock Halt parancs tartalma micsoda? A legfelső bit (0x80 -as címre) nulla legyen és elindul a számlálás. Legalábbis a testvére (DS1307) így viselkedik.
Sziasztok!
Nekem is van ilyen modulom 24C32N eeprom-mal, meg DS1307 RTC-vel. Nem tudom, milyen indíttatásból raktak EEPROM-ot is a nyákra, de én örülök neki Sikerült már írnom programot, ami 30byte hosszúságig (azt hiszem I2C puffer miatt ennyi) elment bármit, a megadott címtől kezdve, majd visszatölti egy másik tömbbe. Ha kell valakinek, megosztom szívesen. Ha jól olvastam az adatlapban, akkor 32byte-os lapokra van osztva a memória, gondolom ezért hibázott a visszaolvasás, ha lap elejére már írtam 5byte-ot, a következő adatot viszont a lap közepétől próbáltam írni. Most írtam egy algoritmust, ami így néz ki: char b=(int((a+sizeof(data)+3)/32))*32+32; b- a következő lap kezdő memóriacíme lesz a- az első adat kezdőmemória címe sizeof(data) - tömb mérete, ami tárolva lesz. Ezáltal 32byte-onként tudok menteni, így működik a program, de pazarlásnak érzem ezt a megoldást. A legfelső memóriacím 4096. Jól silabizáltam ki a dolgokat? Köszönöm!
Sziasztok!
Ebay-es EEPROM-os DS1307-ről van szó, a hozzá adott kvarccal használtam. Van több példányom is, de mindegyik napi kb. 10-12mp-et késik. Utánakeresve láttam, hogy a kvarc valószínűleg nem passzol hozzá. Bővebben: Link Kerestem egy legolcsóbb kvarc órát, kivettem belőle a kvarcot, és azt használva pontos lett az RTC-m. Már majdnem 1 napja tesztelem, de eddig nincs késés. Mondjuk még így is megéri EEPROM-mal meg nyákkal együtt, csak kis módosításra szorul, és kész!
Sziasztok!
Nem mai a téma , de számomra aktuális lett. Tudnátok segíteni egy Ds1307 RTC -ből nem tudom kiolvasni az adatokat, a beírás simán megy. Oshonsoft Basic compilert használok. Előre is köszönöm
Helló!
Eléggé háklis az IC a kvarc típusára. A sima órakvarcommal csak kondenzátor segítségével indult el a rezgés, másik SMD kvarcomnál meg csodálkoztam, hogy néha megy, még gyorsabban is számol, aztán szép lassan leáll. Néha berezgett, néha nem. Levettem a két kondit, és láss csodát, tökéletes! Ami még nagyon fontos, első beállításnál a másodpercet is be kell állítani, mert a 7.bit-jébe 0-t kell írni, és csak akkor indul el az óra. Ez a datasheet-ben is benne van, igaz kicsit elrejtve.
Sziasztok!
Ds1307 táp mellett elem is rá van kötve. De amikor elmegy a tápfeszültség és visszajön akkor a pic újra inicializálja tehát elállítja az időt. Szerintetek elég a ds1307 első használatakor inicializálni és utána többé nem is kell, úgy értem ha egyszer elindult, utána a pic programjából ki is lehet venni az inicializálós részt, ha a pic újra indul ne állítsa el az időt? És ha táp, és elem nélkül van a ds1307 utána újbóli használatkor kell e inicializálni? Előre is köszönöm
Az inicializáló részt csak akkor kell futtatnod, ha be akarod állítani az időt. Ha újraindul a PIC, akkor nem akarod az időt beállítani, azt az RTC tárolja! Elemet nem válaszd le róla, mert akkor elfelejti az időt, viszont ha elmegy a táp, viszont van elem, akkor az időt tovább számolja az RTC!
A hozzászólás módosítva: Aug 24, 2015
Ha bekapcsoláskor (áramszünet végeztével) a kontroller újra beállítja az RTC -t, akkor ez a kontrollerben lévő program hibája. Ebben az RTC IC-ben nincs EEPROM, teljes áramszünet esetén (elemet is megvonod) alaphelyzetbe áll.
|
Bejelentkezés
Hirdetés |