Forum: Analoge Elektronik und Schaltungstechnik PMW => Tiefpass/SchmittTrigger -Dimensonierung


von Matthias S. (da_user)


Lesenswert?

Hi,

kurz zu meinem eigentlichen Vorhaben:
Ich bastel gerade eine CND-Maschine auf Basis von GRBL nach Vorbild der 
MaxyPosi von c't Hacks/Make. GRBL läuft hier auf einen Mega644P getaktet 
mit 20MHz.
Nun möchte ich auf dieser CNC-Maschine unterschiedliche Werkzeuge 
montieren. Manche werden per PWM angesteuert, andere sollen über ein 
Relais mit 230V versorgt werden. Jetzt möchte ich nicht jedesmal den 
"Spindle PWM" Pin im Programm umkonfigurieren, den das muss man im 
Programm selbst machen und dann jedesmal neu Flashen.
Die "Spindle PWM" kommt übrigens vom Pin "PD7_OC2A".
Ich würde gerne mit einem Jumper einen Schmitt-Trigger auf diesen Pin 
schalten, der dann (über eine passende Endstufe natürlich) das Relais 
für's Werkzeug schaltet, sobald eine bestimmte Drehzahl ausgegeben wird.

Jetzt bräuchte ich davor wohl noch einen Tiefpass um die PWM 
entsprechend zu glätten + Diode um eine Beeinflussung der normalen 
PWM-Schaltung zu vermeiden. Dabei muss der Tiefpass auch stark genug 
belastet werden, damit der Schmitt-Trigger beim abschalten auch schnell 
genug reagiert.
Normalerweise würde ich schnell auf einem Steckbrett aufbauen, und mit 
dem Oszi draufgucken, ich habe aber leider keines. Und die ganze OPV- & 
Tiefpassgeschichte ist seit der Lehre auch wieder so weit weg...

Darum meine paar Fragen:
* Welche Frequenz spuckt der PD7 im PWM-Modus überhaupt aus, ich werde 
hier aus dem Datenblatt (TC2/Counter2) einfach nicht schlau, weil ich 
irgendwie nichtmal ne Ahnung habe, nach was ich Ausschau halten 
müsste...
* Als Schmitt-Trigger lieber einen 74XX14 oder klassisch LM324?
* Wie dimensoniere ich dann den Tiefpass am besten, so dass er schnell 
genug ist, aber den SchmittTrigger nicht verwirrt?

Vielen Dank auf jeden Fall schonmal für's durchlesen meines gesabbels... 
;-)
VG
da_user

von THOR (Gast)


Lesenswert?

Matthias S. schrieb:
> * Welche Frequenz spuckt der PD7 im PWM-Modus überhaupt aus, ich werde
> hier aus dem Datenblatt (TC2/Counter2) einfach nicht schlau, weil ich
> irgendwie nichtmal ne Ahnung habe, nach was ich Ausschau halten
> müsste...

Softwareabhängig, mim Oszi nachgucken

Matthias S. schrieb:
> * Wie dimensoniere ich dann den Tiefpass am besten, so dass er schnell
> genug ist, aber den SchmittTrigger nicht verwirrt?

Hochohmig, auf gute 20dB Dämpfung bei der PWM Frequenz und danach 
nochmal ggf. verstärken.

Wenn du das Programm ändern kannst, dann mach doch ne Methode rein die 
dir nen Pin auf High zieht sobald OCR2A größer als 0 ist.

von HildeK (Gast)


Lesenswert?

Matthias S. schrieb:
> * Welche Frequenz spuckt der PD7 im PWM-Modus überhaupt aus, ich werde
> hier aus dem Datenblatt (TC2/Counter2) einfach nicht schlau, weil ich
> irgendwie nichtmal ne Ahnung habe, nach was ich Ausschau halten
> müsste...
Ohne die Softwareeinstellungen kann dir das niemand sagen.

> * Als Schmitt-Trigger lieber einen 74XX14 oder klassisch LM324?
Wieso denkst du, an den PWM-Ausgangspin einen Schmitt-Trigger schalten 
zu müssen? Du meinst, nach dem PWM-Tiefpass?
Mit dem 74xx14 hast du halt feste (allerdings grob spezifizierte) und 
recht weit auseinanderliegende Ein- und Ausschaltschwellen, mit dem 
LM324 kannst du die beliebig dimensioniern.

> * Wie dimensoniere ich dann den Tiefpass am besten, so dass er schnell
> genug ist, aber den SchmittTrigger nicht verwirrt?
Der Tiefpass muss die Grundfrequenz der PWM ausreichend dämpfen, so dass 
am Ausgang nur noch eine sehr geringe, für dich akzeptable Welligkeit 
vorhanden ist. Mit deinen Forderungen (schnell) muss das dann ein TP 
sein, dessen Grenzfrequenz recht nahe an der PWM-Frequenz liegt - da er 
da aber schon stark dämpfen soll, muss er von sehr hoher Ordnung sein. 
Oder, die Forderung 'schnell' wird von dir relativiert: dann tut es eine 
geringere Ordnung, mit deutlich geringerer Grenzfrequenz und damit eben 
mit langsamerer Reaktion. Final brauchst du eben bei der PWM-Frequenz 
ausreichend Dämpfung.

von Matthias S. (da_user)


Lesenswert?

THOR schrieb:
> Softwareabhängig, mim Oszi nachgucken

Matthias S. schrieb:
> und mit
> dem Oszi draufgucken, ich habe aber leider keines.

THOR schrieb:
> Wenn du das Programm ändern kannst, dann mach doch ne Methode rein die
> dir nen Pin auf High zieht sobald OCR2A größer als 0 ist.

Matthias S. schrieb:
> Jetzt möchte ich nicht jedesmal den
> "Spindle PWM" Pin im Programm umkonfigurieren, den das muss man im
> Programm selbst machen und dann jedesmal neu Flashen.
___________________________________________


HildeK schrieb:
> Ohne die Softwareeinstellungen kann dir das niemand sagen.

Da ich leider nicht weiß, auf was ich da gucken muss, kann ich mal nur 
auf GitHub verlinken: https://github.com/heise/MaXYposi_Grbl_644

HildeK schrieb:
> Wieso denkst du, an den PWM-Ausgangspin einen Schmitt-Trigger schalten
> zu müssen? Du meinst, nach dem PWM-Tiefpass?

Damit eben das Relais ab einem bestimten "PWM-Pegel" einschaltet.

HildeK schrieb:
> Oder, die Forderung 'schnell' wird von dir relativiert: dann tut es eine
> geringere Ordnung, mit deutlich geringerer Grenzfrequenz und damit eben
> mit langsamerer Reaktion. Final brauchst du eben bei der PWM-Frequenz
> ausreichend Dämpfung.

Schnell ist natürlich relativ, prinzipiell soll halt das Relais nicht 
noch sekundenlang angezogen bleiben. Auch sollte das ganze natürlich 
eher einfach und günstig zusammenzubasteln sein. Wenn wir da von 
Zeiträumen von 0,1-0,5s sprechen, könnte ich sicherlich damit leben ;-)

HildeK schrieb:
> Mit dem 74xx14 hast du halt feste (allerdings grob spezifizierte) und
> recht weit auseinanderliegende Ein- und Ausschaltschwellen, mit dem
> LM324 kannst du die beliebig dimensioniern.

Dann wohl lieber einen LM324. ;-)

von THOR (Gast)


Lesenswert?

Ich hab deinen Beitrag schon gelesen, so ist das nicht. Aber bitte, wenn 
du engstirnig sein willst.

von Matthias S. (da_user)


Lesenswert?

THOR schrieb:
> Ich hab deinen Beitrag schon gelesen, so ist das nicht.

Hast aber nicht den Eindruck gemacht.

THOR schrieb:
> Aber bitte, wenn
> du engstirnig sein willst.

Das hat nichts mit engstirnig zu tun. Wenn ich kein Oszi habe, habe ich 
keines.
Eines habe ich allerdings übersehen, dass muss ich zugeben:

THOR schrieb:
> Wenn du das Programm ändern kannst, dann mach doch ne Methode rein die
> dir nen Pin auf High zieht sobald OCR2A größer als 0 ist.

Ich müsste hierzu erstmal einen Pin der mit einer anderen, von mir 
ungenutzten Funktion belegt ist, freischaufeln, da vom Programm bereits 
alle Pins belegt sind.
Und diese Änderung müsste ich dann jedesmal durchführen, wenn ich evlt. 
ein Update des µC Programmes fahren will. Da habe ich große 
Bauchschmerzen und würde das deswegen gerne vermeiden.
Sonst würde ich sogar versuchen, GRBL so umzubasteln, dass ich den 
normalen Spindle_PWM-Pin per Config-Befehl (über serielle Schnittstelle) 
umkonfigurieren könnte.

von HildeK (Gast)


Lesenswert?

Matthias S. schrieb:
> Schnell ist natürlich relativ, prinzipiell soll halt das Relais nicht
> noch sekundenlang angezogen bleiben. Auch sollte das ganze natürlich
> eher einfach und günstig zusammenzubasteln sein. Wenn wir da von
> Zeiträumen von 0,1-0,5s sprechen, könnte ich sicherlich damit leben ;-)

Gut, dann wird man keinen so hohen Aufwand treiben müssen - aber ohne 
Info über die PWM-Frequenz ist eine Dimensionierung nicht möglich.
So gut bin ich in SW auch nicht, dass ich dir die Frequenz durch einen 
kurzen Blick auf den Link sagen können. Leihe dir einfach ein Skope ...
Trotzdem: der Tiefpass müsste dann eine Grenzfrequenz von mehr als 10Hz 
haben, um die 100ms 'Reaktionszeit' einzuhalten. Jetzt müsste man nur 
noch wisen, ob die PWM-Frequenz > als rund 1kHz ist ...

An den extra Pin, der das Komparator-Vergleichsergebnis im μC macht und 
nur einen logischen Pegel ausgibt, wäre die sparsamste und einfachste 
Lösung.

von Ach Du grüne Neune (Gast)


Angehängte Dateien:

Lesenswert?

Ein Tiefpass mit einem 2k2 Widerstand und 100µF Kondensator kann für 
PWM-Frequenzen von 200 Hz bis 50 kHz eingesetzt werden. Da die 
PWM-Frequenz laut TO weiter unverfälscht weiter genutzt werden soll, 
muss eine Pufferstufe zwischen PWM-Ausgang und Tiefpass geschaltet 
werden.

Da vom TO keine näheren Angaben gemacht wurden, ist das nur ein 
Vorschlag.

von HildeK (Gast)


Lesenswert?

Ach Du grüne Neune schrieb:
> Ein Tiefpass mit einem 2k2 Widerstand und 100µF Kondensator kann für
> PWM-Frequenzen von 200 Hz bis 50 kHz eingesetzt werden. Da die
> PWM-Frequenz laut TO weiter unverfälscht weiter genutzt werden soll,
> muss eine Pufferstufe zwischen PWM-Ausgang und Tiefpass geschaltet
> werden.

Ergibt eine Grenzfrequenz von <1Hz und erfüllt damit nicht die 0.1 ... 
0.5s Reaktionszeit.
Nimm lieber einen 2. Ordnung mit höherer Grenzfrequenz, z.B:
R1 = 2k2, C1 = 2.2μF
und in der 2. Stufe
R2 = 10k, C2 = 0.47μF

Einen Puffer brauchst du nicht, die 2k2 belasten den μC-Ausgang kaum - 
außer du willst noch weitere PWM-Filter an den Ausgang hängen.

Ach Du grüne Neune schrieb:
> Da vom TO keine näheren Angaben gemacht wurden, ist das nur ein
> Vorschlag.

Gilt für meine Variante auch ... :-)

von Ach Du grüne Neune (Gast)


Lesenswert?

HildeK schrieb:
> Nimm lieber einen 2. Ordnung mit höherer Grenzfrequenz,

Falls der TO mit hohen Frequenzen arbeitet, reicht evtl. auch ein Filter 
1. Ordnung, um auf 0,1 Sekunde Reaktionszeit zu kommen.

von Matthias S. (da_user)


Lesenswert?

Hi,

zwei Dinge haben sich jetzt ergeben:

1.) Die Frequenz der PWM beträgt augenscheinlich ca. 1kHz, allerdings 
bei einem µC-Takt von 16MHz. Ich weiß natürlich nicht, in wie weit die 
PWM-Frequenz vom Quarz abhängig ist, sie dürfte sich aber entsprechend 
zwischen ~1kHz und 1,25kHz bewegen.

2.) Doch eine bequeme Softwarelösung: per Terminalbefehl lässt sich die 
maximale und minimale Drehzahl des Werkzeuges einstellen, GRBL berechnet 
anhand dieser dann den Wert für die PWM. Ich kann also einfach in meinem 
G-Code einen Konfigurationsbefehl einbauen, der die Maximale Drehzahl 
auf 1 setzt. Sobald ich dann eine Drehzahl >1 eingebe, wird "Spindle 
PWM" voll angesteuert.
Das dürfte die einfachste und bequemste Methode sein.

Danke an alle, die mitgeholfen haben und/oder dies ernsthaft versucht 
haben! (Auch wenn man natürlich seine Meinungsverschiedenheiten hat ;-) 
)

VG
da_user

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
Noch kein Account? Hier anmelden.