Forum: Mikrocontroller und Digitale Elektronik Quarze / EMV Noobfrage


von lolo (Gast)


Lesenswert?

Hallo Community,

bei der Suche nach einem Austauschquarz für meinen Atmega328p hab ich zu
PWM-Tetzwecken ein 20mhz Quarz mitbestellt.

Meine Frage ist eigentlich nur wie sich das mit den 20mhz in Sachen EMV
verhält? Habe ich mir evtl. eine Fehlerquelle mitgekauft oder ist dieser
Bereich "noch" im Rahmen? Vorher war ein 8mhz Quarz am werkeln..

Sorry für die Noobfrage aber im Internet kursieren irgendwie
verschiedenste Meinungen. Das Ganze kommt dann auf das Olimex Starter
Kit.

P.S:
2te noobfrage: der externe Quarz ist bereits über die Fuses
einprogrammiert.
Kann ich ganz normal meine F_Cpu Einstellungen vornehmen oder ist es
egal was ich angebe weil jetzt permanent 20mhz getaktet sind? Oder
anders gefragt: überschreibt die F_Cpu den durch den Quarz vorgegebenen
Takt?



Gruß
lolo

von Peter (Gast)


Lesenswert?

lolo schrieb:
> Meine Frage ist eigentlich nur wie sich das mit den 20mhz in Sachen EMV
> verhält? Habe ich mir evtl. eine Fehlerquelle mitgekauft oder ist dieser
> Bereich "noch" im Rahmen? Vorher war ein 8mhz Quarz am werkeln..

Das kann man pauschal nicht sagen. Das kommt auf das Layout an. Im 
Allgemeinen kann man aber sagen, dass die EMV-Problematik sich 
tendenziell verschlechtert, wenn man voraussetzt, dass mit höherer 
Frequenz auch die Flankensteilheit steigt. Um EMV brauchst du dir keine 
Sorgen zu machen, bei Experimentierplatinen ist das ohnehin obsolet und 
im prof. Umfeld wird man sich hüten diese unqualifizierten Platinen zu 
verbauen.

lolo schrieb:
> Kann ich ganz normal meine F_Cpu Einstellungen vornehmen oder ist es
> egal was ich angebe weil jetzt permanent 20mhz getaktet sind? Oder
> anders gefragt: überschreibt die F_Cpu den durch den Quarz vorgegebenen
> Takt?

1. Fuses wählen die Taktquellen, Vorteiler oder PLLs. Der Quarz schwingt 
deswegen immernoch mit 20 MHz.

2. F_CPU ist nur eine Angabe für den Compiler. Der kann ja nicht 
wissen wie schnell dein Mikrocontroller läuft. Beim Compilieren muss er 
das aber wissen, damit er die richtige Dauer z.B. bei delay_ms() 
errechnen kann und das Programm dann entsprechend kompilieren kann. Dein 
Mikrocontroller läuft immernoch mit 20 MHz. Wenn du deinem Compiler 
sagst F_CPU = 10000000 (10 MHz) und einen Quarz mit 20 MHz anschließt 
und dann eine delay von 200ms machst, und es am Mikrocontroller 
ausführst dann dauert deine delay nur 100ms (die hälfte da die 
Quarzfreuqenz doppelt ist).

von lolo (Gast)


Lesenswert?

Hallo Peter,

vielen Dank für Deine nachvollziehbare Erklärung!
Da erklären sich nun so einige Anfänger-Phänomene von alleine :O)



Gruß
lolo

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.