Forum: Analoge Elektronik und Schaltungstechnik Spannung - Frequenz - Umsetzung ( U - f - Umsetzung)


von Jan Purrucker (Gast)


Lesenswert?

Hallo,

ich brauche für ein Projekt eine Spannungs-Frequenzumsetzung. Ich will
eine analoge Spannung mit einem ATMega8 oder ATtiny26 am ADC einlesen,
und dann an einem Ausgang eine Frequenz ausgeben, die direkt
proportional zur eingelesenen Spannung ist: z.B. 0V entspricht 1000 Hz,
3V entspricht 2000Hz.
PWM scheidet aus technischen Gründen leider aus.

Nun meine Frage: Hat jemand so ein Problem in Assembler schon einmal
gelöst? Dabei geht es mir nicht um das einlesen (ist ja kein Problem),
sondern viel mehr darum, wie ich die U - f - Umsetzung Software-mäßig
realisiere.
Für ein Grundgerüst oder nützlichen Hinweisen wäre ich sehr dankbar.

Noch ein Hinweis: Die Pulsdauer der Frequenz sei konstant, nur eben der
Abstand der Pulse sei von der Spannung abhängig.

Vielen Dank für die Tipps.

Gruß
Jan Purrucker

von .... (Gast)


Lesenswert?

Dazu brauch man keinen teuren µC. Mach das z.B mit einem NE555.

von Profi (Gast)


Lesenswert?

Das mit dem 555 wird vermutlich wenig Linearität haben.
Es gibt auch spezielle ICs dafür.
Mit einem µC geht das ebenso gut.

Du kannst dafür einen PWM-Ausgang verwenden, nur dass Du statt des
Längen-registers das Modulo-Register veränderst, dann hast Du konstante
Ein-Dauer.
Formeln:
f= 1 / (highdauer + lowdauer)
lowdauer = 1/f - highdauer (brauchst Du nicht)

#define clock = 8000000L   //z.B. 8MHz  L:32-bit!
#define highdauer = 1234  //gewünschte High-Dauer
#define f_offset 1000
#define lin_faktor 1234  //in Promille, da hernach /1000
longint f;
f = f_offset + adc;   //oder f=f_offset+ (lin_faktor*adc/1000)
PWMmodulo  = clock / f;   //evtl. Prescaler beachten
PWMhigh = highdauer;

ungeprüft, ich kenne die PWM-unit des AVR nicht

von Schau Mal (Gast)


Lesenswert?

'''
ungeprüft, ich kenne die PWM-unit des AVR nicht
'''

das ist linear genug fuer den 1 April

von Profi (Gast)


Lesenswert?

@Schau Mal
???? Kannst Du Deine Äußerung etwas detaillieren?
Konstruktive Kritik ist stets willkommen.

von Jan Purrucker (Gast)


Lesenswert?

Hallo Profi,

das ich die PWM des yC nehmen kann ist schon einmal ein guter Tipp.
Leider bräuchte ich die U - f - Umsetzung genauer. PWM hat beim ATMega8
und beim ATtiny ja nur 8bit (=256 Stufen). Ich bräuchte aber eine
Auflösung von etwa 1000 Schritten.
Vielleicht kann mir hier jemand mit einem Assembler-Code Vorschlag
weiterhelfen, da ich (bis jetzt) C nicht sehr verstehe.
Vielen Dank für weitere Anregungen.

MfG
Jan Purrucker

von A.K. (Gast)


Lesenswert?

Beim Tiny26 hast du recht, aber der Mega8 kann PWM wenn's sein muss bis
16-bit.

von Jan Purrucker (Gast)


Lesenswert?

Hallo,

ich habe mich nun in meiner Schaltung auf den ATtiny26 festgelegt (aus
Platzgründen, und wegen der besseren Lötbarkeit in SMD)
Es müsste doch irgendwie eine Möglichkeit geben, mit diesen yC eine
deraritge Umsetzung mit 1000 Schritten zu erzielen.
Für Assemblercodes wäre ich sehr dankbar.

Jan

von A.K. (Gast)


Lesenswert?

Könnte schon gehen: Du musst hat den PWM-Timer im laufenden Betrieb
progammieren. Wenn er also auf 900 zählen soll, dann lass ich 3x die
vollen 256 durchlaufen ohne PWM, und erst danach darf er nach den
abschliessenden 132 am Ausgang rütteln.

von A.K. (Gast)


Lesenswert?

Nochmal, ohne Schreibfehler:

Könnte schon gehen: Du musst halt den PWM-Timer im laufenden Betrieb
progammieren. Wenn er also auf 900 zählen soll, dann lass ihn 3x die
vollen 256 durchlaufen ohne PWM, und erst danach darf er nach den
abschliessenden 132 am Ausgang rütteln.

von Schau Mal (Gast)


Lesenswert?

....DDS ist auch eine Moeglichkeit

von Jan Purrucker (Gast)


Lesenswert?

@ Schau Mal

Kannst Du genauer beschreiben, was DDS ist?

von Schau Mal (Gast)


Lesenswert?


von Stefan Seegel (Gast)


Lesenswert?

>und dann an einem Ausgang eine Frequenz ausgeben

Bitte genauer: Sinus, Rechteck, Dreieck, Rampen, Strohhalme, Handtücher
? Wenn's was anderes ist wie Rechteck wird vermutlich DDS nicht
verkehrt sein.
Eine Lösung des Problems hängt sehr von der Vorgabe ab...

>PWM scheidet aus technischen Gründen leider aus.
Warum ? Schreib mal mehr dazu, vielleicht meinst du das nur...

Gruß
Stefan

von Michael (Gast)


Lesenswert?

Such mal nach dem Datenblatt vom XR-4151 (oder Abkömmlingen).
Das ist ein U/F-Wandler mit typ. 1kHz/V im Bereich 0-10kHz mit 0,05%
Linearität im 8-pol. DIL.
Oder aber auch irgendein spannungsgesteuerter Oszillator wie XR-2206.
Meines Erachtens die einfachste Lösung (ohne µP).

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.