Ansteuerung 74HC595

OP #216654
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
Gast #216657
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)?
Gast #216664
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.
Gast #216665
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.
OP #216666
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!!!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren