Hallo,
ich wollte meine erste Schaltung mal real aufbauen.
Ich habe den Schaltplan mal angehangen.
Backgroundinformationen:
Es soll eine Binäruhr werden, wobei Stunden und Minuten, sowie eventuell
noch angezeigt wird ob es am oder pm ist. Die Leds werden Lowaktiv
angesteuert.
Außerdem soll über einen Taster die Uhr gestellt werden können, wenn der
Port 0.0 auf 0 gezogen wird(P0 hat ja interne Pullups).
Außerdem habe ich eine Uhrenquarz genommen, der soll ja am weigsten
Strom verbrauchen, daher 22pF Kondis genutzt(Quarz CL=12.5 pF).
Spannungsversorgung realisiere ich über 2* 3V Batterien(Jene, welche ich
nutze liefern mir grad laut Multimeter sogar genau 2*~2,53V) in Reihe.
Ich habe das ganze jetz mal so aufgebaut und es funktioniert nicht
wirklich, es kommen nur ca 2,7V an, wenn ich zwischen VDD & GND messe.
Habe auch mal gelesen einige Kondensatoren zwischen VDD & GND zu
schalten. Hat aber auch keine wirkliche Verbesserung gebracht.
Seht ihr denn irgendwelche Fehler? Wird die Spannugsversorgung irgendwie
besonders realisiert?
PS: Am Code dürfte es nicht liegen, hab das ganze schon an nem eval
board mal getestet.
Vielen Dank schonmal!
> Ich habe das ganze jetz mal so aufgebaut und es funktioniert nicht
wirklich, es kommen nur ca 2,7V an
Da werden dann halt deine Batterien nicht mehr die frischesten sein.
Wieviele LED waren denn an, als du gemessen hast?
> realisiere ich über 2* 3V Batterien(Jene, welche ich> nutze liefern mir grad laut Multimeter sogar genau 2*~2,53V
Eine 3V Batterie, die nur noch 2.5V liefert, würde ich mal aus dem Bauch
heraus als 'leer' bezeichnen.
Es gibt 8051er ADUC die mit 32.768KHz getaktet werden, intern eine PLL
für den Prozessor haben und gleich eine Echtzeituhr mitbringen.
Andererseits sollte ein vollstatischer 8051 auch mit 32KHz klarkommen,
und evtl reichen die bei einem 12Clock verbleibenden zweieinhalb KIPS
sogar für die Uhr (ohne jetzt nachzusehen ob besagter 8051 vollstatisch
und 12clock ist).
Andy D. schrieb:> Andererseits sollte ein vollstatischer 8051 auch mit 32KHz klarkommen,
Sieh einen anderen Thread von gestern, in dem sich ein
Nachwuchsprogrammierer mit genau derselben Methode (32kHz) ratz/fatz aus
seinem µC ausgesperrt hat, weil sein Brenner die ISP Frequenz nicht mehr
weit genug runterbekommt.
Ich verstehe ja, dass er Strom sparen will. Aber braucht ein normaler
Quarz wirklich soviel mehr Strom als ein 32kHz?
at89 beginner schrieb:> nutze einen at89c51ed2
Der uc hat einen seriellen Bootloader und kann mit FLIP programmiert
werden. Mit den 32768 Hz Quarz dürfte das jedoch nicht gehen.
Laufen würde der uc prinzipiell auch mit dieser Taktfrequenz. Ein
Taktzyklus würde ca. 360us dauern. Da ist in einer Sekunde nicht viel zu
schaffen, für eine einfache Uhr sollte es aber reichen. Der uc hat noch
den X2 Mode, wo alles doppelt so schnell abgearbeitet wird.
Ich würde aber auch einen höheren Quarz nehmen, einen womit FLIP noch
ordentlich zurecht kommt.
> P0 hat ja interne Pullups
Datenblatt komplett lesen: Gilt nur bei Verwendung von
MOVX/MOVC-Befehlen, die auf den externen Daten-/Programmspeicher
zugreifen.
Bei Verwendung als normaler Port ist da nüscht mit internen Pull-Ups,
braucht's externe.
Ralf
Karl Heinz Buchegger schrieb:> Ich verstehe ja, dass er Strom sparen will. Aber braucht ein normaler> Quarz wirklich soviel mehr Strom als ein 32kHz?
Nicht der Quarz verbraucht mehr Strom, sondern der Controller. Die
Stromaufnahme des Controllers steigt proportional zur Taktfrequenz mit
an. Und das macht zwischen 32768Hz und ein paar MHz schon einen
deutlichen Unterschied.
Aber ich halte es trotzdem nicht für Sinnvoll, den Controller so niedrig
zu takten. Ich würde da eher einen 1MHz Quarz nehmen. Dann könnte man
den Controller zeitweise schlafen legen und durch einen Timer aufwachen
lassen. Da hat man immer noch genug Rechenleistung um in kurzer Zeit die
Uhr zu aktualisieren und anschließend wieder in den Suspend Modus zu
gehen. Das macht mehr Sinn als den Controller nur mit 32768Hz zu takten.
Ciao,
Rainer
Fox Mulder schrieb:> Aber ich halte es trotzdem nicht für Sinnvoll, den Controller so niedrig> zu takten. Ich würde da eher einen 1MHz Quarz nehmen. Dann könnte man> den Controller zeitweise schlafen legen und durch einen Timer aufwachen> lassen. Da hat man immer noch genug Rechenleistung um in kurzer Zeit die> Uhr zu aktualisieren und anschließend wieder in den Suspend Modus zu> gehen. Das macht mehr Sinn als den Controller nur mit 32768Hz zu takten.
100% ACK
Wobei der 89c51ED2 nicht die beste Wahl ist wenns um Batteriebetrieb
geht.
Stephan schrieb:> Wobei der 89c51ED2 nicht die beste Wahl ist wenns um Batteriebetrieb> geht.
Bei LEDs an 100 Ohm dürfte der Stromverbrauch des MC egal sein.
Peter
Peter Dannegger schrieb:> Stephan schrieb:>> Wobei der 89c51ED2 nicht die beste Wahl ist wenns um Batteriebetrieb>> geht.>> Bei LEDs an 100 Ohm dürfte der Stromverbrauch des MC egal sein.
:-)
Ich geh ja doch davon aus, dass er einen der Taster als 'Ich will sehen'
Taster benutzt.
Was natürlich den ersten paar Batterie-Sätze nichts hilft, denn wenn was
neu ist, muss man alle 10 Sekunden drauflinsen :-)
Peter Dannegger schrieb:> Stephan schrieb:>> Wobei der 89c51ED2 nicht die beste Wahl ist wenns um Batteriebetrieb>> geht.>> Bei LEDs an 100 Ohm dürfte der Stromverbrauch des MC egal sein.>>> Peter
Das ist wohl wahr. Das ganze Konzept ist etwas unstimmig.
LED und Batterie passen nicht so richtig zusammen.
Deswegen ja die Frage nach dem Strom. Auch hätte ich einen 2051
genommen. Nicht solch einen Boliden.
Trotzdem gibts für Batteriebetrieb deutlich bessere Sachen als AT89Cxxx
Pieter schrieb:> at89 beginner (Gast),> kannst Du überhapt was mit hexadezimalen Zahlen anfangen und die ohne> Tabelle umrechnen?
Peter,
was soll er umrechnen, er git binär aus. Nur fehlen dafür noch 2 LED(s)
sehe ich gerade. Habe jetzt erst mal nachgezählt. Das wird eng mit 11
Bit.
Stephan Henning schrieb:> Habe jetzt erst mal nachgezählt. Das wird eng mit 11> Bit.
Wieso? Wenn das eine richtige Binäruhr ist dann reichen
5 Bit für die Stunden und 6 Bit für die Minuten.
skua schrieb:> Stephan Henning schrieb:>> Habe jetzt erst mal nachgezählt. Das wird eng mit 11>> Bit.>> Wieso? Wenn das eine richtige Binäruhr ist dann reichen> 5 Bit für die Stunden und 6 Bit für die Minuten.
00 0000 000 0000
1 1001 000 0000 19:00 Uhr
10 0000 000 0000 20:00 Uhr
10 0011 101 1001 23:59 Uhr
sind bei mir 13 Bit.
Hallo, danke für rege Beteiligung!
Also die Spannungsversorgung klappt, warern die Batterien.Hab jetz
einfach erstmal ein Netzteil drangehangen!
Zu euren Einwänden: Ja ist schon korrekt, das LED+Vorwiderstand auch
viel Strom brauchen, es sollte ja nur ein erstes Projekt werden um sich
reinzufinden, wollte mir das nicht um den Arm binden^^ Aber trotzdem gut
zu wissen!
Und den 32KHz Quarz wegzulassen verstehe ich auch, ist wahrscheinlich
sinniger diese zu nutzen, wenn man eine rtc benutzt.
Die LEDs müssten doch reichen, habe nur in der Beschriftung im
Schaltplan hour & min vertauscht(Asche auf mein Haupt^^).
Will ja kein BCD Code.
-----------------------------------------------------------------------
So also ich habe jetzt einen 12Mhz Quarz (CL=32pF) an der Schaltung.
Wenn ich jetz allerdings ein einfaches Programm auf den µC lade
#include "AT89C51xd2.h"
void main(void)
{
P1=0x00;
P2=0x00;
P3=0x00;
while(1);
}
...funktioniert das nicht, Pins alle auf high.
Könnte das jetz daran liegen, dass ich die CL´s bei 22pF gelassen hab
oder hab ich einfach irgendwas falsch verdrahtet?
LG
Stephan Henning schrieb:> 00 0000 000 0000> 1 1001 000 0000 19:00 Uhr> 10 0000 000 0000 20:00 Uhr> 10 0011 101 1001 23:59 Uhr
Schon klar aber das ist die einzelziffern Variante für die breite Masse.
skua schrieb:> richtige Binäruhr
So bei der 11 Bit Variante.
10111 111011 23:59
MfG
at89 beginner schrieb:> ...funktioniert das nicht, Pins alle auf high.
Vermutlich noch im Programmiermodus.
Entweder "Start Application" oder BLJB Häkchen weg.
Peter
Also: ich Programmiere das ganze über den Flip, wenn der µC im Eval
Board steckt, dort gehen die Ports auch auf 0.
Dann nehme ich ihn raus und setze ihn in die Schaltung. Deshalb müsste
die Application ja schon gestartet sein.
Was ist BLJB?
skua schrieb:> Stephan Henning schrieb:>> 00 0000 000 0000>> 1 1001 000 0000 19:00 Uhr>> 10 0000 000 0000 20:00 Uhr>> 10 0011 101 1001 23:59 Uhr>> Schon klar aber das ist die einzelziffern Variante für die breite Masse.>> skua schrieb:>> richtige Binäruhr>> So bei der 11 Bit Variante.>> 10111 111011 23:59>> MfG
o.k. Auch ich lerne dazu. Alles eine Frage der Darstellung.
Ich bin nicht drauf gekommen. Erst das Bild der Uhr hat es mir
offenbart.
Ich stamme eben von den 8 Bit Microcontrollern ab.
Die betrachten alles Byte oder Wortweise. Ich auch.
Eine gute Knobelaufgabe für eingerostete Gehirnzellen ab 40+. :-)))
Danke.
at89 beginner schrieb:> Also: ich Programmiere das ganze über den Flip, wenn der µC im Eval> Board steckt, dort gehen die Ports auch auf 0.> Dann nehme ich ihn raus und setze ihn in die Schaltung. Deshalb müsste> die Application ja schon gestartet sein.>>> Was ist BLJB?
Teste nicht auf Null oder High.
Nimm irgendeine Bitkombination. die ist nach vollziehbar.
zB. 01010101 oder 11110000 etc.pp
Dann weist Du ob der Controller arbeitet.
Nochmal eine Frage:
weiter oben schrieb Karl Heinz Buchegger von einem Ich will sehen
Schalter.
Wie nennt man denn diese Art der Nutzung für den Schalter?
Da ich das nicht weiß, konnte ich auch bei der Suche im Forum nix zur
Realisierung finden.
Also wenn der Taster gedrückt wird sollzen die jeweiligen Leds so 5
sekunden lang leuchten.
Kann mir da jmd. weiterhelfen?
Danke