ATtiny13 PWM bei 4.8MHz ok, bei 9.6MHz ohne Funktion

OP #1385713
Lesenswert?

Salve zusammen,

durch meinen letzte Frage bin ich deutlich weiter, aber an einem Punkt 
hakt es noch.

Wenn ich den ATTINY 13V-10PU oder auch ATTINY 13-20 mit internen RC Osz. 
4.8 MHz programmiere, dann habe ich eine PWM Frequenz von 17.6kHz, 
soweit so gut.

Wenn ich den ATtiny13 mit internen RC Osz. 9.6 MHz programmiere, dann 
geht nix.

Warum funktioniert der Kram nicht mit 9.6 MHz???
Kann man den ATTINY 13-20 mit 12.75MHz takten? Wenn dann wie?

Software: AVR Studio 4 Vers. 4.16 Build 628
Hardware: ATtiny13
Anschlüsse: PB4 ist ein Analogeingang
            PB0 ein PWM-Ausgang
            Optimization steht auf -O2
            Fuses CKDIV8 ist aus, also kein Haken
1
#include <avr/io.h>
2

3
#ifndef F_CPU
4
/* Definiere F_CPU, wenn F_CPU nicht bereits vorher definiert 
5
   (z.B. durch Übergabe als Parameter zum Compiler innerhalb 
6
   des Makefiles). Zusätzlich Ausgabe einer Warnung, die auf die
7
   "nachträgliche" Definition hinweist */
8
#warning "F_CPU war noch nicht definiert, wird nun mit 9.6 MHz definiert"
9
#define F_CPU 9600000UL     /* Quarz mit 9.6 Mhz */
10
#endif
11

12
#include <util/delay.h>
13
#include <math.h>
14
#include <stdint.h>
15
#include <stdlib.h>
16

17
// Hauptprogramm +++ Hauptprogramm +++ Hauptprogramm +++ Hauptprogramm +++ Hauptprogramm +++ Hauptprogramm +++  
18

19
      int main (void)
20
  
21
      {
22
      //  Initial I/O
23

24
      ACSR  = 0b10000000;      // Analog-Komparator abschalten, spart Strom. ACD-Bit im ACSR auf 1. Außerdem müssen wir sicherstellen, dass die Intern Voltage Reference nicht auf den Analog Comparator geschaltet ist. Dazu muss ACBG in ACSR auf 0 gesetzt werden.
25
         DDRB  = 0b00000001;         // PB0 ist PWM-Ausgang; Rest Eingang
26

27
      PORTB = 0b00000001;         // interne Pull-Ups an Port-Pins 1 bis 7 deaktiviert
28
      
29
       TCCR0A = 0b10000011;      // COM0A1 - COM0A0 (Set OC0A on Compare Match, clear OC0A at TOP) WGM01 - WGM00 (set fast PWM)
30
        TCCR0B = 0b00000001;      // Prescaler = 1 => 37,647 kHz PWM-Frequenz
31
      OCR0A = 0;          // clear OC0A at TOP, initialize Output Compare Register A to 0
32

33
          while(1)             // Endlosschleife
34

35
      {                
36

37

38
        OCR0A = (128);      //  PWM-Duty-Cycle an Ausgang PB0
39
         
40
 
41
          }
42
  
43
          return 0;
44
    }
#1385783
Lesenswert?

Markus Pab schrieb:
> Wenn ich den ATtiny13 mit internen RC Osz. 9.6 MHz programmiere, dann
> geht nix.
Mehr Details bitte, was geht nicht?


> Warum funktioniert der Kram nicht mit 9.6 MHz???
> Kann man den ATTINY 13-20 mit 12.75MHz takten? Wenn dann wie?
Du kannst ihn mit allem was Du willst takten, nur sollte es innerhalb 
der specs sein (datenblatt). 12.75MHz sollten aber ok sein.
OP #1385786
Lesenswert?

nun er bleibt bei 9.6MHz auf 0 Volt stehen und zappelt nicht

Michael M. schrieb:
> Markus Pab schrieb:
>> Wenn ich den ATtiny13 mit internen RC Osz. 9.6 MHz programmiere, dann
>> geht nix.
> Mehr Details bitte, was geht nicht?
>
>
>> Warum funktioniert der Kram nicht mit 9.6 MHz???
>> Kann man den ATTINY 13-20 mit 12.75MHz takten? Wenn dann wie?
> Du kannst ihn mit allem was Du willst takten, nur sollte es innerhalb
> der specs sein (datenblatt). 12.75MHz sollten aber ok sein.
OP #1386639
Lesenswert?

Klaro 100nF sogar unter der Platine gelötet, direkt von einem zum 
anderen Beinchen diagonal, damit der ATtiny glücklich is

Gast schrieb:
>> einfach nackisch mit 5Volt.
>
> Aber doch hoffentlich 100nf zwischen VCC+GND? Ansprechender Brown-Out
> klingt nach einbrechender Spannungsversorgung.
OP #1386681
Lesenswert?

die 5 Volt kommen aus einem Festpannunsregler und sind tip top. Auf dem 
Tisch kommt die Versorgung aus einem 12V- Netzteil und im Auto halt aus 
dem Boardnetz. Ich habe die Schaltung zweimal gebaut. Einmal liegt sie 
im Auto und die andere auf dem Schreibtisch. Die Schaltungen sind 
identisch und machen das gleiche Problem. 4.8MHz tut, 9.6MHz schwingt 
nur die PWM, wenn Burn-Out-Detection abgeschaltet ist. Dahingehend ein 
reproduzierbarer Fehler
OP #1387022
Lesenswert?

Salve, anbei der Schaltplan. Obgleich ich kein Oszi zur Hand habe, wage 
ich es sehr zu bezweifeln, dass es zu Spannungseinbrüchen kommen könnte. 
Egal welche Burn-Out-Schaltschwelle ich einstelle, nur ohne Burn-out 
tuts bei 9,6 MHz.

Am Eingang kommt der im Kraftfahrzeug verbaute NTC fürs Kühlwasser und 
an den drei Ausgangsklemmen kommt das dreipolige Drehspulinstrument im 
Cockpit.

Der Programmauszug oben umfasst nur den PWM-Teil, da sich bei dem Teil 
um das Problem handelt. Das gesamte Programm ist zur 
Fehlerreproduzierbarkeit nicht erforderlich. Alleine oben der PWM-Teil 
funktioniert nur ohne Burn-out bei 9.6 MHz und bei 4.6 MHz funkioniert 
er auch  mit Burn-Out

Besten Dank vorab für weitere Tipps
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren