PWM und ADC

Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

PWM und ADC

 · 
Posted: 12.04.2015 - 20:39  ·  #1
Hallo @ all,

angenommen ich generiere eine relativ langsame PWM (sagen wir mal 8MHz µC-Takt, Prescaler 64, 10-Bit Auflösung = 8000000/1024/64=122 Hz. Ist es irgendwie möglich, nur während eines PWM-Pulses einen ADC auszulesen ? Warum: Weil auch nur dann Strom fließt, den ich messen will.

Gruss
Harry
Harald_K
 
Avatar
 
Subject:

Re: PWM und ADC

 · 
Posted: 12.04.2015 - 20:59  ·  #2
Jo, kann man tun.

Das mußt du allerdings sozusagen "von Hand" programmieren:

Wenn der PWM-Zähler den Vergleichswert (OCR1A / OCR1B) erreicht und den Pin automatisch schaltet, kannst du einen Interrupt auslösen.
In diesem Interrupt kannst du dann den Wandler starten, warten bis er fertig ist und dann lesen ...

besser ist es natürlich, den Wandler auszulesen und dann neu zu starten - das Lesen des alten Stromwertes erfolgt dann im nächsten PWM-Interrupt. Das spart CPU-Auslastung.

Die gewählte Polarität des PWM-Ausgangs muß natürlich passend gewählt sein, d.h. Einschalten der Last beim OCR-Erreichen. Alternativ kann man auch nen INT beim Überlaufen des PWM-Zählers auslösen, dann muß die Polarität des Ausgangs andersrum gewählt werden.




Du mußt natürlich in beiden F#ällen schauen, daß der PWM-Takt nicht schneller umläuft als der AD-Wandler wandelt. (Der braucht 15 AD-Clock-Takte)
Außerdem sollte man den Strom nicht direkt nach dem Schalten des PWM-Ausgangs messen, je nach angeschlossener Last und Umschaltverhalten der beteiligten Halbleiter ist es sinnvoll, ein wenig abzuwarten, sonst mißt man ggf. z.B den Strom, der durch die Freilaufdiode geht bis sie zu ist.
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: PWM und ADC

 · 
Posted: 12.04.2015 - 21:19  ·  #3
Hi Harald,

das hört sich kompliziert an. Was wäre denn wenn ich den Strom (Shunt & OP) durch einen Tiefpass jage und das messe ? Sollte doch auch gehen und ist einfacher.

Gruss
Harry
Harald_K
 
Avatar
 
Subject:

Re: PWM und ADC

 · 
Posted: 12.04.2015 - 23:02  ·  #4
kommt halt drauf an, was du machen willst.

wenns nur um nen mittleren Strom geht, dann ja - dann kannst du aber auch einfach den Tiefpass weglassen und das Integrieren im Atmel machen.

wenn du aber eher sowas wie nen Kurzschlußschutz haben willst, dann muß es ggf. schnell sein .

und kompliziert ...

du mußt nur ein paar Bits in einem der TCCRx-Register setzen um den passenden INT einzuschalten, die entspr. interrupt-Prozedur schreiben, das wars dann schon fast.

A/D-Wandler starten geht auch recht einfach, nur das passende Bit im zugehörigen Control-Register, lesen kannst du das 16bit-ADC-Datenregister einfach so ...
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 13   78   91 · Page-Gen-Time: 0.025141s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI