Hallo, in einem anderen Beitrag ging es um das Abschalten von Slaves an einem I2C bus. Ich will hier einen neuen Beitrag aufmachen, da ich mich gerade umgesehen habe wie man VCC auftrennen kann. Ich würde gerne mein EEPROM und RTC zusammen an einen Schalter hängen um einfach beide abschalten zu können. Nun habe ich diesen LoadSwitch gefunden https://www.ti.com/lit/ds/symlink/tps22919-q1.pdf oder einen einfachen Mosfet, der vom Widerstand ähnlich ist, allerdings vermutlich geringer im Stromverbrauch als der load switch(8µA) https://cdn-reichelt.de/documents/datenblatt/A100/IRLML6402PBF-IR.pdf Was nimmt man da eher, loadswitch oder simpler Mosfet? Die 3,3V müssen quasi die ganze Zeit durchgeschaltet werden, nur in einem eventuellen Resetfall müsste der Loadswitch/Mosfet aus sein.
Helge schrieb: > um das Abschalten von Slaves an einem I2C bus. Du kannst die Slaves nicht einfach "wegbeamen" indem du ihnen die Versorgung abdrehst. Denn die hängen trotzdem weiter am Bus und versorgen sich "zur Not" parasitär über die ESD Schutzdioden in den Pintreibern. Was ist dein eigentliches Ziel mit dieser Schaltung?
Hallo, hatte ich jetzt verstanden, dass es so geht Beitrag "Re: TWI Bus hängt sich auf" Ziel ist es im Fehlerfall die Slaves resetten zu können,damit das ganze wieder funktioniert. Meine Idee wäre jetzt gewesen den Saft für EEPROM,OLED und RTC abzudrehen, Die SDA/SCL pins auf input zu setzen, oder output low, damit sie nicht mehr parasiät versorgt werden..dann müsste theoretisch doch alles aus sein.
Helge schrieb: > Ziel ist es im Fehlerfall die Slaves resetten zu können,damit das ganze > wieder funktioniert. Da darf ich wohl mal kurz laut lachen. Andreas S. schrieb: > Mein Problem: Das Programm wird 2 - 5 mal durchlaufen und hängt sich > dann hinter der Start-Condition auf.(Die LED bleibt an.) Die > Datenleitung wird, wahrscheinlich vom Slave, auf GND gehalten. Wenn nach so kurzer Zeit mit solch "unverfänglicher" Hardware ein Bus-Hänger auftritt dann ist so einem Hardware Aufbau massiv etwas faul, und das nicht nur in der Einzahl (sondern mehrere Fehler). Auch einen Software-Fehler darf man in diesem Zusammen- hang immer noch annehmen. Aber dafür einen (auch noch ungeeigneten) Hardware-Reset zu bauen bzw. vorzusehen grenzt schon an debiler Elektronik-Perversität.
Wie du an deinem zitierten >Andreas S. schrieb: siehst, bin ich nicht der TO. Bei meiner Schaltung gab es bisher keine Probleme, aber sie soll zuverlässig sein und falls der Fall eintritt, muss der Fehler behebbar sein
Helge schrieb: > Ziel ist es im Fehlerfall die Slaves resetten zu können,damit das ganze > wieder funktioniert. > Meine Idee wäre jetzt gewesen den Saft für EEPROM,OLED und RTC > abzudrehen, Die SDA/SCL pins auf input zu setzen, oder output low, damit > sie nicht mehr parasiät versorgt werden..dann müsste theoretisch doch > alles aus sein. Das OLED hat evt. einen Reset-Eingang, schau nochmal genau nach. Falls dem so wäre, darf der Schalter hochohmiger sein. Außerdem kann man dann nochmal den 9-SCL-Takte-Trick probieren. Für primitivere I2C-Slaves reicht der eher, als für kompliziertere wie Display-Controller. Meine RTC kann man garnicht abschalten, weil die auch aus einer Batterie versorgt wird. Die hat sich aber auch noch nicht aufgehängt. Die SDA/SCL Pins auf input funktioniert, aber nur, wenn die I2C-Pullup auch an der geschalteten Versorgung hängen. Die Pins auf output low funktioniert auch. Die Widerstände (47 bis 220 Ohm) in Reihe mit den I2C-Pins sind ganz offiziell vorgesehen, zwar ursprünglich als Schutz vor Überspannung, aber anscheinend passt der Low-Pegel trotzdem. Die Pullup müssen natürlich auch passen.
Helge schrieb: > Wie du an deinem zitierten >Andreas S. schrieb: siehst, bin ich nicht > der TO. Das war mir klar. Aber du hast dich darauf bezogen. Helge schrieb: > Bei meiner Schaltung gab es bisher keine Probleme, aber sie soll > zuverlässig sein und falls der Fall eintritt, muss der Fehler behebbar > sein So etwas testet man gründlich aus, unter realen Betriebsbedingungen, bevor man sich auf seine Kreationen verlassen möchte. Das ist die professionelle Vorgegehensweise. Wenn ein Fehler auf- tritt dann nicht nach Milliarden von Versuchen sondern nach wenigen hundert. Und wenn ein Fehler auftritt dann darf man erst mal der eigenen Hardware die Schuld geben, z.B. einem Fehler im Hardware- Design des verwendeten Controllers.
>So etwas testet man gründlich aus, unter realen Betriebsbedingungen es läuft sein 2 Wochen, aber ich kann ja kein Jahr warten nur um dann zu wissen, dass es geht, oder eben nicht. Offenbar kann man eben nicht alles ausschließen und es kann dennoch zu einem Fehler kommen, wenn ich den ganzen Texten glauben schenken darf. >dann darf man erst mal der eigenen Hardware die Schuld geben das hilft mir im Zweifelsfall alles nicht. Ich handle lieber, als jemandem die Schuld zu geben
>Das OLED hat evt. einen Reset-Eingang, Da hast du tatsächlich Recht, wollte ein SSD1306 verwenden. Der Reset ist zwar nicht rausgeführt, aber offensichtlich gibt es diese Funktion https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf
> Da hast du tatsächlich Recht, wollte ein SSD1306 verwenden.
Da hab ich eine gute Nachricht. Der SSD1306 scheint relativ gutmuetig zu
sein.
Ich hab den seit 2Jahren in einer Anwendung im 24h Dauerbetrieb laufen.
Meine Anwendung wird zwar das Oled ueber Clocks von Hand initialisieren
wenn es sich tot stellt, kann aber die Betriebsspannung nicht
abschalten.
Allerdings hab ich auch eine schlechte Nachricht. Diese Oled sind
nicht fuer Dauerbetrieb geeignet. Alle Pixel die leuchten altern und
leuchten dann weniger hell.
Das war schon nach einem Jahr nicht zu uebersehen, mittlerweile sieht
es schlimm aus. Man kann die Anzeige zwar noch lesen, aber schoen ist
das nicht mehr.
Haengt natuerlich von der Anwendung ab. Fuer irgendein blaba ist das
okay, aber wenn huebsches aussehen wichtig ist dann wird man diese Teile
wohl so alle 6Monate wechseln muessen wenn sie dauerhaft an sind. Oder
man muss noch etwas Gehirnschmalz reinstecken und die Pixel ab und an
etwas shiften damit sich die Abnutzung verteilt. Das hab ich bei mir
jetzt nicht gemacht.
Olaf
Um noch mal auf deine eigentlich Frage einzugehen. Ein Loadswitch ist ein Mosfet, genauer gesagt sind es zwei. Und ich wuerde dann auch einen solchen nehmen weil das bequemer ist. Ich wuerde das dann so machen das ich die beiden Pullups am SSD1306 auf Vcc lege und dieses VCC dann abschalte. Da dein Microcontroller mit Opendrain mit dem Baustein redet ist er dann aus. Das wird gehen. Jetzt muss man aber natuerlich so einen Loadswitch erstmal haben. Falls die ueblichen Versender von Bastelbedarf wie Reichelt sowas noch nicht im Angebot haben vielleicht etwas schwer zu bekommen. Falls du in deiner Schaltung sowieso 3V3 Spannungsregler brauchst dann wuerde ich vielleicht einen LP2985 nutzen. Das ist ein Lowdrop Spannungsregler mit Enableeingang. Die gibt es auch bei Reichelt. Rechne aber vorher mal die Verlustleistung aus! Olaf
>wuerde dann auch einen solchen nehmen weil das bequemer ist bequem ist bei mir kein Argument, es soll stromsparend sein. > Falls du in deiner Schaltung sowieso 3V3 Spannungsregler brauchst Dann bräuchte ich zwei Regler in der Schaltung, das ist vermutlich ineffizienter, als Mosfets ider load switches benutze hier dcdc converter, um die Verluste zu minimieren. Das OLED ist natürlich nicht die ganze Zeit an, vermutlich eher 98% der Zeit aus. >ueblichen Versender von Bastelbedarf wie Reichelt Ich bestelle schon länger alles bei mouser, dort ist so gut wie alles verfügbar
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.