mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programmierbare Gleichspannungsquelle mit AVR und Bascom


Autor: FrankWeller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich (Hobbybastler) möchte ein paar Messreihen durchführen und bräuchte 
dafür eine Gleichspannungsquelle, die den Bereich von 0V bis ca. 5V in 
0,2V-Schritten durchfahren kann.
Da fiel mir direkt mein altes AVR-Brett mit AtMega16 ein. Ich kann 
allerdings nur in Bascom (halbwegs) programmieren, aber für das Projekt 
müßte es eigentlich reichen...

Dazu ein paar Fragen:

1. Was ist wohl die höhste Auflösung, die man mit dem PWM-Kanal erzeugen 
kann (20Mhz-Quarz) und gibt es da verschiedene Modi?

2. Wie nah kommt die maximal erzielbare PWM-Spannung der 
Betriebsspannung (hier +5V)?

3. Wenn ich einen Operationsverstärker als Buffer nachschalten will, 
reicht dann ein passives RC-Glied (z.B. 10KOhm, 1µF) zur Glättung?

Das ganze ist wie gesagt für ein paar provisorische Messungen für den 
Hobbybereich gedacht! Der Aufwand sollte in jedem Fall vertretbar 
bleiben...

Vielen Dank!

Frank

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FrankWeller schrieb:

> 1. Was ist wohl die höhste Auflösung, die man mit dem PWM-Kanal erzeugen
> kann (20Mhz-Quarz) und gibt es da verschiedene Modi?

Ja, gibt es.
Hardwaremässig wirst du wohl auf Fast-PWM gehen, damit du die höchste 
mögliche PWM-Frequenz bekommst.
Da gibt es dann 8 Bit, 9 Bit und 10 Bit PWM

Mit 10 Bit hast du dann immerhin 1024 Abstufungen. Kannst dir ja mal 
ausrechnen, welche Schritte da herauskommen, wenn du von 0 bis 5V in 
1024 Schritten gehen kannst.

> 2. Wie nah kommt die maximal erzielbare PWM-Spannung der
> Betriebsspannung (hier +5V)?

100%
Im schlimmsten Fall kann man nämlich die PWM immer noch abschalten und 
den Pin ganz einfach auf konstant 0 oder 1 legen.

> 3. Wenn ich einen Operationsverstärker als Buffer nachschalten will,
> reicht dann ein passives RC-Glied (z.B. 10KOhm, 1µF) zur Glättung?

Kommt drauf an welchen Ripple du noch akzeptieren willst.

Autor: Christian T. (shuzz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FrankWeller schrieb:
> Hallo,
>
> ich (Hobbybastler) möchte ein paar Messreihen durchführen und bräuchte
> dafür eine Gleichspannungsquelle, die den Bereich von 0V bis ca. 5V in
> 0,2V-Schritten durchfahren kann.
> Da fiel mir direkt mein altes AVR-Brett mit AtMega16 ein. Ich kann
> allerdings nur in Bascom (halbwegs) programmieren, aber für das Projekt
> müßte es eigentlich reichen...
>
> Dazu ein paar Fragen:
>
> 1. Was ist wohl die höhste Auflösung, die man mit dem PWM-Kanal erzeugen
> kann (20Mhz-Quarz) und gibt es da verschiedene Modi?

8 Bit mit x1 Prescaler bei 20MHz macht 20.000.000 / 256 = ca. 78kHz
Verschiedene Modi gibt es, z.B. Fast PWM, Phase correct PWM, Phase and 
frequency correct PWM. Für Details: Siehe Datenblatt. ;)

> 2. Wie nah kommt die maximal erzielbare PWM-Spannung der
> Betriebsspannung (hier +5V)?

100% (Ausgang bleibt bei maximum einfach auf high)


> 3. Wenn ich einen Operationsverstärker als Buffer nachschalten will,
> reicht dann ein passives RC-Glied (z.B. 10KOhm, 1µF) zur Glättung?
Kann ich Dir nicht 100%ig sagen. Ich könnte mir vorstellen, dass das bei 
passender Dimensionierung funktioniert.


Grüße,

Christian

Edit: Da war der Moderator schneller... ^^

Autor: FrankWeller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Danke Euch beiden für die schnellen und ausführlichen Antworten!!!

Gibt es zur Not auch einen Modus mit mehr als 10 Bit?

Viele Grüße


PS: man könnte beim passiven RC-Glied den C natürlich weiter vergrößern, 
aber das bedeutet natürlich auch, dass immer eine gewisse Zeit vergeht, 
bis der Wert sich der neuen Spannung angepasst hat...

Autor: Weingut Pfalz (weinbauer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hardwaremäßig macht er AVR 8-Bitter nicht mehr als 10 Bit PWM
und das macht auch Sinn, da die PWM-Frequenz halt mit der Bitzahl
abnimmt (Timer Prescaller)
Man kann mit kleinen Tricks und Kniffen aber entweder ne Soft-PWM
erzeugen, da wird dann aber die Frequenz unterirdisch bei hoher
Bitzahl oder man kann auch die verschiedenen Interrupts
(Compare und Overflow) nutzen um ne halb-Hardware PWM zu erzeugen.
In meiner Anwendung hab ich die mit ca. 15Bit auf 50Hz gedrückt.
Bei mir ist das ideal weil träges System und Filter,
keine Ahnung ob das auch bei Dir passt.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  FrankWeller (Gast)

>Gibt es zur Not auch einen Modus mit mehr als 10 Bit?

Sicher, der AVR kann bis zu 16 Bit PWM in Hardware, siehe 
LED-Fading.

>PS: man könnte beim passiven RC-Glied den C natürlich weiter vergrößern,
>aber das bedeutet natürlich auch, dass immer eine gewisse Zeit vergeht,
>bis der Wert sich der neuen Spannung angepasst hat...

Logisch. Wenn man aber mehrere Tiefpässe hintereinander schaltet, geht 
das deutlich schneller, siehe PWM.

MFG
Falk

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk Brunner schrieb:
> Sicher, der AVR kann bis zu 16 Bit PWM in Hardware,
20Mhz/(2^16) = 305Hz

Ich denke das ist für eine Spannungsquelle viel zu wenig.
für jedes bit, was du wegnimmst verdoppelt sich die Frequenz -> musst 
halt einen Kompromiss schließen.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Vlad Tepesch (vlad_tepesch)

>> Sicher, der AVR kann bis zu 16 Bit PWM in Hardware,
>20Mhz/(2^16) = 305Hz

>Ich denke das ist für eine Spannungsquelle viel zu wenig.

???
für eine GLEICHspannungsquelle reicht das locker.

Ausserdem wollen wir mal die ursprüngliche Anforderung nciht aus den 
Augen verlieren.

"dafür eine Gleichspannungsquelle, die den Bereich von 0V bis ca. 5V in
0,2V-Schritten durchfahren kann."

8 Bit PWM reicht für ein programmierbares Netzteil LOCKER!!!!

MFG
Falk

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk Brunner schrieb:
> ???
> für eine GLEICHspannungsquelle reicht das locker.
Ja genau, Gleichspannung.
Meine bedenken sind nur, dass durch die niedrige Frequenz die Spannung 
nicht richtig geglättet werden kann.
>
> Ausserdem wollen wir mal die ursprüngliche Anforderung nciht aus den
> Augen verlieren.
>
> "dafür eine Gleichspannungsquelle, die den Bereich von 0V bis ca. 5V in
> 0,2V-Schritten durchfahren kann."
>
> 8 Bit PWM reicht für ein programmierbares Netzteil LOCKER!!!!

Ich habe nichts gegenteiliges behauptet. Es stand ja nur die Frage nach 
einer höheren Auflösung als 10bit im Raum.

Autor: FrankWeller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
so, hab mittlerweile mal ein bisschen mit Bascom rumprobiert und bin zu 
folgendem Programm gekommen (die unwesentlichen Zeilen wurden entfernt):


$regfile = "m32def.dat"
$crystal = 20000000
$hwstack = 128
$swstack = 128
$framesize = 128


Config Pind.7 = Output

Config Timer2 = Pwm , Prescale = 1 , Compare = Clear

Enable Timer2

Timer2 = 0

Start Timer2

Ocr2 = 128

End



Mit "Orc2 = 128" erhält man an PinD.7 eine Spannung von etwa 2,51V , mit 
"Orc2 = 255" etwa 5,01V.

D.h., momentan arbeitet der PWM-Kanal mit einer 8-Bit-Auflösung.
Was mir aber absolut nicht klar ist, ist, wie man es fertigbringt, eine 
Auflösung von beispielsweise 10 Bit einzustellen (trotz Blick in die 
Bascom-Hilfe).

Weiß jemand, wie man eine höhere Auflösung als 8 Bit einstellt?

Autor: Zeitgast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Steht doch in der Hilfe!

Config Timer1 = Pwm , Pwm = 8(9)(10) ,......

MfG

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FrankWeller schrieb:

> Config Timer2 = Pwm , Prescale = 1 , Compare = Clear

> D.h., momentan arbeitet der PWM-Kanal mit einer 8-Bit-Auflösung.
> Was mir aber absolut nicht klar ist, ist, wie man es fertigbringt, eine
> Auflösung von beispielsweise 10 Bit einzustellen (trotz Blick in die
> Bascom-Hilfe).

Mit einem 8-Bit Timer wird es auch schwierig werden, ein PWM mit mehr 
als 8 Bit zu erreichen.

-> Die Bascom Hilfe ersaprt einem nicht den Blick ins Datenblatt des 
Prozessors. Dort holt man sich raus, welche Möglichkeiten der µC hat, in 
der Bascom Hilfe steht dann wie man sich diese Möglichkeiten in Bascom 
zunutze macht.

Autor: FrankWeller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Danke für die Antworten!
Habe es mittlerweile auch gemerkt und benutze jetzt Timer1.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.