Guten Tag,
ich habe meine erste eigene Platine entworfen. Könnt ihr mir Tipps geben
oder sagen ob die Platine so funktioniert?
Als Komponenten werden ein
ESP32
ein Schrittmotorentreiber DRV8825
ein Kondensator 100uf (C1)
und 2 Schraub-Terminals (unten)
eingesetzt.
Den Schritt-Motor würde ich mit einem 24V 1,5A Netzteil betreiben. Die
Schaltung funktioniert auf einem Breadboard. J1-J7 ist für etwaige
Taster und am Display Port wird ein Nextion Display angeschlossen.
Grüße
Entschuldigung, anbei der Schaltplan.
Wie gesagt die Schaltung an sich funktioniert, es geht mir mehr um das
PCB-Design.
Ich bin Softwareentwickler, habe schon mehrere kleinere Arduino oder ESP
Projekte gemacht, aber noch nie ein eigenes PCB entworfen.
Grüße
Für dein erstes Board ist das schon gut.
Ich würde aber noch bei den 3.3V- und 5V-Spannungsversorgungspins der
beiden ICs jeweils Stütz-Kondensatoren, möglichst nah an diese Pins,
platzieren. 10uF/100nF parallel. Damit die Schaltung auch wirklich
sicher funktioniert. Evtl. hast Du schon einige Male hier mitgelesen,
dass bei Fehlfunktionen oft solche fehlenden Kondensatoren die Ursache
waren.
Überprüfe bitte nochmal die GND-Verbindung zum DRV8825-Motortreiber. Da
sehe ich keine Verbindung zu der Buchse.
Du verbindest den Digital-GND zum Motortreiber-IC über den GND vom
ESP32-Board, das ist jetzt nicht so nett. Siehe meine Skizze und die
direkte Verbindung, die ich eingezeichnet habe.
Den POWER-GND von der Buchse zum Motortreiber ergänzen.
Die Leitung rechts oben, etwas weiter nach oben schieben.
Und mache bitte jeweils den Pin 1 quadratisch, damit Du nicht aus
Versehen ein IC falsch herum einlötest. Eine "Pin 1"-Markierung ist eine
echte Hilfe.
Und wenn Du noch ein Fleißbildchen haben möchtest, könntest Du auch noch
die 90-Grad-Knicke gegen 45-Grad-Knicke tauschen. Muss aber nicht
unbedingt sein.
Viel Erfolg!
°) wie kommen die 5V auf die Platine?
°) auch wenn es am Steckbrett läuft, es ist gute Praxis
Konfigurationspins auf ein definiertes Potential zu bringen: RST, Sleep,
M0, M1, M2, Enable.
Ich würde zumindest Pinheader dafür vorsehen (3reihig mit GND/Vcc) um
entsprechend jumpern zu können; notfalls einfach mit Widerständen aufs
gewünschte Potential.
Der ESP32 hat aber so viele freie gpios, dass du davon ruhig ein paar
für sämtliche o.g. Konfigpins des Steppermoduls verwenden kannst. Damit
hast du volle Kontrolle und selbst wenn du das nicht willst/brauchst
sind es nur ein paar wenige Zeilen Code zur fixen Initialisierung.
Vielen Dank für die guten Ratschläge. Ich habe die Platine nun etwas
umgestaltet, einen Kondensator für die 5V Versorgung des Treibers
hinzugefügt und die 90° Winkel der Leiterbahnen angepasst.
Brauche ich für die 3,3 V wirklich auch einen Kondensator, die sind wie
gesagt nur für die Schaltsignale von etwaigen Tastern. Die 5V Versorgung
kommt über den USB-Port des ESP32, den brauche ich sowieso weil seriell
mit einem Windows-PC kommuniziert wird. Die Stromstärke sollte für die
eingesetzten Verbraucher ausreichen, zumindest läuft es seit einigen
Wochen auf dem Steckbrett ohne Probleme, zudem wird das Display mit
ziemlicher Sicherheit nicht benötigt.
Die Microsteps brauche ich z.B. ganz sicher nicht, ich wollte das Board
so einfach wie möglich gestalten.
Grüße
DT
DT schrieb:> Die Microsteps brauche ich z.B. ganz sicher nicht, ich wollte das Board> so einfach wie möglich gestalten.
trotzdem sollten nicht verwendete Eingänge auf ein fixes Potential
gelegt werden - insbesondere wenn in unmittelbarer Nachbarschaft
steilflankige Signale entstehen (z.B. Schaltvorgänge an Induktivitäten).
Für einige Signale ist im DB des Steppermoduls zwar angegeben welche
Defaulteinstellung bei offenem Eingang vorliegt, aber M0-M2 sind nicht
darunter. Wundere dich dann nicht, wenn du unerklärbaren Schrittverlust
o.ä. beobachtest ... so viel Aufwand sind die paar Verbindungen wohl
nicht um klare Verhältnisse zu schaffen.
Wenn sich diese "umsichtige" Herangehensweise auch im Programmierstil
widerspiegelt wird der Thread noch länger für Unterhaltung sorgen ...
Vielen Dank nochmal für deinen Vorschlag.
Anbei Version 3, ich habe nun den Pin-Header und Kondensator für die 5V
hinzugefügt. Du hast natürlich Recht, an etwaige Störsignale habe ich
nicht gedacht bzw. fehlt mir da einfach die Erfahrung, deshalb frage ich
auch hier nach.
Zusätzlich habe ich den Enable-Pin mit einem GPIO des ESP verbunden. Ich
denke da schadet es nicht wenn ich den Softwareseitig ein- und
ausschalten kann.
Grüße
DT
Ich würde das ganze bloss einseitig machen. Mit etwas anderer
Leitungsführung lässt sich das ganze mit höchstens 2 Drahtbrücken auch
einseitig aufbauen.
Wenn man die Platine von irgendner Fa. herstellen lässt, spielt das zwar
keine Rolle. Falls man die aber selber, ganz gleich ob fräst oder ätzt,
ist bloss einseitig aber deutlich weniger Aufwand.
Ich habe sowieso vor die Platine bei AISLER herstellen zu lassen. Daher
ist mir das nicht wichtig.
Anbei wäre noch die Fritzing Datei, vl. kann ja irgendjemand damit etwas
anfangen.
Grüße
Hi,
die KEEP-OUT area des ESP32 Module ist wahrscheinlich der
Antennenbereich?
Ich würde das ESP32 Modul um 180° drehen, so dass die Antenne ganz am
Rand deiner Platine liegt und vor allem weiter entfernt vom
Motor-Treiber der ja echte Leistung steuert und Störungen einstreut. Vor
allem für den Empfang ist das besser. Noch besser wäre natürlich eine
abgesetzte Antenne.
Zum Debuggen würde ich die JTAG pins des ESP32 auf einen eigenen
Debug-Header legen und für nichts anderes verwenden. Das sind die GPIO
Pins 12 (TDI), 13 (TCK), 14 (TMS), 15 (TDO), ggf. noch 9 (nTRST).
"Copper Fill" mit GND verwenden
(https://www.youtube.com/watch?v=yEGhBdXcqtk
). Möglicherweise solltest du die Füll-Bereiche zwischen ESP32 und dem
Motor-Treiber trennen.
Michael
DT schrieb:> Es haben sich ein paar Fehler eingeschlichen, daher hier nochmal.
Naja, da steckt noch ne Menge Verbesserungspotential drin ;-)
Schaltplan richtig zeichnen
Schaltplan
Keine schrägen und schiefen Leitungen, nur 90°
Keine Leitungen durch Symbole
Layout
keine schiefen Leitungen, nur 0, 45 und 90°
Diese sehr einfache Platine braucht keine 2 Lagen. Route alles so weit
wie möglich auf der Unterseite und nutze eine handvoll Drahtbrücken
G. H. schrieb:> trotzdem sollten nicht verwendete Eingänge auf ein fixes Potential> gelegt werden
Das DRV8825 hat interne 100k Pull-Downs, ist also nicht offen.