Oszillator während des Betrieb wechseln (AtMega 48)

OP #461116
Lesenswert?

Hallo,

Kann man beim AtMega 48 während des Betriebs per Code noch ändern,
welche Clock gerade benutzt wird? Der hat ja
einen internen lowPower-RC bei 128kHz,
einen internen der zwischen 7,3 und 8,1 MHz einstellbar ist
und dann noch einen externen der bis 20MHz gehen kann.

MfG,

   Markus
#461170
Lesenswert?

Ich erlaube mir mal, das weiterzuspinnen. Man könnte einen Tiny 
nebendran setzen und beide SPI und RESETs miteinander entsprechend 
verschalten. Die können sich dann gegenseitig auf den entsprechenden 
Takt fusen/programmieren.

Einfacher und sicherer (und aller Wahrscheinlichkeit auch zweckmäßiger) 
ist wohl die konsequente Nutzung der diversen sleepmodi, die der AVR 
beherrscht.
Gast #461200
Lesenswert?

>Ich erlaube mir mal, das weiterzuspinnen

Da kannst du auch das Controller-Gehäuse auffräsen und die Fuses mit 
Bonddrähten an Portpins hängen...(Dass ein Chip-Reset zum Programmieren 
der Fuses notwendig ist, lasse ich mal aussen vor)
Gast #461226
Lesenswert?

Genau Rahul, was fällt Dir überhaupt ein, so zu heißen. Laß Dich sofort 
in Daniel oder Benjamin umtaufen! Oops, sind ja auch keine deutschen 
Namen. Na, bleibt ja zum Glück der Adolf übrig, das ist doch mal ein 
herrlicher Name! ;-)
#461639
Lesenswert?

Um mal wieder zum Thema zurück zu kommen...

Meiner Meinung nach sollte eigentlich nichts dagegen sprechen, den einen 
µC über einen anderen µC umzuprogrammieren. Dies würde aber 
wahrscheinlich eine Programmunterbrechung und einen Reset des ersten 
µC's voraussetzen.

Die Frage die sich mir allerdings stellt ist, wie OFT kann ich das 
machen...

Die Daten werden ja schließlich irgendwo zwischengespeichert und da denk 
ich mal - entweder Flash oder EEPROM. Beide haben nicht unbegrenzte 
Schreibzyclen und dementsprechend sollte man m.e. eher die Lösung 
Richtung Sleep-Mode suchen (ist auch einfacher und billiger).
#461662
Lesenswert?

Sollte wirklich jemand auf die Idee kommen, einen Mikrocontroller durch 
einen anderen im Betrieb umprogrammieren und reseten zu lassen, bitte 
auch beachten, was alles während dem Reset passiert. Da kann es schon 
mal sein, dass eine angeschlossene Peripherie durch verbotene Zustände 
an den Portpins kaputt geht.

Also noch ein Punkt in Richtung Sleepmodi.


>Da kannst du auch das Controller-Gehäuse auffräsen und die Fuses mit
>Bonddrähten an Portpins hängen...(Dass ein Chip-Reset zum Programmieren
>der Fuses notwendig ist, lasse ich mal aussen vor)

Wollte ich schon immer mal machen. Leider hab ich weder die Fräse, noch 
die nötige Bonding-Station ;)
Gast #461680
Lesenswert?

Wenn man wirklich den AVR mit verschiedenen Taktfrequenzen dynamisch 
(also während des Betriebs) betreiben möchte, muss man eben einen 
externen, programmierbaren Taktteiler verwenden. Der sollte aber 
bitteschön beim Umschalten des Teilerverhältnisses keine Glitches 
erzeugen. Also schön synchron arbeiten ;-)
74HC109 könnte brauchbar sein.

MfG
Falk
#461820
Lesenswert?

Weil einfach jeder im Forum schreibt, damit er was geschrieben hat, ohne 
vorher nachzudenken.
Man könnte locker mal 50% der Antworten löschen und würde keine 
nützlichen Infos verlieren. (Ich meine jetzt nicht deine Antworten, 
sondern ganz allgemein. Es gibt einige Leute hier im Forum die wirklich 
wissen von was sie reden, aber leider auch einige die wirklich absolut 
keine Ahnung haben von was sie schreiben.)

Ich hatte bei der ersten Antwort übrigends den Taktteiler schon erwähnt, 
aber das hat niemanden interessiert. Stattdessen wurden lieber sinnlose 
Kommentare und Beleidigungen abgegeben.
Gast #462085
Lesenswert?

Hi, wird er wohl ;-)

Ich habe einen Atmega48 am laufen und stehe ebenfalls vor dem Prob, den 
Stromverbrauch drastisch zu senken.
Die einzige Chance IST das
ZITAT
CLKPR - Clock Prescale Register
/ZITAT
interner Oszillator 8Mhz, Spannung 2.25V
einfach mal den Strom messen.
jezt per Tastendruck(entprellt) den Teiler durchtakten und die 
Stromaufnahme messen. Und bitte nicht posten,
ZITAT
>Und der wird wohl weder durch den Taktteiler, noch
>durch einen externen Taktteiler erheblich gesenkt..

wird er nälich wohl (siehe erste Zeile)

Veiele Grüße
AxelR

[EDIT]
Die einzige Chance war jetzt nicht ganz richitg.
Du hast noch das Powersaveregister, wo Du nicht benötigte komponenten 
abschalten kannst(PWM,SPI,UART,TIMER usw.)

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