Attiny13 - 25 kHz Hardware PWM immer HIGH

OP #4206769
Lesenswert?
• ▲
▼
Hallo!
Ich bin gerade dabei eine kleine Lüftersteuerung für einen 4 Pin 12V PWM 
PC Lüfter zu bauen und verwende dafür den Attiny13.

Der Code sollte eigentlich eine Arbeit von 10 Minuten sein, will aber 
ums Verrecken nicht funktionieren.

Folgender Testaufbau: Attiny PWM Ausgang OC0A (PB0) -> Widerstand -> 
(Basis) Open Collector Schaltung mit NPN Transistor -> PullUp Widerstand 
an Collector (3.3V).

Das Problem:
Im WGMA Mode 5, d.h als TOP Wert wird OCR0A herangezogen, krieg ich am 
Collector immer HIGH raus, d.h. der Transistor sperrt. Es kommt kein PWM 
Signal raus.

Im WGMA Mode 1, d.h. als TOP Wert wird 0xFF herangezogen, krieg ich ein 
PWM Signal am Ausgang, aber leider mit der falschen Frequenz.

Hier mal der Code:
int main(void)
{
  DDRB |= (1<<DDB0);

  OCR0A = 0xC0; //dez: 192 -> 25 kHz at 9.6 MHz clk
  TCNT0 = 0x22; //duty cycle

  //Set OC0A on Compare Match when up-counting. Clear OC0A on
        //Compare Match when down-counting.
  //inverted PWM output at OC0A
  TCCR0A |= ((1<<COM0A1)|(1<<COM0A0)); //inverting PWM

  //WGMA Mode 5 (PWM Phase correct with TOP: OCRA)
  TCCR0A |= (1<<WGM00);
  TCCR0B |= (1<<WGM02);

  TCCR0B &= ~((1<<FOC0A)|(1<<FOC0B));

  //clk(IO) - no prescaling
  TCCR0B |= (1<<CS00);
  TCCR0B &= ~((1<<CS01)|(1<<CS02));

    while(1)
    {
    }
}

Hab ich irgendwas vergessen, dass für den WGMA 5 Mode benötigt wird?

Lg,
Gast #4206785
Lesenswert?
• ▲
▼
A special case occurs when OCR0A equals TOP and COM0A1 is set. In this 
case, the Compare
Match is ignored, but the set or clear is done at TOP. See “Fast PWM 
Mode” on page 64
for more details.


Siehe Note 1
Gast #4206844
Lesenswert?
• ▲
▼
Hi

>Wieso wird im WGMA Mode 5 OC0B als Ausgang verwendet? Wo steht das?
>Und wo steht, dass mit OCR0B der duty cycle eingestellt wird?

OCR0A kann nur eine Aufgabe erfüllen. Entweder als Top- oder als 
Compare-Register.

MfG Spess

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.