Most csak így hirtelen, mert itt nincs Adobe Reader, de ha kiadsz az I2C buszon egy start parancsot, akkor bármikor újrakezdheted az olvasást a 00 címtől, nem kell az összes regisztert végigolvasni hozzá.
A DS1307 IC-nél a tápfesz ráadása után az órajelet (32,768 KHz) tudnom kell mérni ? Vagy csak azután indul el a az oszcillátora ,hogy megtörtént az inicializálása az I2C buszon keresztül ?
Köszi.
Ha az X1 és X2 kivezetésre gondoltál, ott az órakvarc frekvenciáját minden időpillanatban tudni kellene mérni, a tápfesz. rákapcsolása után.
Ha az SCL lábra gondoltál, ott csak akkor mérhető bármi is, ha van, ami vezérli ezt az áramkört. Ugyanis ez egy slave eszköz, ami azt jelenti, hogy önmaga nem képes kommunikálni, csak ha egy "felsőbbrendű" áramköri elem megkérdezi őt valamiről. Tehát önállóan, magától, "kérdezés vagy konfigurálás nélkül" nem ad információt.
Ha oszcilloszkóppal, akkor próbáld meg a mérőfejet átkapcsolni 10x-es üzemmódba (igaz, így az amplitúdó-osztásos kapcsolót nagyobb érzékenységre kell állítani a szkópon). 1x-es üzemmódnál ugyanis néha leterheli a szkóp az oszcillátort és az a mérés alkalmával nem rezeg. Engem már viccelt meg ez a dolog...
Szia !
Igen szkóppal mérem 1 :10 állásban. A PIC 20 MHz-es órajelét gond nélkül meg tudtam mérni.
Frekimérővel is mértem. Azzal is a PIC-en megvan az órajel de a DS IC-n semmivel nem tudtam megmérni az órajelet. Azért gyanakodok arra ,hogy nem jó a TIMER IC
Sziasztok !
Megoldódott a gond Vicsys segítségével. Átírta a progit és mindjárt elindult a timer IC. Tehát az órajel csak "ezután" jelenik meg az X1 X2 lábon.
Akkor megprobálok konkrétebbat kérdezni!
DS 1307 adatlapjának 8. oldalán van egy táblázat Timekeeper Regiszters felirattal. Ez a net szerint "időőrző regisztereket " jelent. Gondolom a vezérlő regisztereket jelentheti.
Úgy tűnik, hogy 00h-06h-ig először nulláznom kell, és utána lehet kiolvasni az adatokat. 02h 6-os bit állitásával lehet meghatározni a 12/24 órás üzemmódot. 07h-val lehet még valamilyen paramétereket meghatározni, de nem tiszta, hogy mit. 00h register nullázásával engedélyezem az oszcillátor futását.
Ezt eddig jól gondolom-e?
Hali
Nem tudom mivel, hogyan akarod kezelni a RTC-t, de itt egy pelda a DS1307 kezelesere. Ez CCS C-hez keszult. Termeszetesen a kezeleshez az I2C inicializalas szukseges eloszor. A 0x07 regiszter a "Control register", amivel meg lehet hatarozni az oszcillator kimeneti frekvenciajat. A 7. labon lehet kivezetni az oszcillator leosztott frekvenciajat. A "SQWE" bit engedelyezi a kimenetet, a "RS0-RS1" bitek pedig meghatarozzak a leosztast a 9. oldalon levo tablazat szerint. Ezzel lehet interruptot csinalni, hogy ne kelljen allandoan lekerdezgetni a RTC-t csak meghatarozott idonkent. Amugy nagyon meg kellene tanulni angolul, mert az elektronikaban szinte minden dokumentacio ezen a nyelven keszul (esetleg japanul vagy kinaiul).
Üdv!
A 00h 7. bitjének nullázásával tudod elindítani az órát. Ugyanennek a regiszternek az alsó négy bitje adja BCD-ben a másodpercek egyes helyiértékét, a felette lévő 3 bit pedig a másodpercek 10-es helyiértékét. A 07h regiszter 4. bitjével tudod beállítani hogy az SQW/OUT lábon megjelenjen-e az RS1 és RS0 bitek által meghatározott frekvencia. A 7. bittel (OUT) pedig azt tudod beállítani hogy ha nem engedélyezed (SQWE=0) az SQW/OUT kimeneten a frekvenciát akkor milyen logikai szintet adjon. Én is csináltam hasonló RTCC-vel órát és ott azt csináltam hogy 1Hz-es jelet adott az RTCC és minden felfutó élnél kiolvastam az időt, így nem kell feleslegesen olvasgatni az RTCC-t. Persze máshogyan is meg lehet ezt csinálni.
Hali!
Köszönöm a válaszaitokat. Az angollal vitathatatlanul igazatok van, de 5X után már nagyon meggondolja az ember egy ilyen projekt elkezdését.
A kapott rutint átfutottam. A legegyszerübb megoldást akartam választani, átemelem a saját progimba. Ez sajna nem megy, mert ez nem assembly. A regiszterek funkciójának ismeterével azonban bizom benne, hogy menni fog.