Forum: Mikrocontroller und Digitale Elektronik Fragen zum ATMega32 (Timer, Anschlussbelegung)


von Jan Purrucker (Gast)


Angehängte Dateien:

Lesenswert?

Hallo allerseits,

ich möchte für mein Entwicklungsboard einen ATMega32 im TQFP-44 Gehäuse
benutzen. Nun meine Fragen zu diesem Controller:

1. In diesem Gehäuse sind GND und Vcc an drei Seiten zugänglich. Genügt
es, wenn ich eine Seite anschließe, oder sind diese Pins intern
gebrückt, so dass ich z.B. Vcc auf der anderen Seite wieder abgreifen
kann (siehe Dateianhang). Das wäre wichtig für das Platinen-Layout.

2. Ich möchte den ATMega32 mit einem Quarz mit 4,193..MHz betreiben, um
duch einen Prescaler auf 32768Hz zu kommen. Leider laß ich im
Datenblatt, dass beim Timer1 nur Prescaler von 1/64 und 1/256 möglich
sind. Ein anderes Quarz möchte ich auch nicht verwenden. Wie kann ich
nun den Timer1 mit 1/128 (4,19 MHz : 128 = 32768Hz) teilen?

Vielen Dank schon einmal für hilfreiche Antworten.

MfG
Jan Purrucker

von Εrnst B. (ernst)


Lesenswert?

Zu 1:
Ich denk weder-noch. Du musst die Versorgung von allen Seiten
anschliessen, kannst keine Pins weglassen, und den Chip auch nicht als
"Drahtbrücke" missbrauchen.
Ausserdem sollte auch auf jeder Seite ein einzelner Abblockkondensator
ran.

/Ernst

von johnny.m (Gast)


Lesenswert?

Zu 1.: Man sollte (v.a. aus EMV-Gründen) alle VCC- und GND-Pins
anschließen und, wie Ernst schon sagte, einen Abblockkondensator an
jedem VCC-Pin vorsehen. Den Chip als Drahtbrücke zu missbrauchen ist
nicht ratsam, da dann u.U. Querströme über den Chip fließen, die ihn
zerstören können bzw. die die Funktion beeinträchtigen.

Zu 2.: Das geht nicht direkt. Da musst Du schon den nächst niedrigeren
Teilerfaktor nehmen (also die 64 in Deinem Fall) und die Werte in den
Registern entsprechend anpassen.

von Karl heinz B. (kbucheg)


Lesenswert?

> Wie kann ich nun den Timer1 mit 1/128

Indem du den Prescaler auf 64 stellst und per Software
nochmal duch 2 teilst.
Aufgrund deiner Zahlen denke ich mal das soll sowas wie
eine Uhr werden. d.h. du wirst dich wahrscheinlich an
den Overflow Interrupt hängen. Dann gehts ganz einfach:

unsigned char Divider;

ISR( TIMER1_OVF_vect )
{
  if( Divider > 0 ) {
    Divider = 0;
    return;
  }

  Divider++;

  // normale ISR Behandlung
}

von Thilo (Gast)


Lesenswert?

Hab's grad' nicht im Gedächtnis: kann der mega128 keinen externen
Uhrenquarz (32768Hz)? Das wäre doch die einfachste Lösung!

von Marko (Gast)


Lesenswert?

Der Mega16 und auch Mega32 hat den TOSC1 / TOSC2 zum Anschluss
von 32,768KHz Uhrenquarz. barauch dort auch nur den Quarz, keine
Kondensatoren. Die müssen Nur an XTAL1 / XTAL2 dran für die
"Arbeitsgeschwindigkeit". Die Uhr läuft dann vom Prozessortakt
unabhängig, der µC kann dann also auch noch was anderes machen
als Zeit messen. Ach so, der Uhrenquarz läuft auch wenn der
Mega intern RC getaktet wird.

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.