Forum: Mikrocontroller und Digitale Elektronik DCF77 Uhr mit Atmega88, MAX232, MAX7219, etc.


von Florian (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich würde gerne als erstes etwas größeres Mikrocontroller Projekt eine 
Uhr selber bauen, die einen DCF77 Empfänger zur Zeiteinstellung benutzt 
(scheint ein beliebtes Anfängerprojekt zu sein :-)).

Ausserdem soll die Uhr einen MAX232 haben, damit ich die Zeit an einen 
Rechner senden kann, ein MAX7219, um acht 7 Segment Anzeigen 
anzusteuern, ein 8 Bit Schieberegister, um 7 LEDs anzusteuern, die den 
aktuellen Wochentag signalisieren, ein paar Taster, etc. etc..

Ich fänds toll, wenn mal jemand über meinen Schaltplan schauen würde, 
und mir ein paar Kommentare geben könnte (Sachen wie "Wo könnten noch 
Kondensatoren fehlen?", "Welche PIN Belegung ist eventuell falsch oder 
ungeschickt?", "Ist eventuell irgendwo zuviel Last?", "Was könnte man 
besser machen?", "Was könnte schief gehen?", etc.). Sachen wo ein 
Anfänger nicht dran denkt eben.

Den Schaltplan gibts im Anhang oder alternativ hier:
http://hackvalue.de/~flo/tmp/uhr_v3.png

Vielen Dank schonmal!

Viele Grüße
Florian

von Andreas K. (a-k)


Lesenswert?

D2 ist hier unnötig (weil D1 da und C5 klein).

Wie hattest du dir die Temperaturmessung mit dem AD590 vorgestellt?

Welche Spannung liegt an PC3,4,5 wenn Taster offen?

Widerstandwerte lassen sich nur kontrollieren wenn bekannt.

Die Beschaltung vom MAX232 kommt mir etwas unkonventionell vor (C9).

von Andreas K. (a-k)


Lesenswert?

Der Mega88 hat m.W. keine internen Lastkapazitäten am Oszillator.

von Sven P. (Gast)


Lesenswert?

Aaalso...

1. C5 größer machen (100uF oder sowas)
2. D2 ist sinnvoll (schadet zumindest net), aber obs hier uuuunbedingt 
nötig is, naja
3. an "QRZ" würd ich dir noch zu zwei Blockkondis (22pf oder so) raten
4. Guck, ob dein RS232-Pegelwandler 1uF oder 10uF braucht (Datenblatt!)

Ansonsten: Du darfst die Signale ruhig verbinden, dazu ist Eagle 
gedacht. Im Zweifelsfall auch gerne mit Bussen. 4049 und MAX7219 sind 
sowas von flüssig, ja quasi schon überflüssig. Der AVR packt das mit 
Multiplexing sowas von locker.

Hier, mein Wecker: http://e.svgweb.de/index.php/projects/clock/index.c

von Andreas K. (a-k)


Lesenswert?

Sven Pauli wrote:

> 1. C5 größer machen (100uF oder sowas)

Bei Gleichspannungsquelle nicht nötig, es sei denn das Stromkabel ist 
20m lang.

> 2. D2 ist sinnvoll (schadet zumindest net), aber obs hier uuuunbedingt
> nötig is, naja

Ist genau dann nötig, wenn in signifikantem Mass Strom rückwärts 
fliessen kann. Wenn C5 wie dimensioniert kann das nicht vorkommen.

Wäre sinnvoll ohne D1 oder mit C5=1000µF.

> 4. Guck, ob dein RS232-Pegelwandler 1uF oder 10uF braucht (Datenblatt!)

Es gibt 2 Typen vom Maxe: 100nF und 1µF.

von Florian (Gast)


Lesenswert?

Hallo Andreas,

Danke fürs angucken!

Der Temperatursensor ist kein "AD590" sondern ein "DS18S20" von 
Reichelt, sorry, das hätte ich dazu sagen sollen, es gab bei Eagle 
lediglich kein Schaltsymbol dafür :-) Soweit ich weiss gibt der die 
Temperatur per 1-Wire aus.

Der Quarz ist wird vermutlich ein 16 MHz Quarz.

Als Vorwiderstände für sämtlich LEDs hatte ich vor ca. 270 Ohm zu 
benutzen, was laut Datenblatt der LEDs empfohlen ist.

PC3,4,5, also die Taster. Hm, nicht sicher was du meinst. Sollte ich die 
als Active Low verbauen, d.h. nach GND statt VCC?

Die Beschaltung vom MAX232 habe ich aus irgendeinem Tutorial, URL gerade 
nicht zur Hand. Was wäre denn "die konventionelle Art"?


Was mir etwas Angst macht sind die vielen "DCF77 geht nicht!" Postings 
hier im Forum, aufgrund von unsauberer Versorgungsspannung, etc..

Viele Grüße
Florian

von Sven P. (Gast)


Lesenswert?

Is eindeutig zu warm, meine Bauteiltoleranzen werden immer größer...

von Andreas K. (a-k)


Lesenswert?

Florian wrote:

> Als Vorwiderstände für sämtlich LEDs hatte ich vor ca. 270 Ohm zu
> benutzen, was laut Datenblatt der LEDs empfohlen ist.

RGB-LEDs haben eine höchst unterschiedliche Lichtausbeute auf den 3 
Farben. Wenn du die also satt fahren willst, dann wappne dich für ein 
paar Versuche mit verschiedenen Widerständen, bis das einigermassen 
ähnlich hell wird.

Manche RGB-LEDs sind derart hell, dass sie bei dieser Dimensionierung 
schon als Scheinwerfer zu gebrauchen sind.

Alternativ kannst du das natürlich durch PWM ausgleichen.

> PC3,4,5, also die Taster. Hm, nicht sicher was du meinst. Sollte ich die
> als Active Low verbauen, d.h. nach GND statt VCC?

Das war der Sinn meiner Frage. Denn dann kannst du die internen Pullups 
verwenden. Interne Pulldowns gibt's nämlich keine.

> Die Beschaltung vom MAX232 habe ich aus irgendeinem Tutorial, URL gerade
> nicht zur Hand. Was wäre denn "die konventionelle Art"?

V+ und V- mit je einem C gegen GND.

> Was mir etwas Angst macht sind die vielen "DCF77 geht nicht!" Postings
> hier im Forum, aufgrund von unsauberer Versorgungsspannung, etc..

Meine (Pollin) geht.

von Andreas K. (a-k)


Lesenswert?

Florian wrote:

> Der Temperatursensor ist kein "AD590" sondern ein "DS18S20" von

Der mag es gern, wenn man ihm einen Pullup spendiert. Der interne vom 
AVR wird das zwar notfalls auch hergeben, wenn der DS direkt mit auf der 
Platine sitzt, aber ein separater 4K7 Pullup wäre trotzdem 
empfehlenswert.

von Florian (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

danke an alle die bisher drüber geschaut haben! Habe eine korrigierte 
Version (diesmal mit allen Leitungen eingezeichnet, wie Sven sagte, 
obwohl ich das nicht wirklich übersichtlicher finde) im Anhang.

Könnte noch einmal bitte jemand einen kurzen Blick drauf werfen? 
Vorallem Angst habe ich davor, dass irgendwo zuwenig/zuviele 
Kondensatoren/Widerstände sind und das hinterher sehr ekelig zu debuggen 
wird :-)


Für den RS232 Port hätte ich gerne eine LED, die genau dann leuchtet, 
wenn ein PC angeschlossen ist (falls es geht, sollte sie sogar nur dann 
leuchten wenn der PC auch eingeschaltet ist bzw. auf der seriellen 
Schnittstelle lauscht?). Geht soetwas? Vielleicht über den "Clear to 
Send" oder "Dataset Ready" Pin von RS232?

Viele Grüße
Florian

von Axel (Gast)


Lesenswert?

betreff LEDs für die Wochentage!
Da ja von diesen LEDs immer nur eine leuchtet kann man einen gemeinsamen 
Widerstand zur Strombegrenzung benutzen. Der müßte dann zwischen VCC und 
den zusammengefasten Anoden der Wochentags-LEDs liegen. Die Widerstände 
zwischen den Kathoden der LEDs und den IC-Ausgängen sind dann 
überflüssig (überbrücken). Hierdurch sparst du 6 Widerstände. Sollten 
bei der Softwareerstellung mehr als eine LED angesteuert werden ist das 
nicht schlimm, es geht nichts kaputt. Der Strom würde sich dann nur auf 
mehrere LEDs aufteilen, sie würden nur Schwach leuchten.
vielleicht ist es ja noch nicht zu spät.

von ... (Gast)


Lesenswert?

Axel schrieb:
> vielleicht ist es ja noch nicht zu spät.

Naja, nach 2 Jahren ist alles zu Spät.....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.