diese Frage würde vermutlich auch in ein beliebiges Elektronikforum passen, aber hier finde ich hoffentlich schneller Gleichgesinnte, die mein Problem schon gelöst haben. Ich habe gesucht, aber unter GPIO, prellen, Gleisbox und Pull-Up/Pull-Down nix gefunden. Falls ich einen Beitrag übersehen habe, sorry!
Mein Problem: Der GPIO meines D1 Mini (GPIO D2, Pull-High gegen 3.3V via 100k) geht nicht sauber auf LOW bei Masseschluss gegen GND (verschiedene Quer-Widerstände versucht, auch 0), sobald Gleisspannung (via Märklin Gleisbox, also Rechteckspannung an C-Gleis zwischen Mittelleiter und Massegleis) angelegt wird. Dann "prellt" der GPIO in sehr hoher Frequenz bei "Belegt" und "Frei". Ohne Gleisspannung klappt es wie gewünscht.
Aufbau: D1 Mini mit separater Spannungsversorgung (Schaltnetzteil 12V an AZDelivery MB102 Breadboard Spannungsversorgung), GND auf dem Massegleis, GPIO via Quer-Widerstand am (sauber isolierten) Belegtgleis.
Hätte erwartet, dass die Rechteckspannung keine Rolle spielt, da sie ja nur an GND hängt. Liege ich falsch?
MfG und Danke vorab! Phlix P.S.: D1 Mini läuft stabil und sendet brav seine UDP-Pakete, nur halt sehr viele
danke Dir schonmal! Mache den Pull-Up mal kleiner und berichte, dann mit Schaltplan. Mit C am Eingang meinst Du den Bahnstrom? Wogegen sollte ich dessen GND (=O) mit Kondensator abblocken?
Zitat von Märklix im Beitrag #4Schaltplan im Anhang
welcher Anhang? Eigentlich muß er ja ohne spezielle Schaltung nur bei den "richtigen" Halbwellen der digitalen Gleisspannung auf an gehen und ist während der "falschen" auf aus. Es sei denn die Halbwellen sind deutlich kürzer als 4 Mikrosekunden...
MfG
vik
im Übrigen - Märklin am liebsten ohne Pukos, z.B. als Trix
Hallo Phlix, im D1 Mini den internen PullUp des GPIO aktivieren. Externe Widerstände komplett entfernen. GPIO direkt an Rückmeldeschiene. Eventuell 10nF zwischen GPIO und GND. Anhang nicht zu sehen. Volker
Anfängerfehler: Anhang ausgewählt, hochladen vergessen. Jetzt aber... dafür gleich mit der Lösung von Volker! [[File:MyWiFiMasseMelderD1Nano.pdf]]
Dank Volkers Tipp (und Martin, das meintest Du vermutlich auch? 100nF zwischen GPIO und GND) scheint es jetzt stabil zu sein, kein prellen mehr beobachtet und saubere Rückmeldung. Werde jetzt mal beobachten. Danke für Euer aller Hilfe!!
Jetzt kann das Projekt WLAN-Rückmelder mit ESP8266 unter dem C-Gleis weiter gehen... hat noch jemand einen Tipp. wie ich mir elegant die 3.3V und ausreichend Stromstärke aus der Gleisspannung per SMD holen kann? :-D
P.S. Das mit dem internen Pull-Up kannte ich noch nicht. Da es aber nicht meine Firmware ist, konnte ich es eh nicht ändern.
Dateianlage:
Aufgrund eingeschränkter Benutzerrechte werden nur die Namen und (falls vorhanden) Vorschau-Grafiken der Dateianhänge angezeigt Jetzt anmelden!
Zitat von Märklix im Beitrag #8Jetzt kann das Projekt WLAN-Rückmelder mit ESP8266 unter dem C-Gleis weiter gehen... hat noch jemand einen Tipp. wie ich mir elegant die 3.3V und ausreichend Stromstärke aus der Gleisspannung per SMD holen kann? :-D
ja, die mobatron4lima kenne ich, tausche mich dazu schon mit Gerard über sein Design und die Firmwares aus. Den Artikel aus der DiMo hat Gerard darin auch erwähnt. Seine neueren Firmwares melden alle Z21, und das Bord aus Deinem Link nutzt den Analog-Eingang und multiplext über mehrere Belegtmelder, sendet dann Z21 an einen separaten Mediator. Den halte ich für überflüssig, wenn ich bereits eine "simulierte CS2" im WLAN habe und ohnehin nur Massemelder nutzen will.
Da ich also auf den Rückmeldern mit ESP8266 Märklins CAN via WLAN nutzen will (CAN2LAN als CS2-Server (von GerdBertelsmann) simuliert bereits ein RPi Zero W, und macht gleichzeitig einen WLAN AP für die Rückmelder und meinen Windows-PC auf), habe ich auf einer früheren Idee von Gerard aufgesetzt: S88-Rückmelder über WLAN an CS2 (s88-ueber-wlan-in-die-cs2) - die sendet direkt UDP-Pakete und erscheint ohne Mediator direkt in Rocrail. Hoffe gerade noch, dass er mir eine Firmware mit 4 oder mehr GPIO-Ins kompiliert, derzeit sind es nur 2 pro ESP.
Dieser Post entstand, weil ich mit den 22nF aus dem dortigen Fritzing nicht zurecht kam. Mit 100nF ging es jetzt, also weiter.
Ich brauche also ein etwas anderes Layout (an GPIOs statt Analog messen nur HIGH/LOW messen) und will gerne mehr Eingänge messen, z.B. je zwei Blöcke an zwei benachbarten Gleisen). Wenn ich es dann noch schaffe, den Step-Down auf 3.3V komplett in SMD zu realisieren (das macht Gerard nicht), will ich das Ding gerne komplett in China drucken und SMD-bestücken lassen. Mal sehen, wie weit ich komme...
Zitat von Märklix im Beitrag #10Seine neueren Firmwares melden alle Z21, und das Bord aus Deinem Link nutzt den Analog-Eingang und multiplext über mehrere Belegtmelder, sendet dann Z21 an einen separaten Mediator. Den halte ich für überflüssig, wenn ich bereits eine "simulierte CS2" im WLAN habe und ohnehin nur Massemelder nutzen will.
Nein keinen separaten Mediator! Früher war an der z21/Z21 ein Gateway erforderlich. Der Mediator ist nur zur Konfiguration bei der Variante ale Rückmelder an der Z21/Z21 erforderlich. Als WLAN-MELDER an die CS2/CS3 brauchte man nie ein Gateway und auch keinen Mediator . Siehe auch: https://mobatron.4lima.de/2021/05/nextgen-wlan-sensormodule
Danke Dir für die Aufklärung mit dem Mediatior (welche Firmware ist dann die mit Märklin CAN per UDP?) Und insbesondere Danke für den Link zum Artikel! Der ist tatsächlich sehr viel übersichtlicher als die Blogeinträge, die ich bis jetzt nur kannte! Und super, dass hier das Flashen mit aufgelegter Pinleiste beschrieben ist. Diese Umsetzung war mir noch nicht klar...
Die Gerber-Datei hatte ich schon gefunden, und mir selbst eine BOM dazu gebaut zur Bestellung. War schon kurz vor dem Absenden (bei https://jlcpcb.com/), hatte dann aber noch gezögert (und mich dann zunächst für das Experimentieren per BreadBoard entschieden). Zum einen war ich mir unsicher, ob das Modul vor Verlötung programmiert werden müsste (mein jetziges Board lässt sich nur programmieren, wenn ich die Pull-High-Widerstände von D2 und D5 trenne - oder lag es an was anderem?), zum anderen hatte ich schlicht die Schaltung der gegenläufigen Dioden mit parallelem R nicht verstanden (und gelesen, dass man die R ggf. anpassen müsse - das war mir für die Asien-Fertigung zu heikel). Schließlich war ich irritiert, dass die Gleisspannung nicht gleichgerichtet, sondern nur + mit einer Diode gefiltert wird, somit alle Module nur auf positiver Phase Strom ziehen würden, oder nicht?
Vielleicht wage ich jetzt doch mal eine Bestellung. Wenn ich jetzt noch die Funktion des ROF78E33 direkt im Gerber-File und BOM umsetzen könnte, statt diesen separat auflöten zu müssen...
Zitat von Märklix im Beitrag #13Hast Du das Board mit C-Gleis in Betrieb?
Ja, habe sowhl den Aufbau aus dem Lokschuppen Erkrath 2019 noch, als auch von einem Workshop 2020, unmittelbar vor der ersten Coronawelle, in unseren damaligen Vereinsräumen auf Basis von Trix C-Gleisen. Überwiegend nutze ich selber aber WLAN-Melder neben dem Gleis auf Basis des Wemos D1.
Vielleicht gibt es im Frühsommer 2022 einen Wokshop...
MfG
vik
im Übrigen - Märklin am liebsten ohne Pukos, z.B. als Trix
Hallo Phlix, du solltest möglichst wissen ob der interne Pull-Up am GPIO des D1 aktiv ist. Derzeit, nach Plan in #8, hats du einen externen 100k R an 3,3 V. Am anderen Ende geht eine Leitung zum Gleis (Rückmeldeschiene) und an den 10k R Richtung GPIO. Am Knoten 100k / 10k liegt Gnd, wenn ein Fahrzeug im Rückmeldeabschnitt liegt. Ist durch die Software der interne Pull-Up aktiv hast du am GPIO-Pin aber einen Spannungsteiler gebildet durch den internen Pull-Up nach 3,3V und 10k nach Gnd, der externe 100k R bildet dann bei freiem Rückmeldeabschnitt einen 110k R externen PullUp am GPIO parallel zum internen bei belegtem Abschnitt ist er dann nur eine Last für die 3,3V Betriebsspannung. Je nach WIderstand des internen Pull-Ups kann die Spannung dann am GPIO zu hoch sein, dass Low erkannt wird. Daher: Ist der interne Pull-Up abgeschaltet funktioniert deine Schaltung, ist der PullUp aktiv müssen externer 10k und 100k-Widerstand entfernt werden. Wenn sauber programmiert wurde sollte der interne PullUp aktiv sein, weil dann bei unbeschalteten GPIOs ein eindeutiger Pegel anliegt (High). Volker
Hallo Phlix, ob du mit intern aktivem Pull-Up am GPIO 3,3V messen kannst hängt von internen Aufbau des ICs ab. Weder deine Lösung noch meine ist sicher gegen Entgleisung. Sollte der Schleifer einer Lok Mittelleiter und Rückmeldeschiene verbinden, dann liegen ca 20V an Eingang des GPIO an. Das überlebt der IC nicht. Auch der vorgeschaltete SMD-StepDown wird das zeitliche segnen. Volker