Forum: Mikrocontroller und Digitale Elektronik PWM und AD-Wandlung zeitgleich


von Denny Ragusch (Gast)


Lesenswert?

Hallo
Ich möchte mittels PWM ein Rechtecksignal ausgeben und "zeitgleich"
den AD-Wandler arbeiten lassen. Alleine geht es prima.
Benutze einen Atmel Mega8 und oder Mega16 Jedenfalls Timer1 im
PWM-Modus läuft alleine super. AD-Wandlung läuft alleine auch super.
Führe ich beide Teile zusammen, dann bekomme ich zwar mein PWM-Signal
aber die AD-Wandlung schlägt fehl!
Zuerst wäre ich über eine Antwort, ob es überhaupt geht schon sehr
zufrieden :-)gibt es was zu beachten? Benutze BASCOM Basic habe aber
PWM und AD-Wandlung direkt über Register laut Datenblatt eingestellt..
Na gut erstmal vielen Dank.

von Dirk (Gast)


Lesenswert?

Also zeitgleich gehts nicht, da erst PWM oder die AD-Wandlung
abgearbeitet werden muß. Dazu müsste der µC eine
Multitaskingeigenschaft haben, welcher der Controller nicht hat.

Also erst das eine , dann das andere machen, vielleicht Interrupt
gesteuert.

von Alex (Gast)


Lesenswert?

Wie immer bei solchen Problemen: Häng den Source mit an!

In diesem Fall liegt der Fehler beim Anwender, d.h. es sollte gehen.

von buz11 (Gast)


Lesenswert?

"Dazu müsste der µC eine
Multitaskingeigenschaft haben, welcher der Controller nicht hat."

Und , wenn der µC es in Hardware kann ?
Geht sehr wohl .
Nur dass die PWM den ADC stört ...

von Gerhard Gunzelmann (Gast)


Lesenswert?

Ich weiß nicht welchen uC Du verwendest. Evtl verwenden
A/D-Wandler-Modul und das PWM-Modul den selben Timer.

Gerhard

von buz11 (Gast)


Lesenswert?

Der ADuC841 z.B. kann das alles autonom .
Quarztakt als Basis .

Timer hat man extra ( 3 Stück ) .
Ist ein 8051er .

von Andreas Auer (Gast)


Lesenswert?

Hi!

PWM und AD Wandlung sollte auf jedenfall funktionieren! Ich hab selbst
eine Schaltung gebaut, die 4 analoge Spannungen über 4 Kanäle des ADC
digital konvertiert und je nach Wert über 4 Portpins ein
frequenzmoduliertes Signal ausgibt. Für ne PWM wären praktisch nur
geringe Änderungen möglich.

Übrigens mache ich die AD-Umwandlung in einer While-Schleife und die 4
FM Signale mache ich per Software... D.h. ich lasse einen Timer laufen
und bei nem Overflow ziehe ich bei 4 Variablen eins ab. Wenn eine der
Variablen 0 erreicht, dann wird der Portpin getoggelt!

Als uC verwend ich den Mega8 mit 16 MHz Takt. Als Compiler hab ich den
AVR-GCC in Verwendung!

mfg
Andreas

von Peter D. (peda)


Lesenswert?

"Also zeitgleich gehts nicht, da erst PWM oder die AD-Wandlung
abgearbeitet werden muß."


Das ist Mumpitz.
Da ADC und PWM separate Hardware haben, gehen sie sehr wohl
gleichzeitig.

Anders ginge es auch gar nicht, da eine PWM ja nicht unterbrochen
werden darf.

Allerdings können die Schaltflanken der PWM den ADC stören.
Also die PWM möglichst wenig belasten (Reihenwiderstand 100_Ohm
unmittelbar am Ausgang und separate Treiberstufe (74HC04).

Ich benutze für die PWM eh immer einen 74HC04, der dann über eine
hochkonstante 5V-Referenz versorgt wird.
Denn die ungenauen digitalen 5V eines 7805 sind für 16Bit PWM ein
Witz.


Peter

von Denny Ragusch (Gast)


Lesenswert?

Vielen Dank für die schnellen Antworten..Also prinzipiell gehts. Und mit
meinem Atmega16 hats jetzt auch funktioniert, wenn ich den timer1 mit
einem prescaler >1 betreibe.. naja jedoch wie peter schon vermutete,
stört der pwm den ad für meine begriffe zu sehr..
Aber dies ist letztlich auch ein Ergebnis. Vielen Dank.

Denny

von buz11 (Gast)


Lesenswert?

"Ich benutze für die PWM eh immer einen 74HC04, der dann über eine
hochkonstante 5V-Referenz versorgt wird.
Denn die ungenauen digitalen 5V eines 7805 sind für 16Bit PWM ein
Witz."

Hallo Peter ,
sonst verstehe ich Deine Beiträge recht gut , denk ich .
Dieses mal aber nur Bahnhoff ...
Kannst mal bisschen besser erklären ?

von Alex (Gast)


Lesenswert?

Wenn deine PWM 16 Bit hat und du sie zum Erzeugen eines Analogsignales
über einen Tiefpaß (DA-Wandler) nutzen möchtest, dann hast du
Ausnutzung der kompletten 16 Bit eine Schrittweite von 5V/(2^16). Wenn
die Betriebsspannung schon einen absoluten Fehler im 2-3 stelligen mV
Bereich hat, dann nützt dir die hohe Auflösung der PWM nichts mehr.

von buz11 (Gast)


Lesenswert?

Danke , jetzt hab ich's .
( es geht ja um PWM als DAC )

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.