Forum: Mikrocontroller und Digitale Elektronik Schieberegister


von Assault (Gast)


Lesenswert?

Hi,
ich habe folgendes Ic als Schieberegister :
http://www.conrad.de/ce/de/product/155762/LOGIK-IC-M74HC595B1R-STM

Damit wollte ich das Programm aus dem AVR-Tutorial zum Thema 
Scheiberegister ausprobieren:
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister#Ansteuerung_per_SPI-Modul
Ich hab das Programm in dem µC geschrieben und die Schaltung so 
aufgebaut.
Trotzdem sind, unabhängig vom einprogrammierten Wert, alle Outputpins 
des Schiebregisters auf Low geschaltet. Ich hab schon bestimmt hundert 
mal die Schaltung kontrolliert und kann mir nicht erklären warum es 
nicht funktioniert.

von Jürgen (Gast)


Lesenswert?

Assault schrieb:
> http://www.mikrocontroller.net/articles/AVR-Tutori...
> Ich hab das Programm in dem µC geschrieben und die Schaltung so
> aufgebaut.

Die Versorgungsspannung für den HC595 fehlt im Schaltbild. Pin20 +5 und 
Pin10 GND (glaub).

von Assault (Gast)


Lesenswert?

Jürgen schrieb:
> Assault schrieb:
>> http://www.mikrocontroller.net/articles/AVR-Tutori...
>> Ich hab das Programm in dem µC geschrieben und die Schaltung so
>> aufgebaut.
>
> Die Versorgungsspannung für den HC595 fehlt im Schaltbild. Pin20 +5 und
> Pin10 GND (glaub).

Das hatte ich berücksichtigt. Pin8 an GND und Pin16 an Vcc.

von Jürgen (Gast)


Lesenswert?

Jürgen schrieb:
> Pin20 +5 und
> Pin10 GND (glaub).

Sorry 16=VCC 8=GND

von Thomas E. (thomase)


Lesenswert?

Assault schrieb:
> http://www.conrad.de/ce/de/product/155762/LOGIK-IC...
Ach du Sch...

Jürgen schrieb:
> Die Versorgungsspannung für den HC595 fehlt im Schaltbild. Pin20 +5 und
> Pin10 GND (glaub).
Der hat nur 16 Pins. Also 8(GND) und 16(Vcc).

mfg.

@Jürgen
Nächstes Mal bin ich schneller.

von HolladiePolla (Gast)


Lesenswert?

Schaltung ?
oder Glaskugel

von HolladiePolla (Gast)


Lesenswert?

HolladiePolla schrieb:
> Schaltung ?
> oder Glaskugel

Sorry Bild :-) wenn möglich

von Jürgen (Gast)


Lesenswert?

HolladiePolla schrieb:
> Schaltung ?
> oder Glaskugel
Oder Brille ?

Assault schrieb:
> Damit wollte ich das Programm aus dem AVR-Tutorial zum Thema
> Scheiberegister ausprobieren:
> http://www.mikrocontroller.net/articles/AVR-Tutori...


Hast du schon die Softwareversion ausprobiert ?

von HolladiePolla (Gast)


Lesenswert?

Ja Hab ich nun auf der Nase :-)

Aber ich habe mich auch mit dem Schieberegister rumgequält

von Assault (Gast)


Lesenswert?

Jürgen schrieb:
> HolladiePolla schrieb:
>> Schaltung ?
>> oder Glaskugel
> Oder Brille ?
>
> Assault schrieb:
>> Damit wollte ich das Programm aus dem AVR-Tutorial zum Thema
>> Scheiberegister ausprobieren:
>> http://www.mikrocontroller.net/articles/AVR-Tutori...
>
>
> Hast du schon die Softwareversion ausprobiert ?

Seltsam, die funktioniert absolut problemlos??

von Assault (Gast)


Lesenswert?

Wodrann kann denn das liegen? Ist vielleicht ein Fehler im Programm oder 
in der Schaltung?

von Thomas E. (thomase)


Lesenswert?

Assault schrieb:
> Wodrann kann denn das liegen? Ist vielleicht ein Fehler im Programm oder
> in der Schaltung?
Kaum. Eher falsch abgetippt. Oder Copy-and-Paste-Fehler.
Ist damit nicht schonmal einer auf die Schnauze geflogen?

Nimm' dir das Datenblatt und programmier das. Das ist in C ein 
Dreizeiler.

mfg.

von Flo (Gast)


Lesenswert?

Hi
Ich benutze die Funktion von hier
http://www.rn-wissen.de/index.php/Portexpander_am_AVR
ohne SPI Hardware.

Aber gebe meinem Vorschreiber recht mit

"Nimm' dir das Datenblatt und programmier das. Das ist in C ein
Dreizeiler."

Grüße

von Dietrich L. (dietrichl)


Lesenswert?

Es bleiben auch noch die Grundsatzfragen:
- läuft der µC?
d.h.:
- Fuses?
- Takt?
- Versorgungsspannung?
- mit einfachem Programm eine LED toggeln?

Gruß Dietrich

von Jürgen (Gast)


Lesenswert?

Hallo,
1
AVR-Assembler-Code
2
SchiebeOut:
3
    sbis  SPSR, SPIF            ; prüfe ob eine alte Übertragung beendet ist
4
    rjmp  SchiebeOut
5
    sbi   SCHIEBE_PORT, RCK
6
    cbi   SCHIEBE_PORT, RCK
7
8
>   sbi   SCHIEBE_PORT, RCK
9
10
11
    ret

Füge mal zum Test eine steigende Flanke hinzu.

von Jürgen (Gast)


Lesenswert?

.. oder tausche im Programm die beiden SBI/CBI Befehle.

von Jürgen (Gast)


Lesenswert?

Jupp, müsste ein Bug sein.
laut Warheitstabelle im Datenblatt übernehmen die Latches mit einer 
steigenden Flanke das Schieberegister.

von Assault (Gast)


Lesenswert?

Der µC funktioniert (die Software-Lösung klappt ja problemlos). Die 
beiden vorgeschlagenen Änderungen im Programm bringen allerdings keine 
Lösung. Die Pins sind immernoch alle auf Low.
Ist vlt die Beschaltung falsch?
http://www.mikrocontroller.net/articles/Datei:Mega8-595-SPI.png

von Assault (Gast)


Lesenswert?

Alsoooo:
Ich habe den Fehler gefunden, er liegt nicht im Programm, das 
funktioniert auch ohne die Änderungen. Der Fehler liegt in der 
Beschaltung, die Pins am AVR sind falsch (Angegeben ist zb Pin17 als 
SCK; SCK ist aber Pin19).
http://www.mikrocontroller.net/wikifiles/a/a6/Mega8-595-SPI.png

Man sollte das wohl im Artikel ändern, besser wäre wohl folgende 
Beschaltung :
http://www.rn-wissen.de/index.php/Portexpander_am_AVR#Schaltplan

von Jürgen (Gast)


Lesenswert?

Assault schrieb:
> er liegt nicht im Programm, das
> funktioniert auch ohne die Änderungen.

Sicher ?

Schau mal ins Datenblatt Seite 2

http://www.reichelt.de/index.html?;ACTION=7;LA=3;OPEN=0;INDEX=0;FILENAME=A240%252F74HC595%2523STM.pdf;SID=13T4mJP38AAAIAADjDbEo7869f99281d344f4705b035534e8139f

Hier steht...
RCK steigende Flanke: S.R. DATA IS STORED INTO STORAGE REGISTER
RCK fallende Flanke:  STORAGE REGISTER STATE IS NOT CHANGED

Also muss erst   "cbi   SCHIEBE_PORT, RCK" und dann "sbi   SCHIEBE_PORT, 
RCK" ins Programm.

Da das Programm nur einen konstanten Wert übermittelt, klappt das 
trotzdem, aber erst nach dem 2. flashen des M8.
Resette mal den hc595 und dann den Mega8 und schau was am Ausgang des 
595 ankommt.

von Jürgen (Gast)


Lesenswert?

Assault schrieb:
> Der Fehler liegt in der
> Beschaltung, die Pins am AVR sind falsch (Angegeben ist zb Pin17 als
> SCK; SCK ist aber Pin19).

Da hat jemand DIL mit SMD verwechselt.

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.