DS1307 a I2C

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
vilem
Příspěvky: 13
Registrován: 11 pro 2008, 01:00

DS1307 a I2C

#1 Příspěvek od vilem »

Nevíte někdo jaká je posloupnost hodnot do RTC obvodu DS1307,abych mohl následně získávat aktualní čas (měsíc,den,hodina,minuta).Co jsem nahlížel do Datasheetu tak jsem pochopil jen jakou má adresu,ale zbytek ne.Tak kdyby někdo věděl a chtěl se o to podělit tak budu rád.

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#2 Příspěvek od Andrea »

vilem píše:Nevíte někdo jaká je posloupnost hodnot do RTC obvodu DS1307,abych mohl následně získávat aktualní čas (měsíc,den,hodina,minuta).Co jsem nahlížel do Datasheetu tak jsem pochopil jen jakou má adresu,ale zbytek ne.Tak kdyby někdo věděl a chtěl se o to podělit tak budu rád.
Pošleš START, pak slave adresu s R/W = 0 (zápis), pak ACK, dále adresu prvního bytu, který chceš číst (sekundy = 0, minuty = 1 ....), ACK a pak znovu START, slave adresu s R/W = 1 (čtení), ACK a pak už čteš kolik bytů chceš, za každým pošleš ACK a za posledním pošleš NACK a STOP.

Uživatelský avatar
vilem
Příspěvky: 13
Registrován: 11 pro 2008, 01:00

#3 Příspěvek od vilem »

Tak teď jsem naprosto přestal chápat jak to DSko funguje :(

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#4 Příspěvek od Andrea »

vilem píše:Tak teď jsem naprosto přestal chápat jak to DSko funguje :(
A jak funguje I2C chápeš, protože o tom to čtení je. :wink:

Uživatelský avatar
vilem
Příspěvky: 13
Registrován: 11 pro 2008, 01:00

#5 Příspěvek od vilem »

Jasne I2C chápu.Akorat mi teď není jasné ja funguje RTC.Jestli když ho zavolam tak kolik uplnulo času od jisté doby nebo funkuje jako normalní hodiny a co potřebuju vědět to mi zdělí.

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#6 Příspěvek od Atlan »

no po zapnitu su nastavne nejake dafault hodnoty asi 12h format, off alarm a ine. sekundy min a hodiny na 00. po pripojeni napetia by sa mali rozbehnut hodiny.. tak ze ked po piatich minutach si z nich das nacitat stav hod min a sec dostanes 0h 5m 0s. Ak tam naldaujes aktualny cas ..tak oni budu bezat ..a ty ked budes potrebovat o pytas sa na aktualny stav

Uživatelský avatar
vilem
Příspěvky: 13
Registrován: 11 pro 2008, 01:00

#7 Příspěvek od vilem »

A incrementuje se to i dnů nebo jakým způsobem si pamatuje kolik uběhlo hodin třeba za 100 dní.

A ještě by mě zajímalo jetli někdo neví jak vypadají binární hodnoty pro nastavení toho obvodu ?

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#8 Příspěvek od Atlan »

Automaticky sa to prenasa.... 24h pripocita jeden den prip mesiac pripadne rok, Inac vsetko je v data site.... :D

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#9 Příspěvek od Andrea »

Jo, je to v datašítu, umí to sekundy, minuty, den, měsíc a rok s kompenzací přestupných roků až do roku 2100. Proto jsou to hodiny reálného času.

Uživatelský avatar
vilem
Příspěvky: 13
Registrován: 11 pro 2008, 01:00

#10 Příspěvek od vilem »

Už jsme to tam našel.
Chtěl bych se jen pro kontrlu zepta zda mamám správné hodnoty posílaných bajtů:

Pro nastavení obvodu:

11010000->00000000->00000010->00010001->00000011->00100110->
->00000001->00001000

A mělo by to být datum 27.1.09 11:26:00

A pro čtení jenom zadám adresu 11010001 a pak přečtu 7 bajtů a ukončím přenos.

Je to správně nebo je někde chyba nebo je tu úplně blbě ?

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#11 Příspěvek od Andrea »

vilem píše:Už jsme to tam našel.
Chtěl bych se jen pro kontrlu zepta zda mamám správné hodnoty posílaných bajtů:

Pro nastavení obvodu:

11010000->00000000->00000010->00010001->00000011->00100110->
->00000001->00001000

A mělo by to být datum 27.1.09 11:26:00

A pro čtení jenom zadám adresu 11010001 a pak přečtu 7 bajtů a ukončím přenos.

Je to správně nebo je někde chyba nebo je tu úplně blbě ?
c) je správně :(

START
11010000 adresa čipu + zápis
00000000 adresa zapisovaného prvního bytu - 00 = sekundy
00000000 sekundy (00)
00100110 minuty (26)
00010001 hodiny (11)
00000010 den v týdnu (úterý)
00100111 den v měsíci (27)
00000001 měsíc (01)
00001001 rok (09)
xxxxxxxx konfigurační byte - nemusí být
STOP

Čtení už jsem tu jednou popisovala :wink:
Naposledy upravil(a) Andrea dne 27 led 2009, 11:48, celkem upraveno 1 x.

Uživatelský avatar
vilem
Příspěvky: 13
Registrován: 11 pro 2008, 01:00

#12 Příspěvek od vilem »

:(

A můžeš mi to aspoň trochu nastínit jak by to mělo být správně ?

Uživatelský avatar
vilem
Příspěvky: 13
Registrován: 11 pro 2008, 01:00

#13 Příspěvek od vilem »

Andrea píše:
vilem píše:Už jsme to tam našel.
Chtěl bych se jen pro kontrlu zepta zda mamám správné hodnoty posílaných bajtů:

Pro nastavení obvodu:

11010000->00000000->00000010->00010001->00000011->00100110->
->00000001->00001000

A mělo by to být datum 27.1.09 11:26:00

A pro čtení jenom zadám adresu 11010001 a pak přečtu 7 bajtů a ukončím přenos.

Je to správně nebo je někde chyba nebo je tu úplně blbě ?
c) je správně :(

START
11010000 adresa čipu + zápis
00000000 adresa zapisovaného prvního bytu - 00 = sekundy
00000000 sekundy (00)
00100110 minuty (26)
00010001 hodiny (11)
00000010 den v týdnu (úterý)
00100111 den v měsíci (27)
00000001 měsíc (01)
00001001 rok (09)
xxxxxxxx konfigurační byte - nemusí být
STOP

Čtení už jsem tu jednou popisovala :wink:
Omlouvám se neumím asi převádět na binární hodnoty :D :oops: .Ale myslel jsem to dobře .Proč jsou tam ale davkrát za sebou posílané sekundy ?

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#14 Příspěvek od Andrea »

vilem píše:Omlouvám se neumím asi převádět na binární hodnoty :D :oops: .Ale myslel jsem to dobře .Proč jsou tam ale davkrát za sebou posílané sekundy ?
Kde jsou dvakrát? 8O To první je adresa, je to tam napsané. Nejdřív musíš poslat adresu, kam se bude zapisovat, ten čip má celkem 64 bytů, tak musíš říct KAM. :wink:

Uživatelský avatar
vilem
Příspěvky: 13
Registrován: 11 pro 2008, 01:00

#15 Příspěvek od vilem »

Aha tak to jsem to jen špatně pochopil.

Obvod už vypadá že funguje tak díky moc za rady a nápovědy.

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“