Forum: Mikrocontroller und Digitale Elektronik AVR und Timer und Spannung


von Kurt B. (kurt-b)


Lesenswert?

.
.
Die Überlegung:
mit einem AVR (Tiny/Mega...) einen Wert seriell einlesen und als 
Spannung ausgeben.
Mit PWM und Filter eine -saubere- Gleichspannung 0...5 V erzeugen
und daraus einen eingeprägten Strom (0..20mA) generieren.

Geht das mit Timer1, bringt man damit eine Auflösung von 16 Bit 
zusammen.
(die Wandlungsgeschwindigkeit ist Nebensache?

 Kurt

(Wunsch: BASCOM)

.
.

: Verschoben durch Moderator
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Kurt Bindl schrieb:
> Mit PWM und Filter eine -saubere- Gleichspannung 0...5 V erzeugen
> und daraus einen eingeprägten Strom (0..20mA) generieren.

Das sollte schon gehen, allerdings wird der Ausgang des AVR nicht direkt 
die 20mA liefern können, ohne das die 5 Volt etwas in die Knie gehen. 
Optimal wäre also ein dem PWM Filter nachgeschalteter OpAmp, der den PWM 
Ausgang des AVR nicht belastet.
Als Spannungs/Strom Wandler nimmst du z.B. den Klassiker Widerstand, der 
Ausgangswiderstand des Opamp geht hier aber mit ein.

von Kurt B. (kurt-b)


Lesenswert?

Matthias Sch. schrieb:
> Kurt Bindl schrieb:
>> Mit PWM und Filter eine -saubere- Gleichspannung 0...5 V erzeugen
>> und daraus einen eingeprägten Strom (0..20mA) generieren.
>
> Das sollte schon gehen,

Gute Nachricht.

> allerdings wird der Ausgang des AVR nicht direkt
> die 20mA liefern können, ohne das die 5 Volt etwas in die Knie gehen.
> Optimal wäre also ein dem PWM Filter nachgeschalteter OpAmp, der den PWM
> Ausgang des AVR nicht belastet.
> Als Spannungs/Strom Wandler nimmst du z.B. den Klassiker Widerstand, der
> Ausgangswiderstand des Opamp geht hier aber mit ein.

Das ist schon klar, es soll eine Konstantstromquelle werden, also einer 
der vom R der Verbraucher und Leitungen unabhängig ist.
Bei ebay gibts Wandler die 0..5V in 0..20 mA umsetzen, diese werden aber 
leider nur mit 12V betrieben, mir wären aber 24V lieber.


 Kurt

von Purzel H. (hacky)


Lesenswert?

Vergiss 16 bit Genauigkeit
1) die Versorgungsspannung geht direkt rein.
2) bei 16MHz Timer ist die PWM Frequenz dann noch 256 Hz.

Falls man mit 16 bit Aufloesung zufrieden ist, dh nicht diese 
Genauigkeit benoetigt, kann man Subcycling verwenden, und die PWM 
Frequenz trotz 16bit auf 64kHz belassen.

von Christian B. (luckyfu)


Lesenswert?

Warum nicht einen Controller und einen Separaten DAC? Das ist definitiv 
schneller (und Ripplefreier) als eine PWM ausm Controller. (und die 20mA 
Stromforderung erfüllt er auch)

Z.B. 
http://www.ti.com/product/DAC161S997?keyMatch=DAC161S997&tisearch=Search-EN

btw: Falsches forum

: Bearbeitet durch User
von Vlad T. (vlad_tepesch)


Lesenswert?

Siebzehn Für Fuenfzehn schrieb:
> 2) bei 16MHz Timer ist die PWM Frequenz dann noch 256 Hz.

bitte was? Kannst du das mal bitte vorrechnen?

von Falk B. (falk)


Lesenswert?

@ Vlad Tepesch (vlad_tepesch)

>Siebzehn Für Fuenfzehn schrieb:
>> 2) bei 16MHz Timer ist die PWM Frequenz dann noch 256 Hz.

>bitte was? Kannst du das mal bitte vorrechnen?

Grundrechenarten, Mathematik Klasse 5 oder so.

16.000.000 Hz / 2^16 = 16.000.000 Hz / 65536 = 244,1 Hz (naja, das oben 
war gerundet)

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Kurt Bindl schrieb:
> (die Wandlungsgeschwindigkeit ist Nebensache?

Es kann also schon sein, das 240 Hz Wiederholfrequenz reichen und durch 
einen schönen Tiefpass gefiltert werden können.
Es gibt übrigens auch spezielle V/A Konverter, wie den XTR110 von Burr 
Brown (jetzt TI). Die sind programmierbar auf 0-5 oder 0-10V Eingang und 
0-20mA, 4-20mA Ausgang und werden mit 13,5V-40V gespeist:
http://www.ti.com/lit/ds/symlink/xtr110.pdf

von Steffen W. (derwarze)


Lesenswert?

PWM zu U gibt es auch als Chip. Von Linear gibt es den LTC2645, der 
macht das gleich 4x. Noch einen U/I Wandler mit OPV danach und fertig.

von Kurt B. (kurt-b)


Lesenswert?

.

Die Überlegung sieht so aus.
Den AVR mit stabilen 5V versorgen (ev. 5,5V), mit ihm eine 
Ausgangsspannung (über PWM) erzeugen die dann von diesem Baustein in ein 
Stromsignal umgesetzt wird.

http://www.ebay.de/itm/201087638562?_trksid=p2060778.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT

Da ist alles schon oben und ich brauch nicht lange eine eigene Schaltung 
mir zusammenbauen.

Der Nachteil dass ich von nur 12V auszugehen (niedrige Bürde)habe ist 
nicht so tragisch, und wenn der AVR ev. nur 13 oder 14 Bit macht dann 
ist das auch kein Beinbruch, mit beidem komme ich zurecht.
Was haltet ihr davon?


 Kurt

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Kurt Bindl schrieb:
> Was haltet ihr davon?

Alles hängt davon ab, wie stabil die 5V des AVR sind und wie gut er die 
Betriebsspannungsgrenzen an den Ausgängen erreicht. Das ebay Dings läuft 
eben auch nur mit 12V, deswegen schlug ich den XTR110 vor, der aber 
zugegebenermassen ein Exot ist.
Probiers einfach aus und mach die Vcc des AVR ein wenig einstellbar,so 
das du an den Ausgängen des MC exakt die 5V bekommst, denn kalibrieren 
kannst du das ebay Dings anscheinend nicht. Leider steht da auch kein 
Eingangswiderstand, so das du das PWM Filter erstmal frei Schnauze 
dimensionieren musst.

von Kurt B. (kurt-b)


Lesenswert?

.

Momentan überlege ich ob ich nicht einfach diese Schaltung nehmen sollte

http://www.mikrocontroller.net/articles/Datei:Ksq_opv_mosfet.png

Den FET und die Widerstände so nehmen dass sich ein Strom bis 25mA bei 
einer Eingangsspannung bei ca. 2V ergibt.

Den AVR mit einer stabilen Spannung versorgen, die PWM sauber filtern 
und die Werte für 4 und 20mA durch Korrektur der PWM-Ansteuerungwerte 
eineichen.

Bei dieser Schaltung kann man dann auch höher Treiberspannungen 
einsetzen und die Temperaturstabilität hängt nur vom OP ab.
Dieser kann auch gleich als Teil des Rippelfilters mitverwendet werden.

Bei Verwendung eines Optokopplers der die PWM vom AVR entkoppelt ist 
auch ein galvanisch getrennter Aufbau leicht zu realisieren.

Schauma mal was sich noch so alles ergibt.


 Kurt

(kann man unter BASCOM Soft-PWM generieren oder geht das nur mit echten 
Timern?)

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

@ Kurt Bindl (kurt-b)

>Momentan überlege ich ob ich nicht einfach diese Schaltung nehmen sollte

>http://www.mikrocontroller.net/articles/Datei:Ksq_...

Kann man machen.

>Den FET und die Widerstände so nehmen dass sich ein Strom bis 25mA bei
>einer Eingangsspannung bei ca. 2V ergibt.

Kann man machen.

>Den AVR mit einer stabilen Spannung versorgen, die PWM sauber filtern
>und die Werte für 4 und 20mA durch Korrektur der PWM-Ansteuerungwerte
>eineichen.

"eineichen" gibt es nicht. Eichen tut nur das Eichamt. Du kannst das 
bestenfalls rausrechnen.

>Bei Verwendung eines Optokopplers der die PWM vom AVR entkoppelt ist
>auch ein galvanisch getrennter Aufbau leicht zu realisieren.

Ja.

>(kann man unter BASCOM Soft-PWM generieren

Kann man, ist aber nicht unbedingt zu empfehlen, der Overhead ist noch 
einiges größer als in C (weil der BASCOM-Copiler um einiges weniger 
optimiert als der avr gcc)

> oder geht das nur mit echten Timern?)

Wozu Soft-PWM? Du brauchst doch nur EINEN PWM-Ausgang. Den hat jeder AVR 
in Hardware, bis zu 16 Bit Auflösung.

von Bernd S. (Firma: Anscheinend Corner-Cases ;-)) (bernd_stein)


Lesenswert?

Kurt Bindl schrieb:
> Mit PWM und Filter eine -saubere- Gleichspannung 0...5 V erzeugen
> und daraus einen eingeprägten Strom (0..20mA) generieren.
>
Hier wird so etwas im Prinzip gemacht. Allerdings für höhere Ströme.
Über den Strommesswiderstand ( Shunt ) R1 wird ja Vfeedback auf den 
OPamp X4 gegeben und dessen Vadc müsstes Du wieder auf einen 
µC-ADC-Eingang zurücklesen. Somit hast Du den Istwert des Stromes
( über den Spannungsfall an R1 ) erfasst und kannst nun über die PWM den 
Strom so einregeln, das der gewünschte Strom entsteht ( Soll,- 
Istwertvergleich ).

Wenn Du die PWM über einen *Butterworth-Tiefpass 4.Ordung* schickst,
sollte schon eine saubere Gleichspannung entstehen.

Beitrag "Prototyp Elektronischen Last (7A@15V)"


Bernd_Stein

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Kurt Bindl schrieb:
> (kann man unter BASCOM Soft-PWM generieren oder geht das nur mit echten
> Timern?)

Es geht beides, aber die Hardware PWM hat einfach ein beinhartes Timing 
ohne Jittern. Ausserdem benötigt sie null Rechenzeit, weil die Hardware 
alles alleine erledigt. Du schreibst lediglich einen neuen Wert ins OC 
Register, wenn du den Ausgangswert ändern willst.

Du kannst die o.a. KSQ auch einfach mit einem Poti am Eingang auf 
Maximum einstellen, denn du brauchst ja 20mA bei maximaler PWM. Mit 
einem Spannungsteiler aus z.B. 20% Poti und 80% Festwiderstand hast du 
einen feinen Einstellbereich. Mach den Teiler nur nicht zu niederohmig, 
wenn du kein aktives Filter benutzen willst, denn ein passives Filter 
lebt von geringer Belastung am Ausgang.

von Kurt B. (kurt-b)


Lesenswert?

Matthias Sch. schrieb:
> Kurt Bindl schrieb:
>> (kann man unter BASCOM Soft-PWM generieren oder geht das nur mit echten
>> Timern?)
>
> Es geht beides, aber die Hardware PWM hat einfach ein beinhartes Timing
> ohne Jittern. Ausserdem benötigt sie null Rechenzeit, weil die Hardware
> alles alleine erledigt. Du schreibst lediglich einen neuen Wert ins OC
> Register, wenn du den Ausgangswert ändern willst.

Das heisst ich brauch nur den Timer einmal festlegen und dann nur einen 
neuen Wert reinschreiben wenn ein anderer Strom gewünscht ist.
Das mit den Softpwm ist deshalb angedacht weil es sein könnte dass ich 
mehrere Werte ausgeben sollte.
Wenns aber -ruckelt- dann lieber pro Strom einen eigenen AVR.


>
> Du kannst die o.a. KSQ auch einfach mit einem Poti am Eingang auf
> Maximum einstellen, denn du brauchst ja 20mA bei maximaler PWM. Mit
> einem Spannungsteiler aus z.B. 20% Poti und 80% Festwiderstand hast du
> einen feinen Einstellbereich. Mach den Teiler nur nicht zu niederohmig,
> wenn du kein aktives Filter benutzen willst, denn ein passives Filter
> lebt von geringer Belastung am Ausgang.

Einstellen über Poti versuche ich zu vermeiden denn das ist immer eine 
Fehlerquelle.
Ich kann mich ja festlegen dass 20mA einer Sollspannung (PWM-Ergebnis) 
entspricht (z.B. 4V) und die Feinheiten macht der AVR, der kann dann den 
ins Register zu schreibenden Wert vorher korrigieren.
Je weniger Hardware desto besser, entscheidend ist dass der AVR mit 
einer stabilen Spannung versorgt wird und der OP der den 
Soll/Ist-Vergleich macht und der Messwiderstand der den Linienstrom in 
die Istspannung wandelt einen geringen Temperaturgang haben.
Dann sollte es eigentlich passen.

 Kurt

von Ulrich H. (lurchi)


Lesenswert?

Die meisten AVRs haben am 16 Bit timer 2 PWM Ausgänge. Damit kann man 
also 2 Kanäle Hardware PWM machen. Wenn man nur einen braucht, könnte 
man trotzdem beide nutzen und über Widerstände zusammen schalten und so 
die doppelte PWM Frequenz bzw. Auflösung erreichen.

Für eine höhere PWM Frequenz und damit einfachere Filterung (oder einen 
weiteren Kanal) könnte man Software nutzen um eine 8 Bit HW PWM Signal 
per Software zu modulieren zwischen je 2 benachbarten Zuständen. Damit 
könnt man dann auch einen 8 Bit Timer nutzen um etwa 16 Bit Auflösung zu 
erreichen. Auch mit BASCOM sollte es noch gerade von der Rechenzeit 
hinkommen.
Die Filtertung wird einfacher weil der Größte teil des Wechselsignals 
bei einer 256 fach höheren Frequenz ist, und nur 1/256 der Amplitude bei 
der niedrigen Frequenz.

Sofern man die volle Auflösung nicht bei jedem Wert braucht, könnt man 
beim PWM Signal auch die Frequenz variieren und so für das Beispiel 8 
Bit PWM nicht nur Werte wie 1/256, 2/255, .. sondern auch Werte wie 
1/254 oder 2/253 erreichen.

Auch wenn es langsam sein kann, wird man wohl einen Filter höherer 
Ordnung und damit einen aktiven Filter benötigen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Kurt Bindl schrieb:
> Das heisst ich brauch nur den Timer einmal festlegen und dann nur einen
> neuen Wert reinschreiben wenn ein anderer Strom gewünscht ist.

Genau so. Wie Ulrich auch schon sagte, du hast auf jeden Fall schon mal 
2 Stück 16-bit PWM, und dann je nach AVR noch bis zu 4 Stück 8-bit.

Kurt Bindl schrieb:
> Einstellen über Poti versuche ich zu vermeiden denn das ist immer eine
> Fehlerquelle.

Kommt auf die Potis an. Ich habe Keramiktrimmer mit 10-Gang in einigen 
Schaltungen meiner 4-20mA Sensoren und da sind welche bei, die schon 
seit Jahren laufen, auch in kalter und heisser Umgebung. Das sind blaue 
und weisse von Bourns. Klar, ein rostender Kohleschichttrimmer ist nicht 
besondrs vertrauenerweckend. Habe neulich in einigen Siemens 
Stromschleifendisplays die gleichen Bourns Trimmer gesehen, ausgebaut 
aus einem Kraftwerk, 20 Jahre alt und immer noch 1A.

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.