Schieberegister spielt nach 7 bits verrückt

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,
    ich arbeite zurzeit an einem projekt an dem ich 64 zweifarbige led's ansteuern muss (also 128 ausgänge). Ich hab das mit Schieberegistern (74hc595) gelöst und jetzt die erste platine mit 8 8bit Schieberegistern fertig. Die Schieberegister sind via optokoppler vom Raspberry getrennt.
    Jetzt hab ich aber ein problem:
    sobald ich mehr als 7 bits ins schieberegister gebe (sprich wenn das zweite register aktiv wird) spinnt irgentwie alles. meine LED's leuchten dann nicht mehr nur grün sondern rot orange und manchmal garnicht.
    wenn ich weniger als 7 bits nehm, also die ersten 3 LED's, funzt alles wunderbar.
    Was kann da das problem sein???

    Danke schonmal im vorraus
    MfG
    pibastler123

    Einmal editiert, zuletzt von pibastler123 (15. März 2015 um 16:10)

  • Hallo dreamshader,
    erstmal danke für die schnelle Antwort.

    Zitat

    Kann es sein, dass Du die Ausgänge überlastest?


    Aus diesem Grund hab ich die Transitoren drinnen.

    Zitat

    ohne Schaltplan (mir persönlich am liebsten mit Fritzing erstellt) lässt sich da wenig dazu sagen.


    Sorry, hab ich vergessen.
    Leider nur mit Eagle, aber kann man ja vllt. auch lesen ;)

    MfG
    pibastler123

  • Hi,


    ...
    Aus diesem Grund hab ich die Transitoren drinnen.
    ...


    also das Bauchgefühl sagt immer noch irgendwie Überlast ...
    aaaber ... ich hab' im Moment ein Verständnisproblem mit dem Datenblatt :s
    output current ist +/- 35mA ... an den Pins Qn - also den parallelen Ausgangspins. Ist das jetzt in Summe oder einzeln? Kann ich da irgendwie nicht rauslesen oder ich hab's überlesen ...
    Was zieht denn die Basis der BC337? Mal gemessen?
    Wie sieht denn das mit der 5V stromversorgung der LEDs aus? 100 Ohm scheinen mir auch ein bisschen zu wenig für die LEDs ..
    Na ... noch mal genauer gucken ...


    ...
    ...Leider nur mit Eagle ...
    ...

    passt doch auch ;)

    cu,
    -ds-

  • Hallo,

    Zitat

    also das Bauchgefühl sagt immer noch irgendwie Überlast ...


    Ich hab im moment nur drei led's dran. Auch wenn ich die alle auf orange schalte, also bit 0-5 auf 1 klappts immernoch, auch wenn bit 6 auch noch 1 ist klappts, aber sobald bit 7 auf 1 is ändern sich alle anderen ohne dass ich irgentwie ne 0 reinschieb.

    Zitat

    output current ist +/- 35mA ... an den Pins Qn - also den parallelen Ausgangspins. Ist das jetzt in Summe oder einzeln?


    Kann ich grad leider auch ned sagen

    Zitat

    Was zieht denn die Basis der BC337? Mal gemessen?


    Nein, noch nicht. Muss erst des ganze nochmal auf ner Steckplatine zammbaun.

    Zitat

    100 Ohm scheinen mir auch ein bisschen zu wenig für die LEDs ..


    ergibt sich aus 2,5V/0,025A (led's sind die hier: http://www.reichelt.de/DUO-LEDs-Blink…rtnr=LED+8+RG-3)

    MfG
    pibastler123


  • ...
    ... aber sobald bit 7 auf 1 is ändern sich alle anderen ohne dass ich irgentwie ne 0 reinschieb.
    ...


    na ok, dann - wie schon gesagt - muss ich mal genauer gucken ...


    Hallo,
    ...


    Nein, noch nicht. Muss erst des ganze nochmal auf ner Steckplatine zammbaun.


    na ... ich denke, das können wir uns schenken. Die Ursache scheint ja irgendwie mit dem 7. Bit zu tun zu haben ...
    Ausserdem klingen 2k7 erstmal ok für mich ...


    ...
    ergibt sich aus 2,5V/0,025A (led's sind die hier: http://www.reichelt.de/DUO-LEDs-Blink…rtnr=LED+8+RG-3)
    ...


    aja ... ok, das sind dann auch spezielle Teile wie auch vierpoligen RGB-LEDs.

    Nun dann .... mal gucken.
    Vielleicht entdeckt ja auch jemand anderes noch einen Knackpunkt.

    cu,
    -ds-

  • Hallo nochmal,

    ich hab jetzt nochmal bisschen rumprobiert, jetzt geht irgentwie garnixmehr. Das ganze register macht jetzt des was bei bit 0 drinsteht. also wenn ich ne 1 reinschieb geht des ganze register auf 1 und mit 0 genauso.
    Ausserdem kommen jetzt aus den 75hc165 nur noch einsen raus, trotz pulldowns. Aber an denen hab ich ja garnix gemacht.
    Bin grad weng am verzweifeln :(

    MfG
    pibastler123

  • Gratuliere ... Du hast den SMEC erfunden ... (Self Modifiying Electronic Circuit) :) ...

    Na jetzt mal ernsthaft:
    ich denke, da könnte das Ausmessen des PCB nicht schaden.
    Sieht fast so aus, als hättest Du da was gebastelt, was nicht mit der Schaltung übereinstimmt :s
    Vllt. auch ein Bauteil falsch/verdreht?
    Das ist ja jetzt echt blöd ...

    cu,
    -ds-

  • Hallo pibastler123.

    Also, wenn ich mit die Schaltung so angucke, fallen mir 2 Sachen auf:
    Wenn ich das richtig sehe, kommen doch clk,ser usw vom raspi.

    Das Schieberegister ist ein TTL Baustein.
    Du fütterst ihn (steuermäßig) gesehen mit 3,3 V.
    Was der dann macht ist fraglich. (Kann, muss nicht gutgehen).

    Die Transistoren haben keinen Basis Basis/Masse Widerstand.
    Mutig.
    d.h. Der Arbeistpunkt ist nicht defniert.... die Basis zieht "irgendwas".
    Wie dann das Schiebereigister darauf reagiert ?, k.A.

    Ich würde die Dinge erstmal ausmerzen.

    gruß root

  • Nicht aus dem Plan zu ersehen, aber ich vermute der 595 hängt an 5V Versorgunsspannung?
    Wenn ja, gibt es Stress mit den 3,3V an den Ausgängen vom Rasp.
    Laut Datenblatt sollen bei 4,5V Versorgung 3,15V Logic reichen.
    Ist bei 5V aber absolut grenzwertig.
    Bin ich selbst schon aufs Maul gefallen.....
    Und ist auch absolut tödlich, wenn SCL 5V und der Rest 3,3V bekommt.

    Zitat

    Das Schieberegister ist ein TTL Baustein.


    JAIN :D
    Der hat CMOS I/O und rennt zwischen 2 und 6 Volt Betriebsspannung.
    Datenblatt

    Geht nicht, gibts nicht. Reine Preisfrage....

    Einmal editiert, zuletzt von dale (15. März 2015 um 20:36)

  • Hi root,


    ...
    Die Transistoren haben keinen Basis Basis/Masse Widerstand.
    Mutig.
    d.h. Der Arbeistpunkt ist nicht defniert.... die Basis zieht "irgendwas".
    ...

    tja ... da verstehe ich jetzt was nicht :s
    Wie meinst Du das: die Basis hängt doch am Ausgang des Schieberegisters. Der ist doch entweder HIGH oder LOW ... also definiert.
    Du meinst jetzt, da müsste noch ein Pulldown hin? Oder hab' ich da was falsch verstanden.
    Sorry, ist vielleicht jetzt eine blöde Frage ... aber wenn ich was nicht kapiere dann hake ich da lieber gleich mal nach. Ich will ja auch noch was lernen ...

    Das mit der Ansteuerung sollte imho kein Problem darstellen ...

    Zitat


    The 74HC595; 74HCT595 are high-speed Si-gate CMOS devices and are pin compatible
    with Low-power Schottky TTL (LSTTL). They are specified in compliance with JEDE


    Quelle

    cu,
    -ds-

  • Hallo zusammen,

    Zitat

    Das Schieberegister ist ein TTL Baustein.
    Du fütterst ihn (steuermäßig) gesehen mit 3,3 V.
    Was der dann macht ist fraglich. (Kann, muss nicht gutgehen).

    lesen hilft:

    Zitat

    Die Schieberegister sind via optokoppler vom Raspberry getrennt.

    :P

    aber danke für die vielen antworten.
    Ich hab grad die ganze platine nochmal durchgeschaut. Des stimmt mitm schaltplan überein. Der einzige unterschied is dass ich statt zwei gleich acht register auf die platine gebaut habe, aber ansonsten passts.

    MfG
    pibastler123

  • Hallo pibastler123.


    lesen hilft:


    Kann ich schon :D

    Zitat

    Die Schieberegister sind via optokoppler vom Raspberry getrennt.


    und wie? zeigen bitte.

    Zitat

    pibastler123 schrieb: Hallo,
    ...

    Zitat:Was zieht denn die Basis der BC337? Mal gemessen?

    Nein, noch nicht. Muss erst des ganze nochmal auf ner Steckplatine zammbaun

    Da geht's schon los.
    Erstmal zu Anhang 1.
    Spannungsversorgung nominal heist für mich "recommend", also drüber oder drunter ist fragil.
    Wie dale sagte:

    Zitat

    Nicht aus dem Plan zu ersehen, aber ich vermute der 595 hängt an 5V Versorgunsspannung?
    Wenn ja, gibt es Stress mit den 3,3V an den Ausgängen vom Rasp.
    Laut Datenblatt sollen bei 4,5V Versorgung 3,15V Logic reichen.
    Ist bei 5V aber absolut grenzwertig.
    Bin ich selbst schon aufs Maul gefallen.....

    Dann zum Basisvorwiderstand.
    Da kommt Anhang 2 und 3 ins Spiel:
    Der Pegel ist aufgrund des Schieberegisters nicht sauber definiert (Tri-state).
    Da ist kein Pull-down, und Basisvorwiderstand.
    Die Basis zieht somit... irgendwas.
    Was ist, wenn die Basis an den max load kommt?, und du hast pro Ausgang einen Transistor ohne Arbeitspunkt.

    Anhang 3 ist ne grobe Standardformel, mit der ich bei 3,3 oder 5V nie Probleme hatte.
    Sie begrenzt den Basisstrom, und hält die Leitung bei Tri-state sauber auf low.

    Evtl. ist damit auch die Frage von -ds- geklärt :shy:

    Mal so als Tipp.

    gruß root
    //Edit
    immer dieses korrigieren müssen, sollte mal wieder zum Lieblingsaugendoc :)
    ...also, Rechtschreibfehler sind zwar mein geistiges Eigentum, dürfen aber übersehen werden :lol:

  • Hallo root,

    Zitat

    und wie? zeigen bitte.


    siehe anhang

    Zitat

    Wie dale sagte:


    Ja, der 595 hängt an 5V, aber um das 3,3V/5V Problem zu umgehen hab ich ja die Optokoppler.

    Zitat

    Der Pegel ist aufgrund des Schieberegisters nicht sauber definiert (Tri-state).


    Wenn ich ne 0 ins register schreib ist der ausgang doch low? oder hab ich da was falsch verstanden?

    Zitat

    Anhang 3 ist ne grobe Standardformel, mit der ich bei 3,3 oder 5V nie Probleme hatte.


    Damit hab ich das Problem dass das mit meinen LED's nicht klappt, weil die haben nen common ground.

    Aber trotzdem danke für die Antwort

    MfG
    pibastler123

  • Ich würde die Optos ganz vergessen. Den 595 mit 3,3 Volt betreiben.
    Kommen dann halt nur 3,3V an den Ausgängen an, muss evtl. der Widerstand für die Treiber angepasst werden.
    Optos haben auch die blöde Eigenschaft, unter bestimmten Bedingungen die Schaltflanken zu versauen. (Irgendwas mit Sättigung der Ausgangstransistoren zu tun. Gibt es gabze Bücher drüber)

    Geht nicht, gibts nicht. Reine Preisfrage....

  • Hi pibastler123.

    Also... irgendwie kommt mir das alles langsam spanisch vor. :denker:
    In deinem Post #3 sind plötzlich Transistor-Basiswiderstände drin... da hätte ich doch kein Wort drüber verloren.

    Im letzten Post von dir sind Optokoppler drin, die würde ich auch wie dale sagte weglassen, bei den Taktfrequenzen können die mucken.
    Wenn's mit 3,3V Ansteuerung nicht geht, nen Levelshifter, bist auf der sicheren Seite.

    Du schaltest ser,clk,rck. Ich hab iwie das Gefühl, du wirfst was durcheinander.
    Wo hast die Pin's MR und OE verdrahtet ? :huh:

    Das bezieht sich jetzt auf den OE

    Zitat

    Wenn ich ne 0 ins register schreib ist der ausgang doch low? oder hab ich da was falsch verstanden?


    Das ist korrekt, der ist auch 1, wenn du ne 1 reinschreibst.
    Wenn OE auf high geht wird der Ausgang "floating" also sehr hochohmig, und ein nachgeschalteter Transistor wird u.U spinnen. Egal, ob da ne 0 oder 1 reingeschrieben wurde.

    Dann zum MR oder auch SRCLR. Wenn der high wird, wird das komplette Register gelöscht.
    Hast den iwie mitgetaktet ?

    Vlt. solltest du dir das Diagramm im Anhang nochmal verdeutlichen (Ist aus dem Datenblatt).
    Der reagiert auf positive Flanke.

    Irgendwie gibst net alles preis, was da so getrieben hast. :lol:
    Den kompletten letzten Schaltplan hat außer dir auch keiner gesehen.

    nix für ungut :thumbs1:

    gruß root

  • Moinsen root,


    ...
    Das bezieht sich jetzt auf den OE


    Das ist korrekt, der ist auch 1, wenn du ne 1 reinschreibst.
    Wenn OE auf high geht wird der Ausgang "floating" also sehr hochohmig, und ein nachgeschalteter Transistor wird u.U spinnen. Egal, ob da ne 0 oder 1 reingeschrieben wurde.
    ...


    aha :thumbs1:
    So ist das also.
    damit ist meine Frage aus -> diesem Posting <- auch erledigt:

    Vielen Dank,
    wieder was dazu gelernt,
    -ds-

  • Hi -ds-

    ..fein .. freut mich :thumbs1:

    gruß root

    /Edit
    Vlt. noch ein Nachtrag für "Wissbegierige", wozu sowas, könnte man doch OE intern auf low legen.
    Ist größtenteils Historisch bedingt.
    Einfaches Beispiel:
    Eine 7-Segment Anzeige kann man damit ja ansteuern... mal vom BCD-Decoder abgesehen.
    Als zu Urzeiten der Taktgenerator noch mit ner Handkurbel generiert wurde... dauert halt bischen.
    Ne "3" an die Anzeige raustakten, mit ner Handkurbel, zeigt halt irgendwelche Hyroglyphen pro Takt bis das Bitmuster für ne "3" draussen ist ... irritert bißchen.
    Also, hat man solange gekurbelt wurde OE auf high gelegt, wenn fertig, auf low und schwubs... war die "3" ohne Hyroglyphen draussen .. :thumbs1:

    Einmal editiert, zuletzt von root (18. März 2015 um 00:29)

  • Hallo mal wieder,
    hab mich ja aus zeitmangel lange nicht gemeldet.

    Also:
    Ich hab die Optos raus und die 595's auf 4,5V. Keine veränderung.

    Zitat

    Du schaltest ser,clk,rck. Ich hab iwie das Gefühl, du wirfst was durcheinander.
    Wo hast die Pin's MR und OE verdrahtet ?


    siehe schaltplan. OE auf masse und MR über nen 10k auf 5 bzw. jetzt 4.5 V.

    hab jetzt auch mal den Basisstrom bei den Transitoren gemessen: 5mA. Nachdem ich 8 drin hab komm ich dann insgesamt auf 40mA. Sollte der 74HC595 ja noch mitmachen?

    Und bisschen Probiert hab ich auch noch:
    Wenn ich nur des erste register drin hab klappt alles. Sobald ich aber des zweite anschließ und des irgentwie angesteuert wird (also nach dem 7. bzw. 8. Bit) spielt alles verrückt. Auch des erste macht nichtmehr das was es soll ...
    Habe die Register auch schon paar mal ausgetauscht. Bringt auch nix.

    Ist es vielleicht möglich dass sobald das zweite Register was "Arbeiten" soll die Spannung am clk zusammenbricht und die Daten nichtmehr richtig übertragen werden? kann des leider nicht nachprüfen da ich kein oszi hab und des multimeter is bei den geschwindigkeiten bisschen langsam.

    mfg
    pibastler123

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!