Hallo Leute, ich habe eine Frage zum ATmega32. Wie schnell werden die I/O Pins von 1 auf 0 umgeschaltet? Was für einen Quarz darf ich verwenden damit ich von einem Takt auf den anderen ein sauberen Pegel habe? Wie schnell darf überhaupt ein Quarz für ein ATmega32 sein? Im Datasheet habe ich nur eine maximale Frequenz für Keramikresonatoren gefunden. Sry falls die Frage etwas unsinnig erscheint aber ich bin sehr neu auf dem Gebiet und wollte wissen wie schnell ich maximal Pins umschalten kann. ~ Dr. Hastig
Dr. Hastig wrote: > Was für einen > Quarz darf ich verwenden damit ich von einem Takt auf den anderen ein > sauberen Pegel habe? Das hängt nicht vom Quarz ab, sondern vom Schaltungsaufbau und der Last. > Wie schnell darf überhaupt ein Quarz für ein > ATmega32 sein? Da schauen wir einfach mal ins Datenblatt und da steht doch tatsächlich 0-16MHz (1. Seite). Peter
@Dr. Hastig (Gast) >Wie schnell werden die I/O Pins von 1 auf 0 umgeschaltet? Typisch 5ns. > Was für einen >Quarz darf ich verwenden damit ich von einem Takt auf den anderen ein >sauberen Pegel habe? So ziemlich jeden. > Wie schnell darf überhaupt ein Quarz für ein ATmega32 sein? Ja nach Typ und Betriebsspannung 16 bzw. 20 MHz. MFG Falk
Danke für die Antworten. @Peter Ich bin ehrlich gesagt garnicht auf die Idee gekommen in der Übersicht zu gucken. Wenn man in der entsprechenden Sektion (Seite 26) guckt steht da nur: "For resonators, the maximum frequency is 8 MHz with CKOPT unprogrammed and 16 MHz with CKOPT programmed." Also nur eine Angabe für Keramikresonatoren und nicht für Quaraz. Da ich mich da nicht gut auskenne wusste ich nicht ob es für beide gilt. @Falk Wo hast du das mit den 20 MHz her? Also wenn ich den ATmega32-A mit einem 16 MHz Quarz betreibe sollte der schnell genug umschalten. Dran hängen wird wohl ein MAX304* oder ein MAX346*.
Ich bin mir jetzt nicht 100% Sicher aber ich denke der Quarz hat wenig mit der Schaltgeschwindigkeit eines IO-Ports zu tun. Es sollte also egal sein ob du ihn mit 1Mhz oder 16Mhz betreibst. Die Flanke sollte immer gleich aussehen.
> Wo hast du das mit den 20 MHz her? Falk schrieb auch: Je nach Typ... Es gibt AVRs, die können bis 20MHz. Der Mega32 gehört nicht dazu. Ich halte es allerdings für vernünftiger, statt des maximalen Taktes ein ordentliches Programm mit effizienten Algorithmen zu verwenden. Das bringt unterm Strich mehr. ...
Im Datenblatt steht zwar nix von den 20 MHz, aber ein µC gibt nicht zwangsläufig bei 16,1 MHz schon den Geist auf. Übertakten ist auf jeden fall möglich. Für Anwendungen, die wirklich sicher sein sollen, ist es natürlich nicht zu empfehlen, aber sonst kann man das ruhig mal ausprobieren. MfG Marius
> Im Datenblatt steht zwar nix von den 20 MHz,
Doch, steht drin, zumindest bei den Typen, die dafür vorgesehen sind
(Tiny2313, Megax8, Mega644, ...), der Mega32 gehört aber nicht dazu.
Das Übertakten sollte man einem Anfänger nicht empfehlen, das bringt nur
Frust. Das hat nur Sinn, wenn auch der Hardwareaufbau optimal ist und
man auf EEP verzichtet.
...
Mir ging es darum wie schnell ich ein sauberen Pegel erhalte beim Umschalten. Wenn ich z.B. alle 3 Takte einen Pin Umschalte wäre es schön zu wissen ob dazwischen der Pegel lange genug sauber steht.
Ja. Die Logik ist noch HCMOS, und daher beliebig gut, digital betrachtet. Ganz im Gegensatz zu ECL, das eher an Linearverstaerker erinnert, allerdings auf einer anderen Zeitskala.
Das hängt auch von der äußeren Beschaltung ab, also von der kapazitiven Belastung. Wenn du schlecht routest oder lange Kabel anschliest, erhöhen sich die Schaltzeiten wesentlich. Aber erzähl doch mal, wozu das wichtig ist. Was stellt den so hohe Anforderungen an die Schaltgeschwindigkeit? Die Umschaltzeit hat übrigens, wie schon oben geschrieben, gar nichts mit der Taktfrequenz zu tun.
Ob ich wirklich eine so hohe Anforderung hab weiß ich ehrlich gesagt noch nicht. Ich hatte halt die Bedenken (da ich mich mit der Sache so gut wie garnicht auskenne) das es sein könnte das der Umschaltvorgang einige Mikrosekunden dauert und es somit mehrere Takte braucht bis ein sauberer Pegel anliegt. Wenn ich einen Pin nun Millionen Male innerhalb einer Sekunde umschalten würde, dann hätte es ja sein können das ich einige Takte warten muss bis ich wieder den pegel änder.
Die Pins eines Ports werden mit maximal einem Takt Verzögerung ausgegeben, damit sie alle synchron sind. Das Schalten selbst dauert nur einige Nanosekunden. Beim Abfragen eines gerade geschalteten Pins sollte man ein 'nop' einfügen, bevor man diesen Pin wieder liest. Die maximale per Software ausführbare Schaltfrequenz ist fCPU/4.
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.