Forum: Mikrocontroller und Digitale Elektronik Minimaler Systemtakt Atmega32


von matze (Gast)


Lesenswert?

Hallo,

ich habe eine Frage bzgl der Taktung der AVRs.

Folgendes Szenario:

Systemtakt kommt vom Funktionsgenerator (Rechteck 1kHz..40MHz)
passiert dem Chip was (irgendwelche Beschädigungen) wenn ich mit der 
Frequenz auf 1KHz gehe? oder läuft der Chip dann erst garnicht mehr an?

Danke für eure Antworten

Gruß

Matthias

von Georg G. (df2au)


Lesenswert?

Das Datenblatt ist dein Helfer. Es sagt, dass der Takt minimal 0Hz sein 
darf.

von noname (Gast)


Lesenswert?

...was sagt denn das Datenblatt?

von Falk B. (falk)


Lesenswert?

@ matze (Gast)

>Systemtakt kommt vom Funktionsgenerator (Rechteck 1kHz..40MHz)
>passiert dem Chip was (irgendwelche Beschädigungen) wenn ich mit der
>Frequenz auf 1KHz gehe?

Nein, aber.

>oder läuft der Chip dann erst garnicht mehr an?

Es kann passieren, dass beim einem zu schnellen Anstieg der Frequenz die 
CPU abstürzt. Der Grund liegt in ein paar geheimen Tricks, die im AVR 
beim Takten passieren. Laut Datenblatt darf die Änderung der 
Taktfrequenz zwischen zwei Takten maximal 2% betragen.

Siehe Datenbaltt unter

"External Clock Drive Waveforms", delta t CLCL

Die ganz alten AVRs der AT90S Reihe hatten das Problem nicht, die 
konnten wild mit der Taktfrequenz rumspringen.

Früher war alle besser ;-)

von matze (Gast)


Lesenswert?

Hallo Nochmal,

Damit wäre alles beantwortet! vielen Dank an alle!
werde dann mal alles von 1Khz bis 40 MHz probieren... Mal sehen ob AVR 
übertaktet werden kann!

Viele Grüße

Matze

von Tilo R. (joey5337) Benutzerseite


Lesenswert?

Falk Brunner schrieb:
> @ matze (Gast)
> Es kann passieren, dass beim einem zu schnellen Anstieg der Frequenz die
> CPU abstürzt. Der Grund liegt in ein paar geheimen Tricks, die im AVR
> beim Takten passieren. Laut Datenblatt darf die Änderung der
> Taktfrequenz zwischen zwei Takten maximal 2% betragen.
>
> Siehe Datenbaltt unter
>
> "External Clock Drive Waveforms", delta t CLCL

Kann der dabei wirklich abstürzen oder zickt dann nur Peripherie, wie 
der AD-Wandler? Letzteres fände akzeptabel, ersteres blöd. Das 
Datenblatt schweigt sich da ja aus. Weiß da jemand was genaueres?

Ich hatte vor einiger Zeit mal eine Schaltung, bei der der Takt von 
einem externen CAN-Controller kam. Der CAN-Controller lieferte auf 
seinem CLKOUT per Default sein CLK/8, lies sich dann aber per SPI in 
Zweierpotenzen hochkonfigurieren bis CLK. So konnte ich ein Quarz 
sparen. Zumindest theoretisch blieben mir damit auch mögliche (schwer zu 
blockende, niederfrequente) Interferenzen erspart, die bei 
unterschiedlichen Quarzen theoretisch auftreten können. Gut, vielleicht 
etwas esoterisch und EMV war eh egal, aber dran denken darf man ja.
Sowas geht also nicht mehr.

Grüße, Joey

von Falk B. (falk)


Lesenswert?

@ Tilo Renz (joey5337)

>Kann der dabei wirklich abstürzen

Ja!

>oder zickt dann nur Peripherie, wie
>der AD-Wandler?

NEIN!

> Letzteres fände akzeptabel, ersteres blöd. Das
>Datenblatt schweigt sich da ja aus. Weiß da jemand was genaueres?

Hab ich live erlebt. Das RFM12 Projekt hier aus der Codesammlung, das 
schaltet den Takt vom RFM12 (welcher den AVR speist) hart von 1 MHz auf 
10 MHz. Obwohl KEINE Glitches auftreten (hab ich nachgemessen) 
stürzt der AVR ab. Nur ein schrittweises Hochschalten von 1,2,5,10 MHz 
geht, obwohl auch das WEIT über den zulässigen 2% liegt.

>Sowas geht also nicht mehr.

Nicht mehr offiziell ;-)

von Ulrich (Gast)


Lesenswert?

Bei niedrigem Takt, so unter 100 kHz muss man damit rechnen da der AD 
Wandler nicht mehr so gut geht. Da wird dann einfach der AD Tahlt zu 
niedrig. Bei nicht zu hoher Temperatur und damit nicht so hohen 
Leckströmen kann es vermutlich noch einiges niedriger als die 
offiziellen 100 kHz (50 kHz ADC-takt) gehen, bevor man viel merkt.

von Tilo R. (joey5337) Benutzerseite


Lesenswert?

@ Falk Brunner (falk)

vielen Dank für den Erfahrungsbericht. Wieder was gelernt.

von Moby (Gast)


Lesenswert?

Falk Brunner schrieb:
> Hab ich live erlebt. Das RFM12 Projekt hier aus der Codesammlung, das
> schaltet den Takt vom RFM12 (welcher den AVR speist) hart von 1 MHz auf
> 10 MHz. Obwohl KEINE Glitches auftreten (hab ich nachgemessen)
> stürzt der AVR ab. Nur ein schrittweises Hochschalten von 1,2,5,10 MHz
> geht, obwohl auch das WEIT über den zulässigen 2% liegt.

Wo stürzt da was ab?
Habe den Mega8 taktversorgt vom RFM12 zigfach im Einsatz...

von Moby (Gast)


Lesenswert?

matze schrieb:
> Hallo Nochmal,
> Mal sehen ob AVR
> übertaktet werden kann!
>
> Viele Grüße
>
> Matze

Da mußt Du Dir mal den Xmega ansehen. Teilweise bis 64 MHz und darüber 
hinaus (offiziell 32)

von Falk B. (falk)


Lesenswert?

@ Moby (Gast)

>> stürzt der AVR ab. Nur ein schrittweises Hochschalten von 1,2,5,10 MHz
>> geht, obwohl auch das WEIT über den zulässigen 2% liegt.

>Wo stürzt da was ab?
>Habe den Mega8 taktversorgt vom RFM12 zigfach im Einsatz...

Ich glaub es war ein ATmega88, der hat einenen anderen Prozess bzw. ist 
intern sowieso überarbeitet. In diesem Punkt leider in die falsche 
Richtung. :-(

Wie schaltest du den Takt um? Direkt von 1MHz auf 10MHz?

von Moby (Gast)


Lesenswert?

Es handelt sich um den Code von hier:
Beitrag "bidirektionale RS232 Funkbrücke mit RFM12"

Den meinst Du doch? Setze ich unverändert ein.
Den Mega8 noch kurz auf externen Clock gefust, fertig.

von Falk B. (falk)


Lesenswert?

Ja, das ist das Projekt.

Beitrag "Re: bidirektionale RS232 Funkbrücke mit RFM12"

Nimm einen ATmega88 und teste. Mit der Version 4 natürlich!

: Bearbeitet durch User
von Davis (Gast)


Lesenswert?

Falk Brunner schrieb:

> Ja, das ist das Projekt.
>
> Beitrag "Re: bidirektionale RS232 Funkbrücke mit RFM12"
>
> Nimm einen ATmega88 und teste. Mit der Version 4 natürlich!

Wo finde ich die Version 4? Im Thread wird sie erwähnt, jedoch ohne 
Link.

von Moby (Gast)


Lesenswert?

Falk Brunner schrieb:
> Ja, das ist das Projekt.
>
> Beitrag "Re: bidirektionale RS232 Funkbrücke mit RFM12"
>
> Nimm einen ATmega88 und teste. Mit der Version 4 natürlich!

Mag sein, dafür möchte ich aber jetzt keine meiner Fertigplatinen 
opfern...
Im Beitrag wird auch ein Mega8 verwendet. Trotzdem gut zu wissen.

von Moby (Gast)


Angehängte Dateien:

Lesenswert?

Die Version verwende ich und kann dafür die Hand ins Feuer legen :)

von Falk B. (falk)


Lesenswert?


von Falk B. (falk)


Lesenswert?

@ Moby (Gast)

>    rfm12funkbruecke.7z (10 KB, 1 Downloads)
> Die Version verwende ich und kann dafür die Hand ins Feuer legen :)

1
void rf12_init(void)
2
{
3
  RF_PORT=(1<<CS);
4
  RF_DDR&=~((1<<SDO));
5
  RF_DDR|=(1<<SDI)|(1<<SCK)|(1<<CS);
6
  SPCR=(1<<SPE)|(1<<MSTR);
7
8
  for (unsigned char i=0; i<20; i++)
9
    _delay_ms(10);          // wait until POR done
10
  rf12_trans(0xC060);          // AVR CLK: 2MHz
11
  rf12_trans(0xC0C0);          // AVR CLK: 5MHz
12
  rf12_trans(0xC0E0);          // AVR CLK: 10MHz
13
  rf12_trans(0x80D7);          // Enable FIFO
14
  rf12_trans(0xC2AB);          // Data Filter: internal
15
  rf12_trans(0xCA81);          // Set FIFO mode
16
  rf12_trans(0xE000);          // disable wakeuptimer
17
  rf12_trans(0xC800);          // disable low duty cycle
18
  rf12_trans(0xC4F7);          // AFC settings: autotuning: -10kHz...+7,5kHz
19
}

;-)

von Moby (Gast)


Lesenswert?

Schau an. Dann ist man damit also in jedem Fall auf der sicheren Seite 
:-)

von Davis (Gast)


Lesenswert?

@ Falk & Moby

Danke für Link & Software :)

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.