Hat jemand Erfahrung mit "untertakteten" AVRs? Ab welchen Frequenzen treten Probleme auf?
@Florian: Theoretisch lassen sich die Atmega / Attiny beliebig langsam takten. Der Daten sind komplett in SRAM, müssen also nicht aufgefrischt werden und bleiben erhalten, so lange die Versorgungsspannung anliegt. Zur Orientierung: Einige Modelle haben einen internen prescaler, der sie ohne externe Beschaltung mit 128kHz laufen lässt. @Klausz: Strom sparen. Man müsste jedoch durchrechnen, ob es vielleicht sinnvoller ist, schnell zu rechnen und zwischendurch einen der sleep-modes zu nutzen.
Also einen PIC18F252 habe ich schon mit 50Hz getaktet. Das sollte natürlich nichts bringen, hat aber einwandfrei geklappt.
also beim Z8encore gibt es eine untere grenzfrequenz, weil sonst die intere getaktete spannungsregelung eine zu geringen frequenz bekommt und das ganze zum bauteiltot führen wird, die liegt soviel ich weiss bei ca 500KHz
Untertakten bedeutet ja, unter die minimale Angabe im Datenblatt zu gehen. Und das ist beim AVR nicht möglich, denn kleiner als 0Hz geht nicht. Da also das Untertakten rein physikalisch nicht möglich ist, hat auch keiner Erfahrung damit. Peter
Taktgenerator für extremstes Untertakten: "the big bang: the ultimate hero of low frequency" (yello: solar driftwood)
also bei mir in der firma hat man ne ganze zeit mpc`s im testfeld geschrottet, weil man "einen tackt" von hand erzeugt hat. das haben die nicht überlebt! aber ein avr ist ja bei weitem nicht so komplex wie ein mpc mit powerpc-architektur ;-) schön möglich das das dort vielleicht gehen mag ;-)
Es gibt sehr wohl Prozessoren die eine minimale Taktfrequenz haben. Dies sind oft alte oder hochgetaktete Typen. Das liegt glaube ich daran das die die Logicgatter dynamisch statt statisch aufgebaut sind. Dadurch kann man sich die langasameren P-Kanal Transistoren sparen. Die AVRs sind jedoch statische Typen. Dot kann ein Beliebig kleiner Takt verwendet werden. Wichtig ist nur das dieser Takt KONSTANT ist. Also würde Handgetaktet oder Hamsterrad betrieben nicht gehen, da sich dann die Taktzyklen zu sehr voneinander unterscheiden. bis dann Hauke
Ich warte shcon auf den Thread "Wieviel Mhz schafft nen durschnittlicher Hamster" :D
Den Thread (mit etwa der gleichen Überschrift) hatten wir schon... Bei AVR steht das in der Regel auf der ersten Seite des Datenblattes.
Mit diesem Thema habe ich kürzlich unangenehme Erfahrungen machen müssen. Habe einen ATmega48 für eine KFZ-Anwendung (also Ziel: Strom sparen) mit 128kHz getaktet (per Fuses). Das Ergebnis war, daß ich mich damit für das ISP erstmal ausgesperrt habe. Erst "uisp" war per Argument in der Lage, den STK200-Klon langsam genug zu takten, so daß der AVR auch mitkam. Fuses konnte ich damit zurückstellen, Programmcode in den Flash laden konnte ich so leider nicht (immer Verify-Error) - sonst wär das Problem damit ja aus der Welt gewesen. Nun gut, ich habe die Fuses dann wieder auf 1MHz gestellt und den Prescaler per Firmware am Programmstart gesetzt. Das Problem blieb aber bestehen. Einmal gesetzt, schwingt der RC-Kreis im AVR scheinbar mit konfigurierter Frequenz, egal ob /RESET aktiv ist oder nicht. Wie es sich verhielt, wenn ich bereits vor der Spannungsversorgung /RESET fest auf low gelegt habe (so daß die Firmware den Prescaler gar nicht erst einstellen kann), habe ich leider vergessen. :| Hat jemand Erfahrungen und Tips, wie man einen AVR mit 128kHz betreiben und trotzdem per ISP (STK200, z.B.) programmieren kann, am liebsten mit avrdude? Danke im Voraus! Mark
Hi! <Hat jemand Erfahrungen und Tips, wie man einen AVR mit 128kHz <betreiben und trotzdem per ISP (STK200, z.B.) programmieren kann, am <liebsten mit avrdude? Danke im Voraus! So ganz einfach wird das wohl nicht gehen, aber könnte man nicht auf externen Takt gehen und einen umschaltbaren "Oszilator" einsetzen der bei Reset auf 1MHz umschaltet? MFG Uwe
Hm, weiß nicht. Würde es lieber ohne externe Bauteile hinkriegen. Statt externem RC-Schwinger könntest Du genauso gut der Firmware per Pin sagen, daß Du jetzt einen Programmiervorgang starten möchtest, so daß sie den Prescaler entsprechend setzt bzw. auf Standard (1MHz) beläßt. Quasi Bootloader für ganz Arme. ;) Ein guter Tip, welche Programmersoftware man wie langsam genug "sprechen" läßt, wäre schon toll. Die paar Sekunden, die das "Flashen" länger dauert, sind ja kein Beinbruch. Uisp kann man durch Erhöhen der SCK-Periodendauer immerhin dazu bewegen, den Chip korrekt zu erkennen und die Fuses zu schreiben. Wie gesagt, Flash schreiben bzw. verifizieren schlägt fehl. PonyProg konnte ich leider nicht testen, weil meine libc-Version nicht paßte. ;( PonyProg hat sich sonst bei Schreibproblemen sehr gut bewährt (auch wenn ich die Kommandozeilentools wie avrdude und uisp bevorzuge wegen "make install"-Fähigkeit). Mark
Wieso sollte das nicht gehen? Genauso wie man den AVR beliebig langsam takten kann, sollte man auch das Programmierinterface beliebig langsam takten können. Wenn avrdude das nicht unterstützt, musst du dich mal woanders umsehen.
TwinAvr kann das... minimale Programmier Frequenz: 1hz ... dann dauerts aber wirklich arg lange ;)
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.