Forum: Mikrocontroller und Digitale Elektronik Externe Taktung (XTAL1) --> ein Pin weniger


von Sven Scholz (Gast)


Lesenswert?

Hallo,

mein Mikrocontroller wird zurzeit extern über XTAL1 getaktet.
So wie es aussieht, wird davon der PB6-Pin beeinflusst, was eine
falsche Ansteuerung einer Segment-Anzeige zur Folge hat.

Also jetzt mal generell die Frage:
Wenn ich XTAL1 verwende, kann ich dann den PB6-Pin vom ATmega8
überhaupt nicht mehr verwenden?
Was kann ich gegen diesen Umstand machen?

DANKE.

von chris (Gast)


Lesenswert?

Ich denk du kannst den internen Takt verwenden, allerdings hab ich mir
sagen lassen das der stärkeren Temperaturschwankungenunterliegt.
Die Ungenauigkeit könnte dann beim uart ein Problem werden.
Außderdem wenn du einen anderen internen Takt als 1 MHz musst du das
OSCCAL - Register manuell beschreiben.
  Chris

von Sven Scholz (Gast)


Lesenswert?

Wenn ich den internen Takt benutze, hätte ich den Oszillator auch
komplett weglassen können, in meiner Schaltung???

von chris (Gast)


Lesenswert?

ja, denke ich schon.
allerdings musst dich da noch schlau machen ...
ich würde mir jetzt nicht vertrauen, weil ich mich auch grad erst damit
beschäftige,naja eigentlich bin ich schon davon überzeugt das ihn
weglassen kanns ... aber iczh will auch nix falsches sagen ...
Hier gibts doch lauter Profis schade das sich da keiner äußert...
  Chris

von Sven Scholz (Gast)


Lesenswert?

OK, dann steige ich jetzt wieder auf interne Taktung um...
Ich möchte meinem ATmega8 jetzt sagen, dass er mit 4MHz arbeiten soll,
dafür muss ich ja das OSCAL Register beschreiben. Mit welchem Wert?
Und wie lautet die passende Assembler Anweisung dafür???


DANKE.

von Rick Dangerus (Gast)


Lesenswert?

Das Datenblatt gibt auf Seite 23 darüber genaue Auskunft.
OSCAL brauchst Du dafür nicht, sondern CKSEL.

Am besten schreibt man das über seinen Programmer in die Fuses ein. Da
braucht man kein Programm und merkten tut sichs der Atmel auch.
Achtung bei den Fuses ist die Logik grade andersherum: Fuse gesetzt = 0
und Fuse nicht gesetzt = 1.

HTH.
Rick

von Bolle (Gast)


Lesenswert?

>mein Mikrocontroller wird zurzeit extern über XTAL1 getaktet.
>So wie es aussieht, wird davon der PB6-Pin beeinflusst,

Mich wundert, daß Dich das wundert! Bei XTAL1 und PB6 handelt es sich
doch um denselben Pin, oder seh ich das falsch?

von chris (Gast)


Lesenswert?

OSCCAL brauchst du nur um dein Takt zu kalibrieren , falls der Takt zB.
für UART zu ungenau ist.
  Chris

von Rolf Magnus (Gast)


Lesenswert?

Ohne die OSCCAL-Kalibrierung kann der Takt recht weit danebenliegen. Die
AVRs mit Oszillator-Revision 3.x wie der ATmega8 haben für 1, 2, 4 und
8Mhz jeweils einen eigenen RC-Oszillator und damit auch einen eigenen
Wert für die Kalibrierung. Der Wert für 1Mhz wird beim Start
automatisch in OSCCAL geladen. Wenn man einen anderen Takt verwendet,
muß man den entsprechenden Wert selbst laden. Soweit ich weiß, hat der
Controller selbst auf diesen Wert keinen Zugriff. Man kann ihn aber per
SPI auslesen und dann den benötigten Wert ins EEPROM schreiben. Von dort
aus kopiert man's dann beim Start des Mikrocontrollers ins
OSCCAL-Register.

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.