mikrocontroller.net

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


Autor: Denny Ragusch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: buz11 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: Gerhard Gunzelmann (Gast)
Datum:

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

Gerhard

Autor: buz11 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der ADuC841 z.B. kann das alles autonom .
Quarztakt als Basis .

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

Autor: Andreas Auer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Denny Ragusch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: buz11 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: buz11 (Gast)
Datum:

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

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.