Forum: Mikrocontroller und Digitale Elektronik Raspberry Pi mit 74595 Schieberegistern


von Daniel H. (danyag)


Lesenswert?

Hallo allerseits,

ich habe ein kleines Projekt begonnen, mit dem Ziel eine Art Ambilight 
(Hintergrundbleuchtung des Fernsehers um den Rahmen herum, die sich an 
den Kantenfarben des Bildes orientiert) zu bauen.

Eine Umsetzung dazu habe ich in einem anderen Forum entdeckt (ich hoffe 
ich darf den Link hier so einfach posten).
http://www.forum-raspberrypi.de/Thread-tutorial-ambi-tv-ambilight-fuer-hdmi-quellen

Statt einer fertigen LED-Leiste mit Controllern, wollte ich die Hardware 
gerne selber bauen und nur auf den Programmcode des verlinkten Projekts 
zurückgreifen.
Meine Umsetzung sieht vor 96 kaskadierte Schieberegister vom Typ 74HC595 
zu nutzen. Jedes Schieberegister soll mit einem eigenen DA-Wandler 
verschaltet sein und so die Helligkeitsinformation für eine einzelne LED 
ausgeben (3x32 LEDs -für Rot, Grün und Blau).


Nachdem ich zum Testen erstmal die Schaltung für 3 LEDs aufgebaut hatte, 
funktionierte alles wie gewünscht.
Jetzt habe ich eine ganze Platine mit 32 Schieberegistern fertig 
aufgebaut und bin mit meinem Latein (das nie besonders gut war) leider 
ein wenig am Ende ;)
Nachdem zuerst gar nichts mehr ordnungsgemäß funktionierte als ich die 
Platine testen wollte (bei manchen Farben flackern die LEDs bunt und 
wild), habe ich bemerkt dass es scheinbar an der Clk-Leitung liegt..

Wenn das Clk Signal direkt mit einer Leitung an alle Schieberegister 
geführt wird, reagieren diese -scheinbar- nicht wie gewünscht.
Wird die Leitung nach den ersten 3 Registern getrennt, gibt es keine 
Probleme. Die Leitungslänge auf der Platine dürfte im Bereich von 1m 
liegen.
Mit dem Oszi betrachtet kann ich kaum einen Unterschied zwischen den 
beiden Fällen entdecken, lade euch aber gerne später Fotos davon hoch.


Ich habe natürlich vorher nach anderen 595-Problemen geschaut, aber bin 
nicht sicher ob es bei mir die gleichen Fehlerquellen sind.

Zwei interessante Threads hier im Forum dazu:
Beitrag "74HC595 Platinenlayout"
Beitrag "74HC595 am Atmega8 => Verzweiflung"


Wäre super wenn ihr Rat für mich wüsstet!
Danke schon mal fürs Lesen ;)

Grüße
Daniel

von Karol B. (johnpatcher)


Lesenswert?

Daniel H. schrieb:
> Mit dem Oszi betrachtet kann ich kaum einen Unterschied zwischen den
> beiden Fällen entdecken, lade euch aber gerne später Fotos davon hoch.

Das wäre aber interessant. Genauso wie ein genauer Schaltplan. Ist der 
Raspberry Pi der Treiber für die Leitung? Der dürfte ein bisschen 
schwach auf der Brust sein, um meterlange Leitungen schnell genug zu 
schalten.

Mit freundlichen Grüßen,
Karol Babioch

von Peter (Gast)


Lesenswert?

Daniel H. schrieb:
> Jetzt habe ich eine ganze Platine mit 32 Schieberegistern fertig

Kannst du mal bitte den Schaltplan und das Layout posten ?

von Dirk K. (dekoepi)


Lesenswert?

Ich würde auch gerne das Foto des Boards sehen. Respekt vor der 
Lötleistung!

Aber so ganz ist mir nicht klar, warum man das so ineffizient lösen 
sollte. Bauteile für Umme dagehabt?

von Marcus W. (marcusaw)


Lesenswert?

Wieso eigentlich ein Schieberegister pro LED ? Oder meinst du ein 
Register im Baustein mit 8 Registern?

: Bearbeitet durch User
von Schimanski (Gast)


Lesenswert?

>Jedes Schieberegister soll mit einem eigenen DA-Wandler
>verschaltet sein und so die Helligkeitsinformation für eine einzelne LED
>ausgeben (3x32 LEDs -für Rot, Grün und Blau).

>Wieso eigentlich ein Schieberegister pro LED ?

>Aber so ganz ist mir nicht klar, warum man das so ineffizient lösen
>sollte.


Krass, oder?

DAS geht doch sicher auch anders...

von Karl H. (kbuchegg)


Lesenswert?

Schimanski schrieb:
>>Jedes Schieberegister soll mit einem eigenen DA-Wandler
>>verschaltet sein und so die Helligkeitsinformation für eine einzelne LED
>>ausgeben (3x32 LEDs -für Rot, Grün und Blau).
>
>>Wieso eigentlich ein Schieberegister pro LED ?
>
>>Aber so ganz ist mir nicht klar, warum man das so ineffizient lösen
>>sollte.
>
>
> Krass, oder?
>
> DAS geht doch sicher auch anders...

Natürlich. Da gibts LED-Treiber IC, in denen schon alles integriert ist.

zb
http://www.ti.com/product/tlc5955
2 Stück von denen, und die 96 benötigten Kanäle sind geritzt.

: Bearbeitet durch User
von Daniel H. (danyag)


Lesenswert?

So, da bin ich wieder...

Karol Babioch schrieb:
> Das wäre aber interessant. Genauso wie ein genauer Schaltplan. Ist der
> Raspberry Pi der Treiber für die Leitung? Der dürfte ein bisschen
> schwach auf der Brust sein, um meterlange Leitungen schnell genug zu
> schalten.

Verbannt mich nicht gleich, aber ich muss gestehen dass ich keinen 
Schaltplan entworfen habe.. :x könnte aber natürlich eben einen 
erstellen, der das Schema zeigt.

Ich hab als "Eingangspuffer" nen 74HCT365 genommen. In den gehen die 
Anschlüsse vom Pi rein und die Ausgänge gehen direkt zu den Registern.

Marcus W. schrieb:
> Wieso eigentlich ein Schieberegister pro LED ? Oder meinst du ein
> Register im Baustein mit 8 Registern?

Ja, du hast natürlich vollkommen Recht. Ein Baustein mit 8 Registern pro 
LED.

Dirk K. schrieb:
> Aber so ganz ist mir nicht klar, warum man das so ineffizient lösen
> sollte. Bauteile für Umme dagehabt?

Ich gebe zu, dass mir auch nicht mehr ganz klar ist warum ich es SO 
aufwendig und ineffizient gemacht habe. Das ganze ist wohl so 
entstanden, da das meine erste Schaltung im Bereich der Digitaltechnik 
ist und ich kaum Erfahrung damit habe. Daher habe ich mir eine Lösung 
mit bereits bekannten Bauteilen überlegt.
Letztlich stand ja auch der Spaß am Basteln hinter der Idee -sonst hätte 
ich die "Fertiglösung" gewählt.

Karl Heinz schrieb:
> Natürlich. Da gibts LED-Treiber IC, in denen schon alles integriert ist.
>
> zb
> http://www.ti.com/product/tlc5955
> 2 Stück von denen, und die 96 benötigten Kanäle sind geritzt.

Solche Lösungen waren mir leider bisher nicht bekannt und ich wüsste 
ehrlich gesagt auch nicht wo man so etwas beziehen könnte.
Hinzu kommt, dass ich mir den Code zum Programm zwar genau angeschaut 
habe, aber nicht wirklich wüsste wie ich ohne sehr sehr sehr viel Arbeit 
die Ausgabe ändern könnte.
Daher habe ich meine Schaltung darauf ausgelegt die Daten genau so zu 
nutzen wie es sich der Programmierer gedacht hat, bzw. wie es für einen 
LPD8806 nötig ist.


---> Soll ich die Screenshots vom Oszi als .jpg oder .png hochladen?
(Die Angaben vom Pop-Up widersprechen den anderen Angaben)

von Karl H. (kbuchegg)


Lesenswert?

Daniel H. schrieb:

>> zb
>> http://www.ti.com/product/tlc5955
>> 2 Stück von denen, und die 96 benötigten Kanäle sind geritzt.
>
> Solche Lösungen waren mir leider bisher nicht bekannt und ich wüsste
> ehrlich gesagt auch nicht wo man so etwas beziehen könnte.

Texas Instruments ist recht freigiebig mit Samples. Wenn ich es recht in 
Erinnerung habe, geben sie bis zu 5 Samples kostenlos ab.
Du bestellst dir über die Web-Site die 5 Samples und (heute ist 
Dienstag) am Freitag oder vielleicht auch erst nächsten Montag hast du 
sie bei dir am Tisch liegen. :-)
Kostet dich keinen Pfennig. TI zahlt sogar den Transport.

> zwar genau angeschaut habe, aber nicht wirklich wüsste wie ich ohne sehr sehr 
sehr viel Arbeit die Ausgabe ändern könnte.

Na, vielleicht dann beim nächsten Projekt. Jetzt weißt du ja, dass es 
fertige LED Treiber gibt.

: Bearbeitet durch User
von Daniel H. (danyag)


Angehängte Dateien:

Lesenswert?

So, hier die gewünschten Aufnahmen vom Oszi und Fotos der Platine.

3x zeigt Clk beim Anschluss von 3 Bausteinen
3x_ (eigentlich 3x+) zeigt die ansteigende Flanke des Taktes bei 
kürzerer   Zeitbasis

32x zeigt Clk beim Anschluss von 32 Bausteinen
32x_ Zeitbasis 200ns
32x__ 50ns

Ich denke dass in der "unsauber" ansteigenden Flanke mein Problem 
liegt.. oder?

Gruß
Daniel

Edit:
Karl Heinz schrieb:
> Du bestellst dir über die Web-Site die 5 Samples und (heute ist
> Dienstag) am Freitag oder vielleicht auch erst nächsten Montag hast du
> sie bei dir am Tisch liegen. :-)

Danke für den Ratschlag und die Erkärung :)

Karl Heinz schrieb:
> Na, vielleicht dann beim nächsten Projekt. Jetzt weißt du ja, dass es
> fertige LED Treiber gibt.

Das stimmt wohl.. was gelernt -Ziel erreicht ;>


Ich hoffe mein Platinenaufbau ist nicht allzu katastrophal und die 
vielen Kabel sind nicht direkt ein KO-Kriterium für die vorgesehene 
Funktion.

Die Taktrate von Clk liegt übrigens im Falle der Screenshots die ich 
gemacht habe bei 100kHz.. im Bereich bis 4MHz war das Problem aber immer 
das selbe.

: Bearbeitet durch User
von Dirk K. (dekoepi)


Angehängte Dateien:

Lesenswert?

Da sind zwar irgendwelche roten Bausteine, aber ich sehe keine 
Abblockkondensatoren, nur Widerstandsbatterien? 100nF zwischen Vcc und 
GND jedes einzelnen 74HC595. Ohne die konnte ich schon bei einem 
einzelnen Schieberegister zufälligen Krempel sehen.

Edit: Bild mal angehängt, wie das bei mir aussieht. Mit dem Touchpad 
bekomme ich grad keine ordentlichen Kreise/Linien hin, Entschuldigung 
für das dilettantische Einzeichnen ;)

Edit2: Sehe grad, du hast dir schöne Busse gezogen für Vcc und GND, wie 
bei mir auf meiner RAM-Bank. Da kannst du Kerkos oder SMD-Kondensatoren 
mit 100nF einfach quasi in die Mitte bei jedem Baustein zwischen Vcc und 
GND löten.

: Bearbeitet durch User
von Daniel H. (danyag)


Lesenswert?

Guten Morgen,

erstma' Danke für deine Mühen.
Ich habe momentan 100nF für jede Reihe von 4 Bausteinen verbaut.
-meinst du ich sollte für jeden einzelnen IC räumlich nahe nen 
Abblockkondensator platzieren?
Dein Bild ist gut ;)

Abgesehen von den Kondensatoren hatte ich jetzt das Gefühl, dass es 
tatsächlich an der begrenzten Leistungsfähigkeit des Treibers liegen 
könnte. Im Bild 32x__ vom Oszi kann man ja gut den Knick in der 
steigenden Flanke sehen.
Ich mutmaße jetzt absolut, aber kann es sein dass beim Erreichen der 
Schaltschwelle der ICs kurz die Leistung fehlt?

-> Weiß vllt. jemand was ich ggf. zur Kompensation machen könnte?


Gruß
Daniel

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Versuche es mal mit einer einfachen Treiberschaltung mit parallel 
geschalteten Gattern. Ein Beispiel dazu findest du hier:
http://de.wikipedia.org/wiki/Gate-Treiber#Einfache_Treiberschaltung

von Dirk K. (dekoepi)


Lesenswert?

Daniel H. schrieb:

> Ich mutmaße jetzt absolut, aber kann es sein dass beim Erreichen der
> Schaltschwelle der ICs kurz die Leistung fehlt?
>
> -> Weiß vllt. jemand was ich ggf. zur Kompensation machen könnte?

Ich schlage 100nF-Kondesatoren in der Chip-Mitte zwischen GND und Vcc 
vor. Gerne SMD, gerne schön klein, einfach dazwischenlöten. Gibt wohl 
noch paar andere Sachen, die einem sachkundigen E-Techniker die Haare zu 
Berge stehen lassen (ich bin keiner!), aber wenn du deine 
Fehlerbeschreibung mal hiermit vergleichst:
http://de.wikipedia.org/wiki/Blockkondensator

sollte genau das schon mal helfen. Das ist nicht so optional, wie es 
klingt. Kerkos verhalten sich zudem anders als Folienkondensatoren. Und 
einer-für-vier-Chips geht auch nicht. Hier gab es kürzlich eine 
Diskussion zu Abblockkondensatoren (1-2 Seiten zurück), solltest du mal 
lesen.

von Daniel H. (danyag)


Lesenswert?

Joe G. schrieb:
> Versuche es mal mit einer einfachen Treiberschaltung mit parallel
> geschalteten Gattern. Ein Beispiel dazu findest du hier:
> http://de.wikipedia.org/wiki/Gate-Treiber#Einfache_Treiberschaltung

ah, ok.. Danke!
-würde sich ein Mosfet vom Typ BS 170 eignen oder worauf sollte ich vor 
allem achten?
-können die einzelnen Gatter eines Bausteins parallel geschaltet werden 
oder sollten lieber einzelne Bausteine genutzt werden?



Dirk K. schrieb:
>
> Ich schlage 100nF-Kondesatoren in der Chip-Mitte zwischen GND und Vcc
> vor. Gerne SMD, gerne schön klein, einfach dazwischenlöten. Gibt wohl
> noch paar andere Sachen, die einem sachkundigen E-Techniker die Haare zu
> Berge stehen lassen (ich bin keiner!), aber wenn du deine
> Fehlerbeschreibung mal hiermit vergleichst:
> http://de.wikipedia.org/wiki/Blockkondensator
>
> sollte genau das schon mal helfen. Das ist nicht so optional, wie es
> klingt. Kerkos verhalten sich zudem anders als Folienkondensatoren. Und
> einer-für-vier-Chips geht auch nicht. Hier gab es kürzlich eine
> Diskussion zu Abblockkondensatoren (1-2 Seiten zurück), solltest du mal
> lesen.

Ok, auf die 100 Bauteile kommt es jetzt auch nicht mehr an ;x
War mir nicht bewusst dass die Logik-ICs da so kritisch sein können.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Daniel H. schrieb:
> -können die einzelnen Gatter eines Bausteins parallel geschaltet werden
> oder sollten lieber einzelne Bausteine genutzt werden?

Die Gatter eines IC können parallel geschaltet werden, es dürfen jedoch 
nur CMOS Gatter verwendet werden z.B. 74HC Serie. Die TTL Serie ist für 
Querströme nicht geeignet obwohl solche Schaltungen durchaus praktiziert 
wurden.

> würde sich ein Mosfet vom Typ BS 170 eignen
Ja

von Daniel H. (danyag)


Lesenswert?

Dann werde ich später mal mein Glück versuchen bzw. schauen dass ich 
schnell an geeignete Bauteile komme.
Danke schon mal!

-der "Knick" in der ansteigenden Flanke wird doch wahrscheinlich für die 
Probleme verantwortlich sein oder?

von FanOut (Gast)


Lesenswert?

Daniel H. schrieb:
> Jetzt habe ich eine ganze Platine mit 32 Schieberegistern fertig
> aufgebaut und bin mit meinem Latein (das nie besonders gut war) leider
> ein wenig am Ende ;)

Du hast einen HCT Ausgang und treibst damit 32 Eingänge? Das kann nicht 
funktionieren. Das Fan Out eines HCT Ausgangs ist IMHO 10, d.h. ein 
Ausgang kann maximal 10 Eingänge treiben. Mach sicherheitshalber nach 8 
Schieberegister wieder eine HCT Treiber als Verstärker dazwischen, also 
ein Gatter deines 74HCT365.

von MiWi (Gast)


Lesenswert?

Daniel H. schrieb:
>> einer-für-vier-Chips geht auch nicht. Hier gab es kürzlich eine
>> Diskussion zu Abblockkondensatoren (1-2 Seiten zurück), solltest du mal
>> lesen.
>
> Ok, auf die 100 Bauteile kommt es jetzt auch nicht mehr an ;x
> War mir nicht bewusst dass die


Och.... das ist aber nun doch schon seit mindestens .... 25-30 Jahren 
auch außerhalb der Halbleiterherstellerlabore bekannt daß diese blöden 
Chips (nicht nur die Logikm auch Analoglram) diese Abblock-Cs brauchen 
wie unsereins das Wasser zum Trinken, oder?

1 C zuviel macht nix, einer zuwenig ist ein Debug-drama....

PS - kann mich noch an S100-Boards erinnern wo am Stecker ein 10u Tantal 
oder sowas drauf war und dann hi oder da ein 10n Kerko verstreut 
wurde.... hat meinstens funktionert aber nachmessen möchte ich sowas 
heute nicht mehr...

Grüße

MiWi

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

FanOut schrieb:

> Du hast einen HCT Ausgang und treibst damit 32 Eingänge? Das kann nicht
> funktionieren. Das Fan Out eines HCT Ausgangs ist IMHO 10, d.h. ein
> Ausgang kann maximal 10 Eingänge treiben.

Was ist ein "Fan Out" bei einem CMOS-Gatter?

Soviel ich weiß, können HCT-Ausgänge so um die 4mA treiben. Die 
Stromaufnahme eines CMOS-Gatter-Eingangs liegt aber im µA-Bereich.

Ich kenne Fan Outs nur von "echten" TTL-Logik-Gattern wie zum Beispiel 
der LS-Reihe. Da ist der Fan Out meist 20.

> Mach sicherheitshalber nach 8
> Schieberegister wieder eine HCT Treiber als Verstärker dazwischen, also
> ein Gatter deines 74HCT365.

Vodoo hilft?

von FanOut (Gast)


Lesenswert?

Frank M. schrieb:
> Ich kenne Fan Outs nur von "echten" TTL-Logik-Gattern wie zum Beispiel
> der LS-Reihe. Da ist der Fan Out meist 20.

Du hast recht. Das FanOut 10 gilt, wenn ein HCT ein LS gatter treibt. 
Mea Culpa.

von Dirk K. (dekoepi)


Lesenswert?

Die SMD-Kerkos gibt es billig und einigermaßen schnell (1-2 Werktage) in 
der Bucht. Ich habe einmal ganz kleine SChei*erchen:
http://www.ebay.de/itm/100-x-100nF-100000pF-0805-50V-15-X7R-SMD-Kondensatoren-SMT-Ceramic-Capacitors-/281295788773

Die gibt es auch etwas größer:
http://www.ebay.de/itm/100-x-Kondensator-SMD-1206-100-nF-NEU-in-Gurt-/191152794098
Einfacher zu löten, aber beanspruchen auch mehr Platz in der Höhe.

von Lattice User (Gast)


Lesenswert?

Daniel H. schrieb:
>
> Ich denke dass in der "unsauber" ansteigenden Flanke mein Problem
> liegt.. oder?
>

Ja, das IST ein Problem.
Ist aber nicht das einzige. Du siehst auf den beiden anderen Signalen 
auch einen sehr hohen Störpuls, der muss auch weg.

Die unsaubere Flanke wegzubekommen ist gar nicht so einfach. Dazu muss 
das Signal terminiert werden. Serienterminierung (d.h. Widerstand in die 
Signalleitung an der Quelle) geht nicht bzw nur schlecht da du das 
Signal über eine längere Strecke von IC zu IC führst. Für eine 
Parallelterminerung (Widerstand am Ende gegen Masse) geht nicht, da der 
Quelltreiber nicht kräftig genug ist.

Wie wird eigentlich die Signalmasse von der Quelle geführt? So wie es 
aussieht existiert die nicht, sondern ist nur über die Masse der 
Stromversorgung verbunden.

Vorschläge:
Ein zusätzliches IC (am besten Schmitttrigge) um die Steuersignale 
(Daten, ShiftClock, Register Clock) von der Hauptplatine zu empfangen 
und auf der Platine zu verteilen.
Die Shiftclock nicht von IC zu IC führen, sondern in der Mitte nach 
oben/unten und immer Stichleitungen nach rechts und links. Damit 
reduziert sich die effective Länge und in Folge die Unsauberkeit.


Die Vorschläge der anderen bezüglich Abblockkondensatoren auch beachten! 
Eventuell auch noch einen grösseren an den Punkt der Einspeisung und 
eine Drossel davor.

von Daniel H. (danyag)


Lesenswert?

Also die Abblockkondensatoren sind bestellt und werden sobald wie 
möglich eingelötet. Allgemein ist der ganze Aufbau bzw. die Versorgung 
der Platine noch etwas "wild", da testweise aufgebaut.

Lattice User schrieb:
> Die unsaubere Flanke wegzubekommen ist gar nicht so einfach. Dazu muss
> das Signal terminiert werden.

Davon habe ich gelesen, aber nicht wirklich 'ne Ahnung von der 
Dimensionierung..

Lattice User schrieb:
> Wie wird eigentlich die Signalmasse von der Quelle geführt?

Ich hatte anfangs auch gehofft dass ich das vllt. vergessen hätte, aber 
die Verbindung ist da.. außer das Kabel wäre defekt -was ich gleich mal 
überprüfe.

Lattice User schrieb:
> Ein zusätzliches IC (am besten Schmitttrigge) um die Steuersignale
> (Daten, ShiftClock, Register Clock) von der Hauptplatine zu empfangen
> und auf der Platine zu verteilen.

Ich hätte noch einen 74HC14 (invertierend) und einen MOS 4584.. sollte 
einer davon in der Lage sein alle 32 Bausteine zu versorgen?


Was wäre denn wenn ich den Takt bspw. alle 8 ICs trenne und die 8er 
Gruppen jeweils getrennt mit dem Takt versorge?
-jede 8er Gruppe bekäme einen eigenen Gatterausgang eines 74HC(T)365.. 
oder ähnlich?

von demacus (Gast)


Lesenswert?

Hallo, was mir auch nicht so recht ersichtlich ist, ist woher deine 
Betriebsspannung kommt.
Hast du das mal überprüft? Eventuell schalten ja auch einige der 
Register bis dem ganzen Konstrukt der Saft ausgeht...

MfG

von Lattice User (Gast)


Lesenswert?

Daniel H. schrieb:
>
> Ich hätte noch einen 74HC14 (invertierend) und einen MOS 4584.. sollte
> einer davon in der Lage sein alle 32 Bausteine zu versorgen?
>

Der 74HC14 sollte reichen (der CMOS 4584 ist zu langsam für die 
74HC595).
Die Invertierung kannst du entweder in der Software beachten, oder 
einfach 2
Inverter des 74HC14 hintereinander schalten, der hat 6 und du hast 3 
Signale.


>
> Was wäre denn wenn ich den Takt bspw. alle 8 ICs trenne und die 8er
> Gruppen jeweils getrennt mit dem Takt versorge?
> -jede 8er Gruppe bekäme einen eigenen Gatterausgang eines 74HC(T)365..
> oder ähnlich?

Eventuell hinter dem 74HC14, kannst aber erstmal ohne probieren, aber 
ändere die Verteilung der Clock wie oben beschrieben.

von Daniel H. (danyag)


Lesenswert?

demacus schrieb:
> Hast du das mal überprüft? Eventuell schalten ja auch einige der
> Register bis dem ganzen Konstrukt der Saft ausgeht...

Die Spannungsversorgung sieht eigentlich recht stabil aus.. 'glaube da 
hapert es am ehesten an weiteren Abblockkondensatoren. Die, die ich 
verbaut habe, sind wohl ein wenig zu rar gesät.


Lattice User schrieb:
> Die Invertierung kannst du entweder in der Software beachten, oder
> einfach 2 Inverter des 74HC14 hintereinander schalten..

Ok, das hört sich ja gut an. Ich hätte ansonsten auch noch ein paar 
74HC04, die ja auch jeweils direkt 6 Inverter beinhalten.

Was genau erhoffe ich mir denn eigentlich vom Schmitttrigger?
Wenn der besser das ankommende Signal "erfasst" bzw. etwaige Störungen 
ignoriert, könnte/sollte die Ausgabe dann beim Treiben der vielen 
Schieberegister nicht trotzdem das gleiche Problem aufweisen?


> Eventuell hinter dem 74HC14, kannst aber erstmal ohne probieren, aber
> ändere die Verteilung der Clock wie oben beschrieben.

Gut.. bin am überlegen wo/wie ich die Clockleitungen zusammenführe. Auf 
der Platine ist nicht mehr so furchtbar viel Platz.

Ich hoffe dass morgen die Kondensatoren ankommen. Dann wollte ich wie 
folgt vorgehen:
1. Jeder IC  bekommt nen C
2. Schmitttrigger in den Eingang
3. Clk-Leitungen auf minimale Längen anpassen
4. ggf. Buffer in Form eines oder mehrerer 74HC365 zwischen 
Schmitttrigger und Schieberegister

Hab ich was vergessen? :)
-Wenn ich das gemacht habe, teste ich die Schaltung noch mal und schaue 
mir die Signale am Oszi an.

von Daniel H. (danyag)


Lesenswert?

Hey,

ich bins nochma' :)
Das ganze "Bauwerk" ist jetzt soweit fertiggestellt und funktioniert 
auch -mit Abstrichen.

Es bestehen ein paar Probleme, die wohl mit Störungen zu tun haben, 
welche ich leider nicht verstehe. Dazu gehört, dass ein Paar der 
angesteuerten LEDs manchmal geringfügig flackern.
Interessanterweise betrifft es nur die LEDs, die von 595ern gesteuert 
werden, welche "mittig" in der Kaskade liegen. D.h. von den 3x32 Leds 
(also 0-31 RGB) flackern manchmal die LEDs im Bereich ~ 18-24. Sowohl 
davor, als auch dahinter schauts gut aus.

Ich vermute dass mein Problem mit dem RCK-Eingang zusammenhängt.
Fragen:
1. Eigentlich sollte doch der RCK keinerlei Einfluss auf die 
durchgeschobene Daten haben?
2. Kann ein undefinierter Pegel, bzw. Störungen am RCK die Ausgabe am 
Seriellen Ausgang QH beeinflussen?


Dazu muss ich sagen, dass ich mein RCK-Signal momentan durch eine 
Logigschaltung gewinne -was die Problemsuche erschwert.
Die Logikschaltung erkennt das Ende eines Datenblocks (96Bytes + 16 
Nullen) und schaltet auf High um den Latch der Register zu aktivieren.

Zuerst -bei direkter Verschaltung von Logikausgang mit den 
RCK-Eingängen-hat das nur Störungen verursacht und ich habe festgestellt 
dass meine Logik nicht zum richtigen Zeitpunkt ausgelöst hat. Durch 
verschiedene Tests habe ich dann herausgefunden dass die Logik perfekt 
funktioniert, wenn ich RCK aller 96 Register auf Masse schalte.

Meine derzeitige Lösung verbindet Logik und RCK direkt, wobei RCK über 
ein 1nF Kerko für alle 96 Register an einem Punkt mit Masse verbunden 
ist.
Erstaunlicherweise funktioniert so alles recht gut. Ich glaube aber dass 
das teilweise Flackern damit zusammenhängt.

Habt ihr vllt. Tipps, wie ich RCK sauberer ansteuern kann oder dass ich 
RCK "besser auf Masse halten kann"?
Meine Logik und RCK scheinen sich gegenseitig zu stören...


Danke fürs Lesen und jeden etwaigen Ratschlag ;)

Grüße
Daniel

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Nimm doch einfach das CS Signal als RCK. Eine steigende Flanke sorgt 
beim 595er ja zum Speichern.
Das CS Signal wird von der Raspihardware auch automatisch erzeugt wenn 
du die write_block Funktion benutzt.

Ansonsten würde ich nicht einen starken Treiber für CLK UND!! RCK 
nehmen, sondern eine Treiberstufe alle 6 ICs.

Also Bustreiber 75HC245 rauspacken und als CLK/RCK Verstärker nehmen.
So hier: 
http://www.fritzler-avr.de/HP/!Bilder/ledscreen/sp_schieberegister.png
Damit kann man dann son Monster betreiben: 
http://www.fritzler-avr.de/HP/!Bilder/ledscreen/hp.jpg

Die ganzen Abblockkondis ahste ja sicherlich schon eingelötet?

Über welche Taktfrequenz reden wir hier eigentlich?

: Bearbeitet durch User
von Daniel H. (danyag)


Angehängte Dateien:

Lesenswert?

Guten Morgen,

Martin Wende schrieb:
> Das CS Signal wird von der Raspihardware auch automatisch erzeugt wenn
> du die write_block Funktion benutzt.

Ich danke dir! Ich hatte also tatsächlich schon die ganze Zeit das 
gewünschte Signal an zwei der SPI Pins anliegen -nur wusste ich das 
leider nicht..

Ich versuche jetzt gleich mal das CS-Signal für den RCK zu verwenden.
Wenn ich dann noch Probleme habe, besorge ich mal den von dir 
empfohlenen Bus-Treiber.

Die ganzen Abblockkondensatoren habe ich alle eingelötet, was aber 
leider keinerlei sichtbare Veränderung gebracht hatte.

Habe mal 3 Screens vom DSO angehängt.
Wahrscheinlich klar:
gelb: Clk
blau: Data
lila: Rck

Freuqenz liegt bei 250kHz.

Grüße
Daniel

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.