Forum: Mikrocontroller und Digitale Elektronik Oszillator während des Betrieb wechseln (AtMega 48)


von Markus G. (happyhippo4u)


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

von Benedikt K. (benedikt)


Lesenswert?

Nein, das geht nicht. Man kann nur den Taktteiler umschalten.

von Markus G. (happyhippo4u)


Lesenswert?

ist es auch nicht möglich die Bits zu setzen und per Reset eine andere 
Quelle zu nutzen?

von Benedikt K. (benedikt)


Lesenswert?

Die Bits kann man nur per Programmiergerät ändern.

von Jens P. (jmoney)


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.

von irgendein Rahul (Gast)


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)

von Marzipan (Gast)


Lesenswert?

..ist Rahul eigentlich ein deutscher Name!?....

von irgendein Rahul (Gast)


Lesenswert?

>..ist Rahul eigentlich ein deutscher Name!?....

Ist das relevant? Dann solltest du dich lieber Rudolph nennen, wobei der 
letzte Laut freiwählbar ist...

von Dennis (Gast)


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! ;-)

von Dennis (Gast)


Lesenswert?

Ein Kompromiss wäre vielleicht ein Doppelname: Rahul-Adolf oder 
Adolf-Rahul ist doch spitze!
So, ich mach jetzt wieder was Sinnvolles. Mit euch kommt man ja nur auf 
blöde Gedanken... ;-)

von irgendein Rahul (Gast)


Lesenswert?

>Marzipan

Bei dem Wort fällt mir immer wieder gerne die Frage eines netten Herrn 
aus Kiel ein: "Macht Marzipan böd?"
http://www2.canes2.econnex.de/forum/viewtopic.php?t=1323

von irgendein Rahul (Gast)


Lesenswert?

... blöd...

von DennisDennis (Gast)


Lesenswert?

...verblödet man durch foren...?

das werd ich nie wieder los, was soll ich machen!?

...

von Jörg B. (manos)


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).

von Jens P. (jmoney)


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 ;)

von Falk (Gast)


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

von Benedikt K. (benedikt)


Lesenswert?

Wiso extern machen, wenn der AVR sowas schon integriert hat ?

von Falk (Gast)


Lesenswert?

Weil der nicht im laufenden Betrieb umgeschalten werden kann?

MFG
Falk

von irgendein DennisDennisAdolf (Gast)


Lesenswert?

Angesichts der beachtlichen Temperaturabhängigkeit der internen 
Oszillatoren kann man ja versuchen, den Takt über ein Heiz-/Kühl-Element 
zu steuern ... ;-)

von Christian R. (supachris)


Lesenswert?

Werbung an

Oder einen MSP430 nehmen, da kann man den Takt im betrieb umschalten und 
auch den DCO beliebig vom 2- bis 1024-fachen der Quarzfrequenz während 
des Betriebes einstellen. Und das alles in wenigen µs.

Werbung aus

;-)

von Benedikt K. (benedikt)


Lesenswert?

Falk wrote:
> Weil der nicht im laufenden Betrieb umgeschalten werden kann?
>
> MFG
> Falk


CLKPR - Clock Prescale Register

Kleiner Tip: Einfach mal das Datenblatt lesen...

von Falk (Gast)


Lesenswert?

Jaja. Ich hab bisher immer mit den Classic AVRs gearbeitet, da kenn ich 
nicht alle neuen Features. Und warum hat keiner der "Experten" den Tip 
gegeben?

MFG
Falk

von Benedikt K. (benedikt)


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.

von Jens P. (jmoney)


Lesenswert?

Naja es geht denk ich auch eher nicht um den Takt an sich, sondern um 
den Stromverbrauch. Und der wird wohl weder durch den Taktteiler, noch 
durch einen externen Taktteiler erheblich gesenkt..

von Axel R. (Gast)


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.)

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.