AVR ATmega 32 Soft-PWM erzeugen funktioniert nicht

Gast #6562829
Lesenswert?
• ▲
▼
Hallo,
ich versuche schon seit geraumer Zeit, auf meinem ATmega 32 ein PWM 
Signal zu erzeugen. Nachdem ich mehr als 4 Kanäle brauche, habe ich mich 
für die Soft-PWM Methode entschieden, anders geht's ja anscheinend nicht 
;). Ich habe schon verschiedene Ansätze probiert, leider immer ohne 
Erfolg. Um zu prüfen ob ich einen Denkfehler habe, habe ich den Code aus 
diesem Forum hier (Version 2): 
https://www.mikrocontroller.net/articles/Soft-PWM, ausprobiert. 
Funktioniert leider auch nicht.
Jetzt weiß ich eigentlich nicht mehr weiter. Kann es auch ein 
Hardwaredefekt sein? Ich kann grundsätzlich die Pins auf High setzen und 
auch ein PWM Signal einlesen und verarbeiten. Das Ergebnis des Versuches 
ein PWM Signal zu erzeugen habe ich mit einem Oszi überprüft. Da kam ein 
annähernd sinusförmiges Signal mit ca. 50 mV raus (also nur "Rauschen").

Ich hänge hier jetzt bei meinem Abschlussprojekt für meine Schule und 
hoffe einer von Euch hat gute Tipps für mich, wie ich den Fehler 
eingrenzen/beheben kann.
Vielen Dank im Voraus,
Florian
Gast #6562837
Lesenswert?
• ▲
▼
Florian schrieb:
> Funktioniert leider auch nicht

Du musst das Problem analysieren und einkreisen.

Estmal solltest du prüfen, ob der Beispielcode überhaupt zu deinem AVR 
Modell passt. Die Timer-Register sind nämlich nicht alle gleich. Gleiche 
das mit dem Datenblatt deines Mikrocontroller ab.

Dann solltest du dir eine Möglichkeit schaffen, serielle Debug-Meldungen 
auszugeben. Dann kannst du anhand von Textausgaben herausfinden, welche 
Programmteile in welcher Reihenfolge durchlaufen werden.

Für weitere Fragen solltest du deinen Quelltext posten. Ich habe keine 
Lust, über einen Code zu diskutieren, der nur vielleicht irgendeiner 
Variante der Webseite entspricht.

> Da kam ein annähernd sinusförmiges
> Signal mit ca. 50 mV raus (also nur "Rauschen").

Hast du vielleicht vergessen, den I/O Pin als Ausgang zu konfigurieren? 
Zeige mal das Bild vom Oszilloskop und wie du es eingestellt hast. Ich 
hoffe du misst DC, nicht AC.
#6562867
Lesenswert?
• ▲
▼
Florian schrieb:
> diesem Forum hier (Version 2):
> https://www.mikrocontroller.net/articles/Soft-PWM, ausprobiert.
> Funktioniert leider auch nicht.

Was geht denn nicht? Was kommt denn aus den Ports?
Wie sieht DEIN Quelltext aus?

> Jetzt weiß ich eigentlich nicht mehr weiter. Kann es auch ein
> Hardwaredefekt sein? Ich kann grundsätzlich die Pins auf High setzen und
> auch ein PWM Signal einlesen und verarbeiten.

Warum einlesen? Die Soft-PWM erzeugt PWM-Signale, also AUSgabe.

> Das Ergebnis des Versuches
> ein PWM Signal zu erzeugen habe ich mit einem Oszi überprüft. Da kam ein
> annähernd sinusförmiges Signal mit ca. 50 mV raus (also nur "Rauschen").

Du misst irgendwie falsch.

> Ich hänge hier jetzt bei meinem Abschlussprojekt für meine Schule und
> hoffe einer von Euch hat gute Tipps für mich, wie ich den Fehler
> eingrenzen/beheben kann.

Mit einer systematischen Fehlersuche.

Lass erstmal auf allen Port, wo deine PWM rauskommen soll, das Pin 
einfach per CPU und _delay_ms() im 1s Takt blinken und miss das Signal. 
Wenn das geht, ist die Hardware in Ordnung. Dann geht es bei der 
Software weiter.
Gast #6563152
Lesenswert?
• ▲
▼
Florian schrieb:

> Das Ergebnis des Versuches
> ein PWM Signal zu erzeugen habe ich mit einem Oszi überprüft. Da kam ein
> annähernd sinusförmiges Signal mit ca. 50 mV raus (also nur "Rauschen").

An welchem Pin hast du das versucht? Irgendwo an PortC? Dann JTAG-Fuse 
überprüfen. Oder PortA?? Dann überprüfen, ob die Versorgung auch an AVCC 
und AGND korrekt angeschlossen ist.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.