Hallo, ich habe ein Problem, wofür ich keine Lösung finde. Ich brauche einen Generator (Rechteck)für Atmega 8/16/32, in Bascom, bei dem ich die Frequenz (von 1kHz bis ca 100kHz in 1 Hz Abstufungen bei 16mHz quarz) und die Pulsweite (255 Stufen) ändern kann. Ich finde jede Menge von dem einen oder dem anderen aber keine Kobination. Mit einem NE555 geht das ohne Probleme, aber ich will einen Schwingkreis mit dem Generator betreiben und zugleich die Resonanz überwachen und wenn notwendig nachregeln. Danke im voraus Horst
Hallo Horst, ich sehe das ein Problem: einen Schwingkreis würde ich nur über einen Sinus ansteuern, ein Rechteck-Signal hat theoretisch unendlich viele Schwingungen mit n x höherer Grundfrequenz. Darüberhinaus können auch an Halbleitern noch Mischprodukte entstehen: f0 +- n-te Oberwelle, f1 +- n'-te Oberwelle usw.
Noch etwas: bei Maximal 100kHz und PWM mit 255 (256) Stufen muss die PMW-Frequenz bei 25,6MHz liegen. Es gibt einige spezielle attiny die per PLL (x8) auf max. 64 MHZ PWM Takt kommen. Somit wären von den 8-Bit AVR attiny25/45/85 und attiny261/461 und 861 nutzbar.
Horst L. schrieb: > Mit einem NE555 geht das ohne Probleme, Der kann 40ns Impulse erzeugen? Das geht nicht auch nicht mit einem ATmega, der mit 16MHz läuft und mit 16mHz erst garnicht. Du solltest Deine Anforderungen noch einmal klar machen.
Hallo Uwe, Danke für die Antwort. Der Schwingkreis ist erstmahl sekondär, der funtzt mit NE555 (Rechteck) problemlos. Aber den 555 kann ich bei Abweichung der Resonantz nur von Hand nachstellen. Da das ein AVR übernehmen soll, brauche ich diesen "Kombigenerator". Und hier liegt mein Problem, weil ich bei den Timerregistern nicht genug durchblicke. Grüße Horst
Du willst also Frequenz und Tastgrad feinstufig ändern. Da bräuchtest Du einen Controller, dessen Timer-Vorteiler feinstufiges Ändern erlauben. Die 8-Bit-AVRs können das nicht, siehe Datenblatt. Da kann auch Bascom nichts dran ändern. ...
Arne Groh hat hier mal einen genialen Generator gepostet ( Beitrag "Einstellbarer Frequenzgenerator für 0.12 Hz - 8 MHz mit Atmega 8 und Bascom" ). Wenn man bei dem noch die Pulsweite verstellen könnte wäre mein Problem schon gelöst.
Horst L. schrieb: > die Pulsweite verstellen könnte wäre mein Problem schon gelöst. Du solltest auch die Beiträge zur Kenntnis nehmen (besser: auch verstehen), die darauf hinweisen, dass Dein Problem mit einem ATmega nicht zu lösen ist.
Horst L. schrieb: > Arne Groh hat hier mal einen genialen Generator gepostet > ( Beitrag "Einstellbarer Frequenzgenerator für 0.12 Hz - 8 MHz mit Atmega 8 und Bascom" ). Wenn man bei dem noch > die Pulsweite verstellen könnte wäre mein Problem schon gelöst. Da man beim 8-Bit-AVR den Timer-Vorteiler nur in sehr groben Stufen einstellen kann (siehe Datenblatt), kann man - entweder bei fester Frequenz den Tastgrad feinstufig einstellen - oder bei festem Tastgrad die Frequenz feinfühlig einstellen. Beides zusammen geht aufgrund der Hardware-Ausstattung nicht, zumindest nicht so feinstufig, wie Du es gerne hättest. Wenn Du auf Bedienkomfort (Eingabe Frequenz und Tastgrad) verzichtest, dann hast Du noch die Möglichkeit, Impulsdauer und Impulspause separat einzustellen und die Impulse im Timer-Interrupt zu erzeugen. Da müsstest Du aus Laufzeitgründen aber auch auf Bascom verzichten und in ASM arbeiten. ...
m.n. schrieb: > die darauf hinweisen, dass Dein Problem mit einem ATmega ^^^^ > nicht zu lösen ist. Nicht nur DASS, sondern auch WARUM. ...
Das WARUM ergäbe sich aus dem Verstehen der Hinweise :-) Ich sehe bei dem o.g. Link auf einen BASCOM-Generator aber nicht, dass hier bei 8MHz noch Frequenzabstufungen in 1Hz-Schritten erfolgen. @Horst L. Was brauchst Du tatsächlich, und was ist nur 'will ich auch noch'?
@all, Danke erstmahl für eure Antworten, die so schnell kamen, daß sie sich mit meinen Schreiben überschnitten haben (deshalb vielleicht der Eindruck vom nicht zur Kenntnis nehmen oder verstehen). Danke an Hannes das war verständlich für mich. (bin ja kein Profi) Ich dachte, das man das was ein 555 kann, locker mit dem AVR lösen kann.Beim 555 kann ich die Werte nur mit Poti's nachstellen, dies wollte ich digital mit dem AVR erledigen, da man über einen ADC Eingang problemlos dem Zustand der Resonantz überwachen kann. Und wenn die abweicht, wollte ich, daß der AVR die Frequenz bzw. die Pulsweite selbstständig nachjustiert. Aber dies gestaltet sich, wie ich sehe, schwieriger als ich dachte.
Du kannst ja n Digitalpoti, also ein steuerbares Poti an den 555 hängen und den dann per µC regeln. Sprich, per ADC den 555-Schwingkeis messen (was auch immer), dann das Digital-Analog-Poti entsprechend setzen / verändern und Deinen Schwingkreis abstimmen. Für Frequenz und Tastgrad bräuchts vermutlich 2 Digitalpoti. Wäre vermutlich nicht so timingkritisch und geht auch in Bascom
Danke Weinbauer, in diese Richtung grüble ich auch gerade. das müßte sicher funktionieren. Nur wie kann ich ein Digitalpoti aufbauen?
Horst L. schrieb: > da man über einen ADC Eingang problemlos dem Zustand der > Resonantz überwachen kann. Was Du eigentlich willst, habe ich immer noch nicht verstanden. Wäre es vielleicht sinnvoll, den Schwingkreis frei schwingen zu lassen und dessen Frequenz und Amplitude zu messen?
@m.n. Es wäre jetzt sehr aufwändig mein projekt hier zu erklären. Fakt ist, dass ich einen Schwingkreis im Resonanten Zustand halten muß, der u.a. durch Temperatur einfluß immer wieder mal aus der Resonantz rauskommt, und deshalb nachjustiert werden muß. @all Ich glaub ich habe die Lösung, muß ich aber erst mal testen. Ich programmiere 2 PWM mit angeschlossenem D-A Wandler(Filter) und mit denen steuere ich den NE555 an. Das könnte gehen.
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.