-         

Ergebnis 1 bis 10 von 10

Thema: Soft-UART mit Standardtakt 1MHz

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    27.05.2007
    Beiträge
    9

    Soft-UART mit Standardtakt 1MHz

    Anzeige

    Hallo leute,

    ich habe mal eine Frage zum Soft-UART. Und zwar brauche ich einen UART der mit einem Takt 1 MHz und einer Baudrate 1200 richtig sendet. Mit mit einen HW-UART ist es nicht um zu setzten, das ist mir klar, ausser mit einem Quarz. Allerdings soll der Controller mit Standardtakt laufen, aus mehreren Gründen.

    Jetzt stellt sich mir die Frage, ob man den SW-Uart mit Standardtakt von 1MHz und einer Baudrate von 1200 Baud fehlerfrei betreiben kann?

    Bin dankbar um jeden hilfreichen Beitrag
    bis denn

    gorra

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    63
    Beiträge
    622
    Hallo gorra,

    das ist kein Problem: Bei 1200Bd hast Du bei F_CPU=1Mhz für jedes Bit >800 Takte zur Verfügung! Siehe Soft-UART. Ein Quarz ist aber trotzdem unbedingt zu empfehlen, es sei denn, Du kalibrierst den RC-Oszillator Deines Controllers -- aber das ist immer noch recht ungenau! Ein Soft-UART ist kein Rezept gegen das Ungenauigkeitsproblem des internen RC-Oszillators!

    Gruß

    Fred
    Only entropy comes easy. - Anton Checkhov

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255

    Re: Soft-UART mit Standardtakt 1MHz

    Zitat Zitat von gorra
    Mit einen HW-UART ist es nicht um zu setzten, das ist mir klar, ausser mit einem Quarz.
    Wieso das? Es hängt alles von der Genauigkeit der Frequenz ab, und die ist ja gleich, egal ob HW oder SW. Es kann gehen, muss aber nicht. Je nach Temperatur und Kalibirierung...

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    27.05.2007
    Beiträge
    9
    Hallo uwe, hallo fred,

    also habe ich das selben Probleme mit dem SW-UART wie mit dem HW-UART. Ohne einen Quarz werde ich den UART nie stabile laufen lassen können?! selbst mit einer kalibrieung nicht. Sehe ich das richtig?
    bis denn

    gorra

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Ein Quarz ist schon ratsam. Der interne Oszillator ist einfach zu ungenau. Manchmal geht es, manchmal aber auch nicht.

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    63
    Beiträge
    622
    Wie ich schon in meinem ersten Posting geschrieben habe, sehe ich das genau wie uwegw. Meist klappt es ohne Quarz nicht.
    Als Alternative kommen serielle Übertragungsmethoden infrage, bei denen der Takt separat übertragen wird (z.B. SPI). Die sind meist auch nicht viel schwieriger zu implementieren als UARTs und kommen auf jeden Fall ohne Quarz aus.

    Gruß

    Fred
    Only entropy comes easy. - Anton Checkhov

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    27.05.2007
    Beiträge
    9
    das ist doch schon mal eine Alternative, allerdings hat man ein Problem, wenn man eine Übertragung per infrarot oder ähnliches durchführen will. Durch das Clocksignal und MISO-MOSI.
    bis denn

    gorra

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    63
    Beiträge
    622
    Wenn Du Dir eine robuste IR-Übertragung stricken willst, kannst Du das Machester-Protokoll als Basis nehmen, da das den Takt indirekt enthält.

    Gruß

    Fred
    Only entropy comes easy. - Anton Checkhov

  9. #9
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Zitat Zitat von fhs
    Wie ich schon in meinem ersten Posting geschrieben habe, sehe ich das genau wie uwegw.
    Ich nicht.

    Bei ungenauer Taktquelle hat ein SW-UART nämlich in der Tat Vorteile gegenüber einem HW-UART, ganz besonders, wenn man auch Herr über das Protokoll ist. Ein SW-UART kann sich nämlich laufend selber nachkalibrieren. Ein SW-UART kann sich damit nicht nur an beliebig ungenaue Taktquellen anpassen, sondern auch gleich automatisch an die von der Gegenstelle verwendete Baudrate.

    Nur wenn man den SW-UART mit einem völlig starren Timing versieht, gelten die gleichen Anforderungen an die Taktquelle, wie beim HW-UART.
    MfG
    Stefan

  10. #10
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Bei einigermaßen stabiler Spannung und Temperatur reicht nach eine Kalibrierung der interne RC Oszillator in der Regel für eine UART. Das trifft sowohl für HW als auch SW UART zu.
    Bei den älteren Chips (z.B. AT90LS2313) war sogar die Kalibrierung ab Werk meistens ausreichend. Die neuen sind aber nicht mehr so gut abgeglichen und man wird meistens eine Kalibrierung brauchen. Mit einem Quarz ist man aber für ein paar Cents (und 2 Pins) auf der sicheren Seite, ganz ohne abgleich.

    Wenn man das Protokoll etwas Tolleranter machen will, kann man kleinere Pakete und 2 Stopbits nehmen, z.B. 4 Datenbits und 2 Stopbits.
    Das sorgt auch gleich für ein etwas ausgeglicheneres Taktverhältnis für die IR Übertragung. Die Daten muß man dann aber an der andernen Seite noch mal etwas umsortieren.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •