maximale frequenz

Gast #7085643
Lesenswert?

Moin,

ich habe nur eine kurze Frage:
Wenn ich das Datenblatt des Atmega328p richtig verstehe, verträgt dieser 
einen Quartz mit max. 16MHz. Für meine FAST PWM würde das dann 
entsprechend Vorteiler 1 bedeuten: 16.000.000/1x256 = 62500Hz.

Mit anderen Worten ich werde mit diesem Chip nie mehr als ~62KHz 
erreichen können richtig?

bG
B.
Moderator (Firma: Titel) Persönliche Seite #7085663
Lesenswert?

Baumbart schrieb:
> Für meine FAST PWM würde das dann entsprechend Vorteiler 1 bedeuten:
> 16.000.000/1x256 = 62500Hz.
Wenn deine Anwendung volle 8 Bit Auflösung braucht, dann ja. Oder eben 
bestenfalls noch die 25% mehr mit 20MHz Taktfrequenz. Nicht schlecht für 
ein knapp 30 Jahre altes Design...

Wenn du schneller willst, dann musst du neuere oder speziellere Designs 
nehmen, wie z.B. den ATTiny25/45/85, der kann die PWM-Grundfrequenz erst 
mal per PLL auf 64MHz anheben und erreicht damit bei 8 Bit Auflösung ein 
PWM-Frequenz mit 250kHz.
#7085684
Lesenswert?

Sorry falls ein bisschen Offtopic, würde gerne etwas dazu lernen :D.

Für was könnte man so hohe PWM Frequenzen benötigen?
Für Motorensteuerungen werden doch afaik Frequenzen >20kHz genutzt, 
damit die Lautstärke verringert wird.
Für LEDs nutzt man doch zwischen 100Hz & 500Hz.

Mir fällt gerade nicht wirklich ein, für was man PWM noch nutzen könnte 
:l
#7085689
Lesenswert?

Thomas R. schrieb:
> Sorry falls ein bisschen Offtopic, würde gerne etwas dazu lernen :D.
>
> Für was könnte man so hohe PWM Frequenzen benötigen?
> Für Motorensteuerungen werden doch afaik Frequenzen >20kHz genutzt,
> damit die Lautstärke verringert wird.

Das stimmt so allgemein nicht. Bei kleinen Motoren kann man mit 20kHz 
und mehr arbeiten, bei großen Umrichtern mit 2-3stelligen kW Leistungen 
geht es deutlich darunter. Ich hab hier ein Datenblatt von Hitatchi, die 
größte Kiste der SJ700 Reihe mit 132kW erreicht seine volle Leistung bei 
max. 3kHz, darüber muss er auf grund der Schaltverluste den 
Ausgangsstrom reduzieren.

> Für LEDs nutzt man doch zwischen 100Hz & 500Hz.

In etwa.

> Mir fällt gerade nicht wirklich ein, für was man PWM noch nutzen könnte

Es gibt Dutzende Anwendungen für PWM.

https://www.mikrocontroller.net/articles/Pulsweitenmodulation#DA-Wandlung_mit_PWM

Datenübertragung

WS2812 Ansteuerung

Liste unvollständig
Gast #7085710
Lesenswert?

Mir fiele noch ein, dass man mit der PWM auch andere Dinge in der 
Schaltung clocken könnte. So bräuchte man weniger Quarze (und weniger 
Oszillatoren, die warum auch immer nicht anschwingen; weniger kosten tut 
es dann auch).

Da würde mich aber auch interessieren: Wird das professionell auch so 
gemacht?
Gast #7085762
Lesenswert?

> So bräuchte man weniger Quarze

Quarze und Quarzoszillatoren sind in einem kommerziellen Design
wohl die geringsten Kostenfaktoren.
Ueblich sind dagegen eher "spezielle" Signalprozessoren
(z.B. TI TMS320x28) und fuer exakte Timings, verifizierbare
Sicherheit etc. noch ein FPGA.
#7085797
Lesenswert?

Löppt schrieb:
> Mir fiele noch ein, dass man mit der PWM auch andere Dinge in der
> Schaltung clocken könnte. So bräuchte man weniger Quarze

Um "Dinge zu clocken" - sprich: ein Taktsignal bereit zu stellen, 
braucht man aber keine PWM. Für die meisten Anwendungsfälle dürfte ein 
symmetrisches Taktsignal (50% PWM) ausreichen. Und das kann man 
wesentlich einfacher und vor allem bis zur Taktfrequenz des AVR selber 
generieren.

> Da würde mich aber auch interessieren: Wird das professionell auch so
> gemacht?

Mit PWM? Sicher nicht.

Taktsignal für angeschlossene Peripherie mit µC erzeugen? Absolut. Oft 
ist es sogar notwendig, etwa für die Synchronisation.
Gast #7086285
Lesenswert?

Cartman schrieb:
>> So bräuchte man weniger Quarze
>
> Quarze und Quarzoszillatoren sind in einem kommerziellen Design
> wohl die geringsten Kostenfaktoren.
> Ueblich sind dagegen eher "spezielle" Signalprozessoren
> (z.B. TI TMS320x28) und fuer exakte Timings, verifizierbare
> Sicherheit etc. noch ein FPGA.

Hängt wohl davon ab, was das für ein Design ist. Nicht alles enthält 2 
FPGA und Cortex A :)

Axel S. schrieb:
> Löppt schrieb:
>
>> Mir fiele noch ein, dass man mit der PWM auch andere Dinge in der
>> Schaltung clocken könnte. So bräuchte man weniger Quarze
>
> Um "Dinge zu clocken" - sprich: ein Taktsignal bereit zu stellen,
> braucht man aber keine PWM. Für die meisten Anwendungsfälle dürfte ein
> symmetrisches Taktsignal (50% PWM) ausreichen. Und das kann man
> wesentlich einfacher und vor allem bis zur Taktfrequenz des AVR selber
> generieren.
>> Da würde mich aber auch interessieren: Wird das professionell auch so
>> gemacht?
>
> Mit PWM? Sicher nicht.
> Taktsignal für angeschlossene Peripherie mit µC erzeugen? Absolut. Oft
> ist es sogar notwendig, etwa für die Synchronisation.

Ja, da war ich noch nicht wach. Ich meine natürlich, ein Taktsignal mit 
Timer-Peripherien zu erzeugen.
Danke für die Antwort :)
Gast #7087252
Lesenswert?

Thomas R. schrieb:
> Sorry falls ein bisschen Offtopic, würde gerne etwas dazu lernen
> :D.
>
> Für was könnte man so hohe PWM Frequenzen benötigen?
> Für Motorensteuerungen werden doch afaik Frequenzen >20kHz genutzt,
> damit die Lautstärke verringert wird.
> Für LEDs nutzt man doch zwischen 100Hz & 500Hz.
>
> Mir fällt gerade nicht wirklich ein, für was man PWM noch nutzen könnte
> :l

Auch wenn bereits mehrfach drauf eingegangen, bei mir war die hohe 
Schaltfrequenz für Versuche mit einem selbstbau-Aufwärtswandler. Den 
dazu notwendigen Mosfet steuere ich mit dem Atmega328p an. Btw. ich habe 
mir laut Datenblatt nachfolgendes gebaut. Damit sind alle möglichen 
Frequenzen < Quarz möglich.
Die Frequenz errechnet sich aus: QuartzFrequenz/Prescale*OCR0A
Duty Cycle muss zwangsläufig mind OCR0A -1 sein.
Beispiel:
16000000/1*100 = 160kHz
Duty Cycle 50% (OCR0B) wären dann max OCR0A * 0.5 ergibt OCR0B = 50;
1
//generate Timer0 Fast PWM on PD5 OC0B with adjustable Freq on OC0A
2
TCCR0A |= (1<<COM0B1);              //Clear OC0B on compare match
3
TCCR0A |= (1<<WGM00) | (1<<WGM01);  //Fast PWM Mode 7 with OCR0A as TOP
4
TCCR0B |= (1<<WGM02);        //Fast PWM Mode 7 with OCR0A as TOP
5
TCCR0B |= (1<<CS00);                //start PWM with Prescale 1
6
OCR0A = 0;                          //PWM Frequency > variable
7
OCR0B = 0;                          //Duty Cycle (max OCR0A)

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