Forum: Mikrocontroller und Digitale Elektronik PWM am ATTiny441


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Gab97 (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebe Mikrocontroller-Community,

ich stehe noch relativ am Anfang im Umgang mit Mikrocontrollern.
Aktuell versuche ich PWM auf einem ATTiny441 zu nutzen. Durch 
Datenblatt, Ausprobieren und Google bin ich nun an einem Punkt, an dem 
mein Vorhaben fast funktioniert, aber eben nur fast :D

Hier der Code (Nochmal in Schön im Anhang):

#define F_CPU 16000000UL

#include <avr/io.h>

int main(void)
{
  // Pin direction setup (PA2, PA5, PA7, PB2 as output pins)
  DDRA = 0b10100100;
  DDRB = 0b00000100;

  // Timer 1: Fast-pwm mode 14, non-inverting mode, prescale 8
  TCCR1A = (1 << COM1A1) | (1 << COM1B1) | (1 << WGM11);
  TCCR1B = (1 << WGM13) | (1 << WGM12) | (1 << CS11);

  // Timer 2: Fast-pwm mode 14, non-inverting mode
  TCCR2A = (1 << COM2A1) | (1 << COM2B1) | (1 << WGM21);
  TCCR2B = (1 << WGM23) | (1 << WGM22) | (1 << CS21);

  // Pin routing:
  // PA2 - TOCC1 - OC0A
  // PA5 - TOCC4 - OC0B
  // PA7 - TOCC6 - OC1B
  // PB2 - TOCC7 - OC1A
  TOCPMSA1 = (1 << TOCC7S0) | (1 << TOCC6S0);

  // Enable pwm-pins
  TOCPMCOE = (1 << TOCC7OE) | (1 << TOCC6OE) | (1 << TOCC4OE) | (1 << 
TOCC1OE);

  // Define top values (2500)
  ICR1 = 5000 - 2;
  ICR2 = 5000 - 2;

  // Compare values
  OCR1A = 2500;
  OCR1B = 1250;
  OCR2A = 2500;
  OCR2B = 1250;

    while (1)
    {

    }
}

1. An den Pins PA7 und PB2 liegt das gewünschte Signal an, an PA2 und 
PA5 will das ganze nicht so recht. Hättet ihr einen Tipp, wo der Fehler 
liegen könnte?

2. Wenn ich mein Oszi an einen der PWM-Pins hänge, ist ein 
Spannungsüberschuss von ca. 1V an der steigenden Flanke einer Schwingung 
zu beobachten (siehe Bild im Anhang). Lässt sich dies beheben?

Vielen Dank euch schonmal ;)

von Peter II (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gab97 schrieb:
> 2. Wenn ich mein Oszi an einen der PWM-Pins hänge, ist ein
> Spannungsüberschuss von ca. 1V an der steigenden Flanke einer Schwingung
> zu beobachten (siehe Bild im Anhang). Lässt sich dies beheben?

da der Tiny vermutlich 5V versorgt ist, können auch nur 5V rauskommen. 
Der Fehler wird wohl viel mehr ein Messfehler sein. (Masse ungünstig 
angeschlossen?)

von spess53 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
HI

Abblockkondensator am ATTiny vorhanden?

>Der Fehler wird wohl viel mehr ein Messfehler sein. (Masse ungünstig
>angeschlossen?)

Dem schließe ich mich an.

MfG Spess

von Gab97 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Peter II schrieb:
> Der Fehler wird wohl viel mehr ein Messfehler sein.

Danke für den Hinweis, hab direkt ein paar andere Messpunkte ausprobiert 
und bekomme nun eine deutlich bessere Kurve. So ist es, wenn man sich 
mit seinen Werkzeugen nicht gut genug auskennt :D

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]
  • [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.