Hallo Zusammen, folgende Situation: Ein PIC32MM0128GPM048 auf Board A, hat zu wenige 24V-Ausgänge, weshalb ich mit einem 74HC595 auf Board B 16 weitere 24V-Ausgänge schaffen möchte. Ausgangsschaltung auf Board A siehe „24V-Ausgang_Board_A“. Hier ist im 24V-Ausgang gleichzeitig ein 24V-Eingang auf verschiedene Pins am µC (O9 und I9). Via Software kann die Funktion gewählt werden, funktioniert, macht keine Probleme bei der bisherigen Verwendung. Bei der Ansteuerung des 74HC595 über diese 24V-Ausgänge kommt es aber zu Problemen (den Teilern und Cs für den Eingang geschuldet), diese habe ich durch Verwendung eines LM339 umgehen können. Vref sind hier ½ Vcc, also 12V. Die 24V werden über einen Teiler auf 18V reduziert um den nötigen Abstand zu Vcc des LM339 zu erreichen, siehe „Input“. Wie gewünscht sorgt der LM339 für eine hohe Flankensteilheit am Eingang des Schieberegisters im Vergleich zu den reinen 24V-Eingängen mit Teiler. Mit Oszi habe ich die Eingangssignale am 595 aufgezeichnet, leider zeigt dieser nicht die gewünschte Funktion trotz "sauberer" Signale. Der Screenshot ist vom Oszi ist dummerweise einer ohne Daten sondern nur das Initialisieren des 595 mit Nullen. Pulsdauer 10ms On und 10ms Off. Bei Verwendung eines ESP8266 direkt an den 595 funktioniert alles wie gewünscht. Was habe ich übersehen? Edit: Auf anraten habe ich den Kompletten Schaltplan als ganzes angehängt. Grüße Felix
:
Bearbeitet durch User
Glaubst Du die Leute hier haben Lust Deine Schaltplanfragmente zu einem vollständigen Plan zusammen zu setzen? Dir ist (hoffentlich) klar was Du da tust, der Außenstehende muß sich erst einmal in Deine Gedankengänge einarbeiten, um überhaupt Hilfestellung geben zu. Auch wenn es momentan wohl gerade schick ist für jeden IC ein eigenes Blatt zu malen, bleibt es eine Unsitte, die anderen Leuten das Verständnis der Schalung unnötig erschwert.
Felix schrieb: > Ausgangsschaltung auf Board A siehe „24V-Ausgang_Board_A“. Und warum gehst du da nicht einfach ohne Komparator über einen (hinreichend niederohmigen) Spannungsteiler direkt auf den 595? Warum ist in diesem Ausgang eigentlich der unnötige C9 drin, der beim Einschalten der 24V jedes Mal geladen und beim Ausschalten erst noch entladen werden muss? > Mit Oszi habe ich die Eingangssignale am 595 aufgezeichnet, leider zeigt > dieser nicht die gewünschte Funktion trotz "sauberer" Signale. Was tut er denn stattdessen? Wie gut passt das Timing an den Pins des 595 zu dem, was er an diesen Pins laut Datenblatt erwartet?
Felix schrieb: > Ein PIC32MM0128GPM048 auf Board A, hat zu wenige 24V-Ausgänge Hmm, wenn T109 nur -20V Gate-Spannung aushält, an orange aber 24V anliegen, killt C309 den T109. Wer auch immer den Murks verzapft hat. Felix schrieb: > leider zeigt dieser nicht die gewünschte Funktion trotz "sauberer" > Signale Tja. An deiner extrem aufwändigen Schaltung liegt es demnach also nicht. Felix schrieb: > Bei Verwendung eines ESP8266 direkt an den 595 funktioniert alles wie > gewünscht. Klingt, als ob man die 595 Steuersignale vor den nicht kurzschlussgeschützten nicht rückwirkungsgeschutzten 24V Pegelwandlern an T209 abgreifen sollte.
Felix schrieb: > Ein PIC32MM0128GPM048 auf Board A, hat zu wenige 24V-Ausgänge Um es genau zu sagen: Ein PIC32MM0128GPM048 hat gar keine 24V-Ausgänge. Laut Datenblatt vertragen die GPIOs im günstigsten Fall maximal 6V (DS Kap. 29.0).
Erstmal Vielen Dank für eure Antworten. Hans schrieb: > Glaubst Du die Leute hier haben Lust Deine Schaltplanfragmente zu einem > vollständigen Plan zusammen zu setzen? Entschuldigung mein Fehler, ich dachte das wäre so üblich. Ich hab den Plan hochgeladen. Lothar M. schrieb: > Und warum gehst du da nicht einfach ohne Komparator über einen > (hinreichend niederohmigen) Spannungsteiler direkt auf den 595? > > Was tut er denn stattdessen? Wie gut passt das Timing an den Pins des > 595 zu dem, was er an diesen Pins laut Datenblatt erwartet? Das Problem ist, das Board A ist schon fertig so im Einsatz und im Nachhinein wollte man noch kleine LED Anzeigen(Ausgänge) haben, da hatte ich dann durch andere Projekte die Idee mit den Schieberegistern. Der 595 macht gar nichts, kein Ausgangssignal. Ich habe das Datenblatt von TI hoch und runter gelesen sowie manche Applikations Notes und leider komme ich nicht dahinter wo das Problem liegt, deshalb ja der Beitrag hier im Forum. Mir ist bewusst das die Ansteuerung durch Board A weit weg von Optimal ist, aber ich kann das Design leider nicht ändern sondern nur versuchen eine Lösung zu suchen. Grüße Felix
Felix schrieb: > Der 595 macht gar nichts, kein Ausgangssignal. Ich habe das Datenblatt > von TI hoch und runter gelesen Nochmal: der 595 erwartet einen bestimmten zeitlichen Ablauf und bestimmte Pegel an seinen(!) Eingangspins. Ich sehe da nur Messungen am (eigenartig gezeichneten) Komparator. Hast du nachgemessen, ob diese Pegel und Zeiten an den Pins des 595 zu dessen Datenblatt passen. Aus dem Oszi-Screenshot kann man da leider nichts sehen, weil weder Spannungen noch Zeiten zu erkennen sind. Irgendwie erkenne ich in dem Suchbild übrigens nicht, dass SER vom IC2 irgendwo angeschlossen ist, wenn die Brücke zu SER_DIRECT offen ist. Es ist übrigens eine ganz schlechte Idee, ein Signal SER und eines SER' zu nennen, weil man den "Mückenschiss" beim ersten Blick gar nicht sieht. Es ist übrigens auch eine schlechte Idee, die Schieberegister nicht zwischendurch mal mit SRCLR# zurückzusetzen. Denn wenn ein einziges Mal ein ESD-Spike auf dem Takt kommt, ist fürderhin die Übertragung um 1 Bit versetzt. Ergebnis: die falschen LED leuchten.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Felix schrieb: >> Der 595 macht gar nichts, kein Ausgangssignal. Ich habe das Datenblatt >> von TI hoch und runter gelesen > Nochmal: der 595 erwartet einen bestimmten zeitlichen Ablauf und > bestimmte Pegel an seinen(!) Eingangspins. Ich sehe da nur Messungen am > (eigenartig gezeichneten) Komparator. Hast du nachgemessen, ob diese > Pegel und Zeiten an den Pins des 595 zu dessen Datenblatt passen. Aus > dem Oszi-Screenshot kann man da leider nichts sehen, weil weder > Spannungen noch Zeiten zu erkennen sind. Ich erstelle morgen nochmal bessere Screenshots vom Oszi mit Pegeln etc. Als Datenblatt habe ich dieses benutzt https://www.ti.com/lit/ds/symlink/sn74hc595.pdf?ts=1706511779986&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252Fde-de%252FSN74HC595 so wie ich das verstehe ist auf Seite 6 bei 6.6Timing Requirements die Maximale Schaltfrequenz Schaltfrequenz angegeben und die Minimalen Zeiten welche das Signal anstehen muss. Jedoch nicht das man nicht auch langsamer sein dürfte? An die Grafik habe ich mich gehalten, wann welches Signal kommen soll. Nur mit dem Unterschied das ich OE und SRCLR# fest verbunden habe. 6.7 Switching Characteristics erklärt dann wie schnell der 595 reagiert? Habe ich etwas übersehen? > Irgendwie erkenne ich in dem Suchbild übrigens nicht, dass SER vom IC2 > irgendwo angeschlossen ist, wenn die Brücke zu SER_DIRECT offen ist. > Den Teil kann man noch ignorieren, mit dem Plan bin ich noch nicht ganz fertig. > Es ist übrigens eine ganz schlechte Idee, ein Signal SER und eines SER' > zu nennen, weil man den "Mückenschiss" beim ersten Blick gar nicht > sieht. In der Tat, das überarbeite ich gleich. > Es ist übrigens auch eine schlechte Idee, die Schieberegister nicht > zwischendurch mal mit SRCLR# zurückzusetzen. Denn wenn ein einziges Mal > ein ESD-Spike auf dem Takt kommt, ist fürderhin die Übertragung um 1 Bit > versetzt. Ergebnis: die falschen LED leuchten. Ja das hatte ich auch erst überlegt, kostet mich aber wieder einen Pin, als workaround schiebe ich 1 mal pro Sekunde ein neues Bitmuster raus. (zumindest war so der Plan) Grüße
Felix schrieb: > Ja das hatte ich auch erst überlegt, kostet mich aber wieder einen Pin, > als workaround schiebe ich 1 mal pro Sekunde ein neues Bitmuster raus. Du kannst das auch 10x pro Sekunde rausschieben. Dann bist du halt 10x pro Sekunde um ein Bit versetzt. Denn ausser Tritt ist ausser Tritt. > (zumindest war so der Plan) Den musst du nochmal durchdenken. Denn auch wenn das jedes Arduino-Tutorial so macht, wird die grundlegende Idee nicht besser. Nicht umsonst wird der Pin im Datenblatt dynamisch vor jeder Übertragung passend angesteuert. > kostet mich aber wieder einen Pin Ich würde probieren, den RCLK zu invertieren und das invertierte Signal an den SRCLR# zu legen. Denn wenn du dir das Timingdiagramm mal genauer anschaust, dann siehst du, dass die quasi "gegenläufig" also "invertiert" sind.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Denn ausser Tritt ist ausser Tritt. Nein. Den SRCLR kann man vollständig ignorieren, wenn man ihn fest auf 0 legt. Das Schieberegister wird einfach die letzten 8 reingeschobenen Bits ausgeben, beim nächsten rewrite ist wieder alles gut, sofern nicht wieder ein ESD-Extrabit kommt. Dann hilft dir aber SRCLR auch nicht... ;) Felix schrieb: > Jedoch nicht das man nicht auch > langsamer sein dürfte? Gibt es auch nicht, das Ding ist statisch. Das kannst du mit Tastern machen, wenn die entprellt sind. Felix schrieb: > Der 595 macht gar nichts, kein Ausgangssignal. Nochmal zur Verdeutlichung: - du steuerst mit dem µC die 24V-Ausgänge an - diese liest du wieder ein - über den Komparator auf 5V "digitalisiert" - auf die Steuersignale des Schieberegisters - Es gibt keine Ausgangsaktivität am SR Checkliste: - SRCLR high? - OE low? - Daten bei steigender Flanke an SER (und entsprechend lange vorher/nachher) richtig? - Nach dem reintakten aller Daten einmal RCLK high->low "getickert"? Der Chip ist der einfachste Schieberegisterchip den es gibt, aber man muss die Daten lange genug vor der steigenden Flanke anlegen und beachten das es noch das Latchsignal RCLK gibt, da ist oft der Bock drin. Timing halt, ähnlich wie beim SPI mit den Modes, die bestimmen welche Flanke wann wie was auslöst. Felix schrieb: > Bei Verwendung eines ESP8266 direkt an den 595 funktioniert alles wie > gewünscht. Wie das? Der ESP ist 3,3V, der 595 5V. Das dürfte nur knapp ausgehen. Welche Software ist auf dem ESP? Am Ende ein schnell zusammengestricktes SPI-out oder SerOut vom Arduino? Dann isses dein Timing...
:
Bearbeitet durch User
Jens M. schrieb: > Dann isses dein Timing... Oder er hat Masse der PIC32MM0128GPM048 Platine nicht mit Masse der 75HC595 verbunden, oder wer weiss was sich noch alles durch das Schaltplangemetzel ergibt.
Michael B. schrieb: > Oder er hat Masse der PIC32MM0128GPM048 Platine nicht mit Masse der > 75HC595 verbunden Oh ja, das ist auch ein Klassiker.
Jens M. schrieb: > Der Chip ist der einfachste Schieberegisterchip den es gibt, aber man > muss die Daten lange genug vor der steigenden Flanke anlegen und > beachten das es noch das Latchsignal RCLK gibt, da ist oft der Bock > drin. Das ist auch ein beliebter Klassiker: Daten mit SRCLK reinschieben, aber nicht mit RCLK rausgeben :) zumal er an den Pins rumknapst :)
Jens M. schrieb: > Das Schieberegister wird einfach die letzten 8 reingeschobenen Bits > ausgeben Stimmt auch wieder, der Sync erfolgt ja einfach zum Schluss mit dem blauen RCLK im Oszi-Screenshot. Also Entwarnung, das Problem liegt woanders. Die Messungen an den IC-Pins werden es zeigen.
:
Bearbeitet durch Moderator
Der Schaltplan ist wirklich die Krätze. Man braucht ewig da durchzusehen, was wie verbunden ist. Und dann noch als PNG. Wenigstens als PDF, dann kann man es beliebig skalieren. Ein Komparator ist kein Schmitt-Trigger, er kann im Umschaltpunkt schwingen und dann verzählt sich der HC595. Nimm Spannungsteiler 24V->4V und dahinter Schmitt-Trigger (74HCT14).
Hallo, es hat einen Moment gedauert den Fehler mit dem Oszi zu finden. Wie Peter D. schon richtig schrieb lag es am Schwingen vom Komparator. Der Wechsel von 0 auf 1 war i.O. der Wechsel von 1 auf 0 war das Problem hier kamen noch ein Paar Pulse nach. Zum testen habe ich dann einen Rückführwiderstand eingesetzt mit dem hat die Schaltung dann funktioniert. Ich hab den Plan dann wie empfohlen mit einem Schmitt-Trigger statt Komparator überarbeitet, dabei ist mir aufgefallen das es den 595 gleich mit Integriertem Schmitt-Trigger gibt. Gibt es beim integrierten Irgendwelche Fallstricke? Im Anhang mal beide Varianten, diesmal als PDF :-)
Felix schrieb: > dabei ist mir aufgefallen das es den 595 gleich mit Integriertem > Schmitt-Trigger gibt. Wie ich schon mal sagte: du brauchst da gar keinen Komparator und/oder Schmittrigger. Ein simpler Spannungsteiler reicht aus. Der muss wegen des C109 im Ausgangstreiber nur spürbar niederohmiger sein als 20k/3k9. Ich würde da mal mit 4k7/1k direkt auf die Eingänge des 595 gehen. Dann muss das auch nicht extra einer mit Schmitttriggereingängen sein.
:
Bearbeitet durch Moderator
Felix schrieb: > Gibt es beim integrierten Irgendwelche Fallstricke? Der ist seltener. Den normalen gibts von 31 Herstellern bei tausend Distris.
:
Bearbeitet durch User
Felix schrieb: > dabei ist mir aufgefallen das es den 595 > gleich mit Integriertem Schmitt-Trigger gibt. Ja, die HCS-Serie: https://www.digikey.de/de/products/detail/texas-instruments/SN74HCS595PWR/13532278 Felix schrieb: > Gibt es beim integrierten Irgendwelche Fallstricke? Sollte auch gehen.
:
Bearbeitet durch User
Was schon ärgerlich ist, daß man bei einem neuen Design des 595 nicht endlich auch das Ausgangsregister mit auf Reset legt. So werden weiterhin nach einem Power-On Zufallswerte ausgegeben. Ich habe daher notgedrungen den /OE mit auf die CPU gelegt, d.h. bis gültige Daten anliegen, werden die Ausgänge auf hochohmig gehalten.
Peter D. schrieb: > Was schon ärgerlich ist, daß man bei einem neuen Design des 595 nicht > endlich auch das Ausgangsregister mit auf Reset legt. So werden > weiterhin nach einem Power-On Zufallswerte ausgegeben. > > Ich habe daher notgedrungen den /OE mit auf die CPU gelegt, d.h. bis > gültige Daten anliegen, werden die Ausgänge auf hochohmig gehalten. Dazu den "Reset" MR bzw. SRCLR vor Power on auf pulldown legen und dann mit I/O auf high ziehen.
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.