Hallo Forum, ich möchte einen Atmega1280 mit unterschiedlichen Frequenzen betreiben und hab mir überlegt, dazu einen DDS zu verwenden, nun meine Frage geht das überhaupt?, da ich dem DDS ja erst mal Daten senden muss, damit er überhaupt eine Frequenz ausspuckt und das Daten senden geht ja ohne Frequenz am Atmega schlecht. Ich habe leider keinen DDS gefunden der eine Frequenz erzeugt sobald man Spannung anlegt und nicht erst wenn man ihm was sendet. Gibt es sowas, wenns geht auch mit SPI? Vielen Dank schon mal
Mal abgesehen davon da sich jetzt die gesamte Fachwelt frag was der Unsinn soll, es gibt noch ein weiteres Problem. Du musst sicherstellen das die Frequenzaenderung immer im Nulldurchgang erfolgt weil es sonst sein kann das du zu z.B eine halbwelle eine sehr hohen Frequenz erzeugst und das wird der Controller dir uebel nehmen. Olaf
@ franzi (Gast) >und hab mir überlegt, dazu einen DDS zu verwenden, nun meine Frage geht >das überhaupt?, da ich dem DDS ja erst mal Daten senden muss, damit er >überhaupt eine Frequenz ausspuckt und das Daten senden geht ja ohne >Frequenz am Atmega schlecht. Ich habe leider keinen DDS gefunden der Ja. Dann brauchst du halt einen zweiten kleinen AVR. Allerdings frage ich mich, wozu der Luxus gut sein soll? Die meisten aVRs haben ein interenen RC-Oszillator, der mit 1/4/9 MHz betrieben werden kann. Und exteren kann man verschiedene Quarze nutzen. Das reicht allemal. >eine Frequenz erzeugt sobald man Spannung anlegt und nicht erst wenn man >ihm was sendet. Gibt es sowas, wenns geht auch mit SPI? Einen stand alone DDS-IC kenne ich nicht. SPI haben viele. http://www.analog.com MfG Falk
@ Olaf (Gast) >Unsinn soll, es gibt noch ein weiteres Problem. Du musst sicherstellen >das >die Frequenzaenderung immer im Nulldurchgang erfolgt weil es sonst sein Keine Bange, DDS ist phasenkontinuierlich. MFG Falk
Könnt ihr mir dann sagen was es sonst noch für Möglichkeiten gibt, die Frequenz des Atmegas während des Betriebs zu ändern, das ganze soll über USB vom PC aus gesteuert werden. Wenn der Atmega das im laufenden Betrieb nicht verkraftet würde ein Reset auch nicht stören...
@ franzi (Gast) >Könnt ihr mir dann sagen was es sonst noch für Möglichkeiten gibt, die >Frequenz des Atmegas während des Betriebs zu ändern, das ganze soll über Wozu soll das gut sein? MFG Falk
Ich möchte mit 2 Timern jeweils ne PWM erzeugen. Diese soll variabel sein und sich von außen(vom PC) durch Frequenzänderung des Atmegas verändern lassen. Wichtig ist dabei das sich beide PWMs gleichzeitg ändern, wenn diese Änderung über die Register mache habe ich keine gleichzeitge Änderung beider Kanäle.
Dir ist schon klar, dass du damit nur die Frequenz der PWM änderst? Das Verhältnis bleibt davon unberührt. Wenn sogar ein reset akzeptabel wäre, halt doch die PWM an, ändere deine Daten und dann starte sie wieder. Wenn man es geschickt macht, geht es auch während dem Betrieb.
@ franzi (Gast) >Ich möchte mit 2 Timern jeweils ne PWM erzeugen. Diese soll variabel >sein und sich von außen(vom PC) durch Frequenzänderung des Atmegas PWM hat per Definition eine feste Frequenz und ein variables Tastverhältnis. >verändern lassen. Wichtig ist dabei das sich beide PWMs gleichzeitg >ändern, wenn diese Änderung über die Register mache habe ich keine >gleichzeitge Änderung beider Kanäle. Na dann ändere doch einfach beide Register. Ist ja nicht wirklich schwer. MFG Falk
Nein das ist ja auch nicht schwer, mein Problem ist, das ich zwischen den beiden PWMs keine Phasenverschiebung haben darf, ich mal das mal auf wie ich das brauche, mom...
So, hier jetzt mit Bild, es ist wichtig das ich immer ein konstantes Verhältnis zwischen den beiden PWMs habe und die steigenden Flanken bzw. fallenden Flanken zeitlich genau übereinstimmen... Und dann muß die Frequenz während des Betriebs verstellt werden...
@ franzi (Gast) Na dann nimm einen FTDI 232 RL, einen kleinen AVR und deinen kleinen DDS IC. Über USB bekommt der keline AVR die Steuerinformation für den DDS. Dieser taktet dann den "richtigen" AVR. MFG Falk
Hilfreich wäre auch, den gewünschten Frequenzbereich zu kennen. Willst Du 10 Hz oder 10 kHz oder 10 MHz erzeugen?
Also die eine PWM wird zwischen 1kHz und 5kHz liegen, die zweite so zwischen 1 kHz und 60 kHz...
Du kannst DDS direkt als Timer Clock verwenden. Meines Wiesens ATmega1280 hat die Möglichkeit Timer mit externer Taktquelle zu treiben, i deinem fall DDS. Branko
Das (immer noch etwas dürftig beschriebene) Problem lässt sich auch ohne DDS-Firlefanz mit nur einem Controller erledigen. Es gibt Controller, die haben synchrone PWMs. Falls es der AVR nicht kann, kann man es bei diesen Frequenzen auch in Software machen. Eine komplizierte Lösung ist nicht immer eine gute Lösung. Naja.
PLL inkl. eines Teilers aufbauen. Zweite Frequenz aus erster mittels PLL erzeugen.
@Karl
>> Das (immer noch etwas dürftig beschriebene) Problem
was wollt ihr noch Wissen, fragt ruhig...
@Branko Habe gerade nachgesehen, die Timer des Atmega1280 können mit einem externen Takt betrieben werden... das ist schon mal nicht schlecht... Kannst du mir bitte einen Tip geben wie ich es in Software löse das die PWMs synchron sind?
@ Norgan (Gast) >PLL inkl. eines Teilers aufbauen. Zweite Frequenz aus erster mittels PLL >erzeugen. Warum nicht gleich ein Rhode&Scharz Signalgenerator verwenden? @ franzi (Gast) >was wollt ihr noch Wissen, fragt ruhig... Wozu brauchst du das Ganze? Was soll das werden, dass du glaubst, die PWM dermassen synchon erzeugen zu müssen. MFG Falk
Guckst du ins Wiki (Alle Artikel) und schmökerst mal die uuuuuunzäähligen Artikel durch. Vorzugsweise welche, die mit AVR, PWM oder IO zu tun haben. Der Rest ist Eigeninitiative.
ich will einen 2D-Mikroscannerspiegel damit ansteuern und Lissajou-Figuren damit erzeugen...
@ franzi (Gast) >ich will einen 2D-Mikroscannerspiegel damit ansteuern und >Lissajou-Figuren damit erzeugen... Und über die PWM wird dann über einen RC-Filter eine Gleichspannung erzeugt, welche die X-Y Auslenkeung ansteuert? Da spielt es keine grosse Rolle, ob die beiden PWMs super synchron sind, die Grenzfrequenz der RC-Filter liegt WEIT unter der PWM-Frequenz. http://www.mikrocontroller.net/articles/Pulsweitenmodulation#DA-Wandlung_mit_PWM MfG Falk
Ander wäre es, wenn du zwei Servos steuerst. Aber dann hast du ja die GLEICHE Frequenz für beide Kanäle. Das kriegt man problemlos in Software mit festem Takt hin. MfG Falk
Nein, ein RC-Filter ist nicht vorgesehen, die Rechteckspannung wird verstärkt und dann an den Spiegel gegeben... es gibt da auch keine Gleichspannung... ja, ich will damit die x und x-Auslenkung steuern...
Schau Dir mal an wie es richtig gemacht wird (s.o.). Ein Atmega genügt.
ja, werd ich mir in einer ruhigen minute mal zu gemüte führen... danke für den link...
Hallo nochmal... Ich hätte da noch mal ne Frage zu meinem Problem... Ich hab mir überlegt das die Idee, den DDS als Clocksource für den Timer zu verwenden für meine Zwecke gut ist. Ich habe aber bedenken wegen der Genauigkeit, da das Timersignal ja mit der Atmegafrequenz abgetastet wird, bekomm ich da nicht einen Jitter, wenn das mit der Frequenz nicht genau aufgeht? Gruß Franzi
@ franzi (Gast) >zu verwenden für meine Zwecke gut ist. Ich habe aber bedenken wegen der >Genauigkeit, da das Timersignal ja mit der Atmegafrequenz abgetastet >wird, bekomm ich da nicht einen Jitter, wenn das mit der Frequenz nicht >genau aufgeht? Den Jitter bekommst du ja sowieso, eben weil das externe Taktsignal mit dem Takt des AVRs abgetastet wird. Wenn du das vermeiden willst, dann takte doch gleich den AVR mit dem Takt der DDS und lass den Timer mit dem internen Takt laufen. MfG Falk
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.