Forum: Mikrocontroller und Digitale Elektronik Ansteuerung 74HC595


von Michael F. (startrekmichi)


Lesenswert?

Hi

Ich bastel mir hier grad etwas für meinen Flugsimulator, die
komplizierten Teile funktionieren auch schon alle. Nur bei den
eigentlich einfachen Dingen hängt's mal wieder.
Also, hier erst mal meine Ausstattung:
ATmega162 @14,318MHz   AVRStudio4 yaap

Nun würde ich ganz gerne 12 LEDs ansteuern, diese sind an zwei
kaskadierte 74HC595 angeschlossen. Die LEDs sind direkt mit einem
Vorwiederstand (330 Ohm) zwischen Chip und GND geschaltet.
Ich habe bereits ausgemessen, dass diese LEDs jeweils 8,7-8,8mA ziehen.
Das ist grad noch so in den Spezifikationen des 74HC595.

hier noch ein bischen Sourcecode, mit dem ich versucht habe, die
Schieberegister anzusteuern. (ist nur ein Beispiel, ich hab da schon
einiges probiert...):

.equ SI      = 1
.equ RCK_pin = 3
.equ SCK_pin = 4

sbi PORTB, SI
nop
sbi PORTB, SCK_pin
nop
cbi PORTB, SCK_pin
nop
cbi PORTB, SI
nop
sbi PORTB, SCK_pin
nop
cbi PORTB, SCK_pin
nop
sbi PORTB, RCK_pin
nop
cbi PORTB, RCK_pin

Nun ist die Frage, warum die Schieberegister nicht reagieren und v.a.
wie man das beheben könnte?
Schon mal danke

von A.K. (Gast)


Lesenswert?

Was ist denn aus CLR und OE geworden?

von Michael F. (startrekmichi)


Lesenswert?

Ups, sorry hab ich vergessen
SCLR liegt immer auf Vcc (kein löschen)
G    liegt immer auf GND (Ausgänge immer aktiv)

von A.K. (Gast)


Lesenswert?

Dann bleibt noch die Frage, was ohne LEDs mit dem 595 passiert. Denn der
Code oben ist schon ok (die NOPs sind überflüssig). Nur kann es sein,
dass der 595 über den geschalteten Strom Störungen einfängt. Wie ist
der abgepuffert (Kondensator zwischen VCC/GND, Typ, Entfernung)?

von Michael F. (startrekmichi)


Lesenswert?

Auf der Platine hab ich bisher nur die beiden ATmegas abgepuffert (einer
davon ist noch nicht mal eingebaut). Sprich das Schieberegister hängt
über ca 7cm Draht am Ausgang der Stromversorgung (7805+Kondis).

von A.K. (Gast)


Lesenswert?

Dann häng dem 595 einen 100nF Keramik direkt zwischen die Beine.

von Michael F. (startrekmichi)


Lesenswert?

Aber ich könnte mal ein paar 100nF Kerkos an die Schieberegister bauen,
mal schaun, ob das was bringt.
Allerdings dachte ich bisher, dass "normale" ICs wie die 74HC-Reihe
relativ unempfindlich gegen Störungen ist

von Michael F. (startrekmichi)


Lesenswert?

^^ War zu langsam
Ok, danke für den Tip
(bin in ein paar Minuten fertig und teste es dann)

von Michael F. (startrekmichi)


Lesenswert?

Also beide 74HC595 haben jetzt einen 100nF Kerko zwischen Vcc und GND,
jedoch passiert weiterhin nichts, d.h. keine der LEDs leuchtet.
Wenn die Versorgungsspannung längere Zeit aus war und dann wieder
eingeschaltet wird, leuchten für ca 1s alle LED, danach gehen sie aber
alle wieder aus.

von Michael F. (startrekmichi)


Lesenswert?

verdammt, ich bin so dumm. Wahrscheinlich hab ich mein einlöten der
Drahtbrücken was verwechselt, ich hab grad nochmal alles ausgemessen
und gesehen, dass SCLR auf GND liegt.

Fazit: ich kann keine Platine aufbauen, in der nciht mindestens 5
Fehler sind (Oszi hatte anfangs auch keinen Strom)...

von A.K. (Gast)


Lesenswert?

Kein Softwareproblem - soviel ist klar.

Kannst das ja mal annähernd software-frei testen. Ein Ausgang vom
Controller produziert einen Takt 1Hz oder weniger - kann man ja
problemlos kontrollieren. Dieser Takt geht an beide Takte vom 595. Der
Kaskadenausgang (Q7' oder wie immer der in deinem Datasheet heisst)
geht via Inverter zurück an den Eingang. Egal wie der 595 anfängt, so
beschaltet muss ein Muster durch die LEDs laufen und wenn es ein
einfaches 50/50 Lichtband ist. Wenn nicht - Hardwareproblem.

von A.K. (Gast)


Lesenswert?

Einfache Regel: Wenn alles zusammengelötet ist, sämtliche Verbindungen
aller ICs durchklingeln, bevor das Zeug erstmals eingeschaltet wird.
Hilfreich dabei: akustischer Durchgangstester. Sind fast immer Fehler
drin.

von Michael F. (startrekmichi)


Lesenswert?

Es lag genau dadran: SCLR des ersten Schieberegisters lag an GND (das
war allerdings ein Denkfehler, da der Pin mit einer kurzen Drahtbrücke
vom ISP-Steckkontakt versorgt werden sollte. Dummerweise hab ich da den
falschen Pin angenommen).

That's life...

Naja, jetzt funktioniert's, fehlen nur noch die Drehimpulsgeber...

Und natürlich danke für die Tips!!!

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.