Forum: Mikrocontroller und Digitale Elektronik ATMega48 mit Taktvorteiler - USART-Takt auch geteilt?


von Sebastian (Gast)


Lesenswert?

Wie viele hier wohl bereits wissen, bieten neuere ATMegas (wie der 
48/88/168) die Möglichkeit, den Systemtakt durch Setzen des 
CLKPR-Registers über einen Vorteiler zu ändern.
Aus dem Datenblatt kann ich jedoch beim besten Willen nicht ablesen, ob 
dies auch die USART-Baudrate beeinflußt. Da ist einerseits davon die 
Rede, daß der heruntergeteilte Takt auch für die Peripherie gilt, z.B. 
als clkIO. Andererseits ist in Zusammenhang mit der USART-Baudrate bzw. 
UBRR-Einstellung immer von fOsc die Rede, und nicht von einem bestimmten 
Peripherietakt als Quelle.

Der Oszillator läuft nach wie vor mit 8 MHz. Wenn ich einen 
Taktvorteiler von 16 für die CPU festlege, muß ich dann für die 
Berechnung der Baudrate von fOsc=8.000.000 ausgehen, oder vielmehr von 
fOsc=500.000?

Auch Google ist in dieser Frage nicht sehr freundlich zu mir (oder ich 
verwende die falschen Suchbegriffe, kann auch sein).

von Alexander B. (esquilax)


Lesenswert?

Wenn ich mich recht erinnere gibts doch in den Datenblättern immer so 
schöne Grafiken, die den Grundaufbau des Controllers zeigen. Da ist doch 
auch immer eingezeichnet, wer von wo welchen Takt (oder sonstiges 
Signal) bekommt?

von Benedikt K. (benedikt)


Lesenswert?

Sebastian schrieb:

> Auch Google ist in dieser Frage nicht sehr freundlich zu mir (oder ich
> verwende die falschen Suchbegriffe, kann auch sein).

Die erste Anlaufstelle bei solchen Problem ist das Datenblatt:
Aus dem Blockdiagramm direkt am Anfang von 8. System Clock and Clock 
Options kann man die Antwort schon entnehmen.
Wenn das nicht reicht, dann steht es weiter unten auch nochmal im 
Klartext drin:
1
This can be used with all clock source options, and it will affect the clock
2
frequency of the CPU and all synchronous peripherals. clkI/O, clkADC, clkCPU, and clkFLASH are divided by a factor as shown in Table 28-3 on page 308.

von Sebastian (Gast)


Lesenswert?

Okay. Danke, Benedikt.

Ich war bloß ziemlich verunsichert, weil nirgendwo gesagt wurde, daß der 
USART ein "synchronous peripheral" ist.

von Zulu (Gast)


Lesenswert?

>Ich war bloß ziemlich verunsichert, weil nirgendwo gesagt wurde, daß der
>USART ein "synchronous peripheral" ist.

Das "synchron" bezieht sich hier auf die USART, also eine Kommunikation 
wo ein Takt zusätzlich übertragen wird, nicht auf seine Taktquelle (was 
dann trotzdem egal wäre).

von Sebastian (Gast)


Lesenswert?

Also gehen nur maximal 4800 Baud im Double-Speed Modus. Wie schade.

von Benedikt K. (benedikt)


Lesenswert?

Sebastian schrieb:

> Ich war bloß ziemlich verunsichert, weil nirgendwo gesagt wurde, daß der
> USART ein "synchronous peripheral" ist.

Steht aber auch im Datenblatt:
1
8.1.2 I/O Clock – clkI/O
2
The I/O clock is used by the majority of the I/O modules, like Timer/Counters, SPI, and USART.

> Also gehen nur maximal 4800 Baud im Double-Speed Modus. Wie schade.

Mit einem Baudratenquarz geht auch mehr:
7,3728MHz/16=460,8kHz
460,8kHz/8 (U2X Mode)=57600Baud

von Sebastian (Gast)


Lesenswert?

Oh, stimmt. Asche auf mein Haupt.

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.