Hallo! Ich hab mich hier schon ein bisschen umgesehen bezüglich "Takt während dem Betrieb von dem Kontroller umstellen" und auch ein paar ganz nette Artikel gefunden... Allerdings waren die Meinungen recht unterschiedlich und das Problem nicht ganz das selbe wie meins (bei dem Artikel ging es darum, dass mein einfach einen niedrigeren Takt haben wollte, und in weitere Folge um die Stromsparfeatures des AVR's) Okay, soviel dazu. Das Datenblatt sagt zu Taktänderungen > 2% einfach nur nein und das wars. Das ist natürlich eben so wenig zufriedenstellend. Ich will einmal schildern warum mir das so wichtig wäre. Ich habe vor ein kleines eval board für (vermutlich den Atmega32/ oder vielleicht dem ATMEGA1284P zu machen). Mit auf dem Board soll auch ein kleines RFM12 Platinchen sein. (In ähnlicher konstellation hab ich das mit fädeldraht schon aufgebaut, funktioniert auch prächtig) Aber es ist so eine Verschwendung einen 10 MHz Quarz auf dem RFM12 zu haben, aber keine Möglichkeit die auch zu nutzen. Nicht's gegen den internen Oszillator, aber ich würd halt gern die 10 MHz nutzen... Nur startet das RFM12 leider immer mit 1 Mhz (wenn ich das noch richtig im Gedächnis hab) und man muss es erst per SPI umstellen... Tja, und hier ist das Dilemma... Ich hab mich natürlich schon ein bisschen umgesehen und selbst überlegt, was man da tun könnte... Ein ansatz wäre den Watchdog Reset vielleicht zu verwenden, direkt nach dem ändern der Frequenz... Leider kann man im Betrieb nicht die Taktquelle ändern (also vom avr). Eine andere Idee war, dass man da vielleicht was mit den SLEEP Modes machen könnte (da gibts ja welche wo der Takt abgeschalten wird...) aber soweit ich das verstanden hab, wieder keine Möglichkeit auf z.b. internem Takt zu laufen und dann auf extern umzuschalten... Es wäre mir zwar schon möglich, das eval board mit Atmega32U4 aufzubauen (die soweit ich das im Kopf hab die Taktquelle ändern können) allerdings ist es sehr schwierig für mich mehr als 1 davon zu bekommen, und ich will vermutlich mehr als ein Board machen, und nochdazu ist es der erste Versuch und ein Sockel wäre mir für diese Board sympatischer... (vorallem weil es Schade um die ungenutzte USB Schnittstelle wäre...) Eine Überlegung wäre es noch Wert, wenn jemand einen AVR kennt, der die Taktquelle umschalten kann und auch halbwegs verfügbar ist (Reichelt?? Obwohl auch das schwierig ist, da ich da warten muss, bis genügend andere was vom Reichelt brauchen, sonst schickt der nicht nach Österreich :( ) Hat vielleicht jemand eine elegante Lösung oder einen guten Rat? Ich hab mir nur gedacht, bevor ich endlos viel zeit damit verbrauche um festzustellen ob z.b. das mit dem Watchdog hinhaut, frag ich mal ob nicht vielleicht schon jemand mit einem ähnlichen Problem zu kämpfen hatte... Ich bedank mich schonmal an dieser Stelle (fürs lesen.. ;) ) LG booncode
das Problem mit der SPI hab ich nicht verstanden. Man kann doch für die SPI clock einen anderen vorteiler wählen. Aber zur Frage: die neueren AVRs haben einen zur Laufzeit programmierbareen Systemclock-Vorteiler. benutze doch statt deinen veralteten Teilen einen neueren AVR zB einen zB Atmega164 Atmega324 oder Atmega1284 die sind auch pinkompatibel, wenn ich mich recht erinntere Außerdem warum brauchst du unbedingt 10Mhz? ohne Quarz können die doch alle auch 8Mhz mit internem Oszi laufen.
Vlad Tepesch schrieb: > die neueren AVRs haben einen zur Laufzeit programmierbareen > Systemclock-Vorteiler. Darum geht es ihm gar nicht. Der RFM12 hat einen Oszillator mit 10MHz. Diesen Takt möchte er als CPU-Takt nutzen. Problem ist, daß dieser mit 1 MHz startet und per Befehl über SPI auf 10MHz hochgeschaltet werden muß. Die Frage ist jetzt, ob und wie man das beim laufenden Controller machen kann. Im Datenblatt steht dazu, daß der externe Takt nicht um mehr als 2% schwanken darf und eine größere Änderung nur im Reset-Zustand möglich ist. Manuel H. schrieb: > Aber es ist so eine > Verschwendung einen 10 MHz Quarz auf dem RFM12 zu haben, aber keine > Möglichkeit die auch zu nutzen. Warum? Der Quarz wird doch vom RFM benutzt. Verschwendung ist es, einen 20-MHz-Controller nur mit 10MHz laufen zu lassen. Manuel H. schrieb: > vermutlich den Atmega32 Bau dir nichts Neues mit so einer alten Gurke. > oder vielleicht dem ATMEGA1284P zu machen Ja. Ein, zwei Nummern kleiner täte es auch (644/324). Aber einer von denen sollte es schon sein. mfg.
Hallo! Erstmal danke für eure Antworten... Irgendwie stört es mich halt den Takt zwar da zu haben, aber nicht nutzen zu können... Es soll ja ein möglichst flexibles layout sein, und ich hab jetzt auch einen quarz vorgesehen, falls ich mal wirklich die 20 Mhz brauchen sollte (oder was das Ding halt kann) Die Controller Auswahl richt ich eher danach, was ich grad da hab... und von den 16ern und 32er hab ich noch genug; und da meine Boards sowieso alle gesockelt sind hab ich halt die bei der Planung verwendet... 644 hab ich auch einen und ATMEGA1284P werd ich mir wohl demnächst zulegen. Da das Board aber sowieso möglichst alle Pins herausführen soll und nur ein paar On-Board Dinge (die aber per jumper abgesteckt werden können) hat ist es relativ egal welchen der IC's ich als Vorlage benutze... Aber du hast natürlich vollkommend recht dass es normalerweise klüger wäre neuere zu benutzen... Ich würd auch lieber SMD benutzten, aber an die komm ich leider so schlecht rann, und hab nurmehr ein paar Atmega8 und ich glaub dass ist auch nicht grad der jüngste Vertreter... (Die sind außerdem für einen Nachbau reserviert wo eben genau dieser verbaut wurde und außerdem waren sie günstig zu bekommen...) Aus den Erkenntnissen und dem Input von anderen soll dann aus diesem Board ein Board mit den nützlichsten Dingen mit dem Atmega32U4 entstehen... der kann dann endlich auch den Takt vom RFM umschalten und verwenden... Da kommt aber trotzdem vermutlich ein Chip Oszillator oder auch ein Quarz drauf und man kann sich per Lötjumper für eins von beidem entscheiden... So zumindest der Plan... Is ein bisschen Offtopic aber hier ein Link(https://github.com/boon-code/evalavr) auf die aktuelle Version des Boards, falls jemand interessiert ist... Ist aber noch nicht fertig!!
Vlad Tepesch schrieb: > die neueren AVRs haben einen zur Laufzeit programmierbareen > Systemclock-Vorteiler Hmm, dazu finde ich gar nichts? Gibts da ein Fachbegriff, oder trifft das gar nicht auf die AVRs zu?
Samuel K. schrieb: > Vlad Tepesch schrieb: >> die neueren AVRs haben einen zur Laufzeit programmierbareen >> Systemclock-Vorteiler > > Hmm, dazu finde ich gar nichts? Gibts da ein Fachbegriff, oder trifft > das gar nicht auf die AVRs zu? Nicht fähig Datenblätter zu lesen? "Clock Prescale Register"
Skript Kiddy schrieb: > Nicht fähig Datenblätter zu lesen? Ich lese in der Regel nicht das ganze Datenblatt durch, sondern Suche gezielt nach den Registern die ich brauche. Und wenn bei Google hab ich nichts gefunden. Im Tut hab ich auch noch nichts davon gesehen.
Samuel K. schrieb: > Ich lese in der Regel nicht das ganze Datenblatt durch, sondern Suche > gezielt nach den Registern die ich brauche. Das macht fast keiner. In dem richtigen Abschbnit wärst du sicher fündig geworden.
Samuel K. schrieb: > Ich lese in der Regel nicht das ganze Datenblatt durch, das hat auch keiner verlangt, aber wenigstens die relevanten Kapitel zB Clock System könnte man überfliegen. da wäre man nämlich schon bei einer der Unterkapitel-Überschriften fündig geworden.
@Okay, soviel dazu. Das Datenblatt sagt zu Taktänderungen > 2% einfach >nur nein und das wars. Das ist natürlich eben so wenig >zufriedenstellend. Eben. Vor allem weil der AVR ja keine PLLs etc hat, die da aus dem Tritt kommen könnten. Das Ding ist eigentlich rein statish gebaut, kann also auch mit 0 Hz betrieben werden. Die Praxis zeigt, dass es bei den neueren AVRs bisweilen wackelig ist. Bei einigen geht es, bei anderen nicht. Wenn du auf der sicheren Seite sein willst, nimm einen extra Quarz. Beitrag "Re: bidirektionale RS232 Funkbrücke mit RFM12" MFG Falk
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.