Forum: Mikrocontroller und Digitale Elektronik schieberegister 74hc595, mega8 und leds


von kitesurfer1404 (Gast)


Lesenswert?

versuche verzweifelt einen 74hc595 an einem mega8 zum laufen zu kriegen.
es sollen 8 leds geschaltet werden. den aufbau habe ich der c't
entnommen, wo er so im c't bot verwendet wird. leider klappt die
ansteuerung nicht so, wie ich es mir vorgestellt habe - es passiert
garnichts, bis auf, dass am mega8 das rauskommt, was ich ausgebe (siehe
unten)
aber anscheinend ist da noch immer ein denkfehler drin. vom sinn her
soll das programm dem 595 mitteilen, welche led an, welche aus ist.
hier mein aufbau: (hc595 + atmega8)

hc595:
pin 8 (GND) : GND (ach was....)
pin 16 (vcc) : 5 V
pin 10 (sclr) : 5 V
pin 13 (g) : GND

pin 14 (SI) : pin 2 ( PD0 ) am mega8
pin 12 (RCK) : pin 4 ( PD2 ) am mega8
pin 11 (SCK) : pin 3 ( PD1 ) am mega8

an den ausgängen ( Qa - Qh ) LEDs mit vorwiderständen (200 ohm) gegen
GND

der aufbau für den 595 hier ausm forum stimmt so weit ja überein (oder
hab ich was vertauscht?), leider fehlt mir noch ein einfacher beispiel
code.

mein programm:

8x
{
bit für PD0 setzen (oder auch nicht, je nach gewünschtem
schaltzustand)

bit für PD1 setzen ( steigende flanke erzeugen )
PD1 zurück setzen
}

dann steigende flanke an PD2

und das ganze in ner endlosschleife hab ich auch schon versucht.

habe schon alles mögliche aus dem datenblatt des 595 versucht, leider
ohne erfolg.

hab auch die bauteile ausetauscht, aber das hats auch nicht gerichtet.
wie gesagt, mega8 gibt ein schönes signal auf dem oszilloskop, keine
reaktion am 595.

wäre euch für eine anfänger-freundliche antwort (wann muss ich wo was
an/aus schalten ;) ) sehr verbunden.
vielleicht einen kurzen quelltext, der einfach ein paar leds an, ein
paar aus schaltet.

danke schön

von Magnus Müller (Magnetus) (Gast)


Lesenswert?

--> mein programm:
-->
--> 8x
--> {
--> bit für PD0 setzen (oder auch nicht, je nach gewünschtem
--> schaltzustand)
-->
--> bit für PD1 setzen ( steigende flanke erzeugen )
--> PD1 zurück setzen
--> }

Hmmm... eigenartige Programmiersprache...

von kitesurfer1404 (Gast)


Angehängte Dateien:

Lesenswert?

hmpf... ;)
naja, hab jetzt mal mein letztes, verzweiflungs programm dran
gehängt^^
die wiederholung hatte ich teilweise auch mal weggelassen, teilweise
ganz am anfang mal RCK oder SCK gesetzt und und und
leider keine wirkliche hilfe das ganze.

von Jack B. (jackbraun)


Lesenswert?

In (8051)Assembler würde das ganze so aussehen(Bitfolge ist im Akku):

setb clock
For Zähler = 8
        rlc A
        mov Datenpin, C
        clr clock          ;fallende Flanke
        setb clock
next
setb RCLK                  ;Daten ins Ausgangsregister übernehmen
clr  RCLK

von Magnus Müller (Magnetus) (Gast)


Lesenswert?

@kitesurfer1404:

Kann es sein, dass einer oder mehrere der folgenden Punkte auf deine
Schaltung zutreffen?

 - die Schaltung ist auf einem Steckbrett aufgebaut
 - der HC595 hat keinen eigenen Abblockkondensator spendiert bekommen
 - der HC595 wird überlastet (lt. Datenblatt max. 75mA gesamt)
 - die Eingänge des HC595 sind mit den falschen Pins am AVR verbunden
 - die LEDs sind falsch herum bestückt (Anode / Kathode)

Gruß
Magnetus

von kitesurfer1404 (Gast)


Lesenswert?

also:

ja: die Schaltung ist auf einem Steckbrett aufgebaut
nein, (wo muss der hin?): der HC595 hat keinen eigenen
Abblockkondensator spendiert bekommen
nein: der HC595 wird überlastet (lt. Datenblatt max. 75mA gesamt)
(waren nur 2 leds im test dran, keine signale an den ausgängen
(multimeter/oszilloskop))
so wie es oben^^ steht, doppelt gecheckt:  die Eingänge des HC595 sind
mit den falschen Pins am AVR verbunden
auch doppelt kontrolliert, keine spannung am multimeter: die LEDs sind
falsch herum bestückt (Anode / Kathode)

von Magnus Müller (Magnetus) (Gast)


Lesenswert?

--> nein, (wo muss der hin?): der HC595 hat keinen eigenen
    Abblockkondensator spendiert bekommen

Den Kondensator (i.d.R. 100nF) direkt an die VCC-/GND-Pins des HC595
hängen.

--> ja: die Schaltung ist auf einem Steckbrett aufgebaut

Potentielle Fehlerquelle: relativ hohe Übergangswiderstände bei den
Federkontakten der Steckbretter (viel Spaß)

Ist GND des Controllers auch mit GND des HC595 verbunden? (Klingt
vielleicht etwas hirnverbrannt, aber solche Fälle gabs hier auch
schon!)

Gruß
Magnetus

von kitesurfer1404 (Gast)


Lesenswert?

hab an den drähten des hc595 direkt gemessen, weil ich mir so was schon
dachte, dass da was nicht richtig verbunden ist oder so. naja, kam auf
jeden fall was an.
GND ist auch an GND (habe nur ein GND, das auch überall mit ~1 Ohm zu
erreichen ist.)

versuche das jetzt mal mit den kondensatoren und nem neuen quelltext...

von kitesurfer1404 (Gast)


Angehängte Dateien:

Lesenswert?

also....
nun geht's
lag tatsächlich nur am quelltext.
so wie ich es sehe, hatte ich eine steigende flanke, um die bits
einzulesen, es wird aber eine fallende benötigt...
tja, der teufel ist ein eichhörnchen und steckt im detail und so
weiter.

vielen dank an alle, die mir weitergeholfen haben!

von kitesurfer1404 (Gast)


Lesenswert?

ach so, die wiederholund ist garnicht nötig, der hc595 hält die pins,
bis man ihm was neues gibt. wieder was gelernt :D

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.