Forum: Mikrocontroller und Digitale Elektronik AtMegaL mit 14,7456MHz Quarz und XDIV


von Lasse S. (cowz) Benutzerseite


Lesenswert?

Hallo,

ich habe für mein aktuelles Projekt einen ATMega128(L) eingeplant, der 
mit 3,3V laufen soll. Für diese Versorgungsspannung ist der Betrieb ja 
nur bis 8MHz spezifiziert. Jetzt habe ich allerdings nur einen Quarz mit 
14,7456MHz (bekomme auch keinen im MJ Package mit 7,3728MHz (wenn doch, 
wo?)).

Im Datenblatt der ATMega128(L)s habe ich nun das "XTAL Divide Control 
Register" (XDIV) gefunden. Ist es möglich, dieses möglichst früh nach 
dem Reset auf 2 zu stellen, so dass der Takt auf 7,3728MHz geteilt wird?

Ich habe öfter gelesen, dass die Megas auch übertaktek laufen, aber 
sporadisch Fehler zeigen. Was haltet ihr also von meiner "Idee"?

Viele Grüße, Lasse

PS: Die Taktfrequenz muss 7,3728MHz oder 14,7456MHz betragen, damit ich 
mit der Kamera von Ulrichradig über das UART mit einer Baudrate von 
921600 kommunizieren kann.

von wt (Gast)


Lesenswert?

wenn du in Serie gehst ist dies eine schlechte Idee, sonst (im Fall 
einer einzel Muster erstellung) lass das ding mit vollem Takt (14,x) 
brummen und schau das du einiger maßen im ausgetesteten Temperatur 
Bereich bleibst.

von hans (Gast)


Lesenswert?

Nehm doch den internen Oszillator auf 8 MHz und trimm den
auf deine 7,3728MHz. Mit einem Uhrenquarz am Timer0 und
fortlaufender Nachregelung bleibt die Frequenz für RS232
genau genug.

gruß hans

von Eddy C. (chrisi)


Lesenswert?

Um das Maß der aberwitzigen Vorschläge voll zu machen:

Las doch die Webcam schneller senden, z.B. mit 1Mit/s, dann wird alles 
einfacher. Vielleicht schlummert in der Webcam ein Quarz der gerne statt 
mit 7.3728MHz auch mit 8MHz laufen möchte :-)

von Lasse S. (cowz) Benutzerseite


Lesenswert?

Hallo,

gibt es noch mehr Meinungen zu meiner Idee? ;)

Das ganze soll nicht in Serie gehen, aber schon lange funktionieren.

Den internen Oszillator nehmen und trimmen kommt mir auch nicht so gut 
vor (weil nicht dafür spezifiziert soweit ab von 8MHz zu laufen)...

An der Webcamgeschwindigkeit was verändern, ändert nichts an der 
Tatsache dass mir ein langsamerer Quarz dann fehlen würde ;)

Trotzdem vielen Dank für die bisherigen Antworten :)

Gruß, Lasse

von Henry (Gast)


Lesenswert?

Ich habe jetzt nicht beim ATmega128 nachgeschaut, aber laufen die ATmega 
nicht alle mit Vorteiler 8 an? Da braucht man doch nur auf 2 
runterschalten.

clock_prescale_set(clock_div_2);

Die maximale Frequenz des Oszillators ist nicht von der Betriebsspannung 
abhängig; nur die Systemfrequenz des Controllers.

von Norgan (Gast)


Lesenswert?

Mittels eine 32 kHz Uhrenquarzes den internen Oszillator trimmen ist 
nicht ungewöhnlich. Das wird unter anderem selber von Atmel auf dem 
Butterfly-Evalboard gemacht. Und es gibt auch entsprechende allgemeine 
App.-Notes von Atmel dazu 
http://atmel.com/dyn/resources/prod_documents/doc8002.pdf. Von 8,0000 
MHz auf 7,3728 MHz runter ist grade so unter der Grenze dessen was man 
tun sollte (10%), und geht. Zitat:

> For all tunable oscillators it is important to notice that it is not
> recommended to tune the oscillator more than 10% off the base frequency
> specified in the datasheet.

von Eddy C. (chrisi)


Lesenswert?

Das mit dem Uhrenquarz ist interessant.

Apropos Uhrenquarz: Wie wäre es mit einer PLL mit 74HC4046? Ist nicht 
unaufwendig, da noch ein Teiler 1/225 benötigt wird. Aber (evtl.) jede 
Menge Neuland :-)

von Lasse S. (cowz) Benutzerseite


Lesenswert?

Hi,

@Henry: laut Datenblatt ist die interne Division der Taktrate 
normalerweise ausgeschaltet. Schade, das wäre ja perfekt gewesen :)

@Norgan: Interessant! Zumal bei meinem Layout die beiden TOSC-Pins auch 
noch frei sind.

@Eddy: Leider kommt eine zusätzliche Schaltung dank bereits bestellten 
Platinen nicht mehr in Frage. Ansonsten hätte ich einfach ein anderes 
Quarzgehäuse genommen und hätte wohl weniger Probleme ;)

Vielen Dank für die guten Antworten und Gruß, Lasse

von Gast (Gast)


Lesenswert?

Kannst du vielleicht den ATmega 1284P einsetzen?
Der hat die CKDIV8 Fuse zum Systemstart mit 1/8 Frequenz.
Ist die Fuse gesetzt wird das Teilerregister mit div8 initialisiert. Das 
kann man später um Programm umstellen.

von Lasse S. (cowz) Benutzerseite


Lesenswert?

Hi,

der ist leider nicht pinkompatibel, und nicht zu ordern (privat, 
deutschland).

Aber der 2561V sieht gut aus und ist bei csd zu bekommen... :) Das ist 
genial, den hab ich bisher (warum auch immer) total übersehen, natoll, 
noch eine Bestellung ;)

Gruß, CowZ

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.