Hallo Leute, ich habe ein Problem mit meinem Wemos D1 mini light. Ich arbeite gerade an einem kleinen Projekt, bei dem ich den Controller über einen 18650 3,7V Li-Ion Akku betreibe. Dabei sind noch Sensoren und Taster angeschlossen und auch ein GSM-Modul, welches über SoftwareSerial kommuniziert. Und noch ein DS3231 RTC Modul an SCL und SDA. Ich brauche nur jede Stunde Daten, deswegen versetze ich den Controller in DeepSleep. D0 und RST Pin sind miteinander verbunden. Leider blinkt der Controller am Ende des DeepSleeps nur kurz auf aber macht nichts. Danach passiert gar nichts mehr. Er verhält sich genau so, wie wenn D0 und RST nicht verbunden wären. Erst, wenn ich auf den Reset Button am Wemos drücke, startet er neu und arbeitet normal (bis zum nächsten DeepSleep). Wenn ich allerdings alles vom Wemos abschließe und ihn alleine, nur mit Stromversorgung über 18650 und Verbindung zwischen D0 und RST, laufen lasse, dann klappt der Neustart nach dem DeepSleep jedes Mal ohne Probleme. Am GSM Modul liegt es glaube ich nicht, da es nur mit Wemos und GSM auch schon bei Tests funktioniert hat. Das GSM Modul wird durch einen MOSFET vom Wemos eingeschaltet, wodurch ich auch (fast) ausschließen kann das zu viel Strom gezogen wird. (Falls das Probleme machen könnte beim Reset) Kennt dieses Problem jemand? Danke im Voraus
Hallo, das Problem kenne ich nicht. Einen D1 mini schicke ich schon deshalb nicht schlafen, weil auf dem Modul für mich zuviele unnötige Stromverbraucher sind. Möglich wäre, daß der 100n, der laut Schaltplan am Reset parallel zum Taster liegt, stört. Wenn der Impuls an GPIO16 sehr kurz ist, könnte der Reset nicht sauber starten. Man könnte den einfach mal vom Modul runterlöten. Gruß aus Berlin Michael
Danke für die schnelle Antwort. Wenn du es schon ansprichst...Welches Modul wäre für solche Zwecke besser geeignet? Das komische ist, dass es ohne angeschlossenen Geräten funktioniert. Ich glaube ich versuche nochmal alles Angeschlossene nacheinander abzulöten und jedesmal probiere ich, ob sich sein Verhalten verändert. Und wenn das auch nicht klappt entferne ich den 100n. mfg Daniel
du solltest mal die ser. Ausgabe beim Aufwachen kontrollieren. Möglicherweise hat eine der angeschlossenen Komponenten nach dem Deepsleep einen anderen Zustand und hängt an einem der "empfindlichen" gpios, als da wären: gpio0, gpio2, rxd, gpio15 Für Anwendungen mit deepsleep immer nur Einzelmodule (esp-01, esp-12, etc) die ganzen "Entwickler"boards haben mit billigst 3V3 Regler und USB/seriell Wandler einen x-fach höheren Ruhestromverbrauch. Wenn es wirklich darauf ankommt: LiFePO4 Zelle verwenden und ganz ohne ldo auskommen.
:
Bearbeitet durch User
Hallo, G. H. schrieb: > gpios, als da wären: gpio0, gpio2, rxd, gpio15 hatte ich auch zuerst überlegt, aber dann dürfte er nach Reset per Taste eigentlich auch nicht sabuer starten. Ansonsten auch Zustimmung, LiFePO4 ist hier auch Akku der Wahl, allerdings ist bei ihm ja ein GSM-Modul im Spiel, da weiß ich die nötige Spannung nicht. Der DS3231 kann doch eigentlich einen Alarm per INT melden, da kann man den doch vermutlich soagr nutzen. Kleinen StepDown mit Enable-Eingang und den samt ESP komplett abschalten. Mit der RTC den Wandler starten und alles erledigen und vom ESP wieder abschalten? Müßte ich jetzt aber das Datenblatt der RTC befragen. Gruß aus Berlin Michael
Kenne mich leider bei Akkus nicht so aus. Was ist der Vorteil eines LiFePO4 gegen einen Li-Ion? An GPIO0 und GPIO2 betreibe ich mein GSM-Modul über SoftwareSerial. Und über GPIO15 schalte ich den MOSFET für mein GSM Modul. Alles über die RTC steuern habe ich noch garnicht überlegt. Kenne mich damit aber auch viel zu wenig aus. Wie würdet ihr die Module mit Spannung versorgen, um möglichst wenig Verlustleistung zu haben? GSM: 4V ESP: 3,3V
benutzt du eigentlich WLAN neben GSM? Wenn nicht, versuche doch einmal einen AVR Arduino, der ist im Standby wesentlich genügsamer, läuft auch mit 3.3V und zickt nicht so rum wie der esp. Den esp nehme ich eigentlich nur dort wo ich WLAN oder die Rechenleistung brauche. LiFePo4 hat den Vorteil, dass die Ladung wesentlich unkomplizierter, die Zellchemie nicht "reaktionsfreudig" und die Spannung über großen Bereich (>95% Kapazität) zw. 3.6 und 3.2V stabil ist. Bei Vorhandensein einer RTC als "Wecker" und MOSFET zur Versorgung würde ich tatsächlich auch ein externes Energiemanagement bevorzugen. Sind die 4V für GSM eine "Mindestspannung" weil intern ein 3.3V Regler sitzt? 4V ist irgendwie ... krumm.
:
Bearbeitet durch User
Hallo, Daniel E. schrieb: > Kenne mich leider bei Akkus nicht so aus. > Was ist der Vorteil eines LiFePO4 gegen einen Li-Ion? Vorteil: eigensicher (brennen also nicht ab) Spannung sehr konstant bei ca. 3,3V über die gesammte Zeit. Ladeentspannung ust 3,6V, wenige Minuten nach Entnahme aus dem Ladegerät ist die Spannung bei ca. 3,4V und fällt erst am Ende der Kapazität unter 3,15V. Recht unempfindlich gegen Überladung und Tiefentladung. Nachteile: Preis ist höher, Kapazität nur ca. 50% von LiIO bei gelicher Baugröße. > An GPIO0 und GPIO2 betreibe ich mein GSM-Modul über SoftwareSerial. Da Du das GSM-Modul von der Spannung trennst, ist das Verhalten da etwas unbestimmt... Eigentlich müßteman auch die Datenleitungen trennen, da üblicherweise die Spannung an den IO des GSM-Moduls auch nicht höher als Ub +0,5V sein sollte (darf), also die müßte dann auch nahe 0V sein. Sonst kann das Modul über die internen Schutzdioden Strom über die Eingänge ziehen. Das hängt aber sehr stark vom Modul und dessen Datenblatt ab. > Und über GPIO15 schalte ich den MOSFET für mein GSM Modul. GPIO15 muß beim Reset auf L liegen, der interne PullDown des D1 mini ist wohl 12k. Wie schaltest Du das GSM-Modul? Low-Side oder High-Side? GND schaltet man ohnehin nie, weil dann die Spannungsverhältnisse völlig unduchschaubar sind. > Alles über die RTC steuern habe ich noch garnicht überlegt. > Kenne mich damit aber auch viel zu wenig aus. > Wie würdet ihr die Module mit Spannung versorgen, um möglichst wenig > Verlustleistung zu haben? > GSM: 4V 4V bekommst Du real doch sowieso nicht aus einer LiIO-Zelle, sinnvoller Entladeschluß bei LiIO ist irgendwo bei 3,0V. Kommt denn Dein GSM-Modul damit klar? > ESP: 3,3V Vermutlich 2 LiIO in Reihe, StepDown mit Enable und kleinem StandBy-Strom auf 4V. Für den ESP müßte man da mal Nachdenken. 1 Zelle LiFEPO4 direkt für den ESP und StepUp mit Enable auf 4V für das GSM-Modul wäre auch denkbar. 1 Zelle LiIO dürfte für das GSM-Modul einen Buck-Boost von den 4,2...3,0V auf die 4V erfordern. Gruß aus Berlin Michael
:
Bearbeitet durch User
Michael U. schrieb: > GPIO15 muß beim Reset auf L liegen, der interne PullDown des D1 mini ist > wohl 12k. Wie schaltest Du das GSM-Modul? Low-Side oder High-Side? > GND schaltet man ohnehin nie, weil dann die Spannungsverhältnisse völlig > unduchschaubar sind. Wie meinst du das auf L liegen? Ich schalte GPIO15 einfach als Ausgang auf HIGH
G. H. schrieb: > benutzt du eigentlich WLAN neben GSM? Wenn nicht, versuche doch einmal > einen AVR Arduino, der ist im Standby wesentlich genügsamer, läuft auch > mit 3.3V und zickt nicht so rum wie der esp. Den esp nehme ich > eigentlich nur dort wo ich WLAN oder die Rechenleistung brauche. > LiFePo4 hat den Vorteil, dass die Ladung wesentlich unkomplizierter, die > Zellchemie nicht "reaktionsfreudig" und die Spannung über großen Bereich > (>95% Kapazität) zw. 3.6 und 3.2V stabil ist. > Bei Vorhandensein einer RTC als "Wecker" und MOSFET zur Versorgung würde > ich tatsächlich auch ein externes Energiemanagement bevorzugen. > Sind die 4V für GSM eine "Mindestspannung" weil intern ein 3.3V Regler > sitzt? 4V ist irgendwie ... krumm. Nein benutze kein WLAN. Werde mir den AVR mal ansehen. Das GSM Modul ist ein SIM800L und hat eine Betriebsspannung von 3,7 - 4,2V Unter 3,7V wäre für mich der Akku so zu sagen leer gewesen.
noch mehr Grund, einen AVR (Arduino) zu verwenden. Dann passt die LiIon Zelle als direkte Versorgung für µC und GSM Modul schon mal bestens ohne zusätzlichen Regler. Für i2c Module einfach den üblichen Pegelwandler dazwischen, wenn es denn sein muss und die Teile nicht mit der Versorgung kompatibel sind.
Was würdest du dafür genau für einen µC empfehlen? Ich werde es aber glaube ich trotzdem noch mit dem Wemos fertig machen und Version 2 komplett überdenken. Ich hoffe allerdings ich finde den Fehler vom DeepSleep.
Hallo, Daniel E. schrieb: > Wie meinst du das auf L liegen? GPIO15 muß beim Reset auf Low-Pegel liegen damit der ESP aus dem Flash bootet. GPIO0 muß auf High-Pegel liegen, damit er nicht nicht vom UART gebootet wird ("programmiermode"). > Ich schalte GPIO15 einfach als Ausgang auf HIGH was Du hinterher machst ist beim Reset egal, GPIO15 als Ausgang geht problemlos. Intern hat der auf dem D1 mini einen PullDown Widerstand dran damit er im richtigen Bootmode srtate. Wenn jetzt im Reset-Moment von Außen eine Spannung an GPIO15 kommt (egal, auf welchen Weg) und an den 12k auf dem Modul mehr als ca. 1,5V abfallen, erkennt er im Reset kein Low und bootet im falschen Mode. Bei den 12k reicht dazu von Außen ja bereits ein Strom von 100µA. Dehslab meine Frage nach der genauen Schaltung. Ich hatte auch schon überlegt weshalb ESP8266 und GSM. Hast Du ja schon beantwortet, da würde ich auch einen AVR nehmen. Keine Ahung, welche Sensoren Du dran hast, aber ein Mega328 (Arduino Pro Mini) sollte sich nahezu ohne Änderungen Deiner Software einsetzen lassen. Einen USB-TTL-Adatper brauchst Du dann natürlich noch oder erstmal einen Ardunino Nano zum Test nehmen. Gruß aus Berlin Michael
Hätte nie gedacht, dass die Lösung meines Problems so einfach ist. Widerstand zwischen GPIO15 & GND und schon funktioniert es. Ich werde mich aber sicher nochmal schlau machen und mich nach Alternativen umschauen. Danke für eure Antworten
> Leider blinkt der Controller Das ist krass, normalerweise können nur LEDs und Glühlampen blinken. :-) > Möglicherweise hat eine der angeschlossenen Komponenten nach dem > Deepsleep einen anderen Zustand und hängt an einem der "empfindlichen" > gpios, als da wären: gpio0, gpio2, rxd, gpio15 Ein manuell ausgelöster Reset Impuls dauert viel länger, als der Reset-Impuls des Sleep-Timers. Somit haben diese Pins mehr Zeit, auf die nötigen Signalpegel zu wechseln. Ich denke damit ist erklärt, warum es bie Dir mit einem manuellen Reset funktioniert hat. GPIO1 und 2 enthalten intern schwache Pull-Up Widerstände. Wenn diese kapazitiv belastet sind, kommen sie beim Aufwachen womöglich nicht schnell genug auf High Pegel. GPIO 0 und 15 müssen beim Start (und Aufwachen) durch einen externen Widerstand auf Low gezogen werden. Auch hier gilt: Wenn der Widerstand zu hochohmig ist und der Pin kapazitiv belastet ist, kommt das Signal nicht schnell genug auf Low. MOSFET Transistoren haben mitunter eine beträchtliche Kapazität, oft mehr als 1nF.
Hallo, Stefanus F. schrieb: > GPIO 0 und 15 müssen beim Start (und Aufwachen) durch einen externen > Widerstand auf Low gezogen werden. wenn Du GPIO beim Reset auf Low ziehst, landest Du im Programmiermode... Gruß aus Berlin Michael
Sorry stimmt. Ich habe vom falschen Absatz abgeguckt. GPIO 0 muss natürlich high sein.
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.