Fórum témák

» Több friss téma
Fórum » DS1307 inicializálása
 
Témaindító: fookos, idő: Jan 29, 2008
Témakörök:
Lapozás: OK   5 / 7
(#) Novak válasza johny999 hozzászólására (») Dec 4, 2012 /
 
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.
(#) johny999 válasza vilmosd hozzászólására (») Dec 4, 2012 /
 
DS1307-es chip Arduinora kötve. Ez egyre furább, ha kikapcsolom a serial monitort, majd pár perc mulva visszakapcsolom, onnét folytatodik a számláló ahol megszakadt mikor kikapcsoltam. Adafruit RTClib.h konyvtárát használom.

Forráskód

A hozzászólás módosítva: Dec 4, 2012
(#) vilmosd válasza johny999 hozzászólására (») Dec 4, 2012 /
 
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.
(#) johny999 válasza vilmosd hozzászólására (») Dec 4, 2012 /
 
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.
(#) zsozsoX hozzászólása Máj 1, 2013 /
 
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.
(#) zenetom válasza zsozsoX hozzászólására (») Máj 1, 2013 /
 
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.
(#) zenetom válasza (Felhasználó 15355) hozzászólására (») Máj 1, 2013 /
 
Fúúú te gonosz vagy.
*kicsit
A hozzászólás módosítva: Máj 1, 2013
(#) zenetom válasza (Felhasználó 15355) hozzászólására (») Máj 1, 2013 /
 
NEEEM LEHEEEET BÉCÉDÉBEE
(#) Balagemann2031 hozzászólása Szept 15, 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
(#) gabi20 válasza Balagemann2031 hozzászólására (») Szept 15, 2013 / 1
 
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.
(#) Balagemann2031 válasza gabi20 hozzászólására (») Szept 15, 2013 /
 
Szia, köszi szépen, akkor lehet hogy az eprommal próbálkozom elöbb...
(#) gabi20 válasza Balagemann2031 hozzászólására (») Szept 15, 2013 /
 
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?
(#) Balagemann2031 válasza gabi20 hozzászólására (») Szept 15, 2013 /
 
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.

1.jpg

2.jpg
   
(#) Balagemann2031 hozzászólása Szept 22, 2013 /
 
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...
(#) Balagemann2031 hozzászólása Okt 26, 2013 /
 
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ő?
(#) Bakman válasza Balagemann2031 hozzászólására (») Okt 26, 2013 /
 
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.
(#) Balagemann2031 válasza Bakman hozzászólására (») Okt 27, 2013 /
 
Nem a PC órája, hanem az RTC modulom DS1307 IC-je.
(#) janimester hozzászólása Nov 6, 2013 /
 
Ü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.
(#) holex hozzászólása Máj 23, 2014 /
 
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
(#) sooty válasza holex hozzászólására (») 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
(#) holex válasza sooty hozzászólására (») Máj 23, 2014 /
 
Így már világos, köszönöm!
(#) zlanczky hozzászólása Jún 4, 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.
(#) Bakman válasza zlanczky hozzászólására (») Jún 4, 2014 /
 
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.
(#) Kovidivi hozzászólása Okt 10, 2014 /
 
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!
(#) Kovidivi hozzászólása Jan 2, 2015 /
 
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!
(#) wincso hozzászólása Jún 5, 2015 /
 
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
(#) Kovidivi hozzászólása Jún 8, 2015 /
 
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.
(#) wincso hozzászólása Aug 24, 2015 /
 
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
(#) Kovidivi válasza wincso hozzászólására (») Aug 24, 2015 /
 
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
(#) Bakman válasza wincso hozzászólására (») 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.
Következő: »»   5 / 7
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem