www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

AT89C4051 + PCF8583 (RTC ura)

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
CarpeDiem
Član
Član



Pridružen-a: Pon 16 Feb 2004 17:24
Prispevkov: 333
Aktiv.: 1.41
Kraj: Vrhnika

PrispevekObjavljeno: Tor Feb 22, 2005 1:43 pm    Naslov sporočila:  AT89C4051 + PCF8583 (RTC ura) Odgovori s citatom

Malo zacetnega igranja s PCF8583 čipi-čipsom. Program sem pred casom snel z enega od slovenskih forumov. Originalnega sporocila ne najdem več, zato je avtor pač Neznanec (ne Jocker-jev). Jaz sem zadevo minimalno spremenil, prevedel , dodal shemo itd.

Atmel preko I2C bere in vpisuje(samo 1x) vrednosti ure in datuma. Program pisan v BASCOM-u.

Lp, CarpeDiem

PS: "In vendar se vrti" ??



ura_03_ 001.jpg
 Opis:
Slika ikebane
 Velikost datoteke:  324.09 KB
 Pogledana:  152 krat

ura_03_ 001.jpg



ura_03.pdf
 Opis:
shema

Download
 Ime datoteke:  ura_03.pdf
 Velikost datoteke:  28.24 KB
 Downloadano:  110 krat


ura_03.zip
 Opis:
Izvorna koda

Download
 Ime datoteke:  ura_03.zip
 Velikost datoteke:  351.04 KB
 Downloadano:  77 krat

Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3358
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Tor Feb 22, 2005 7:47 pm    Naslov sporočila:  Zelo lepo! Odgovori s citatom

Zelo lepo! Kompletno! Dokumentirano! Poučno!

Hvala!
Vilko
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
fricky
Član
Član



Pridružen-a: Pon 22 Sep 2003 15:37
Prispevkov: 260
Aktiv.: 1.10
Kraj: Ribniško Pohorje

PrispevekObjavljeno: Sre Feb 23, 2005 11:23 am    Naslov sporočila:   Odgovori s citatom

Ali deluje tudi z AT89C2051?
l.p.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3358
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sre Feb 23, 2005 12:25 pm    Naslov sporočila:  4051 in 2051 in 1051 Odgovori s citatom

Procesorčki at89c1051 2051 in 4051 so identični z edino razliko da ima
1051 samo 1 k program ROM-a
2051 samo 2 k program ROM-a in
4051 samo 4 k program ROM-a

Vilko
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3358
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sre Feb 23, 2005 5:41 pm    Naslov sporočila:  Bom še jaz dodal nekaj kode Odgovori s citatom

Bom pa še jaz dodal nekaj kode v Bascomu.

Za nastavljanje začetnega datuma v RTC, pa tudi sicer, je zelo zoprno, ker običajno nimamo numerične tipkovnice. Pa sem prišel na idejo, (morda nisem prvi, pa kaj?) da z eno samo tipko prav hitro nastavim vse parametre programa, kot so recimo tudi začetni datum-ura za RTC.

Ideja je ta, da program sam hitro rotira vrednost spremenljivke. Če gre recimo za minute, hitro rotira vrednost od 0 do 59 in spet naprej od nič. Ko pride v bližino minute, ki jo želimo nastaviti, tedaj pritisnemo tipko in jo držimo. Rotacija postane počasna. In ko pride točno na minuto, spustimo tipko, minuta je nastavljena.
Seveda pa mora človek videti, kako rotira spremenljivka, sicer ne ve ne kdaj pritisniti tipko, ne kdaj spustiti.
In tako po vrsti leto, dan, mesec, ura, minuta, no, sekunde pa najbrž niso kritične.

Podprogram izgleda tako:


Koda:
Zajemi:
Const Maxi = 59
Do
   Incr Vrednost
   If Vrednost > Maxi Then
      Vrednost = 0
   End If
   Locate 2 , 10
   Lcd Vrednost ; "   "
   Waitms 100
Loop Until Tipka = 0
Do
   Incr Vrednost
   If Vrednost > Maxi Then
      Vrednost = 0
   End If
   Locate 2 , 10
   Lcd Vrednost ; "   "
   Waitms 255
   Waitms 255
Loop Until Tipka = 1
Return


Klicati pa ga je treba za vsako spremenljivko posebej:

Koda:
Cls
   Locate 2 , 1
   Lcd "Dan "
   Gosub Zajemi                           'zajemi dan
   Dan = Vrednost
   Locate 1 , 1
   Lcd Dan ; "/" ; Mesec ; "/" ; Leto ; "  " ; Ura ; ":" ; Minuta ; ":" ; Sekunda
   Wait 1

   Locate 2 , 1
   Lcd "Mesec "
   Gosub Zajemi                           'zajemi mesec
   Mesec = Vrednost
   Locate 1 , 1
   Lcd Dan ; "/" ; Mesec ; "/" ; Leto ; "  " ; Ura ; ":" ; Minuta ; ":" ; Sekunda
   Wait 1
itd..


Pozdrav
Vilko
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
CarpeDiem
Član
Član



Pridružen-a: Pon 16 Feb 2004 17:24
Prispevkov: 333
Aktiv.: 1.41
Kraj: Vrhnika

PrispevekObjavljeno: Sre Feb 23, 2005 9:52 pm    Naslov sporočila:   Odgovori s citatom

vilko: odlično (da ne bom imel monopola pri postanju BASCOMA)

No, da nadaljujem se jaz tole "uro". Seveda ji za zacetek manjka nastavljanje casa. Bedna ura, če moras cakati polnoc, da jo nastavis na 00:00:00 (oziroma se novo leto ce zelis imeti se datum). Moja nastavitev uporablja 2 tipki.

V tem programu sem prvic uporabil subrutine in sem se nad njimi zelo navdusil. Mogoce je program bralcu tezje razumljiv, vendar se tako zelo elegantno programira in porabi veliko manj pomnilnika.

Zato najprej pripenjam program, ki ponazori primer uporabe subrutine.



SubRutine_02.zip
 Opis:
primer subrutine

Download
 Ime datoteke:  SubRutine_02.zip
 Velikost datoteke:  3.53 KB
 Downloadano:  37 krat



Nazadnje urejal/a CarpeDiem Sre Feb 23, 2005 9:55 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
CarpeDiem
Član
Član



Pridružen-a: Pon 16 Feb 2004 17:24
Prispevkov: 333
Aktiv.: 1.41
Kraj: Vrhnika

PrispevekObjavljeno: Sre Feb 23, 2005 9:54 pm    Naslov sporočila:   Odgovori s citatom

'Protoboard & AT89C4051
'22.2.05
'uporaba RTC (ure) PCF8583 in LCDja na protoboardu
'uro lahko nastavimo
'velikost programa -> 1469 hehe, kr dobro za bascom
'uporaba subrutin

'LCD pini:
' - DB7 .. DB4 - P1.7 .. P1.4
' - E P1.2
' - R P1.1

'Tipka1 Alias P3.3
'Tipka2 Alias P3.2
'Tipka3 Alias P3.0

'uporaba:
'Tipka1 -> nastavitev casa in datuma
'Ko smo v Nastavitvah je Tipka1 za povecevanje vrednosti
'Ko smo v Nastavitvah je Tipka2 za naslednjo spremenljivko



ura_04.zip
 Opis:
ura z nastavljenjem ure in datuma

Download
 Ime datoteke:  ura_04.zip
 Velikost datoteke:  5.84 KB
 Downloadano:  54 krat

Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3358
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Čet Feb 24, 2005 11:18 am    Naslov sporočila:  Jaz pa z call, kot ga ponuja bascom nisem prav zadovoljen. Odgovori s citatom

Jaz pa z call, kot ga ponuja bascom nisem prav zadovoljen.

Basic v osnovi ne vsebuje call konvencij, kot jih poznamo v višjih programskih jezik. V Bascomu so ga vgradili a ne v celoti le kot nek alias za gosub - go to subroutine.

Pravi Call ukaz bi namreč moral vsebovati substitucijo spremenvljivk. Bom pojasnil na primeru.
Če definiramo subrotino s parametri

subroutina seštej ( x , y , z) ki recimo izračuna z = x + y

potem bi morali po

call seštej ( a,b,c ) dobiti c = a + b in kasneje v istem programu z
call seštej ( e,f,g ) dobiti g = e + f

Tisti, ki iz višjih jezikov prihajamo na Bascom razumemo, da je za tako telovadbo potrebno veliko RAM spomina, ki ga mikroprocesorji nimajo. To, da so to vgradili v Bascom, razumemo kot neko zavajajoče prilizovanje. Vendar je moč Bascoma drugje, pred vsem v ukazih, ki poenostavljajo komunikacijo z okolico, tako s PC-jem, kot z I2c in 1 wire elementi, tako z LCD-jem, in zaradi te moči prav rad delam z Bascomom.
Ima pa BASCOM sicer vse kar programski jeziki na nivoju basic-a morajo imeti.
V višjem programskem jeziku recimo lahko rečemo

a = b + c + d

na basic nivojih moramo pač štrikati:

a = b + c
a = a + d

itd...

Vilko
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3358
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Čet Maj 11, 2006 9:11 am    Naslov sporočila:  RTC, kako pravilno napajati? Odgovori s citatom

Z RTC-jem sem se doslej igral samo na delovni mizi, sedaj pa bi rad zadevo vgradil v napravo, ki naj bi bila napajana preko nezanesljivega vira 220VAC. Seveda bi rad, da pri ponovnem priklopu na napajanje ne bi bilo potrebno ponovno nastavljati datuma in časa v RTC.

Malo sem razmišljal in naredil priloženo shemo, pa ne vem, ali preveč kompliciram.

Za napajanje RTC-a, kadar ni +5V, ki jih dobim iz 220VAC sem predvidel akumulatorček NiMH 3.6V 80mAh, ki sem ga dobil pri Justu. Le ta preko diode D2 napaja RTC, D1 pa je za to, da ne bi napajal celotnega vezja.
Kadar pa je prisotna napetost +5V, tedaj se RTC napaja preko D1, D2 pa prepreči prepolnitev akumulatorčka.
Akumulator dobiva energijo preko R1 a samo do napetosto 3.9V, kar bi, mislim, aku moral prenesti.

Nimam izkušenj s tem, tudi nisem našel nikjer vezja, kjer bi ta del lahko prekopiral, pa sprašujem izkušenejše za napotke.

Hvala



snap.jpg
 Opis:
 Velikost datoteke:  28.21 KB
 Pogledana:  55 krat

snap.jpg



_________________
Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Čet Maj 11, 2006 10:04 am    Naslov sporočila:   Odgovori s citatom

Kako dolge izpade pa pricakujes ? Morda bi namesto akumulatorja (in vseh skrbi v zvezi s polnitvijo in ostalimi problemi akumulatorjev) lahko uporabil goldcap kondenzator, ki mu dodas pred napajanje eno diodo z nizkim zapornim tokom za preprecitev izpraznitve v napacno smer ob izpadu elektrike ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3358
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Čet Maj 11, 2006 2:11 pm    Naslov sporočila:  Tako? Odgovori s citatom

Če prav razumem, si mislil nekaj takega, kot sem narisal spodaj.
Za Goldcap sem šel gledat najprej na Google, potem v IC katalog.
Tam imajo samo en Goldcap kondezator, kapacitete 1F in napetosti 5,5V, kar bi moralo zadoščati.

Pa malo računajmo! (Če narobe razmišljam, me prosim opozori!)
Farad je As/V, se pravi, da bo pri napetosti 5V bil na kondenzatorju naboj 5As.
Le ta se bo praznil, najprej hitreje, potem vse počasneje, a za oceno vzamem kar, da se prazni enakomerno s tokom, ki ga pije RTC (clock mode tipical) 10 uA

5 000 000 / 10 = 500 000 sek to je čas, ki vse zahteve prenese. V resnici bi moral računati na izpad elektrike recimo 10 ur, kar je 36 000 sek, tukaj pa jih imam0 na razpolago 500.000 sek, kar opravičuje oceno, da iz tako približnega računa ocenimo, da ideja, ki jo sugeriraš, zadošča zadevam.

Upor, ki sem ga dal v serijo z diodo D2 naj omeji začetni tok polnjenja. Če bi priključil direktno, bi pri vklopu napetosti 220VAC, ki preko usmernika in transformatorja generira napetost 5V, le ta počasi naraščala proti 5 V, saj bi v začetku ves tok potegnil vase elektrolit. Počasno naraščanje pa bi lahko ogrozilo uspešen reset mikroprocesorja, ki ravno skok napetosti od 0 proti 5V uporabi kot Reset inpulz.
Z druge strani spet razmišljam, ali bo počasna rast napetosti od 0 proti 5 V ogrozila nihanje oscilatorja z kristalom, ki poganja RTC. Ali ni tudi tukaj ravno prehodni pojav tisti, ki 'zaniha' kristal? Bo RTC če je tako napajan, zanihal?



snap.jpg
 Opis:
 Velikost datoteke:  24.24 KB
 Pogledana:  45 krat

snap.jpg



_________________
Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Čet Maj 11, 2006 6:07 pm    Naslov sporočila:   Odgovori s citatom

Imajo jih tudi v HTEju, a pod oznako "back-up" (Kondenzatorji > Ostali kondenzatorji), v vecih variantah. IC ima pod oznako "goldcap" v online trgovini tudi navedenih vec razlicnih kapacitet, a pri njih niso oznacene zaloge, tako da je mozno, da jih nimajo.

Za resevanje morebitnih tezav ob resetu sicer obstajajo namenska vezja (Maxim jih izdeluje malo morje, "reset IC"/"uP supervisor" ali kaj v tem stilu), morda pa bi vendarle bil dovolj en logic-level FET za kondenzatorjem, ki bi se odprl sele takrat, ko bi bila napetost dovolj blizu 5V. Ker tvoje vezje porabi izredno malo toka, bi tisti kratek cas od odprtja do 5+V najbrz lahko prezivel brez pregretja. S tem bi sicer nekoliko povecal celotno porabo vezja in bi torej kondenzator zdrzal manj casa, a je izguba zelo majhna v primerjavi z drugimi aktivnimi resitvami.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
NeoTO
Član
Član



Pridružen-a: Pon 28 Mar 2005 19:19
Prispevkov: 2752
Aktiv.: 11.62
Kraj: Trzic

PrispevekObjavljeno: Čet Maj 11, 2006 6:39 pm    Naslov sporočila:   Odgovori s citatom

Če ti je problem z napajanjem, poglej po Dallasovih DS2417, ki mi je brez problema tekel 1 teden na 2200 uF kondenzatorju (baje vleče samo 200nA pri delovanju...).
vilko, pa med praznenjem, na kondenzatorju pada napetost, zato ne moreš izkoristiti vseh tistih 5As. Boš moral malce integrirati...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3358
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Čet Maj 11, 2006 9:36 pm    Naslov sporočila:  Bo treba probat! Odgovori s citatom

Bomo poizkusili in potem bom povedal, kako je bilo!
Pozdrav
vs

_________________
Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51 Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group