In einem anderen Thema habe ich schon einige Fragen zum MCP16301
beantwortet bekommen.
Nun habe ich mich entschlossen das "ganze" Projekt hier zur Schau zu stellen,
durchaus im Bewusstsein, das so Einige nur den Kopf schütteln werden.
Situation ist folgende :
1.)
Sensor:
Es gibt mehrere ESP, welche die Raumtemperaturen in Abständen überwachen.
Hierbei handelt es sich um ein NodeMCU Board mit DS18B20 Sensor.
Versorgt wird die Schaltung von einer 18650 Zelle.
2.)
Der Aktor:
Diese Seite soll die Heizung bzw. einen Schrittmotor steuern.
Auf dem Steckbrett mit dem nötigsten aufgebaut funktioniert auch dies super.
Hier gibt es nur den ESP, den A4988 Driver und VIN = 12V auf dem Steckbrett.
Nun muss eine "bessere" Schaltung und eine Platine her.
Features bis jetzt:
3 Versorgungseingänge unabhängig von einander.
1.- max 30V DC in -> Regelung durch MCP16301
2.- Akkubetrieb (2x 18650 in Reihe) -> Regelung durch MCP16031
3.- Backup -> Max 12V DC -> AMS1117 des NodeMCU nutzen
Batteriespannung messen, Verbindung trennbar durch Jumper für
DC IN > 8.4V
Schrittmotor ebenfalls verschieden versorgbar über Jumper.
MCP16031 Ausgang trennbar (Bei Nutzung des AMS1117).
EEPROM 24LC32 zum Speichern der Motorposition um Flash vom ESP zu schonen.
(verhindern von mehrmaligem auf/zu nach Stromunterbrechung / Wakeup aus
DeepSleep)
RS vom A4988 hab ich auf Masse ziehen müssen, mit R4, weil der Motor fiept,
sobald der ESP in DeepSleep geht.
Bei 12V R4=4k7, bei 8V4 R4=820R.
Dieses Verhalten ist mir nicht ganz schlüssig, muss mit dem Pinzustand
im Deepsleep zusammenhängen. Wenn der ESP wach ist, ist alles i.O.
Scheint als wäre softwareseitiges Runterziehen im DeepSleep nichtmehr wirksam.
Mechanik für den Aktor, sowie die Batteriehalter sind selbst entworfen und
3D-gedruckt, falls sich jemand über die Batteriehalterfootprints, oder die Verwendung des Motors wundern sollte.
Würde mich freuen, wenn jemand Verbesserungsvorschläge hat, Anmerkungen, etc.
Vorallem gehts hier um Teil 2, also den Aktor. Die Sensorseite funktioniert soweit prima.
Ist es Absicht dass der Pin D0 bei dem Schematic zum Actor der Pin D0(GPIO16) vom NodeMCU mit dem Reset des NodeMCU verbunden ist anstatt dem A4988-Stepper Motor Treiber?
Am Pin D0(GPIO16) hängt nämlich das Flag "RST". Genau so am Reset-Pin des NodeMCU - da hängt auch das Flag "RST". Am Reset-Pin des A4988 hängt aber das Flag "RS".
Und im Gegenzug ist derzeit der Reset-Pin des A4988 mit nichts verbunden. Zumindest habe ich in diesem grässlichen Suchspiel kein korrespondierendes Flag mit "RS" gefunden.
Am Pin D0(GPIO16) hängt nämlich das Flag "RST". Genau so am Reset-Pin
des NodeMCU - da hängt auch das Flag "RST". Am Reset-Pin des A4988 hängt
aber das Flag "RS".
Ja, die Verbindung wird benötigt um den ESP aus dem Tiefschlaf zu holen.
D0 gibt nach Ablauf der Zeit ein Signal aus.
Und im Gegenzug ist derzeit der Reset-Pin des A4988 mit nichts
verbunden.
D5 geht an den RS vom Treiber.
Sicher? Das Flag liest sich im PNG bei D5 viel mehr wie ein "R5" anstatt "RS".
Das ist genau das Problem - man muss manuell suchen und wenn man sich mal verschreibt, dann hat man gleich ein Problem. Bei direkt gezogenen Verbindungen gäbe es kein Rätselraten.
Ich habe mal die Ausschnitte angehängt - und so mich meine Augen und die Kompression nicht täuschen, hast du ein Mal "R5" und das andere Mal "RS" geschrieben.
Ich habe auch mal zum Vergleich ein echtes "R5" vom zugehörigen Widerstand angehängt.
Spule um 90° drehen, so dass der Pin 1 so nah wie es geht an den MCP ran kommt. Außerdem die Leiterbahn zwischen MCP, Pin 1 und D2 nicht dicker und länger als nötig, die bildet mit der GND Plane eine Kapazität bzw. eine Antenne und wird mit den 500kHz getaktet. Ich würds nicht breiter als die Bohrung der spule machen.
D2 würde ich auch um 90° Drehen und die Ausgangskerkos unterhalb der Diode platzieren, also zwischen Spule und dem Bauteil links, ebenfalls gedreht. Dann kannst Du zusätzlich zur Groundplane auf der anderen Platinenseite noch eine GND Fläche über D2, C1 und Ausgangskerkos machen, da muss der Strom gar nicht erst durch die Vias
Du hast zwei Strompfade, die möglichst kurz sein müssen:
a) D2->L1->Ausgangskerkos
b) C1 -> MCP -> L1 -> Ausgangskerkos
Die Leiterbahnn von L1 zu D1 muss nicht so dick sein und darf auch länger werden. Außerdem sollte es eine eigene Leiterbahn sein, nicht zusammen mit der Feedbackleitung. Der Spannungsteiler muss direkt an den Ausgangskerkos angepappt werden und sollte wirklich eine eigene Leiterbahn haben, nicht mit irgendwas anderem zusammen. Ich würde diese Feedbackleitung dann auch eher links herum um die Schaltung legen, also weit entfernt von allem was taktet.
Naja ok. Ich würde C4 und C5 noch drehen, so das ground unten ist. Dann hast du eine direkte Verbindung zwischen GND C4,C5 und D1 und C1. Aktuell muss dein C4/C5 GND per VIA auf die andere Seite. dann rüber und dort per VIA wieder nach oben.
Unter die Spule gehört keine Groundplane. Zwischen GND und allen Kupferflächen, die mit dem Schaltausgang des MCP verbunden sind sollte so viel wie möglich Abstand sein. Ich hatte ja oben schon geschrieben das sich zwischen (jeglichem) Kupfer und GND Plane ein Kondensator ausbildet. Wenn du jetzt also viel Kupfer an dem Schaltausgang hast, was dann auch noch dicht an GND ran reicht, dann bekommst du eine große parasitäre Kapazität. Diese muss bei jedem Schaltvorgang vom MCP umgeladen werden verbrennt also unnötig Energie die zum Teil auch noch in Funkwellen (EM) abgestrahlt wird. Für die paar mA die Du hier hast ist das vollkommen unnötig so breite Bahnen zu machen. Die Leiterbahnen sind doch nur wenige mm lang.
Ich habe Dir mal ein Screenshot von einem meiner Projekte gemacht. Das ist ein 1A DC/DC Wandler, die Leiterbahn ist kaum breiter als der Pin. (Des SOT-23-5)
Dann halte ich einfach auf beiden Layern GND weg vom Regler ?
Aber du hast ja auch GND drunter.
Ich versuch mich mal deinem Layout anzunähern.
Bei ner zweilagen Platinen würde ich schon auf der anderen Seite ne durchgehende GND Plane machen wenn es geht. Auch zur Kühlung. Bei vier Lagen nehme ich meist die mittleren Lagen raus wenn es geht.
Hmm, was hast Du vor? Die ist doch gnadenlos überdimensioniert. Kein Wunder dass die so groß ist.
Denk noch mal drüber nach, ob du nicht doch besser ne SMD Spule willst. Ich vermute mal Du bestellst bei Reichelt? Die hier reicht dicke aus: L-1616FPS 15µ. Pads zum anlöten etwas breiter machen so dass Du mit dem Lötkolben dran kommst.
Diese L1, was ist denn das?
Ist das so eine offene Tonnenspule, die super als Sendeantenne taugt? Ja, tatsächlich. Mein Tipp: nimm eine vernünftige magentisch geschlossene Spule.
Um das Thema aus einer anderen Richtung anzupacken: wenn du eine völlig andere Spule verwendest als der Hersteller in seinen Schaltungsbeispielen einsetzt, dann solltest du dir vollkommen sicher sein, dass die für die Anwendung taugt. Bei dieser riesigen Sendespule ist die Antwort: nein, die taugt nicht als Speicherspule für Schaltregler. Nimm eine SMD-Spule, die im MHz-Bereich spezifiziert ist.
Nachtrag: Falls u mit lötkolben lötest, verlängere die Pads an den Außenkanten wenigstens um 0.5mm-0.7mm. Sonst hast du keine Chance da wärme drunterzubringe,
Als Gateway hatte ich erst wie im Projekt einen Raspi im Einsatz, jetzt einen ESP32.
Vorlauftemperatur weit runter, ca 35 Grad. Alle Thermostate komplett auf, wenn einer der wichtigen Räume 30 Minuten über 21,5 Grad ist wird der Brenner im Gaskessel eine Zeit zwangsweise deaktiviert (Brennersperre), Umwälzpumpe läuft weiter.
Wenn die Räume künftig bei tieferen Aussentemperaturen zu sehr auseinanderlaufen schrittweiser thermischer Abgleich über Durchfluss, ggf. auch Nutzung des Thermostats.
Ja, bis auf C4,C5. Ich würde die Spule um 180° drehen, C4 und C5 dann direkt unterhalb der spule platzieren. Siehe mein Bild, Ich habe da auch die Stromschleifen eingezeichnet die sich im Betrieb des DC/DC ergeben.
Ich würde dann vermutlich auch noch c3 drehen und parallel zu D1 setzen. Und dann den ganzen Block aus D2, L1, C4,C5 etwas nach rechts und nach oben ran schieben.
Aaber ich habe ne kleinere Diode (DBoost) gefunden, auch aus dem MCP
Datenblatt. BF140, hat einen kleineren FP und macht die ganze
Sache ein bisschen schöner.
Vorlauftemperatur weit runter, ca 35 Grad. Alle Thermostate komplett
auf, wenn einer der wichtigen Räume 30 Minuten über 21,5 Grad ist wird
der Brenner im Gaskessel eine Zeit zwangsweise deaktiviert
(Brennersperre), Umwälzpumpe läuft weiter.
Sehr guter Ansatz, hab ich leider keinen Zugriff drauf.
Danke dir trotzdem!