Hallo, ich suche eine "einfache" Lösung wie ich ein 100kHz PWM Signal auf ein PWM Signal mit einer Frequenz von 10 bis 20kHz per Hardware herunter teilen kann.
Einfach "herunter teilen" wird nicht gehen. Dazu fällt mir spontan nur ein Mikrocontroller ein. Ein Timer misst das Eingangssignal und ein anderer Timer erzeugt das übersetzte Ausgangssignal. Ich würde es mit einem ATtiny25 versuchen.
:
Bearbeitet durch User
Stefan ⛄ F. schrieb: > Einfach "herunter teilen" wird nicht gehen. > > Dazu fällt mir spontan nur ein Mikrocontroller ein. Ein Timer misst das > Eingangssignal und ein anderer Timer erzeugt das übersetzte > Ausgangssignal. Ich würde es mit einem ATtiny25 versuchen. Ich brauche hier eine reine Hardware Lösung. Irgendwie mit Gatter oder FlipFlops.
M. G. schrieb: > Ich brauche hier eine reine Hardware Lösung. Irgendwie mit Gatter oder > FlipFlops. Eine analoge Lösung könnte ich mir vorstellen, ist aber aufwändig: Du machst aus dem Eingangssignal mittels R/C Tiefpass eine analoge Spannung von z. 0-5V. Diese vergleichst du mit einem Sägezahn (10kHz 5V). Der Ausgang des Komparators liefert das neue PWM Signal.
:
Bearbeitet durch User
M. G. schrieb: > Ich brauche hier eine reine Hardware Lösung. Irgendwie mit Gatter oder > FlipFlops. Das wird ein FPGA Projekt oder ein enormes IC-Grab... Gräberfeld!
Ich denke du brauchst einmal einen Zähler (Teiler : n, n=10, 12 oder 16) und einen Integrator, der während des Zählens die Dauer der n Pulse addiert / mittelt. Der müsste dann fürs Ausgangssignal des Teilers die Pulslänge bestimmen, d.h. nach n Impulsen geht das Ausgangssignal auf 1 und nach der bestimmten Integrationszeit wieder auf 0. Währenddessen muss aber schon wieder neu integriert werden, die Pulslänge könnte sich ja geändert haben... Ich kann ja mal in den Elektor-Halbleiterheften nach sowas fahnden.
Stefan ⛄ F. schrieb: > Du machst aus dem Eingangssignal mittels R/C Tiefpass eine analoge > Spannung von z. 0-5V. Diese vergleichst du mit einem Sägezahn (10kHz > 5V). Der Ausgang des Komparators liefert das neue PWM Signal. Etwas über den Telerand gegugt und schon klappt das. +1 :D
Stefan ⛄ F. schrieb: > Eine analoge Lösung könnte ich mir vorstellen, ist aber aufwändig: Was soll denn daran aufwendig sein? Bei 100 kHz PWM kann die Zeitkonstante zum Integrieren sehr klein sein, ein leichter Jitter stört nicht weiter. Ein doppelter Komparator (LM393, o.ä.) erzeugt zum einen eine Dreieckkurve und zum anderen dann auch das neue PWM-Signal.
m.n. schrieb: > Was soll denn daran aufwendig sein? Zumindest ich bräuchte von der Idee zur finalen Umsetzung bestimmt 10x so lange, als einen Attiny zu programmieren. Bin total aus der Übung, was analoge Sachen angeht.
M. G. schrieb: > Ich brauche hier eine reine Hardware Lösung. Irgendwie mit Gatter oder > FlipFlops. Dann fällt die analoge Lösung schon mal flach... Und es stellen sich die Fragen: - Wie genau muss die PWM auflösen? - Wie stabil sind die 100kHz? - Muss die Ausgabefrequenz einstellbar sein? Falls ja: in welchen Schritten? Alternativ könntest du ja auch einfach beschreiben, was du machen willst, woher die 100kHz kommen und wohin die 10kHz gehen...
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Irgendwie mit Gatter oder >> FlipFlops. > Dann fällt die analoge Lösung schon mal flach... Wieso das denn? Da steht Gatter oder FF. Er kann doch ein Gatter nehmen, um Eingangs- und/oder Ausgangssignal auf passende Pegel zu bringen. Oder XOR zum wahlweisen invertieren oder nicht. > Alternativ könntest du ja auch einfach beschreiben, was du machen > willst, woher die 100kHz kommen und wohin die 10kHz gehen... Wieso 10 kHz? Die Anforderung ist doch "ganz klar" > mit einer Frequenz von 10 bis 20kHz. Ich tippe mal auf 15,625 kHz ;-) Stefan ⛄ F. schrieb: > Zumindest ich bräuchte von der Idee zur finalen Umsetzung bestimmt 10x > so lange, als einen Attiny zu programmieren. Dann verrate doch mal, wie Du mit einem ATtiny die 100 kHz PWM mit hinreichender Auflösung erfasst? Wobei "hinreichend" natürlich erst am Freitag verraten wird.
Das gabs hier schonmal unter: Beitrag "Frequenzteilung mit gleichen Tastverhältnis" Und auch anderswo wurde eine ähnliche Frage gestellt, mit einer ansatzweisen Lösungsidee: https://forum.electronicwerkstatt.de/phpBB/Projekte_im_Selbstbau/pwm_signal_und_frequenzteiler_z_b_100_1-t91542f34_bs0.html Also ganz analog ein 555, der auf einer beliebigen, nicht an die Eingangsfrequenz gekoppelten Frequenz schwingt und dessen Pulsdauer von der analog gemittelten PWM-Eingangsspannung abhängt. Das ist aber keine 100% Umsetzung des Eingangssignals, man kann es nur so in etwa hinbiegen und muss das Tastverhältnis eichen, Genauigkeit hängt vom Integrator und der Frequenzstabilität der Bauteile (555, Integrator) ab. Digital: mit digitalem Teiler, wobei die Pulsdauer digital gesteuert wird über Zeitmessung der Pulsdauer (Abtatsung mit hoher Frequenz). Da habe ich aber auch keine Ahnung im Moment wie das zu realisieren wäre. In den Elektor-Halbleiterheften 1977/79/81-95/97/99 (+ Digibuch 2 von 1976) nichts passendes gefunden :-(
> TTL 7497 Wie soll ein Bit-Rate-Multiplier das erledigen? Mit den 6 Bit Ansteuerung wird eine Art PWM erzeugt, ziemlich verjittert. https://www.ti.com/product/SN7497 Der wird tatsächlich noch produziert, den 74167 gibt es anscheinend nicht mehr. Am Ausgang kommen n-aus-64 Impulse heraus, nach einem Tiefpass ergibt das eine Gleichspannung ähnlich der üblichen PWM.
Lothar M. schrieb: >> Ich brauche hier eine reine Hardware Lösung. Irgendwie mit Gatter oder >> FlipFlops. > Dann fällt die analoge Lösung schon mal flach... Seit wann sind analoge Bausteine keine Hardware mehr
m.n. schrieb: > Dann verrate doch mal, wie Du mit einem ATtiny die 100 kHz PWM mit > hinreichender Auflösung erfasst? Wobei "hinreichend" natürlich erst am > Freitag verraten wird. Darüber denke ich später nach wenn das Kind schon in den Brunnen gefallen ist :-) Will sagen: Ja, du hast einen entscheidenden Knackpunkt genannt.
m.n. schrieb: > Dann verrate doch mal, wie Du mit einem ATtiny die 100 kHz PWM mit > hinreichender Auflösung erfasst? Mit F_CPU = 10MHz kann man 1% schaffen. Eine analoge Lösung (PWM->U, U->PWM) auf 1% stabil, ist schon sportlich.
Also konkret geht es um folgendes: Ich habe in einer bestehenden Schaltung einen I²C/PWM Treiber (PCA9624) welcher auf 8 Kanälen eine entsprechende PWM mit einer fixen PWM Frequenz von 97kHz liefert. Über 2 Kanäle muss ich nun zusätzlich zwei BLDC Motoren mit eingebauter Steuerelektronik anschließen. Die Drehzahl dieser Motoren wird mittels PWM (10kHz...max. 20kHz) gesteuert.
Für die Motoren reichen vermutlich sowohl die 1% mit ATtiny als auch die analoge Lösung.
Es wäre vielleicht einfacher, den I2C-Bus zu belauschen und die 10 kHz PWM mit dieser Info zu erzeugen. Das könnte auch der ATtiny erledigen.
Peter D. schrieb: >> Dann verrate doch mal, wie Du mit einem ATtiny die 100 kHz PWM mit >> hinreichender Auflösung erfasst? > > Mit F_CPU = 10MHz kann man 1% schaffen. Bei 1% Tastverhältnis ist die EIN-Zeit 0,1 µs und die AUS-Zeit 9,9 µs. Da scheint es mir eher sportlich die 0,1 µs zu erkennen. > Eine analoge Lösung (PWM->U, U->PWM) auf 1% stabil, ist schon sportlich. Das sehe ich nicht so. Stichwort: ratiometrisch. Die geglättete PWM, die Erzeugung des Dreiecksignals und der Ausgangskomparator beziehen sich auf die Versorgungsspannung der Schaltung. Somit besteht hier (in Grenzen) keine Abhängigkeit von der Betriebsspannung. Daß die Frequenz des Dreiecksignals oder die Symmetrie ein wenig mit der Temperatur driften, ist für das Tastverhältnis der PWM unerheblich. M. G. schrieb: > Die Drehzahl > dieser Motoren wird mittels PWM (10kHz...max. 20kHz) gesteuert. Als Erstes würde ich probieren, ob es nicht auch noch mit 100 kHz funktioniert. Es kann natürlich sein, das die Eingangsschaltung (Optokoppler?) zu langsam ist. Als Zweites würde ich nach einem Analog-Eingang bei der Steuerung suchen. Intern wird die PWM vermutlich eh analog verarbeitet. Und als Drittes wäre die "einfache" Lösung wohl eine µC-Schaltung, wobei der Controller per internen Timern die Signale sehr genau umsetzen kann. Stichwort: STM32 "PWM input mode".
Gruss Im Analogen wäre das eine triggerbare und zurücksetzbare lineare Integration, allerding 100kHZ, reaktiv sample and hold mit der langen Periodendauer noch mal linear Integrieren, auch rücksetzbar, bis zum hold Wert und dann noch in Rechteckform umsetzen. Mit Gruss Dirk St
könnte mit einem D-Flipflop und nem 80kHz Oszillator schon gehen.
M. G. schrieb: > Ich habe in einer bestehenden Schaltung einen I²C/PWM Treiber (PCA9624) > welcher auf 8 Kanälen eine entsprechende PWM mit einer fixen PWM > Frequenz von 97kHz liefert. Sicher, d.h. machst Du die Ansteuerung selbst? Der IC hat nämlich 2 PWMs, die sich überlagern können. Eine mit 97kHz und eine mit 190Hz. Siehe Fig 7.Brightness + Group Dimming signals
M. G. schrieb: > BLDC Motoren mit eingebauter Steuerelektronik anschließen. Die Drehzahl > dieser Motoren wird mittels PWM (10kHz...max. 20kHz) gesteuert. Bist du sicher, dass es PWM sein muss? Könnte es auch mit Gleichspannung gehen? Dann würde ein Tiefpass reichen. Ich denke deshalb daran, weil es z.B. Dimmer gibt, die entweder mit Gleichspannung oder mit PWM gesteuert werden können. Da ist der Tiefpass wohl schon eingebaut, wodurch sich dann auch die niedrigste PWM-Frequenz ergibt.
m.n. schrieb: > Bei 1% Tastverhältnis ist die EIN-Zeit 0,1 µs und die AUS-Zeit 9,9 µs. > Da scheint es mir eher sportlich die 0,1 µs zu erkennen. Nahe den Rails würde ich einfach auf 0% bzw. 100% runden. Ein Motor würde bei 1% eh stehen bleiben und den Unterschied von 99% auf 100% Drehzahl merkt eh keiner.
Peter D. schrieb: > Ein Motor würde bei 1% eh stehen bleiben und den Unterschied von 99% auf > 100% Drehzahl merkt eh keiner. Das Schöne an BLDC-Motoren ist ihre Drehzahldynamik - von gaaaanz laaangsaaam bis gz snl ;-)
Die 97kHz durch 16 teilen. Damit ist das Verhältnis Eingang zu Ausgang fest und es entsteht kein jitter. Mit den 97kHz/16 eine Dreieckspannung erzeugen. PWM -> analogwert -> komparator wurde schon empfohlen.
Stefan ⛄ F. schrieb: > Zumindest ich bräuchte von der Idee zur finalen Umsetzung bestimmt 10x > so lange, als einen Attiny zu programmieren. Bin total aus der Übung, > was analoge Sachen angeht. Das hat man bei Dir schon in den letzten Diskussionen gemerkt. Stefan ⛄ F. schrieb: > Eine analoge Lösung könnte ich mir vorstellen, ist aber aufwändig: > > Du machst aus dem Eingangssignal mittels R/C Tiefpass eine analoge > Spannung von z. 0-5V. Diese vergleichst du mit einem Sägezahn (10kHz > 5V). Der Ausgang des Komparators liefert das neue PWM Signal. Schlimmer gehts nimmer !!! M. G. schrieb: > Also konkret geht es um folgendes: > > Ich habe in einer bestehenden Schaltung einen I²C/PWM Treiber (PCA9624) > welcher auf 8 Kanälen eine entsprechende PWM mit einer fixen PWM > Frequenz von 97kHz liefert. Über 2 Kanäle muss ich nun zusätzlich zwei > BLDC Motoren mit eingebauter Steuerelektronik anschließen. Die Drehzahl > dieser Motoren wird mittels PWM (10kHz...max. 20kHz) gesteuert. Wenn es 12V Logic ist : CMos 40.... Teiler/Zähler Schieberegister wenn es 5V Logic ist : TTL z.B. 7473 - Flip/Flop, oder über Zähler z.B.74192 Klingt aber nach fast 1 zu 5?! Welches Verhältnis nun?
Firlefanz schrieb: > Wenn es 12V Logic ist : CMos 40.... Teiler/Zähler Schieberegister > wenn es 5V Logic ist : TTL z.B. 7473 - Flip/Flop, oder über Zähler > z.B.74192 Es geht nicht um die Versorgungsspannung, sondern um das reproduzierte Tastverhältnis bei tieferer Frequenz. Wie man sehen kann, funktioniert Deine Schaltung nicht. Man kann sie auch als sinnfrei bezeichnen.
Nochmal mein Vorschlag: https://www.mikrocontroller.net/part/PCA9624 der I2C-bus-Chip ist gut dokumentiert, es sollte also möglich sein, seine Datenkommunikation zu belauschen und völlig unabhängig von seiner Reaktion die beiden Schrittmotoren mit einer 10 kHz PWM zu bedienen. Alles andere ist deutlich komplizierter.
Firlefanz schrieb: > Schlimmer gehts nimmer !!! Wärst du bitte mal so freundlich, deinen Lösungsansatz mit Logikgattern und Zählern wenigstens grob zu skizzieren? Ich kann dir nämlich nicht folgen. Ich bin wohl viel zu dumm, den Sinn in deinen hochwertigen Ausführungen zu erkennen. Aber Bilder sind mein Ding, damit kann ich was anfangen (im Ernst).
:
Bearbeitet durch User
M. G. schrieb: > Hallo, > ich suche eine "einfache" Lösung wie ich ein 100kHz PWM Signal auf ein > PWM Signal mit einer Frequenz von 10 bis 20kHz per Hardware herunter > teilen kann.
1 | +-------------------------+---+---- +U |
2 | | | | |
3 | | +--------+ | | |
4 | 10k | | | | |
5 | | | 10k 100k | |
6 | +--+--|+\ | | | |
7 | | | >--+ | | |
8 | | +--|-/ | | | |
9 | | | TS912 10k v --100k--+--|+\ |
10 | | | | | | >--out |
11 | | +--------+-------------(--|-/ |
12 | | | | | |
13 | 10k 470nF X | |
14 | | | | | |
15 | +-----------+-------------+--- GND |
An Position X kommen 100k parallel geschaltet mit 1uF hin, an v wird das 100kHz PWM Signal (0V/+Ub) eingespeist, der 470nF bestimmt die PWM Frequenz des erzeugten Signals.
m.n. schrieb: > Firlefanz schrieb: >> Wenn es 12V Logic ist : CMos 40.... Teiler/Zähler Schieberegister >> wenn es 5V Logic ist : TTL z.B. 7473 - Flip/Flop, oder über Zähler >> z.B.74192 > > Es geht nicht um die Versorgungsspannung, sondern um das reproduzierte > Tastverhältnis bei tieferer Frequenz. > Wie man sehen kann, funktioniert Deine Schaltung nicht. Man kann sie > auch als sinnfrei bezeichnen. Ach was, das ist eine bewerte Schaltungstechnik, um aus kruden Tastgraden/Jitter, immer 50/50 zu machen. :D
Teo schrieb: > Ach was, das ist eine bewerte Schaltungstechnik, um aus kruden > Tastgraden/Jitter, immer 50/50 zu machen. :D Eine PWF-Schaltung!
Schon mit dem simplen uralt-IC 7490 (und den entsprechenden moderneren Varianten gehen alle Teilfaktoren 1:2-10, siehe dazu die Schaltungen Nr. 65-73 in der UK-Ausgabe von Elektor 1975/07-08 https://worldradiohistory.com/UK/Elektor/70s/Elektor-1975-07-08.pdf Das sind dann jeweils unterschiedliche Tastverhältnisse, aber das ist ja egal, die benötigte Schaltung braucht ja nur eine Flanke.
Am einfachsten geht es mit einem Dual-Gate-Feldeffekt-Transistor. Man müsste nur irgendwie die Summenfrequenz von 190kHz am Ausgang rausfiltern, ohne dass die Flanken von den 10kHz in Mitleidenschaft gezogen werden.
M. G. schrieb: > Ich brauche hier eine reine Hardware Lösung. Irgendwie mit Gatter oder > FlipFlops. Warum mit Gattern und Flipflops? Ein 4-fach OP und ein bisschen Hühnerfutter dürfte reichen. Wäre das keine reine Hardware? Es kommt allerdings ein bisschen drauf an, welche Anforderungen du genau stellst (Frequenzgenauigkeit, Toleranz im Tastgrad, Reaktionszeit bei Tastgradänderung, ...).
Michael M. schrieb: > Man müsste nur irgendwie die Summenfrequenz von 190kHz am Ausgang > rausfiltern Das 100kHz-Signal ist doch keine Wechselspannung, es sind Rechteckpulse, die in 10µs aufeinanderfolgen. Es ist kein Sinus! Es ist eine Mischung aus der Grundfrequenz und zig Oberwellen bis zur Grenze, die die Flankensteilheit hergibt! Mit was für 90kHz willst du mischen? Sinus? Rechteck? Bei Rechteck ist es ein Chopper (glaube ich), also du schaltest für 5,5555µs an und für 5,555µs wieder aus, wieder an, aus, usw.. Deswegen bleiben aber trotzdem die Pulse (mit 0-10µs Breite) stehen bzw. werden zerhackt. Also so geht's nicht.
Stefan ⛄ F. schrieb: > Ich bin wohl viel zu dumm, ... Genau das ist dein Problem. Weiß auf dem µCNet jeder. Brauchst Du also nicht extra zu erwähnen.
m.n. schrieb: > Wie man sehen kann, funktioniert Deine Schaltung nicht. Man kann sie > auch als sinnfrei bezeichnen. Welche Schaltung meinst Du?
Merset schrieb: > Genau das ist dein Problem. Weiß auf dem µCNet jeder. Brauchst Du also > nicht extra zu erwähnen. Was willst du denn? ⛄ macht dir hundertmal was vor.
MaWin schrieb: > … > +-------------------------+---+---- +U > | | | > | +--------+ | | > 10k | | | | > | | 10k 100k | > +--+--|+\ | | | > | | >--+ | | > | +--|-/ | | | > | | TS912 10k v --100k--+--|+\ > | | | | | >--out > | +--------+-------------(--|-/ > | | | | > 10k 470nF X | > | | | | > +-----------+-------------+--- GND > An Position X kommen 100k parallel geschaltet mit 1uF hin, an v wird das > 100kHz PWM Signal (0V/+Ub) eingespeist, der 470nF bestimmt die PWM > Frequenz des erzeugten Signals. Coole Schaltung, habe da einiges draus mitgenommen (auch wenn ich nicht der TO bin). Wenn ich mich nicht sowohl verrechnet als auch versimuliert habe, müssten die 470n deutlich kleiner sein, zB 4n7 für eine Frequenz von etwa 15.3kHz.
Sehe ich das richtig, dass der Oszillator kein Sägezahn Signal erzeugt? Die PWM Pulsbreite wird damit nicht linear übertragen. Leider gibt es ohnehin kein ideales Sägezahn-Signal. Aber immerhin könnte man die obige Schaltung deutlich verbessern, falls ich Recht habe.
:
Bearbeitet durch User
Andreas schrieb: > Lothar M. schrieb: >>> Ich brauche hier eine reine Hardware Lösung. Irgendwie mit Gatter oder >>> FlipFlops. >> Dann fällt die analoge Lösung schon mal flach... > Seit wann sind analoge Bausteine keine Hardware mehr Ähmmm, echt jetzt? Du hast 2 Sätze zitiert. Der zweite ist eine Nebenbedingung und lautet: "Gatter oder Flipflops". Und die sind (obwohl innen natürlich zutiefst analog) weithin als "digitale" Bauteile bekannt. Und deshalb ist eine damit aufgebaute Schaltung eben auch eine digitale Schaltung. m.n. schrieb: > Peter D. schrieb: >>> Dann verrate doch mal, wie Du mit einem ATtiny die 100 kHz PWM mit >>> hinreichender Auflösung erfasst? >> Mit F_CPU = 10MHz kann man 1% schaffen. > Bei 1% Tastverhältnis ist die EIN-Zeit 0,1 µs und die AUS-Zeit 9,9 µs. > Da scheint es mir eher sportlich die 0,1 µs zu erkennen. Ich habe das in einem ähnlichen Fall mit einem 6-Pin Tiny so gelöst: es gibt einen Zähler, der einfach alle z.B. 100µs den PWM-Eingang abtastet und einen Zähler hochzählt. Nach 255 Abtastungen steht der Eingangs-PWM-Wert auf 1/255 genau in diesem Zähler drin (bei 0% PWM steht 0 drin, bei 100% PWM steht 255 drin und bei 50% ist dort 127 zu finden). Und dieser Wert wird dann einfach nur in den PWM-Compare des 15kHz Ausgabezählers geladen. Der Witz daran ist, dass wegen dieser Unterabtastung die 100µs nicht genau sein müssen und der interne Takt ausreicht (weil ja auch die Ausgabefrequenz mit 10..20kHz nicht arg kritisch ist). Allerdings ist die Ausgangs-PWM bei dieser Methode immer um 25ms verzögert. Und wenns ganz genau werden muss, dann könnte man einen externen Taktgeber nehmen, diesen mit dem Eingangssignal gaten und auf einen Zählereingang des µC legen. Der muss dann nur bei jeder steigenden PWM-Flanke den Zähler auslesen und hat damit den PWM-Wert. Dieser "externe Geber" könnte natürlich auch ein Timer-/Taktausgang µCs sein und das Gaten könnte man mit 2 Dioden machen... EDIT: Aber auch hier gilt: um eine 100kHz PWM tatsächlich in 1 PWM-Zyklus auf 1% "genau" auflösen zu können, braucht man eine Referenzfrequenz von 10MHz. Und weil µC intern gerne mit üblicher synchroner Flankenerkennung arbeiten, müsste der Zähler im µC mit 20MHz getaktet werden. Entspannend wirkt hier allerdings, dass man ja nur alle 5..10 Eingangs-PWM-Zyklen einen neuen Wert braucht. Man kann also den obigen Zähler während 10 Eingangstaktflanken aufsummieren lassen.
:
Bearbeitet durch Moderator
Eins N00B schrieb: > Wenn ich mich nicht sowohl verrechnet als auch versimuliert habe, > müssten die 470n deutlich kleiner sein, zB 4n7 für eine Frequenz von > etwa 15.3kHz. Ja, ich hab ihn einfach aus https://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.25 übernommen wir er da war, und drauf hingewiesen dass er zuständig ist. Stefan ⛄ F. schrieb: > Sehe ich das richtig, dass der Oszillator kein Sägezahn Signal erzeugt Richtig, eher Haifischflossen. Daher wird er in der Nähe von 0% und 100% ungenau, die im obigen Link nachfolgende Schaltung macht das durch echtes Dreieck per Integrator henauer.
Lothar M. schrieb: > Der Witz daran ist, dass wegen dieser Unterabtastung die 100µs nicht > genau sein müssen und der interne Takt ausreicht (weil ja auch die > Ausgabefrequenz mit 10..20kHz nicht arg kritisch ist). > Allerdings ist die Ausgangs-PWM bei dieser Methode immer um 25ms > verzögert. Man kann (oder muß) es auch anders formulieren: die Abtastfrequenz darf auf keinen Fall synchron zur Eingangsfrequenz sein. Am besten erzeugt man die Abtastfrequenz per "echtem" Zufallsgenerator. An anderer Stelle hatte ich das für die PWM-Messung mit einem STM32 gezeigt: Beitrag ""ungenaue" Pulsweiten-Messung" Eine 25 ms Verzögerrung finde ich bei einer Steuerung schon grenzwertig. Neben der rein analogen Lösung (Dreieck natürlich per Integrator), die der TO einfach aufbauen kann, wäre meine favorisierte Lösung ein ATtiny mit ADC, der die Spannung nach PWM-Integration misst. Der Messwert (8 Bit) kann direkt in ein OCx-Register geschrieben werden, das dann die PWM erzeugt. Bei 8 MHz interner Taktfrequenz, 2-fach Vorteiler und 8 Bit PWM erhält man dann die Ausgangsfrequenz von 15,625 kHz ;-) Beachten muß man bei der analogen Auswertung, daß der PWM-Treiber einen ext. pullup-Widerstand braucht, der zu groß gewählt die 40 ns Auflösung im unteren Drehzahlbereich "verderben" kann. Die eleganteste Lösung wurde auch schon genannt, nachdem der TO seinen IIC-Bus Baustein verraten hat: Abhören der IIC-Telegramme und erzeugen der PWM per Controller. Gut geeignet wäre z.B. ein ATtiny212, der nicht mehr dieses blöde USI hat, sondern ein richtiges IIC-Interface (TWI).
m.n. schrieb: > Eine 25 ms Verzögerrung finde ich bei einer Steuerung schon grenzwertig. Mit höheren Abtastfrequenzen geht das auch schneller. Und wenn man weiß, dass dieser Pfad 25ms verzögert, dann muss man ihm ja einfach nur 25ms vorher seinen Sollwert geben. Mangels Wissen um die tatsächliche Aufgabe ist der Rest nur Ratestunde...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.