Ich habe 2 595 die an einem ESP8266 hängen. Wenn ich den Stromkreis schließe gehen teilweise zufällig die Ausgänge des 595 auf HI bevor mein Proramm sie initialisiert. Obwohl ich das als allererstes mache dauert es manchmal ca. 0,5-1 Sek. Nun muss ich irgendwie hardwaremäßig sicher stellen, dass alle Ausgänge solange auf Low sind, damit mir später vor dem Initialisieren nicht 4 Motoren gleichzeitig angesteuert werden und durch den Strom alles durchbrennt. Daher hatte ich überlegt per RC Glied irgend wie den Clear Pin auf Masse zu ziehen, aber irgendwie haute das nicht hin, weil er wohl noch nen Registertakt braucht. Ich könnte auch OE per RC Glied versuchen zu blockieren, wenn dann aber der Mikrocontroller sich angenommen mal aufhängt ehe er initialisieren kann, kommen die falschen Werte ja irgendwann wenn der Kondensator geladen ist und OE low geht ja trotzdem raus. Daher macht es schon Sinn das Register direkt zu löschen. Wie mache ich das am geschicktesten, dass ich sicherstelle, dass die Ausgänge beim Einschalten immer low sind?
Du meinst wahrscheinlich *74*595 Evtl. kannst Du mit Pull-Up den -OE auf high halten und zuletzt in der Initialisierung auf low ziehen... Ausgänge wären solange High-Impedance. Was kommt danach? Gruss Chregu
Die stromversorgung der motoren durch nen Mosfet trennen und diesen erst später freischalten.
Das mache ich ja aber die MOSFETS werden über das Schieberegister gesteuert, deshalb muss ich ja sicher stellen, dass die Ausgänge low sind.
Ich meinte durch nen zusätzlichen mosfet den minus aller motoren sperrenund den direkt an den uC
Bernd B. schrieb: > Obwohl ich das als allererstes mache dauert es manchmal ca. 0,5-1 Sek. Dann machst du vorher noch etwas anderes ... > Wie mache ich das am geschicktesten, dass ich sicherstelle, dass die > Ausgänge beim Einschalten immer low sind? !OE auf High halten und Pull-Down an den Ausgängen?
> Daher hatte ich überlegt per RC Glied irgend wie den Clear Pin auf Masse > zu ziehen, aber irgendwie haute das nicht hin, weil er wohl noch nen > Registertakt braucht. Das wundert mich, in meinem Datenbuch von IWT steht, der Löscheingang, hier mit /SCLR bezeichnet, sei asynchron.
Hallo Bernd, ja mit den MOSFETs hast Du ja eh Widerstände am Gate gegen GND, dann geht's mit high-impedance. Hast Du noch einen Pin frei? Mach den an -OE! Gruss Chregu
S. Landolt schrieb: >> Daher hatte ich überlegt per RC Glied irgend wie den Clear Pin auf Masse >> zu ziehen, aber irgendwie haute das nicht hin, weil er wohl noch nen >> Registertakt braucht. > > Das wundert mich, in meinem Datenbuch von IWT steht, der Löscheingang, > hier mit /SCLR bezeichnet, sei asynchron. Ja der löscht nur das Schieberegister. Müsste noch in das Daten-Halte-Register geladen werden! Gruss Chregu
Ich muss die Mosfet über das Schieberegister Steuern um am Prozessor die Pins frei zu haben, da ich die später noch brauche. Daher kann ich auch den OE nicht vom Prozessor aus steuern und muss es per RC Glied o.ä. hardwaremäßig lösen. Ich habe einen 74HC595 und da steht im Datenblatt (Tabelle) zwar der Löscheingang brauche keinen Takt, aber im Taktdiagramm sieht man, dass der Ausgang erst auf Low geht wenn ein Speichertakt kommt und genau das habe ich beim rumprobieren letztens auch festgestellt. Die Lösung OE auf Low zu halten ist unsicher, daher würde ich gerne beim Start die Ausgänge löschen. Hab hier schon mit Widerstand und Kondensator rumprobiert, aber irgendwie hats nicht geklappt. ich habe 3,3V Logik, daher ist LOW bei 0,8V richtig? Wie berechne ich denn die Kondensatorladung bzw. die Zeit, die das RC Glied braucht um auf 0,8V zu kommen?
:
Bearbeitet durch User
>Die Lösung OE auf Low zu halten ist unsicher, daher würde ich gerne beim >Start die Ausgänge löschen. Wieso? Das ist die beste Methode. Vielleicht mußt Du Dich etwas genauer damit beschäftigen.
Wieso habe ich geschrieben! Wenn ich OE per RC Glied auf HI halte ist sobald das RC Glied geladen ist der Ausgang mit falschen Werten an, falls der Mikroprozessor sich mal aufgehängt hat.
Bernd B. schrieb: > Die Lösung OE auf Low zu halten ist unsicher Schwachsinn! Genau dazu ist der OE das! > Daher kann ich auch > den OE nicht vom Prozessor aus steuern und muss es per RC Glied o.ä. > hardwaremäßig lösen. DAS ist unsicher!
@ Bernd Bubu (gorkde) >Wieso habe ich geschrieben! >Wenn ich OE per RC Glied auf HI halte Wer sagte was von RC-Glied ausser dir? Niemand. Du sollt OE mittels Pull-Up Widerstand auf HIGH halten und dann, wenn dein Prozessor gestartet ist, es mit einem angeschlossenen IO-Pin auf LOW ziehen. Vorher wird man sinnvollerweise das Register mit einem gescheiten Wert laden. > ist sobald das RC Glied geladen >ist der Ausgang mit falschen Werten an, falls der Mikroprozessor sich >mal aufgehängt hat. Wenn er nicht startet, passiert gar nichts, OE bleibt HIGH. Wenn er im normalen Betrieb ausfällt, hast du so oder so ein Problem. Dagegen hilft nur eine solide Hard- uznd Software und im Ernstfall ein Watchdog.
Bernd B. schrieb: > falls der Mikroprozessor sich > mal aufgehängt hat. Und warum sollte sich der µC aufhängen? - Softwarefehler -> musst du beheben - EMV/Störimpulse -> musst du die Schaltung gegen absichern Du machst das, was viele machen, aber nichts bringt: An den Symptomen rumdoktorn, ohne das Problem zu beheben.
Falk B. schrieb: > @ Bernd Bubu (gorkde) > >>Wieso habe ich geschrieben! >>Wenn ich OE per RC Glied auf HI halte > > Wer sagte was von RC-Glied ausser dir? Niemand. > > Du sollt OE mittels Pull-Up Widerstand auf HIGH halten und dann, wenn > dein Prozessor gestartet ist, es mit einem angeschlossenen IO-Pin auf > LOW ziehen. Vorher wird man sinnvollerweise das Register mit einem > gescheiten Wert laden. > >> ist sobald das RC Glied geladen >>ist der Ausgang mit falschen Werten an, falls der Mikroprozessor sich >>mal aufgehängt hat. > > Wenn er nicht startet, passiert gar nichts, OE bleibt HIGH. Wenn er im > normalen Betrieb ausfällt, hast du so oder so ein Problem. Dagegen hilft > nur eine solide Hard- uznd Software und im Ernstfall ein Watchdog. Wie ich bereits schrieb geht das nicht weil ich keinen Mikrocontrooler Pin dafür nuten kann und MUSS es daher ohne diesen lösen! Max M. schrieb: > Bernd B. schrieb: >> Die Lösung OE auf Low zu halten ist unsicher > > Schwachsinn! Genau dazu ist der OE das! > Wenn Du mal lesen würdest und nicht einzelne Teile die Dir gefallen rauspicken würdest, rede ich davon OE - MIT RC GLIED - auf low zu halten, denn so oder ähnlich muss ich es wegen der Gegebenheiten nunmal machen! Und wenn sich dann der Prozessor mal aufgehängt hat gibt es halt probleme und die Motoren laufen an.
> Und wenn sich dann der Prozessor mal aufgehängt hat gibt es halt > Probleme und die Motoren laufen an. Du musst dein Konzept neue überdenken. Einen EPS8266, der sich hin und wieder aufhängt, gehört nicht ans zentraler Stelle in (d)eine Elektronik. U. U. einen Gluecontroller (ATTiny o. ä.) nehmen, der dem ESP auf die "Finger" sieht.
Gusian schrieb: >> Und wenn sich dann der Prozessor mal aufgehängt hat gibt es halt >> Probleme und die Motoren laufen an. > > Du musst dein Konzept neue überdenken. Einen EPS8266, der sich hin und > wieder aufhängt, gehört nicht ans zentraler Stelle in (d)eine > Elektronik. U. U. einen Gluecontroller (ATTiny o. ä.) nehmen, der dem > ESP auf die "Finger" sieht. Es ist ja nicht geplant, dass er sich aufhängt, aber ich muss aufgrund des Projektes sicher gehen, daher möchte ich eben Hardwaremäßig das Schieberegister beim Einschalten automatisch löschen lassen. Alles andere ist ja schon geregelt. Ich komme nur mit dem Berechnen der notwendigen RC Glieder nicht zurecht, weil ich zulange raus bin.
Bernd B. schrieb: > muss ich es wegen der Gegebenheiten nunmal > machen! Dann ändere was an den "Gegebenheiten"! Wenn du merkst, dass du ein Problem hast, dass sonst niemand hat, dann hör auf über die Lösung des Problems nachzudenken und fang an zu überlegen warum du ein Problem hast dass sonst niemand hat!
Bernd B. schrieb: > irgend wie den Clear Pin auf Masse > zu ziehen > steht im Datenblatt (Tabelle) zwar der > Löscheingang brauche keinen Takt Welelcher Pin soll den der ominöse "Clear Pin" sein?
@ Bernd Bubu (gorkde) >Wie ich bereits schrieb geht das nicht weil ich keinen Mikrocontrooler >Pin dafür nuten kann und MUSS es daher ohne diesen lösen! Doch, das kann man. Aber du hast dich mental voll verrant ;-) Tunnelblick & Co lassen grüßen. Lies meinen Beitrag nochmal in Ruhe mit mehrfachem Durchatmen. Beitrag "Re: Schieberegister 595 hardwaremäßig löschen"
Nachtrag. Die allermeisten IOs der allermeisten Mikrokontroller sind beim Reset/Einschalten auf Tristate, d.h. hochohmig. Darum funktioniert ja der Trick mit den Pull-Widerständen.
Falk B. schrieb: > Aber du hast dich mental voll verrant ;-) Und da nützen auch alle Deslikes für die guten Lösungen nichts :-)) Chregu
Hallo, Gusian schrieb: >> Und wenn sich dann der Prozessor mal aufgehängt hat gibt es halt >> Probleme und die Motoren laufen an. > > Du musst dein Konzept neue überdenken. Einen EPS8266, der sich hin und > wieder aufhängt, gehört nicht ans zentraler Stelle in (d)eine > Elektronik. U. U. einen Gluecontroller (ATTiny o. ä.) nehmen, der dem > ESP auf die "Finger" sieht. ein ESP8266 hängt sich nicht hin- und wieder auf. Es sei denn man hat fehlerhaft programmiert. Dann kann sich aber genauso ein Tiny aufhängen... Der ESP hat an den meisten GPIO nach dem Reset etwas "bewegung" bzw. will bestimme Pegel anliegen haben. Erstmal startet der Bootloader (GIO0 und GPIO15 sind dann wichtig), dann gibt es Debugausgaben (GPIO1,2,3). Dann initialisiert er sein "Betriebssystem" (WLAN usw.) und dann staertet erst die Anwendersoftware. /OE per PullUp auf H und dann vom ESP auf low ziehen ist sicher wenn man den richtigen Pin nimmt. GPIO4 und 5 gehen immer. Ansonsten eben keinen '595 nehmen sondern z.B. einen MCP23S17 am Hardware-SPI des ESP. Gruß aus Berlin Michael
Falk B. schrieb: > Nachtrag. Die allermeisten IOs der allermeisten Mikrokontroller sind > beim Reset/Einschalten auf Tristate, d.h. hochohmig. Darum funktioniert > ja der Trick mit den Pull-Widerständen. Das ist erstens beim ESP8266 nicht so, zweitens sieht meine Schaltung bereits eh so aus, wie vorgeschlagen, aber hier liest auch keiner was ich geschrieben habe ;) 1) Ich habe kein Problem mit der Schaltung oder Mikrocontroller, sondern suche Hilfe dabei ein Schieberegister beim Power-On ohne MC Ansteuerung per RC Glied zu löschen. Das ist eine ganz klare Fragestellung. 2) Sieht meine Schaltung anders aus als vielleicht bei anderen, also muss ich auch eine für mich machbare Lösung finden. Meine Schaltung ist sehr komplex und ich kann schlecht eine sehr umfangreiche Schaltung und warum die Gegebenheiten eben so sind mit allen Hintergründen in 2 Sätzen erklären. Machbar ist in meinem Fall eben nicht den OE per MC zu steuern. Das ist eine Gegebenheit die so ist, da die Pins für andere Dinge benutzt werden müssen, nur deshalb habe ich ja das Schieberegister dran, damit ich diese Pins frei habe. Daher BITTE... Keine "mach es mit MC" Lösungen, das ust nunmal mit dem vorhandenen nicht möglich und einen weiteren verbauen nur um einen Reset zu machen möchte ich nicht, sowas geht ja auch mit simplen Bauteilen. Ich habe nur Probleme mit der Berechnung eines RC Gliedes.
> Der ESP hat an den meisten GPIO nach dem Reset etwas "bewegung" bzw. > will bestimme Pegel anliegen haben. Erstmal startet der Bootloader (GIO0 > und GPIO15 sind dann wichtig), dann gibt es Debugausgaben (GPIO1,2,3). > Dann initialisiert er sein "Betriebssystem" (WLAN usw.) und dann > staertet erst die Anwendersoftware. > /OE per PullUp auf H und dann vom ESP auf low ziehen ist sicher wenn man > den richtigen Pin nimmt. GPIO4 und 5 gehen immer. > Ansonsten eben keinen '595 nehmen sondern z.B. einen MCP23S17 am > Hardware-SPI des ESP. Eben. Das mit OE per ESP Wäre am einfachsten geht aber wiegesagt nicht weil ich keinen Pin frei habe den ich dafür nutzen kann.
Bernd B. schrieb: > Ich habe nur Probleme mit der Berechnung eines RC Gliedes. Das ist das kleine 1*1! Dazu gibts genug im Net.
Max M. schrieb: > Bernd B. schrieb: >> Ich habe nur Probleme mit der Berechnung eines RC Gliedes. > > Das ist das kleine 1*1! > Dazu gibts genug im Net. Nadann bin ich dazu eben zu blöd (oder wie gesagt eben einfach zu lange raus). Aber da das wie du sagst ja für dich kein Problem ist, sage mir doch kurz welche 2 RC glieder ich nehmen kann, damit der Register Clear pin auf low gehalten wird und in der Zeit der Speichertakt einen kurzen Hi Impuls bekommt. Das ist eigentlich das einzige Problem was ich habe. Da das ja wie du sagst ganz simpel ist, sollte das ja kein Problem sein.
Bernd B. schrieb: > suche Hilfe dabei ein Schieberegister beim Power-On ohne MC Ansteuerung > per RC Glied zu löschen. Nun, ein RC-Glied an einem Digitaleingang ist eine potentiell unsichere Lösung, wenn dieser Eingang kein Schmitttrigger- Eingang ist. Nimm doch wenigstens ein Reset-IC an dieser Stelle.
@Bernd Bubu (gorkde) >> beim Reset/Einschalten auf Tristate, d.h. hochohmig. Darum funktioniert >> ja der Trick mit den Pull-Widerständen. >Das ist erstens beim ESP8266 nicht so, Nicht bei allen Pins. > zweitens sieht meine Schaltung >1) Ich habe kein Problem mit der Schaltung oder Mikrocontroller, sondern >suche Hilfe dabei ein Schieberegister beim Power-On ohne MC Ansteuerung >per RC Glied zu löschen. geht nicht. >Das ist eine ganz klare Fragestellung. Nö, das ist schon wieder Tunnelblick. Denn viele Wege führen nach Rom. Du stehst vor einem Tor und denkst, es wäre das Stadttor von Rom. Kann aber auch Florenz sein ;-) >2) Sieht meine Schaltung anders aus als vielleicht bei anderen, also >muss ich auch eine für mich machbare Lösung finden. Die sehen wir nicht. >Meine Schaltung ist sehr komplex Sagt wer? >Machbar ist in meinem Fall eben nicht den OE per MC zu steuern. Das ist >eine Gegebenheit die so ist, da die Pins für andere Dinge benutzt werden >müssen, nur deshalb habe ich ja das Schieberegister dran, damit ich >diese Pins frei habe. Sas sollte man aber auch so sagen!!! >Ich habe nur Probleme mit der Berechnung eines RC Gliedes. Nö, du hast immer noch den Tunnelblick und beharrst auf deinem Holzweg. Egal wie du das drehst und zauberst, das OE kann nur die Ausgänge freischalten oder auch nicht. Wo liegt das Problem bei der Berechnung einer Zeitkonstanten? tau = R * C. Dann muss man noch grob abschätzen, wo die Schaltschwelle des IC liegt, bei CMOS meist VCC/2, d.h. die Verzögerungszeit ist etwas geringer, vielleicht 0,7*tau. Das nützt dir aber wenig, denn das systematische Problem löst es nicht. >Das mit OE per ESP Wäre am einfachsten geht aber wiegesagt nicht weil >ich keinen Pin frei habe den ich dafür nutzen kann. Dann hast du dich auch hier verrannt. Du könntest dein Design ändern und Pins freischaufeln. Ja, das ist Arbeit. Aber das hintricksen mit dem OE gibt's auch nicht umsonst. >Aber da das wie du sagst ja für dich kein Problem ist, sage mir doch >kurz welche 2 RC glieder ich nehmen kann, damit der Register Clear pin >auf low gehalten wird und in der Zeit der Speichertakt einen kurzen Hi >Impuls bekommt. Dann brauchst du ein RC-Glied an SCLK und OE, wobei du die Pins aber nicht einfach zusammenschalten kannst. Dann brauchst du ein schnelleres RC-Glied an RCK, das den einmaligen Einschaltpuls generiert. Alles in Allem nicht wirklich schön. Und das alles nur, weil du kein einziges Pin mehr frei hast.
Ich hatte es so verstanden, dass /OE fest auf 0 liegt, die RC-Glieder sollen an /SCLR und RCK. Sollte ja kein Problem sein, nur dass dann im Betrieb die Ansteuerung von RCK etwas gebremst wird.
Harald W. schrieb: > Nimm doch wenigstens ein Reset-IC an dieser > Stelle. Der ist in dem System vielleicht schon vorhanden.
Hallo, Dann investiere eben in einen 4538 oder 74xx123 oder ähnlichen Dual-Monoflop und mache es damit ordentlich. Mit einem 4093 kann man solch eine Startlogik auch gut zusammenschustern. PS: ein tiny25 geht auch und braucht keine Außenbeschaltung... Gruß aus Berlin Michael
Bernd B. schrieb: > Daher hatte ich überlegt per RC Glied irgend wie den Clear Pin auf Masse > zu ziehen, aber irgendwie haute das nicht hin, weil er wohl noch nen > Registertakt braucht. RC ist großer Quatsch, wenn es zuverlässig sein soll. Der C kann sich bei kurzen Einbrüchen nicht genug entladen, das Latch aber schon zufällige Werte annehmen. Außerdem ist Clear des Latches nicht verfügbar. Die einzige Lösung, die Du auch in der Praxis antreffen wirst, den /OE mit einem Pullup auf high ziehen und an einen MC-Pin, der beim Reset hochohmig oder high (80C51) ist. Alles andere ist deutlich aufwendiger. Bei Motorsteuerungen sieht man aber auch oft, daß der MC die Versorgung des Leistungsteils erst freischaltet.
Hallo, er hat sich doch nunmal darauf eingeschossen, eine Krücke zu bauen weil kein Pin mehr verfügbar ist. Solche konzeptionellen Pannen bastle ich mir ja durchaus auch bei meinen Projekten, speziell beim ESP8266 mit seinen Eigenarten. Allerdings habe ich da keine Hemmungen, meinen Kram notfalls komplett umzuplanen und umzubauen. Sowas fällt ja eigentlich schon bei den ersten Tests auf. Bei mir mittlerweile eine der ersten Fragen, die ich mir stelle: was passiert beim Start und bei undefinierten Zuständen und wann können die Auftreten. Gruß aus Berlin Michael
Michael U. schrieb: > Gruß aus Berlin > Michael Wie oft grüßt du so pro Sitzungstag? 50 bis 100 mal? Warum machst du das? Geltungsbedürfnis eines kleinen Bastlers allein reicht da ja wohl nicht aus.
S. Landolt schrieb: > Ich hatte es so verstanden, dass /OE fest auf 0 liegt, die RC-Glieder > sollen an /SCLR und RCK. Sollte ja kein Problem sein, nur dass dann im > Betrieb die Ansteuerung von RCK etwas gebremst wird. Genau so! Vielen Dank! Falk B. schrieb: > Dann hast du dich auch hier verrannt. Du könntest dein Design ändern und > Pins freischaufeln. Ja, das ist Arbeit. Aber das hintricksen mit dem OE > gibt's auch nicht umsonst. Nein Mister oberschlau, ich glaube ich kann selbst einschätzen was mit meiner Schaltung geht! Ich kann gerade mal die 3 Pins für das Schieberegister benutzen, alle anderen werden anderweitig extern benutzt oder dürfen aufgrund der Besonderheiten des ESP nicht beschaltet werden! > Sas sollte man aber auch so sagen!!! Dieses und auch all die anderen Sachen die Du Schreibst habe ich bereits vorher ausführlich erwähnt! >Wo liegt das Problem bei der Berechnung einer Zeitkonstanten? tau = R * C. Dann muss man noch grob abschätzen, wo die Schaltschwelle des IC liegt, bei CMOS meist VCC/2, d.h. die Verzögerungszeit ist etwas geringer, vielleicht 0,7*tau. Das nützt dir aber wenig, denn das systematische Problem löst es nicht. Das Problem ist, dass ich das eben nicht "abschätzen" und raten will, da es mit "abschätzen" eben nicht funktioniert hat! Das hatte ich EBENFALLS bereits geschrieben. Und LOW liegt NICHT bei Vcc/2, sondern 0,8V! Einerseits haust Du hier auf die Kacke, aber andererseits weißt Du nichtmal das! >Dann brauchst du ein RC-Glied an SCLK und OE, Dass ich das nicht will, weil es unsicher ist habe ich auch bereits mehrfach erwähnt, es geht darum, wie S. Landolt schrieb mittels SCLR und RCK das Register einmalig zu löschen ;)
Bernd B. schrieb: > Und LOW liegt NICHT bei Vcc/2, sondern 0,8V! > Einerseits haust Du hier auf die Kacke, aber andererseits weißt Du > nichtmal das! Du irrst. 0,8V ist die Grenze unter der bei TTL und damit auch HC(T) garantiert wird, daß Low erkannt wird. Praktisch liegt der Punkt so um 1,6V bei HCT und Ub/2 bei HC. Gruß aus Berlin Michael
Bernd Bubu (gorkde) >> Dann hast du dich auch hier verrannt. Du könntest dein Design ändern und >> Pins freischaufeln. Ja, das ist Arbeit. Aber das hintricksen mit dem OE >> gibt's auch nicht umsonst. >Nein Mister oberschlau, Du darfst mich mit "Mein Gott" ansprechen . . . ;-) > ich glaube ich kann selbst einschätzen was mit >meiner Schaltung geht! Der Tunnelblick verschärft sich. Naja. > Ich kann gerade mal die 3 Pins für das >Schieberegister benutzen, alle anderen werden anderweitig extern benutzt >oder dürfen aufgrund der Besonderheiten des ESP nicht beschaltet werden! Man kann ein Signal freischaufeln, nämlich das Pin vom RCK. DAS kann man mit einem Monoflop per Hardware steuern, dann braucht man nur noch SCK und DATA. Das Monoflop wird mit SCK angestoßen, es muss ein retriggerbares sein. Wenn SCK für ca. 3-5 Taktzeiten ausbleibt, schaltet der Ausgang des Monoflops. Das freie Pin kann dann dein OE steuern. >Und LOW liegt NICHT bei Vcc/2, sondern 0,8V! Nö, das ist der GARANTIERTE Mindestpegel für ein LOW, nicht die reale Schaltschwelle. Außerdem hast du wahrscheinlich ein 74HC595 oder was ähnliches, denn die HCT gehen bei 3,3V nicht. Also liegt die Schaltschwelle bei VCC/2. >Einerseits haust Du hier auf die Kacke, aber andererseits weißt Du >nichtmal das! Ruhig Brauner! >mehrfach erwähnt, es geht darum, wie S. Landolt schrieb mittels SCLR und >RCK das Register einmalig zu löschen ;) Dann mal viel Erfolg! Du weißt es ja besser als ein halbes Dutzend Leute hier.
Bernd B. schrieb: > oder dürfen aufgrund der Besonderheiten des ESP nicht beschaltet werden! Was für ein Modul hast du denn im Einsatz und welche Pins hast du nicht beschaltet? Nicht dass du jetzt bspw. GPIO15 frei gelassen hast. Oder den RX Pin sofern du den UART nicht brauchst o ä.
Häng ein zweites 595 hinter das erste, dann hast Du weitere 8 Ausgänge, das sollte wohl Ausreichen um die 'Kaltstartlogik' (mit Monoflop oder Flipflop, oder was-auch-immer) zu Entsperren.
Johannes S. schrieb: > Bernd B. schrieb: >> oder dürfen aufgrund der Besonderheiten des ESP nicht beschaltet werden! > > Was für ein Modul hast du denn im Einsatz und welche Pins hast du nicht > beschaltet? > > Nicht dass du jetzt bspw. GPIO15 frei gelassen hast. Oder den RX Pin > sofern du den UART nicht brauchst o ä. Ich habe ein 12F. GPIO 0,2,16 für das Schieberegister, die Pins für I2C und SPI werden später benötigt, genau wie RX/TX und die Pins an denen der interne Speicher hängt fallen ebenso weg. Ich habe es jetzt erstmal zum Testen auf einen I2C Pin gelegt, später muss ich den aber frei räumen und das wollte ich halt nicht noch mittels extra IC machen, da die Platine schon voller als geplant wird und der Platz begrenzt ist. Aber ansonsten mache ich mir da später nen Kopf. Ich habe mittlerweile was im Internet gefunden und errechnet, dass 0,8V ca. 0,278 Tau entsprechen bei 10k/100nF bei 277uS liegen müssten, 2V ca.0,96 Tau, daher 10k mit 10nF ca. 96uS. Allerdings weiß ich nicht, ob ich korrekt gerechnet habe.
Dann nimm doch für i2c gpio0 und gpio2 und häng latch und clock an gpio4 und 5 und verbau pullup oder pulldown widerstände. Gpio4 und 5 sind beim booten komplett "still".
Das Schieberegister selbst ist das Problem. Das heißt das Ausgangslatch hat beim Einschalten undefinierte Zustände. Chregu
Hallo, Clock und Date der 595 kann auch der Hardware-SPI bedienen. Dann ist genau eine zusätzliche Leitung für die Latch-Übernahme nötig. Naja, da sind mir die MCP23S17 dann doch lieber. 16Bit I/O im Chip, per Software-Adresse kaskadierbar kosten das eben nur den Hardware-SPI + 1x /CS auch für mehrere. Mit 3,3V laufen sie auch. Der kleinere Ausgangsstrom könnte stören. allerdings hängen da entweder Logikpegel dran oder Treiber die man passend bemessen kann. 10MHz SPI-Clock reichen auch um nehrere schnell genug zu bedienen. Nur weil im Netz die '595 scheinbar mit AVR und Arduino "verheiratet" zu sein scheinen muß man an denen nicht festhalten. Gruß aus Berlin Michael
Bernd B. schrieb: > GPIO 0,2,16 für das Schieberegister, die Pins für I2C > und SPI werden später benötigt Und wie wärs, wenn du das Schieberegister einfach mit ans SPI hängst? Solange du nicht den Latch-Pin taktest, ist es ja egal, was auf dem Bus gesendet wird. (--> wirkt also quasi wie Chipselect)
Achso. Man müsste das register also erstmal leeren, und solange können manche ausgänge/Motoren aktiv sein. Schieberegister an die SPI Pins wär auch meine nächste Idee. Oder stattdessen einen port expander, SPI oder I2C. PCF8574 wär ne günstige wenn auch langsamere alternative zum MCP23x17.
Bernd B. schrieb: > Daher hatte ich überlegt per RC Glied irgend wie den Clear Pin auf Masse > zu ziehen, aber irgendwie haute das nicht hin, weil er wohl noch nen > Registertakt braucht. Klar, das Schieberegister wird auchnohne CLK sofort gelöscht, aber das Ausgaberegister braucht noch ein CLK um die 0en zu übernehmen. Du willst 74HC594, die haben asynchrones Ausgaberegisterclear, dafür kein OE. Ein 74HC595 würde mit einer Flanke an RCLK die Daten übernehmen, aber RCLK kommt vom uC, du müsstest es, so lange der uC diesen Ausgang noch als Eingamg betreibt, durch SCLR steuern: Ist SCLR zu Ende, wird RCLK eine Flanke sdhdn. Bloss wie erkennt man dass der uC die Leitung wieder übernehmen will? Seriewiderstand ist blöd.
michael_ schrieb: >> Nimm doch wenigstens ein Reset-IC an dieser >> Stelle. > > Der ist in dem System vielleicht schon vorhanden. An den vom TE gewünschten Eingängen?
Valan schrieb: > Wie oft grüßt du so pro Sitzungstag? 50 bis 100 mal? Warum machst du > das? Geltungsbedürfnis eines kleinen Bastlers allein reicht da ja wohl > nicht aus. Höflichkeit ist m.E. auch dann sinnvoll, wenn man sich nicht persönlich gegenüber steht. Wie beendest Du eigentlich ein Telefongespräch? Indem Du den Hörer auf die Gabel knallst, oder mit einer Grussformel?
Harald W. schrieb: > Valan schrieb: > >> Wie oft grüßt du so pro Sitzungstag? 50 bis 100 mal? Warum machst du >> das? Geltungsbedürfnis eines kleinen Bastlers allein reicht da ja wohl >> nicht aus. > > Höflichkeit ist m.E. auch dann sinnvoll, wenn man sich nicht persönlich > gegenüber steht. Wie beendest Du eigentlich ein Telefongespräch? > Indem Du den Hörer auf die Gabel knallst, oder mit einer Grussformel? Das Anhängen von immer gleichen Textbausteinen. in anderen Foren allerdings viel schlimmer praktiziert, hat nicht mit Höflichkeit zu zu tun. Es ist eher das Gegenteil, eine unhöfliche, unpersönliche Phrase, die automatisch abgesondert wird. Zum Glück hält die Mehrheit der Forumsteilnehmer davon Abstand, wie du ja auch.
> Obwohl ich das als allererstes mache dauert es manchmal ca. 0,5-1 Sek.
Ach ja ? der erste Befehl nach powerup kommt erst nach 500ms ? Naja.
Allenfalls ist da ein konzept problem dahinter.
Also der Pin, der OE steuert, ist waehrend des Resets tristate. Dann
muss da ein Widerstand hin, der OE disabelt waehrend des Resets.
:
Bearbeitet durch User
Moota schrieb: > Zum Glück hält die Mehrheit der Forumsteilnehmer davon Abstand, wie du > ja auch. Erst, nachdem ich festgestellt habe, das Unhöflichkeit in diesem Forum die Regel ist.
Harald W. schrieb: > Moota schrieb: > >> Zum Glück hält die Mehrheit der Forumsteilnehmer davon Abstand, wie du >> ja auch. > > Erst, nachdem ich festgestellt habe, das Unhöflichkeit in diesem > Forum die Regel ist. Harald! Du bist nicht unhöflich und die meisten anderen Teilnehmer sind es ebenfalls nicht. Was willst du mehr?
Hallo, eigentlich ignoriere ich Postings wie das worauf sich jetzt diese Diskussion bezieht. Ich habe mal spaßeshalber bei google groups in alte Zeiten zurückgeschaut. Den "Gruß aus Berlin" benutze ich mittlerweile seit über 15 Jahren. Interessanterweise gab es den damaligen fachlichen Newsgroups keinen Beitrag, der nicht mit einer kurzen "Unterschrift" beendet wurde. Werbung oder mehr als (meist) 3 Zeilen Footer war nicht erlaubt und das wurde auch durchgesetzt. Allerdings waren die fachlichen moderierten Newsgoups damals auch generell konsequent. OT wurde konsequent gelöscht, unliebsame User waren eben schnell gebannt. Das hatte auch nichts mit Zensur zu tun, eine Fach-Group, wo beim News holen (per Modem!) von 20 News nur eine zum Thema passte hat man nicht mehr abboniert. Und eine Group, die kaum jemand abboniert hat, war automatisch tot weil dann ja auch niemand die gelesen und geantwortet hat. Die Zeiten haben sich geändert, nicht immer zum Guten. Gruß aus Berlin Michael
:
Bearbeitet durch User
Ständig wird Multi-kulti, Toleranz und Respekt gepredigt, und hier stößt man sich an einer Grußformel? Höchst befremdlich. Bitte bleiben Sie beim "Gruß aus Berlin", er ist ein bunter Tupfer. Gruß aus dem Südwesten
S. Landolt schrieb: > Ständig wird Multi-kulti, Toleranz und Respekt gepredigt, und hier stößt > man sich an einer Grußformel? Du solltest definitiv nicht zu oft in die Kirche gehen. "Ab heute sind wir tolerant und finden jeden Arsch interessant." Robert Long
Sie sollten schon richtig zitieren: "Ab morgen sind wir tolerant, tolerant, tolerant, und finden selbst die größten Idioten interessant, wir reichen jedem Arsch die Hand und was uns stört in diesem Land..." Wobei mir aber völlig unklar ist, was dieser Liedtext von Robert Long mit der Diskussion hier zu tun hat.
Nachtrag: Auf derselben LP fordert Long ein für damalige Verhältnisse sehr hohes Maß an Toleranz ein.
1) Ich finde es nett wenn jemand grüßt, wenn sich daran wer stört sagt das viel drüber aus, warum oft so arrogante Antworten kommen im Netz! 2) 0,5 Sek ist nicht ungewöhnlich, denn der ESP arbeitet noch andere Routinen ab ehe er das Programm ausführt, aber das ist eben eine der besonderen Eigenheiten dieses Moduls.
Naja. Zwischen Initialisierung der Hardware und Programmausfuehrung ist schon ein Unterschied. Egal. Denn ein Reset kann auch laenger dauern, wenn man zB am Programmieren ist. Deshalb sollte ein Sicherheitsfeature von einem unendlich langen Reset ausgehen. Also mit einem Pullup/-down widerstand.
Harald W. schrieb: > michael_ schrieb: > >>> Nimm doch wenigstens ein Reset-IC an dieser >>> Stelle. >> >> Der ist in dem System vielleicht schon vorhanden. > > An den vom TE gewünschten Eingängen? Ein paar Graue Zellen und den Lötkolben muß man schon in Gang setzen. Mit ein paar Gatter oder einem weiteren Reset-Baustein geht das. Da braucht man nicht probieren, da kann man die Verzögerung berechnen.
Bernd B. schrieb: > Nun muss ich irgendwie hardwaremäßig sicher stellen, dass alle Ausgänge > solange auf Low sind, damit mir später vor dem Initialisieren nicht 4 > Motoren gleichzeitig angesteuert werden und durch den Strom alles > durchbrennt. Ich versteh das prinzipiell schon, dass man sich - gerade in der Entwicklungsphase - und wir alle hier bauen vermutlich eher Prototypen als Massenprodukte - gegen falsch angesteuerte Signale schützen will, damit eben im Fall des Falles nicht gleich alles in Flammen aufgeht. Ich hab mir in solchen Fällen zumeist ein paar "Ableittransistoren" geleistet, d.h. wenn zwei Signale nicht gleichzeitig anstehen durften, weil sonst irgendwelche Steuertransistoren die Versorgungsspannung kurzschließen, dann hab ich mit dem einen Signal das andere über einen Transistor auf Low gesteuert. Ist sicherlich nicht die sauberste Lösung, spart aber manchen Wutanfall...
Wenn ich mir aber überlege, wie kurz in einem MC die Initialiserung erfolgt, dann lacht doch ein Motor über den kurzen Impuls. Nein, ich kann den Sinn nicht verstehen.
Hallo, das ESP8266-Modul ist ein SoC mit einem 32Bit Core und WLAN. Bei Reset startet zuerst der Bootloader aus dem Rom und meldet sich am UART0 (GPIO0 und GPIO3). Dann werden GPIO2 und 15 auf Ihre Pegel getestet um den gewünschten Bootmode festzustellen. Entweder UART-Download (Programming) oder Flash oder SD-Card (nicht wirklich unterstützt). Vom Flash wird ein Teil der Firmware ins interne Instruktion-Ram geladen und ausgführt. Das initialisiert u.a. die WLAN-Hardware usw. Erst dann startet er auf einer festen Flashadresse die User-Software. Das dauert eine merkliche Zeit, ich habe es nicht gemessen, aber ein angestuertes Relais, daß eine Lampe schaltet, läßt diese kurz aufleuchten. Könnten so 100ms sein. Das zwingt durchaus dazu, sich mit diesen Eigenheiten zu befassen. Allerdings gab es z.B. keine Antwort auf meinen Hinweis, die '595 mit Clock und Data an den SPI zu hängen und nur das Latch über ein Pin zu steuern. GPIO15 wäre dann frei für SPI /CS, 4 und 5 für I2C, der UART wäre frei. Sind letztlich aber seine Entscheidungen... Gruß aus Berlin Michael
Michael U. schrieb: > Hallo, . > > Allerdings gab es z.B. keine Antwort auf meinen Hinweis, die '595 mit > Clock und Data an den SPI zu hängen und nur das Latch über ein Pin zu > steuern. > GPIO15 wäre dann frei für SPI /CS, 4 und 5 für I2C, der UART wäre frei. > > Sind letztlich aber seine Entscheidungen... > > Gruß aus Berlin > Michael Hallo, das habe ich gelesen, gab ja mittlerweile viele interessante Vorschläge. Wie gesagt ich habe jetzt für die Testphase erstmal einen der MC Pins benutzt, den ich später brauche. Was ich nachher mache werde ich mir nochmal genau überlegen, das mit den Transistoren klingt auch interessant.
Beitrag "Re: Schieberegister 595 hardwaremäßig löschen" Der ist nahezu pinkompatibel zum75HC595. Das Reset kann man einfach ans globale Reset des ESP klemmen.
Michael U. schrieb: > Hallo, > > das ESP8266-Modul ist ein SoC mit einem 32Bit Core und WLAN. > Bei Reset startet zuerst der Bootloader aus dem Rom und meldet sich am > UART0 (GPIO0 und GPIO3). ... > > Gruß aus Berlin > Michael Genau! Das Hochfahren dauert scho ca. 50ms, dann werden die GPIO abgefragt und entweder in den Bootloader geschaltet oder in den normalen Modus. Dann wird WLAN initialisiert und für eine gewisse Zeit der WLAN Takt auf GPIO 0 ausgegeben. Habe schon überlegt den als Impuls für den Speichertakt beim Reset per RC Glied zu nehmen. Dies geht aber nicht, da wegen dem Pull Wiederstand dann wenn man in den Bootloader schalten will alle Ausgänge des 595 auf Hi gehen. Das allein alles dauert Schätzungsweise 100-150ms. Wenn uch jetzt nicht die Spannung des ESP unterbreche sondern die gesamte, dauert allein wegen meiner Kondensatoren der Boot des ESP länger während due HC Bausteine schon arbeiten, daher muss ich mit mehr rechnen und das schon beachten.
Eine Idee: GPIO0 muß ja bei einem Reset zum Betrieb High sein, sonst geht der Chip in den Flash Mode. Ich verwende den daher garnicht. Man kann ihn nach der Bootphase sehr wohl zum Ausgang machen. Das High passt hier sogar gut als default Signal für das #OE. Mir würde der GPIO0 für den Rest der Schaltung nicht fehlen. MfG Klaus
Bernd B. schrieb: > Dies geht aber nicht, da wegen dem Pull Wiederstand dann wenn man in den > Bootloader schalten will alle Ausgänge des 595 auf Hi gehen. > Das allein alles dauert Schätzungsweise 100-150ms. Bernd B. schrieb: > Eben. > Das mit OE per ESP Wäre am einfachsten geht aber wiegesagt nicht weil > ich keinen Pin frei habe den ich dafür nutzen kann. Natürlich hast du Pins frei, nur hast du dich, wie Falk schon sagte, in etwas festgerannt. Man sollte nach Lösungen suchen und nicht mit Gewalt an etwas festhalten (es muss ganz einfach so sein, Schluss). RCLK an einen Tiny85 (weil diese billiger als T25-T45 sind) und dein Problem ist nicht nur gelöst, du hast sogar bei kluger Programmierung noch zusätzliche Pins zur Verfügung. ESP.RCLK => Tiny85 Tiny85 => RCLK + OE (und noch 3 zusätzliche Pins frei). Beim Start: Tiny hält OE auf High. Nur wenn ein Impuls LOW-HIGH-LOW > 5ms über RCLK (zum ersten Mal) kommt, wird OE auf LOW geschaltet und gut isses. Im Betrieb (falls später oder überhaupt nötig): Impuls < 250ns = RCLK wird durchgeschaltet. Impuls > 500ns = Es folgen weitere 8-256 bits auf der RCLK Leitung, das können Data oder Commands oder sonstwas sein - Tiny führt das aus. Es kann von einschalten irgendwelcher Zusatzgeräte bis zur WS2812 oder zusätzlichen Servos oder Motoren so ziemlich alles sein. Oder du kannst weiter nach RC-Gliedern suchen...
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.