Forum: Mikrocontroller und Digitale Elektronik PWM mit 125kHz mit Tiny13


von Jörg (Gast)


Lesenswert?

Hallo,

ich hab jetzt schon einiges im Forum nachgeschlagen komme aber nicht so
recht weiter.

Kann ich mit einem Tiny13 bei 4MHz Takt eine Hardwaremäßig ohne
irgendwelche Interrupts FastPWM mit 125kHz erzeugen?

Wenn nein geht dann folgender Gedanke Softwaremäßig.
1. Timer Interrupt alle 32 Takte und Pin auf 0
2. In der Main-Schleife Timer-Zähler mit Wert (zwischen 0 und 32)
vergleichen bei Gleichstand Pin auf 1

Gruß Jörg

von ...HanneS... (Gast)


Lesenswert?

Im Datenblatt des Tiny13 habe ich auf die Schnelle nix zum Thema
Fast-PWM gefunden (jedenfalls nix, was auf Erhöhung des Timertaktes
mittels PLL hinweist).
Der Tiny15 bietet aber Fast-PWM in Hardware (Timertakt wird per PLL
hochgeschraubt).

Die Software-Version mit Timer lässt sich ja ausrechnen:

Tiny13 mit 9,6MHz internem RC-Oszillator:
Bei 9,6MHz Takt und Int alle 32 Takte ergibt sich 300kHz Timertakt.
Bei Zählumfang 32 ergibt sich 9,375kHz PWM-Frequenz.

...

von Jörg (Gast)


Lesenswert?

Ich glaube ich hab's. Zumindest im AVR-Studio sieht es gut aus.

;**********************************************************
start:
; FastPWM einstellen
; Lösche OC0B bei Compare Match und setze OC0B by TOP
ldi  tmp, (1<<COM0B1)|(1<<WGM00)|(1<<WGM01)
out  TCCR0A, tmp

; Kein Vorteiler und TOP = OCR0A
ldi  tmp, (1<<CS00)|(1<<WGM02)
out  TCCR0B, tmp

; OCR0A setzen für TOP 4MHz/32 125kHz PMW an OC0B
ldi  tmp, 0x1F
out  OCR0A, tmp

; OCR0B mit Vergleichswert laden
ldi  tmp, 0x4
out  OCR0B, tmp

; Port B als Ausgang definieren
ser  tmp
out  DDRB, tmp

loop:
rjmp  loop
;**********************************************************

Läuft die PWM komplett in Hardware?
Oder wird diese durch den normalen Programmablauf oder durch Interrupts
gestört?

Wie schließe ich denn einen Quarz an den Tiny13 an. Bei den anderen
gibt es XTAL1/2 aber hier nur einen Eingang CLKI?

Gruß Jörg

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.