Forum: Mikrocontroller und Digitale Elektronik PWM-Auflösung im Tiny45 einstellen?


von praktikant (Gast)


Lesenswert?

Guten Nachmittag,

ich möchte einen Tiny45 als PWM-Erzeuger laufen lassen.
Da die Hardware-PWM eingebaut ist würde ich die gerne nutzen.
Ich habe mich schon im Datenblatt und im Web informiert, eine Angabe 
suche ich allerdings vergeblich: In welchem Register stelle ich die 
Auflösung des Timers im PWM-Modus ein?
Oder stellt sich der je nach Prescaler und CPU-Takt automatisch ein? 
Wenn ja, wo kann ich das nachlesen?

Für ein wenig Starthilfe wäre ich dankbar.

Grüße

von Karl M. (Gast)


Lesenswert?

Hallo,

was verstehst Du unter "PWM-Auflösung" deine Frage ?

Es gibt eine PWM-Frequenz, diese ist im Datenblatt durch eine Formel 
herleitbar.

Also in etwas abhängih bon TIMER-Taktfrequenz, Timervorteiler und max. 
Timerzähler.

von praktikant (Gast)


Lesenswert?

Damit meine ich, ob die PWM als 8, 9 oder 10-bit-PWM läuft.
Das bedingt ja auch den max. Timerzähler. Aber wie komme ich an den 
dran?

Die Formel habe ich gefunden.

von Karl M. (Gast)


Lesenswert?

Ach ja es gibt zwei unterschiedliche TimerN im attiny45.

a) 8-bit Timer/Counter0 mit PWM Mode
Dann noch verschiedene PWM Modi:

Siehe 11.7 Modes of Operation

und unter
Table 11-5. Waveform Generation Mode Bit Description
finden wir eine Aufstellung.
Mode: 1, 3, 5 und 7

b) 8-bit Timer/Counter1 mit PWM Mode
hier ist es etwas anders:
TCCR1 – Timer/Counter1 Control Register
TCCR1.PWM1A = 1

*PWM1A: Pulse Width Modulator A Enable*
When set (one) this bit enables PWM mode based on comparator OCR1A in 
Timer/Counter1 and the counter value is reset to $00 in the CPU clock 
cycle after a compare match with OCR1C register value.

GTCCR – General Timer/Counter1 Control Register
GTCCR.PWM1B = 1

*PWM1B: Pulse Width Modulator B Enable*
When set (one) this bit enables PWM mode based on comparator OCR1B in 
Timer/Counter1 and the counter value is reset to $00 in the CPU clock 
cycle after a compare match with OCR1C register value.

Welchen Timer in welchem Mod möchtest Du betrachten ?

von Karl M. (Gast)


Lesenswert?

praktikant schrieb:
> Damit meine ich, ob die PWM als 8, 9 oder 10-bit-PWM läuft.
> Das bedingt ja auch den max. Timerzähler. Aber wie komme ich an den
> dran?
>
> Die Formel habe ich gefunden.

Also beide sind nur 8 bit Zähler, da kann man nichts machen und hätte 
man selbst aus dem Datenblatt lesen können.

von Yogi (Gast)


Lesenswert?

praktikant schrieb:
> In welchem Register stelle ich die
> Auflösung des Timers im PWM-Modus ein?

Für Timer0
Im TCCR0A und TCCR0B wird der PWM Modus und die Frequenz eingestellt
In OCR0A und/oder OCR0B wird das Tastverhältnis eingestellt.

> Wenn ja, wo kann ich das nachlesen?

Im Datenblatt 2586Q–AVR–08/2013 Kapitel
11. 8-bit Timer/Counter0 with PWM

von praktikant (Gast)


Lesenswert?

Mir geht es um Timer 1 im PWM-Mode.
8 bit ist mir ganz recht.
Die Register zum Timer1 habe ich bereits abgegrast, ich habe nur die 
Information, dass der Tiny45 nur 8 bit kann, nicht gefunden.

Danke für deine Hilfe, mal sehen, ob ich damit weiterkomme.

von Karl M. (Gast)


Lesenswert?

praktikant schrieb:
> Mir geht es um Timer 1 im PWM-Mode.
> 8 bit ist mir ganz recht.
> Die Register zum Timer1 habe ich bereits abgegrast, ich habe nur die
> Information, dass der Tiny45 nur 8 bit kann, nicht gefunden.
>
> Danke für deine Hilfe, mal sehen, ob ich damit weiterkomme.

Sehr eigenartig, was hast Du den als Referenz ?

S.83ff 12. 8-bit Timer/Counter1

S.84 Figure 12-2. Timer/Counter 1 Synchronization Register Block 
Diagram.
Oder
S.85 Figure 12-3. Timer/Counter1 Block Diagram
Da sieht man nur 8 Bit Register!

Ich finde die Angaben doch eindeutig.

Als wo steht denn etwas anderes ?

von Karl M. (Gast)


Lesenswert?

Karl M. schrieb:
> was verstehst Du unter "PWM-Auflösung" deine Frage ?

Bitte antworte noch, dann können wir dir auch eine Beispiel stricken.

von Yogi (Gast)


Lesenswert?

Karl M. schrieb:
> Hallo,
>
> was verstehst Du unter "PWM-Auflösung" deine Frage ?


praktikant schrieb:
> Damit meine ich, ob die PWM als 8, 9 oder 10-bit-PWM läuft.
> Das bedingt ja auch den max. Timerzähler. Aber wie komme ich an den
> dran?


Karl M. schrieb:
> Karl M. schrieb:
>> was verstehst Du unter "PWM-Auflösung" deine Frage ?
>
> Bitte antworte noch, dann können wir dir auch eine Beispiel stricken.


Bitte nicht und möge der thread in Frieden ruhen.

von praktikant (Gast)


Lesenswert?

Karl M. schrieb:

> Sehr eigenartig, was hast Du den als Referenz ?
>
> S.83ff 12. 8-bit Timer/Counter1
>
> S.84 Figure 12-2. Timer/Counter 1 Synchronization Register Block
> Diagram.
> Oder
> S.85 Figure 12-3. Timer/Counter1 Block Diagram
> Da sieht man nur 8 Bit Register!
>
> Ich finde die Angaben doch eindeutig.
>
> Als wo steht denn etwas anderes ?

http://www.atmel.com/images/atmel-2586-avr-8-bit-microcontroller-attiny25-attiny45-attiny85_datasheet.pdf
Gut, dass man das Nichtfinden von anderen Registern als 8-bit-Registern 
so interpretieren muss, dass 8-bit der einzig mögliche Wert ist... 
okay... man lernt nie aus.

von Mein grosses V. (vorbild)


Lesenswert?

praktikant schrieb:
> Gut, dass man das Nichtfinden von anderen Registern als 8-bit-Registern
> so interpretieren muss, dass 8-bit der einzig mögliche Wert ist...

In dem von dir verlinkten Datenblatt steht auf der 1. Seite:

• Peripheral Features
– 8-bit Timer/Counter with Prescaler and Two PWM Channels
– 8-bit High Speed Timer/Counter with Separate Prescaler

Was willst du denn noch? Ein Datenblatt, das sich automatisch vorliest?

von Yogi (Gast)


Lesenswert?

Mein grosses V. schrieb:
> praktikant schrieb:
>> Gut, dass man das Nichtfinden von anderen Registern als 8-bit-Registern
>> so interpretieren muss, dass 8-bit der einzig mögliche Wert ist...
>
> In dem von dir verlinkten Datenblatt steht auf der 1. Seite:
>
> • Peripheral Features
> – 8-bit Timer/Counter with Prescaler and Two PWM Channels
> – 8-bit High Speed Timer/Counter with Separate Prescaler
>
> Was willst du denn noch? Ein Datenblatt, das sich automatisch vorliest?

Es sollte alles aufgelistet sein was der µC nicht kann.

von Karl M. (Gast)


Lesenswert?

praktikant,

spannender ist doch nun die Frage, ob die gesuchten Informationen nun 
vorhanden sind und das Verständnis des attiny45 etwas gefördert wurde.

von praktikant (Gast)


Lesenswert?

Ja, durchaus.
Soweit denke ich sollte ich eine PWM ans Laufen bekommen.

von Karl M. (Gast)


Lesenswert?

praktikant schrieb:
> Ja, durchaus.
> Soweit denke ich sollte ich eine PWM ans Laufen bekommen.

Super viel Erfolg !

von c-hater (Gast)


Lesenswert?

Yogi schrieb:

> Es sollte alles aufgelistet sein was der µC nicht kann.

Das ist doch Quatsch und zeigt, dass du die Gesetze der Logik nicht 
verstehst.

Die besagen nämlich: Dann würden sämtliche Datenblätter unendlich lang 
sein müssen. Was unmittelbar dazu führen würde, dass sie weder 
geschrieben noch gelesen werden könnten.

Da gefällt mir die gegenwärtige Situation (wo dokumentiert wird, was das 
Ding mindestens kann) doch sehr viel besser. Schließlich können dann 
alle, die zumindest Lesen können, alle Features nutzen, die das Ding 
sicher kann und die der Hersteller getestet hat. Und das in endlicher 
Zeit. Sowohl was das Verfassen des DBs betrifft, als auch die Lektüre 
desselben.

Und alle, die obendrein auch noch mit einer gewissen 
Mindest-Eigenintelligenz begabt sind, können die eine oder andere 
Anwendung realisieren, deren Voraussetzungen zwar nicht unmittelbar im 
DB dokumentiert sind, die sich aber aus übergreifenden Vorstellungen von 
der Funktion der darin beschriebenen Technik als möglich darstellen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.