mikrocontroller.net

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


Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein

Autor: Ronny (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
verdammt =)

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?...

Autor: Daniel M. (usul27)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siehste, also: Nein :-)

Autor: Ronny (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Daniel M. (usul27)
Datum:

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

Autor: Henning (Gast)
Datum:

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

Autor: Simon K. (simon) Benutzerseite
Datum:

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

Autor: MicroMann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Daniel M. (usul27)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Daniel M. (usul27)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: luxx (Gast)
Datum:

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

luxx

Autor: Daniel M. (usul27)
Datum:

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

Autor: A.K. (Gast)
Datum:

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

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: The Daz (Gast)
Datum:

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

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.