mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Stepper Driver mit CAN + Endstops


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Mathias M. (matjes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich bin dabei ein Board zu designen, dass auf nen Nema17 Motor 
geschraubt werden kann, den Treiber an Bord hat, per CAN angesteuert 
werden kann und zwei Induktive Endstops  (24V) verarbeiten kann.
Platinen lass ich machen und will das dann mit Heißluft löten. Um mir 
das Bestücken einfach zu machen, hab ich als Schrittmotor-Treiber ein 
Pololu-Kompatibles Modul ausgesucht und auch den 24V-3.3V Step Down als 
Modul (siehe Anhang) verbaut. Ich hätte gerne auch den uC als Modul 
verbaut, das aber nicht kompakt genug gefunden.

Als Anfänger wäre ich froh, wenn jemand mal über den Schaltplan und das 
Layout gucken könnte und mir Tipps geben kann, was ich verbessern sollte 
oder ob das so funktionieren könnte.

Ein paar Punkte
- Ich bin mir nicht sicher, ob ich den Resonator brauche oder ob der 
interne reicht. Ich würde mir aber gerne die Option freihalten.
- Endstops, das sollen induktive 24V NPN Endstops sein. Ich hab jetzt 
nur nen 30k Vorwiderstand und nen 100k Pulldown. Reicht das noch um den 
Pin sicher auf High zu legen?
- uC: Ich hab jetzt den viel zu starken STM32F103 genommen, weil ich den 
hier schon auf den BluePill Boards hab und der CAN kann.
- Ich werd auch nen Stencil bestellen. Sind die Bauteile zu dicht 
aneinander oder bekommt man das auch als Anfänger schon hin? Ich hab 
eine ganz einfache LED Platine mit 0603 Vorwiderständen mit Heißluft 
gelötet. Platzieren war fummelig, daher bin ich jetzt auf 0805 gegangen…
- Wie sieht das EMV-Mäßig aus? Hab ich zu wenige Cs oder zu weit weg und 
Strom fließt schlecht von einer Seite zur Anderen?

Insgesamt interessiert mich vor allem eure Meinung, ob ich mir da zu 
viel vorgenommen habe oder ob das schon klappen kann.

Falls Interesse bestehen sollte, kann ich das Projekt auch unter ner 
offenen Lizenz freigeben und die Kicad Files hochladen.

Hier noch das Board:
https://gerber-viewer.easyeda.com/showcase/?#!id=8e41dbfb7b0211e999d9026a86b9cae7

Danke schonmal.
Mathias

Autor: Max D. (max_d)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mechaduino macht was ähnliches.
kannst dir ja ein paar Ideen klauen 😉

Autor: Mathias M. (matjes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hätte ich natürlich schreiben sollen. Kenne ich schon, genauso wie 
Annanasstepper. Ich würde das auch fast lieber kaufen als bauen, aber 
mir sind Endstops lieber als ein Encoder. (Auch wenn ein Encoder schon 
nett ist, das war mir jetzt aber zu aufwändig.)
Danke dennoch für den Hinweis.

Autor: Rainer S. (enevile)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Kondensatoren mit Werte anpassen. (100n oder 100u)
R6 hat 31Ω?

An die Abschlusswiderstände vom CAN-Bus hast du gedacht?

: Bearbeitet durch User
Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Spannungsteiler Verhältnis wird dem controller aber auch nicht 
schmecken...

Autor: Mathias M. (matjes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Rainer, sollen natürlich überall nF sein. Hab ich jetzt angepasst. 
R6 sollen tatsächlich 31Ω sein. Ich hab den sonst auch nie gesehen, im 
Datenblatt aber irgendwo was dazu gefunden und dann diesen Wert 
ausgerechnet. Ich hätte den erstmal nicht bestückt und gebrückt.

Die Abschlusswiderstände würde ich jetzt direkt an die Leitungen 
löten... vielleicht sollte ich doch nen Footprint dafür vorsehen.

Autor: Mathias M. (matjes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus, das ist auch weniger ein Spannungsteiler als eine 
Strombegrenzung mit Pulldown. Ich hab überlegt nur zu dieser Frage einen 
eigenen Thread aufzumachen. Jetzt gibt es aber schon so viele 24V auf 3V 
Eingang Threads...
Würde das so nicht klappen? Es kann ja max 1mA fließen, der Sensor hat 
auch nochmal 10k integriert und den Rest übernehmen dann die 
Schutzdioden.

Autor: H.Joachim S. (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mathias M. schrieb:
> das sollen induktive 24V NPN Endstops

Dazu passt deine Eingangsschaltung aber nicht.

Autor: Mathias M. (matjes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ok, ich hab jetzt noch ne Zener und einigermaßen passende Widerstände 
für nen Spannungsteiler spendiert. Zusammen mit den 10kOhm im Sensor 
sollte die Zener nicht viel zu tun haben.

Super froh wäre ich, wenn sich einer das Board angucken könnte. Ich habs 
jetzt nochmal angehangen. Sind die Vias zu nah an den Bauteilen oder 
kann man das so schon machen? Auf der Vorderseite ist eine 3.3V Plane, 
die Rückseite ist auf Masse...

Ähm Die Zener ist wohl falsch herum eingezeichnet...

: Bearbeitet durch User
Autor: H.Joachim S. (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein reinrassiger npn-Ausgang ist ein open-collektor. Der liefert i.a. 
selbst keine Spannung (kein pull-up gegen Betriebsspannung). D.h. der 
schaltet nur gegen Masse und ein pull-up gegen 3,3V wäre deine passende 
Eingangsschaltung, Pegelwandlung entfällt. Aber lieber ins Datenblatt 
schauen oder nachmessen. Genauer Typ?

Zum Layout-schauen habe ich keine Lust. Probiers halt aus, nur die 
selbstgemachten Fehler sind das, was man im Lauf der Zeit Erfahrung 
nennt :-)

Autor: Mathias M. (matjes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Joachim, Danke für deine Antwort. Die Sensoren haben tatsächlich 
(leider) einen Pullup gegen die Betriebsspannung. Scheint mir aber bei 
allen induktiven Endstops so zu sein. Ich hab hier die:
Ebay-Artikel Nr. 401735456207
Aber auch bei anderen habe ich das gesehen. Angehangen hab ich die von 
Igus.

Ich glaub morgen bestell ich das einfach. Bei 4 pro Panel und 5 Stück 
kann ich 18 mit falschen Widerständen verhunzen. Ich hoffe nur, dass 
prinzipiell kein Fehler drin ist...

Autor: H.Joachim S. (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich seh da erst mal keinen internen pull-up, sondern einen angedeuteten 
externen.
Ein komplettes Datenblatt habe ich auch nicht gefunden, in den 
Fragmenten stand nichts von pull-up, H-Ausgangsspannung oder 
H-Ausgangsstrom. Miss einfach mal nach, ob da am nackten Ausgang 
wirklich 24V rauskommt.
Ich glaubs (noch) nicht, möglich ist es aber.
Du kannst natürlich einen dazu setzen, damit du auf 24V Pegel kommst und 
den dann wieder auf dein System anpassen. Oder aber den Vorteil des OC 
nutzen - einfachste Pegelanpassung.

Autor: Thomas F. (igel)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Mathias M. schrieb:
> Ok, ich hab jetzt noch ne Zener und einigermaßen passende Widerstände
> für nen Spannungsteiler spendiert. Zusammen mit den 10kOhm im Sensor
> sollte die Zener nicht viel zu tun haben.

So herum gepolt hat die Diode viel zu tun: Sie zieht ES1 dauerhaft auf 
Masse. -> Umdrehen.

Auf dem Board enden zwei Leiterbahnen im Nichts.

[Mist, Bild zweimal angehängt]

: Bearbeitet durch User
Autor: Mathias M. (matjes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Joachim für deine Einschätzung. Hier nochmal ein Datenblatt
https://files.pepperl-fuchs.com/webcat/navi/productInfo/edb/123391_ger.pdf
So langsam glaube ich, dass du recht hast. Ich mess das heute Abend 
nochmal nach. Ich war der Meinung das schonmal nachgemessen zu haben. 
Hier der schreibt das aber anders herum:
https://mertarauh.com/2017/01/18/dont-trust-the-internet-and-how-to-add-an-inductive-proximity-sensor-to-your-3d-printer-the-proper-and-easiest-way/
Hätte eine gewisse Ironie, wenn er bei der Überschrift falsch lag.

@Thomas die Diode im Schaltplan ist falsch herum, hab ich noch schnell 
dazu geschrieben, bevor ich den Beitrag nicht mehr ändern konnte.
Die rote Bahn endet in der 3.3V Plane, die ich zur besseren Übersicht 
ausgeblendet hatte. Die Grüne verbindet ein Stück GND-plane, an die dann 
aber tatsächlich nichts mehr angeschlossen ist.
Kommt mir auch beides unsauber vor, aber wie schließt man etwas sauber 
an eine Plane auf der selben Ebene an?
Danke auf jeden Fall für deinen Blick.

Beschwert sich denn keiner über meine Vias oder die enge Platzierung und 
so?

Autor: Rainer S. (enevile)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Würde noch die Beschriftung sichtbar platzieren(U1,U2,U3,U4,..), macht 
sich bei der Fehlersuchee gut.

Überall wo der Text auf Vias sind wird der Text "Durchlaufen" nicht 
lesbar sein(C9)

Mathias M. schrieb:
> Beschwert sich denn keiner über meine Vias oder die enge Platzierung und
> so?

Prinzipell ist das ok. Vielleicht die dünnen Leiterbahnen noch was 
dicker falls geht aber kein muss. (Der µController hat ja ein QFN48 da 
ist ein Pin  bei 0.25mm Breite)

H.Joachim S. schrieb:
> Zum Layout-schauen habe ich keine Lust. Probiers halt aus, nur die
> selbstgemachten Fehler sind das, was man im Lauf der Zeit Erfahrung
> nennt :-)

Und die prägen sich am besten ein ;).

: Bearbeitet durch User
Autor: H.Joachim S. (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na, der Analogsensor von Pepperl&Fuchs hat damit nichts zu tun.

Scheint aber doch ne Spannung auszugeben, viele Schaltungen arbeiten mit 
dem Spannungsteiler.
Dort allerdings so, wie es eigentlich sein sollte:
http://i.imgur.com/Evdmjmx.jpg

Ich würde es so anschliessen, dann funktionierts auf jeden Fall:
https://i.stack.imgur.com/InOR3.png

Autor: Mathias M. (matjes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Danke Rainer, ich hab die Beschriftung etwas kleiner gemacht und besser 
platziert. Kicad ist der Meinung, dass das 0.25er Leiterbahnen sind. 
Soll ich besser auf 0.30 oder was meinst du?

Ich hab jetzt auch nochmal die Stecker geändert. Ob ich den Stepper dann 
direkt anlöte oder stecke muss ich noch sehen. So wie es jetzt ist, 
steht der doch etwas über. Kennt jemand kleine Stecker mit Rastung, die 
bis 2A spezifiziert sind?

@Joachim, sorry sollte natürlich eine NPN Variante sein:
https://files.pepperl-fuchs.com/webcat/navi/productInfo/edb/206379_ger.pdf

Ich versteh nicht, warum der Pullup irgendwie außerhalb suggeriert 
wird... Ich habs jetzt doch schnell nachgemessen. Den Pullup selber kann 
ich nicht messen. Mit 12V Versorgung,  liegen am Sensorkabel aber 11.3V 
an. Oder floatet der einfach auf diesen Wert? Ich hab außer dem 
Multimeter ja nichts am Pin.

Die Diode sperrt die 24V dann zum uC. Im uC aktivier ich den Pullup. 
Wenn der Sensor auslöst, wird der uC und egal welcher Pullup noch im 
Sensor steckt oder nicht, beide auf GND gezogen. Richtig? Klingt 
irgendwie einfach.

edit Ich hab übrigens den 24V noch nen 4.7uF C spendiert.

: Bearbeitet durch User
Autor: Rainer S. (enevile)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mathias M. schrieb:
> Soll ich besser auf 0.30 oder was meinst du?

In der Gerber sah das so klein aus, aber auf deinen Bilder ist das 
super. So wie es jetzt ist brauchst du nichts ändern.

Autor: H.Joachim S. (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt also doch eine Spannung aus - na gut, überzeugt.
Kannst ja mal ne Strommessung Ausgang gegen Masse machen, wird dann 
wahrscheinlich bei wenigen mA liegen.

Die 11,3V deuten  auf eine zus. Diode, erklärt auch, dass du da keinen 
Widerstand messen kannst.
Ist aber auch egal, kannst deinen Spannungteiler oder eben die 
Diodenschaltung (1N4148) nehmen.
Kleine Unterschiede im Defektfall (Unterbrochen, nicht versorgt o.ä): da 
liefert der Spannungsteiler L-Pegel, die Diodenschaltung H. Das dürfte 
bei dir aber egal sein.

Autor: Mathias M. (matjes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Strom fließen exakt 1.13mA (bei 12V), ist also ein 10k Pullup. Warum ich 
diesen Wert nirgends finden kann, ist mir ein Rätsel.
Wenn ich die Bestelle, dann bekomm ich ohnehin zu viele Boards. Dann 
mach ich einfach 2 Boards mit Diode und 2 mit Spannungsteiler aufs Panel 
und dann bestück ich erstmal die mit weniger Bauteilen (Diode).

Danke Joachim und allen anderen für die Unterstützung.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.