Forum: Mikrocontroller und Digitale Elektronik ATMeha8 - UART ohne ext. Quarz?


von Henning (Gast)


Lesenswert?

hi, habe grad leider keine möglichkeit zum testen aber muss etwas
planen...

kann ich halbwegs zuverlässig den UART eines atmega8 nutzen ohne einen
xternen quarz nutzen zu müssen? also nur mit den internen 1mhz...

von johnny.m (Gast)


Lesenswert?

Nein

von Ronny (Gast)


Lesenswert?

Den kannst du zum Testen auf dem Schreibtisch nehmen,Standartbaudraten
bis 19200 sind kein Problem.Für alles andere als ein Prototypen ist der
interne RC-Oszillator aber nicht stabil genug.Vor allem bei
Temperaturschwankungen läuft die Frequenz weg und das UART-Timing
stimmt nicht mehr.

Kurzantwort: Nein

von Henning (Gast)


Lesenswert?

verdammt =)

von Henning (Gast)


Lesenswert?

achso sorry da war ich wohl zu schnell mit meiner antwort...
19200baud?
soviel wollt ich eigentlich net :) 9600 reichen völlig, das sollte dann
gehn?...

von Daniel M. (usul27)


Lesenswert?

Wenn du bei Zimmertemperatur (22-27 Grad) arbeitest und deine
Stromversorgung gut stabilisiert ist KÖNNTE das klappen. 3% Toleranz
sind beim UART maximal erlaubt.
Aber garantieren wird dir das niemand. Wenn es für reguläres Debugging
gebraucht wird, wolltest du schon einen Quarz einplanen.

von Henning (Gast)


Lesenswert?

ich arbeite zwischen ca -5°C und +50°C (im auto) :)
ich brauche das ding eben nur für stumpfe ablaufsteuerungen, absolut
nix zeitkritisches. über rs232 soll er dann die aktuellen zustände
raushusten und eventuell von nem zweiten controller (bordcomputer)
verarbeitet werden.

von Simon K. (simon) Benutzerseite


Lesenswert?

Siehste, also: Nein :-)

von Ronny (Gast)


Lesenswert?

Zitat:
"Den kannst du zum Testen auf dem Schreibtisch
nehmen,Standartbaudraten
bis 19200 sind kein Problem.Für alles andere als ein Prototypen ist
der
interne RC-Oszillator aber nicht stabil genug."

Das heisst das die Sache bei konstanter Temperatur,dem selben AVR (2
versch. Atmega8 können schon wieder abweichen) mit bissl Probieren am
Vorteiler klappt.Aber durch Temperatur,Typenschwankungen,Alterung und
so weiter läuft der RC-Oszi zu schnell weg,um vernünftig damit zu
arbeiten.

Also: Quarz rein.

von Daniel M. (usul27)


Lesenswert?

Ui nein, mit diesem Temperaturbereich wird das sicher nichts. Da kommst
du schon auf 10% Schwankungen nur durch die Temperatur.

von Henning (Gast)


Lesenswert?

so ein mist... das problem ist, der atmega8 ist komplett an allen pins
belegt :(

von Simon K. (simon) Benutzerseite


Lesenswert?

Zeig mal den Schaltplan und was du alles anschließen willst. Ggf kann
man da was frei kriegen.

von MicroMann (Gast)


Lesenswert?

> und eventuell von nem zweiten controller (bordcomputer)
verarbeitet werden.

Wenn es der selbe Controller mit der selben Taktfrequenz bei der selben
Temperatur ist, könnte es gehen.

Wenn du aber die Signale sowieso mit einem anderen Controller
auswertest, nimm doch gleich SPI. Dann brauchst du dich nicht um den
Takt zu schweren.

von Daniel M. (usul27)


Lesenswert?

Dann gibt es noch die Variante, dass du über die serielle Schnittstelle
synchronisierst: Du sendest von angeschlossenen Gerät eine Menge
Zeichen und änderst den Vorteiler so lange, bis die Sachen korrekt
gelesen werden.

von A.K. (Gast)


Lesenswert?

Der Vorteiler wird sich bei normalen Bitraten nicht genau trimmen
lassen. Muss schon der RC-Oszillator des Prozessors getrimmt werden.
Und das öfter, denn grad im KFZ ändert sich öfter mal die Temperatur,
vor allem wenn die µCs an unterschiedlichen Standorten plaziert sind.
Also muss ggf. mit Wiederholung gesendet werden, solange bis der
Empfänger sich neu getrimmt und dem Empfang quittiert hat. Und wenn
mehr als 2 miteinander reden, muss letztlich für jede Botschaft neu
eingetrimmt werden ;-).

Da dürfte ein Quarz oder Keramikschwinger vorzuziehen sein.

von Daniel M. (usul27)


Lesenswert?

Ich hab ja nicht behauptet, dass meine Lösung elegant wäre ;)
Auf Temperaturschwankungen reagiert die natürlich weiterhin allergisch.
Bauen würde ich so etwas sicher nicht, aber wenn es wirklich keine
Möglichkeit gibt, sinnvoll auf einen Takt zu synchronisieren, dann
sieht es halt schlecht aus.

von luxx (Gast)


Lesenswert?

Hallo
aber sind den quarzoszilatoren genauso empfindlich? sind quarze nur mit
22pF kondensatoren das beste ?

luxx

von Daniel M. (usul27)


Lesenswert?

Also Quarzoszillatoren sind schon ausreichend stabil. Aber die brauchen
halt auch wieder die beiden Pins, die schon belegt sind.

von A.K. (Gast)


Lesenswert?

Quarze, -oszillatoren oder Kermikschwinger sind dafür ausreichend.
Letztere sind zudem recht klein und kommen in 3-pin-Version ohne Kerkos
aus.

von A.K. (Gast)


Lesenswert?

Wenn du um jeden Preis die Pins brauchst: Du kannst auch ein eigenes
serielles Protokoll auf PWM-Basis implementieren, das keine genaue
Frequenzübereinstimmung benötigt, also kurzer Puls = 1, langer Puls =
1.

Kann man auch mit UART machen: Jedes UART-Byte überträgt effektiv ein
Bit Nutzinformation. Prinzip: Um eine 1 zu übertragen, wird 0xFE
gesendet, für 0 0xE0. Jeweils mit 0,5 Byte Pause hinterher. Je nach
Bitratendifferenz wird beim Empfänger bei 1 irgendwas aus
0xFF,0xFE,0xFC ankommen, bei 0 0xF8,0xF0,0xE0,0xC0. Nicht schnell, aber
einfach.

von The Daz (Gast)


Lesenswert?

Oder man benutzt Schieberegister um sich zusaetzliche I/Os zu besorgen.
Sehr viel einfacher als ne UART selbst zu stricken.

von Henning (Gast)


Lesenswert?

nee ich habs scho, trotzdem vielen dank für die sehr kompetente hilfe
hier!
habe einfach eine funktion gekickt welche bei abgeschalteter zündung eh
nicht nötig ist und brauche somit 2 pins weniger. lebenswichtig war
diese funktion auch nicht, eher ein "gag".
ich baue deshalb 2 controller auf, damit ich erstmal halt unabhängig
bin vom bordcomputer da es nicht sicher ist ob und wann es diesen geben
wird und der bordcomputer selbst soll natürlich bei abgeschalteter
zündung auch aus sein, der kleine (smd atmega8) zweitcontroller läuft
jedoch immer.
eventuell dann noch im stromsparmodus oder sowas, mal sehen...

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.