www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ansteuerung 74HC595


Autor: Michael Frangenberg (startrekmichi)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist denn aus CLR und OE geworden?

Autor: Michael Frangenberg (startrekmichi)
Datum:

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

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)?

Autor: Michael Frangenberg (startrekmichi)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann häng dem 595 einen 100nF Keramik direkt zwischen die Beine.

Autor: Michael Frangenberg (startrekmichi)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael Frangenberg (startrekmichi)
Datum:

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

Autor: Michael Frangenberg (startrekmichi)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael Frangenberg (startrekmichi)
Datum:

Bewertung
0 lesenswert
nicht 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)...

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael Frangenberg (startrekmichi)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.