Forum: Mikrocontroller und Digitale Elektronik Genreator mit einstellbarer Frequenz und einstellbarer Pulsweite in Bascom


von Horst L. (papadoc)


Lesenswert?

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

von Uwe (de0508)


Lesenswert?

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.

von Uwe (de0508)


Lesenswert?

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.

von m.n. (Gast)


Lesenswert?

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.

von Horst L. (papadoc)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

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.

...

von Horst L. (papadoc)


Lesenswert?

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.

von m.n. (Gast)


Lesenswert?

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.

von Hannes L. (hannes)


Lesenswert?

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.

...

von Hannes L. (hannes)


Lesenswert?

m.n. schrieb:
> die darauf hinweisen, dass Dein Problem mit einem ATmega
                        ^^^^
> nicht zu lösen ist.

Nicht nur DASS, sondern auch WARUM.

...

von m.n. (Gast)


Lesenswert?

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'?

von Horst L. (papadoc)


Lesenswert?

@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.

von Weingut P. (weinbauer)


Lesenswert?

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

von Horst L. (papadoc)


Lesenswert?

Danke Weinbauer, in diese Richtung grüble ich auch gerade. das müßte 
sicher funktionieren. Nur wie kann ich ein Digitalpoti aufbauen?

von m.n. (Gast)


Lesenswert?

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?

von Horst L. (papadoc)


Lesenswert?

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