ATMeha8 - UART ohne ext. Quarz?

Gast #351565
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
#351568
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.
Gast #351569
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.
Gast #351571
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.
Gast #351575
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.
Gast #351577
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.
#351578
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.
Gast #351582
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.
Gast #351584
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...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren