Hallo! Ich stehe grade vor der Frage, mit welchem Takt ich meine in Entwicklung steckende Schaltung mit nem AtMega16A ausstatten soll. Der µC kann lt. DBl bis 16MHz. Da er u.a. einen Motor-Winkelencoder bei 30kHz antasten können muss, dacht ich mir, warum nicht- gib ihm! Frage: Spricht irgendwas gegen den höchstmöglichen Takt? Leidet darunter Weissderteufelwas?
Mit höherem Takt geht die Leistungsaufnahme des Prozessors hoch, ansosnsten ist alles gut. Cheers Detlef
Na ja... über die Leistungsaufnahme braucht man sich nur Gedanken machen, wenn man die Schaltung jahrelang mit Batterie betreiben will. Mikrocontroller sich dafür ausgelegt, dass sie bei maximalen Takt ohne Kühlung zuverlässig laufen.
Wie Schnell dreht der motor ? 50Hz. Mit wievielen Pulsen pro umgang ? 10. Macht dann 500Hz. Dann sind 20kHz genausogut wie 30kHz. Nimm also 12MHz. Oder weniger.
Hunz und Schlunz schrieb: > Wie Schnell dreht der motor ? 50Hz. Mit wievielen Pulsen pro umgang ? > 10. Macht dann 500Hz. Dann sind 20kHz genausogut wie 30kHz. Nimm also > 12MHz. Oder weniger. Hab mich unklar ausgedrückt. Bei höchster Drehzahl liefert der Encoder ein 30kHz Signal.
kopfkratz Wo liegt jetzt das Problem ? Wenn im Datenblatt 2000MHz als maximaler Takt steht dann kann der Chip 2000MHz Takt mit dem im Datenblatt aufgeführten Randbedinungen. Stromsparen geht auch bei 2000000MHz wenn der µC entsprechend schlafen gelegt wird. Wenn das Signal von 30kHz vom µC detektiert werden soll und nicht erzeugt braucht es wieviele kHz damit man alles korrekt samplen kann ?
Die preiswertesten Quarze findet man im Bereich zwischen 16 und 4 MHz. Oberhalb 20MHz sind Grundwellenquarze schwieriger herzustellen, da zu dünn, unterhalb 4 MHz werden sie teurer wegen der hohen Dicke der Scheiben. 3MHZ sind das Hundertfache der 30kHz. Wird das kHz-Signal vom Kontroller ausgewertet, hat man 100 Takte zur Verfügung wenn man alle Rechenleistung auf die Bedienung des 30kHz Signals aufwendet. Mit den 16 MHz Takt ist der Faktor sogar über 500. Bei den 16 MHz hat man bei den älteren AVR aber schon Grenzprobleme. Die Reserven bezüglich Spannungs- und Temperaturbereich werden dann knapp. 12MHz bieten dann etwas mehr Reserve. Die moderneren atmega kommen aber auch bei 16MHz nicht an ihre Grenzen.
kopfkratzer schrieb: > Wenn das Signal von 30kHz vom µC detektiert werden soll und nicht > erzeugt braucht es wieviele kHz damit man alles korrekt samplen kann ? Das kommt halt sehr aufs Programm an, eine grobe Abschätzung: Man muss bei den 30 kHz z.B. alle 33µs eine Flanke auswerten. Wenn das in 100 Takten erfolgt, reichen 3MHz Taktfrequenz also das hundertfache sicher aus. In Wirklichkeit müsste aber für das Grundprogramm noch Rechenleistung zur Verfügung stehen, sodass die Auswertung nur etwa 10% der Gesamtzeit beanspruchen darf. Dann muss die Auswertung in 10 Takten erfolgen, das ginge eigentlich nur in Assembler. 15MHz erleichtert die Zeitverhältnisse aber gleich um den Faktor 5. und Auswertung in 50Takten, bei AVR etwa 30 Ein- oder Zwei-Taktbefehle, sind locker möglich. Programmiert man aber in C oder höheren Programmsprachen, werden selbst 15 MHz Taktfrequenz schnell aufgezehrt, denn da müssen viele Programmschritte ausgeführt werden, die bei Assemblerprogrammierung durch detailliertes Überlegen und Anpassen entfallen können.
:
Bearbeitet durch User
Stephan schrieb: > Hallo! > > Ich stehe grade vor der Frage, mit welchem Takt ich meine in Entwicklung > steckende Schaltung mit nem AtMega16A ausstatten soll. Der µC kann lt. > DBl bis 16MHz. Da er u.a. einen Motor-Winkelencoder bei 30kHz antasten > können muss, dacht ich mir, warum nicht- gib ihm! > > Frage: > Spricht irgendwas gegen den höchstmöglichen Takt? Leidet darunter > Weissderteufelwas? Wie weiter oben schon gesagt: Ein µC ist für seinen höchsten angegebenen Takt entwickelt, und muß da zuverlässig unter allen anderen angegebenen Betriebsumständen wie z.B. Temperatur funktionieren, und dauerhaft, Jahre lang ununterbrochen, wenn es die Anwendung erfordert. Übertaktung ist schlechter, und kann zunehmend Fehler erzeugen. Ein Standard-8051, der mit 12MHz angegeben war, lief auch mal mit 24MHz, sogar bis zu 32MHz. Das kann man aber nur im Hobby mal auf einem Demo-Board testen, wenn man gerade mal kurz was schnelleres testen möchte, mehr nicht. Mit den 24MHz lief er auch nur bei Raumtemperatur, bei zu nehmender Erwärmung so um 50°C oder Abkühlung Gefrierpunkt ist schon Schluß mit lustig. Bei zu hohem Takt machen aber auch andere Bausteine dicht, wie RAM und ROM. Wo immer es geht, bremse ich meine µCs, wenn sie die Aufgabe mit geringerem Takt genau so gut erledigen können. Das spart dann noch Energie. Moderne µC haben eine während des Betriebes umschaltbare PLL zur Takteinstellung, da kann man auch mal niedrig fahren, und nur bei Bedarf hoch schalten und wieder zurück. In vielen professionellen Anwendungen wird aber auch der Maximaltakt verwendet, und habe selbst gesehen, daß sowas beliebig lange störungsfrei läuft. Ein Unternehmen kauft den µC ja auch nach maximaler Performance je Preiseinheit, das hat also was mit dem Einkaufspreis zu tun, da wird nichts verschenkt. Im Hobby ist das oft egal. Beispiel: Eines meiner 8051-Boards, was 18MHz kann, läuft auch gut mit 7,3728MHz oder 14,7456MHz, da bekomme ich die höchste Baudrate 115.200 bzw. 230.400BAUD an der RS232. Mit dem größten Quarz 18MHz geht das nicht, dort passen die hohen Baudraten nicht mehr, da brauchte ich dann 22,1184MHz, und das ist zu hoch. Da oben schon der Begriff "Batteriebetrieb" fiel: Das ist leider nicht immer unwichtig: Ja, in einem Unternehmen mußte ich mir schon mal Gedanken zu Energiesparmodes einer Anwendung machen, weil man in die Zukunft schaute, und Anlagenteile später mit Solarzellen betreiben will, ohne Energienetz in der Umgebung. Da kommen einem schon alleine die Power-Save-Modes (Taktfrequenz, Idle-Mode, Power Down, Wake Up, etc.) im µC alleine sehr entgegen. Man möchte ja an so einer Anlage die kleinste und billigste Solarzelle montieren, die für die Sache gut genug ist, nicht die größte und teuerste. Kürzlich hatte ich einen PIC12F675 mit nur 0,8Hz (kein Druckfehler) am laufen!!! Ich hatte den schon eine Weile, und las später irgendwo, daß das Mikropower-Teile sind. Also testete ich die Dinge mal aus Neugier. Sowas läuft noch eine Weile auf alten Batterien, die normalerweise als leer erklärt werden.
Auch nicht unwichtig ist ob, wo und wie die ganze Schaltung dank höherem Takt in der Gegend rumstrahlt - zusätzlich zu dem, was man dank der Schaltflanken sowieso bei jeder Taktfrequenz hat.
Ich würde einen neueren Mega nehmen, der Mega644 kann bis 20MHz. Bei solchen Sachen würde ich mir soviel Reserven wie möglich offen halten... Mega16 ist eine veraltete Entwicklung, Nachfolger sind die MegaXX4! Ingo
Ingo schrieb: > Ich würde einen neueren Mega nehmen, der Mega644 kann bis 20MHz. Bei > solchen Sachen würde ich mir soviel Reserven wie möglich offen halten... > > Mega16 ist eine veraltete Entwicklung, Nachfolger sind die MegaXX4! > Geb dir keine Mühe. Dieses neumodische Zeugs kommt hier nicht an. Hier wird nur beste Vorkriegsware verwendet. mfg.
Hab frueher selbst Datenblaetter geschrieben und mich dabei immer mit Marketing und Test "gestritten". Merketing wollte an die Grenzen gehen mit der Taktrate, die Testabteilung wollte dagegen eine Spezifikation die weit weg vom maximal meoglichen war weil damit die Ausbeuten bei der Fertigung nahe 100% gehen. Der ATmega16A ist nun wahrhaftig kein ganz neuer Chip mehr, somit sind keinerlei Probleme bei der spezifizierten max. Frequenz zu erwarten. Sollte Deine Anwendung allerdings in der Naehe oder oberhalb der max. Temperatur und gleichzeitg an der minimalen Spannung betrieben werden, dann hab acht. Das sind die sogenannten Worst Case Bedingungen. In Zahlen: Mit einer Versorgungsspannung >= 4,5V und einer Umgebungstemperatur <85C ist 16 MHz kein Problem. Robert
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.