Forum: Mikrocontroller und Digitale Elektronik Intel 8051 Derivat: DS89C420: Timer0 Frage


von Gregor Knappik (Gast)


Lesenswert?

Hallo Leute,

ich betreibe einen DS89C420 und habe eine Frage zum Timer0.
Der uC wird mit einer Frequenz von 22118400 Hz betrieben.
Es geht mir darum, dass ich den T0 (Mode 2, 8Bit ,autoreload) zum
Erstellen eines Rechtecksignals verwenden möchte mit Bitraten von 1KBit
.. ca. 10KBit.
Alles darüber kriege ich problemlos hin, nur in meiner Bandbreite
nicht. Vielleicht rechne ich da etwas falsch, bitte überprüft meine
Rechnung:
Der Timer2 wird als Baudraten Generator für SCI0 verwendet mit 115200
KBit/s.
Also:
T2:
fxtal = 22118400 Hz

fbase2 = fxtal / (2*16) = 691200 Hz
Der notwendige Reloadwert beträgt also:
div2 = fbase2 / 115200 = 6, heißt also die SFR für T2 werden mit -6
geladen.

Nun zum T0, die fbase0 ist genauso hoch wie vom T2, ich dachte man
teilt hier durch 12 nicht durch 8. Wie kann ich diesen Teiler
beeinflussen?

fbase0 = 22118400 / 8 = 691200 Hz
div2 = fbase0 / 9600 = 72 Ok
div2 = fbase0 / 4800 = 144 ok
div2 = fbase0 / 2400 = 288 NOK


Ich sehe nun folgende Möglichkeit:
1) Statt den 8bit Timer 16Bit nehmen, aber ich kappier nicht wie ich
dann den Timerwert manuell nachladen kann (bei T0 16Bit gibt es ja kein
auto-reload, oder?)

2) Den Teiler beim Timer0 (immer noch 8) erhöhen, aber wie?

Über Tipps freu ich mich sehr! Viele Grüße
Gregor

von Gregor Knappik (Gast)


Lesenswert?

ups kleiner denkfehler: nochmal die rechnung

T2:
fxtal = 22118400 Hz

fbase2 = fxtal / (2*16) = 691200 Hz
Der notwendige Reloadwert beträgt also:
div2 = fbase2 / 115200 = 6, heißt also die SFR für T2 werden mit -6
geladen.

Nun zum T0, die fbase0 ist genauso hoch wie vom T2, ich dachte man
teilt hier durch 12 nicht durch 8. Wie kann ich diesen Teiler
beeinflussen?

fbase0 = 22118400 / (2*16) = 691200 Hz
div2 = fbase0 / 9600 = 72 Ok
div2 = fbase0 / 4800 = 144 ok
div2 = fbase0 / 2400 = 288 NOK


Also nicht 8 sonder 32. Nun, wie kann ich diesen Teiler beeinflussen?

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.