Forum: Mikrocontroller und Digitale Elektronik Saegezahn selbst bauen


von Martin (Gast)


Lesenswert?

Hallo Leute!

Ich baue mit einem µC (ARM) einen Sägezahn selbst.
Die Ausgangsspannung beträgt +-1,2V.
Die Frequenz des Sägezahnes ist verstellbar von 0,1HZ - 100HZ.

Dieser ARM besitzt einen DA-Wandler, der von 0V - 3,3V eine Spannung
ausgeben kann (10-Bit).
Diese analoge Ausgangsspannung geht über einen invertierenden
Verstärker, der die angegebene Ausgangsspannung produziert (+-1,2V).

Das Problem ist jetzt, dass die Ausgangsspannung auch verstellbar sein
soll.
Bis jetzt habe ich es so geplant, dass der Sägezahn im Prozessor als
Zahlenwert gestaucht wird, je nach Einstellung des Benutzers kann die
Maximalspannung am LCD-Display abgelesen werden.

1.
Wenn der Benutzer die Spannung jetzt auf +-0,12V zurückschraubt, dann
zählt der Prozessor nur bis maximal 102,3 -> 102, damit beim Analog-Out
+-0,12V herauskommen. Dies bedeutet, dass eine gestauchte Kurve nicht
mit der vollen Auflösung ausgegeben werden kann.

2.
Eine Idee war z.B. ein Poti beim invertierenden Verstärker einzubauen,
welches nach außen geführt wird und welches der Benutzer verstellen
kann. Je nach Potistellung verändert sich dann die Verstärkung. Dann
weiß ich aber allerdings nicht, wie ich die Einstellung des
Verstärkungswiderstandes als Zahlenwert wieder in den Prozessor
bekommen soll, damit dieser, dann die Maximalspannung am Display
anzeigt.

3.
Eine weitere Idee ist ein digigal verstellbarer Widerstand, der vom
Prozessor angesteuert wird. Dieser Widerstand würde ebenfalls als
Referenzwiderstand beim invertierenden Verstärker eingebaut. Der
Maximalwert des Widerstandes sollte 10K betragen und 256 Stufen würden
reichen. Ich weiß jedoch nicht, wie viele Stufen so ein Widerstand
tatsächlich hat. Es würden auch 10 Stufen reichen. Diesen Widerstand
sollte man über SPI oder I2C ansteuern können. Ich kenne jedoch keinen
Typen. Kann mir jemand einen solchen Baustein nennen?

Ja Leute! Ich habe auch nun drei mögliche Lösungen gesagt. Ich weiß
nicht welche die Beste ist, oder wie man es z.B. heutzutage bei einem
Frequenzgenerator macht. Wie löst man das bei einem digitalen
Frequenzgenerator?

Welche von den drei Möglichkeiten kommt für euch in Frage? Oder ist
Nummer 1 die Beste?
Wenn man sich z.B für Nummer 3 entscheiden würde und man mittels des
digital verstellbaren Widerstandes die Verstärkung so reduzieren würde,
dass man ebenfalls auf +-0,12V angelangt ist, wäre die Auflösung
wirklich besser oder wären die Störungen schon so übermächtig, dass man
daraus keinen Vorteil ziehen würde und wiederum Lösung 1 die bessere
wäre, da sie am einfachsten ist?

Danke für eure Antworten.

Tschüss
Martin

PS: AVR, 8051, MSP sind auch ganz interesant.

von Jan Kallwies (Gast)


Lesenswert?

Hi,

Also deine 2. Idee finde ich ganz gut und das Problem, die
Maximal-Spannung anzuzeigen könntest du doch "ganz einfach" so lösen,
dass du die letztendliche Ausgangsspannung wieder über einen A/D-Wandler
vom µC ausließt, dann hast du sogar die tatsächliche Spannung, falls
beim Verstärken was schief laufen sollte, siehst du so den Fehler sehr
schnell.

Grüße Jan.

von Simon K. (simon) Benutzerseite


Lesenswert?

Jup, würd ich so auch lösen!

von Martin (Gast)


Lesenswert?

Hallo
Das Problem ist, dass auch eine Frequenz von 0,1HZ vorkommt. Dies
bedeutet, dass es bis zu 5 Sekunden dauern kann, bis der höchste oder
niedrigste Spannungswert gemessen werden kann.
Wenn ich jedoch mit dem Poti die Verstärkung kleiner mache, wie weiss
dass der µC, der immer nur auf Maximalwert und Minimalwert abzielt?

Zusätzlich kommt noch hinzu, dass ich am Ausgang +-1,2V habe und der
AD-Wandler aber nur 0-3,3V verarbeiten kann.
Man könnte natürlich eine Diode nehmen, um die negative Spannungskurve
zu eliminieren, aber die Diode schluckt dann wieder 0,7V von der
positiven Spannung und ich könnte die 0,1V nicht AD-Wandeln.

Tschüss
Martin

von Jan Kallwies (Gast)


Lesenswert?

Hi,

Hm... Schade ;-) Nen Versuch wars Wert. Ne andere Idee hab ich jetzt
auch net.

Grüße Jan.

von Jan (Gast)


Lesenswert?

Wie wäre es denn mit einer mechanischen Lösung?
Zwei Potis auf eine Achse montieren. Einer dient dann zur Einstellung
des Verstärkers, der andere als einfacher Spannungsteiler, den du per
ADC immer auslesen kannst.

von Simon K. (simon) Benutzerseite


Lesenswert?

Ja, so dachte ich eigentlich, hab wohl zu schnell abgedrückt. Aber dafür
reicht ein Mono-Poti. Schließlich kannst du den Schleifer einmal in den
OP reinstecken, und einmal in deinen A/D Wandler. Mit entsprechenden
Berechnung kannst du dir dann die (theoretische) Ausgangsspannung die
aus dem OP-AMP kommt im µC ausrechen, und anzeigen.

von noname (Gast)


Lesenswert?

Hat der DA-Wandler keinen DA-Referenz-Spannungs-Pin? Genau für solche
Anwendungen, wie Du sie beschreibst ist der nämlich üblicherweise da.
Die Spannung könntest Du dann z.B. durch PWM + Tiefpaß vorgeben. Bei
dem ARM von Atmel, welcher einen DA-Wandler hat, ist dieser Pin
vorhanden (AT91M55800A).

von Jan Lüken (Gast)


Lesenswert?

nimm doch einfach einen pga2311 von ti. ist zwar eigentlich ein
abschwächer für den audiobereich, aber er dürfte auch für deine
anwendung geeignet sein. außerdem kannst du den baustein über spi
steuern.

von andi (Gast)


Lesenswert?

deine 1.Idee ist gut wenn du einen externen 16Bit DAC nimmst.
z.B. DAC8551 von TI

von Thomas (Gast)


Lesenswert?

Ich würde auch eine Lösung mit einem hochauflösenden (z.B. 16 Bit) DAC
vorschlagen. Dann ist alles durch die CPU Steuerbar und sollte doch
eigentlich ausreichen.

Gruß Thomas

von Martin (Gast)


Lesenswert?

Guten Morgen

Danke für eure zahlreichen Antworten.

Das mit dem externen DA-Wandler ist natürlich auch eine Möglichkeit,
aber man muss dann, wenn man den Sägezahn hinaufzählt und die Spannung
im Prinzip ganz aufgedreht ist, immer einige Werte überspringen, da man
die 2^16 Werte nicht schaffen wird, was natürlich auch kein Problem sein
sollte. Der interne DA-Wandler des LPC 2138 benötigt 1µs für die
Wandlung. Bei einem externen Baustein habe ich auch immer das Problem
mit der Übertragung. Es könnte sein, dass ich dann die Rampe mit 100Hz
nicht schaffe. Aber es ist ein guter Denkanstoß.

@Hat der DA-Wandler keinen DA-Referenz-Spannungs-Pin?
Das mit dem Ref-Pin ist auch keine schlechte Idee. Nur die
Schwierigkeit ist, dass der Spannungsbereich des REF-Pins nur zwischen
3V und 3,6V liegen kann.

Eine Möglichkeit ist mir noch eingefallen. Man könnte doch Relais
einbauen, die je nach Spannung auf den entsprechenden
Verstärkungswiderstand umschalten.
Also sagen wir mal ich habe einen Verstärkungswiderstand, der mir die
Maximalspannung des µC auf +1,2Vmax verstärkt. Dann habe ich einen
zweiten Verstärkungswiderstand, der mir die Maximalspannung des µCers
auf +0,6Vmax verstärkt.
Wenn ich nun am LCD-Display die Spannung langsam von +1,2Vmax
runterdrehe und ich bei +0,6Vmax angekommen bin, dann sollte der µCer
wieder die Maximalspannung liefern und das Relais auf den anderen
Verstärkungswiderstand umschalten.

Auf diese Weise könnte ich mit dem internen DA-Wandler arbeiten und
hätte aber auf einfache Art in niederigeren Spannungsbereichen trotzdem
eine bessere Auflösung.

Was haltet ihr davon?

Tschüss, Martin

von noname (Gast)


Lesenswert?

In vorher definierten Stufen das Rückkopplungswiderstandsnetzwerk (z.B.
parallel zuschaltbare Widerstände) eines OP-Verstärkers schalten geht
natürlich. In Deinem Frequenzbereich ist das auch total
unproblematisch. Aber bitte keine Relais. FETs tuns auch.

von Paul Baumann (Gast)


Lesenswert?

Hallo Martin!

Nimm doch ein "elektronisches Potentiometer" von MAXIM.
Die Dinger heissen DS1666 und ich habe damit Klang und Laut-
stärke bei einem TDA1524 gemacht.

MfG Paul

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.