www.mikrocontroller.net

Forum: FPGA, VHDL & Co. UART Störung


Autor: Hans Hirsch (hanshirsch)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
habe eine neues Problem mit der "UART-Endlos-Ausgabe". Die Bitströme 
x"FO" oder x"0F" funktionsieren einwandfrei. Wenn ich aber x"CC" oder 
ähnliche Daten für die UART einstelle, bekomme ich am Oszilloskop ein 
geflakere. Sind es zu viele Flankenwechsel, oder irgendwelche 
Timingprobleme?
Ich möchte jedes beliebgige 8-Bit Frame einstellen können.

Gruß,
H.H.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> bekomme ich am Oszilloskop ein geflakere.
Naja, überleg einfach mal, warum...

0xF0 via RS232 =  0000011111
0x0F via RS232 =  0111100001
0xCC via RS232 =  0001100111

> Sind es zu viele Flankenwechsel,
Das kommt darauf an, wie du triggert...
Siehe der Kommentar im Code:
  -- dauernd senden, solange tx_start aktiv

> oder irgendwelche Timingprobleme?
Schliess doch mal einen PC mit einem Treminalprogramm an...

> Ich möchte jedes beliebgige 8-Bit Frame einstellen können.
Dann gib an einem anderen FPGA-Pin das tx_busy aus und triggere auf das 
:-o

Autor: Hans Hirsch (hanshirsch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Naja, überleg einfach mal, warum...

>0xF0 via RS232 =  0000011111
>0x0F via RS232 =  0111100001
>0xCC via RS232 =  0001100111


0x"CC" ist übrigens "11001100". Das ist mir klar, dass hier automatisch 
mehr flankenwechsel stattfinden. Nur ist da irgendwie noch ein Signal 
überlagert oder ähnliches. Das meinte ich mit "flackern".
Es ist doch seltsam, dass bei x"FO" und x"OF" alles einwandfrei 
funktioniert und in anderen Fällen nicht.

Autor: Hans Hirsch (hanshirsch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>0x"CC" ist übrigens "11001100"

Korrektur: Sorry, war eben ein kleiner Denkfehler von mir!

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 0x"CC" ist übrigens "11001100"
Ich habe die Start- und Stopbits mit angehängt... 0 00110011 1
Und: LSB first (aber das hast du schon bemerkt)

Autor: Der Besucher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du mal 0x55 senden und davon einen (aussagekräftigen) Screenshot 
machen?

Der Besucher

Autor: Hans Hirsch (hanshirsch)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
In der Simulation klappt alles einwandfrei, auf dem Oszilloskop dagegen 
flackert über dem x"55" Signal noch irgendwas anderes drüber

Autor: Hans Hirsch (hanshirsch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es sieht so aus, als ob, das Signal zwei mal versetzt zu sehen ist. 
Liegt es vielleicht daran, dass der taster nicht entprellung ist?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> In der Simulation klappt alles einwandfrei
Ich sehe gerade, dass mein Code offenbar fehlerhaft ist :-o
Das MSB kommt zuerst... (AA statt 55)

Ich werde das gelegentlich überarbeiten :-/

Autor: Der Besucher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am nicht entprellten Taster liegt das meines erachtens nicht, da ja nur 
ein Sender vorhanden ist. Du hast scheinbar irgendwo eine Reflektion des 
Signals oder es koppelt irgendwo über und wird zurückgesendet.
Man müsste halt wissen, wie das ganze Drumherum aussieht.
Hast du die Messspitze ordentlich geerdet?
Hast du sehr lange Leitungen? Verdrillt/nicht verdrillt?
Kannst du nicht ein Foto der Oszilloskopausgabe machen?
Und schau mal besonders auf die Flanken, ob die sauber rüberkommen, oder 
ob es da Schwingungen gibt (so in den hundert MHz Bereichen).

Der Besucher

Autor: Marvin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich lach mich kaputt!

Was macht ein Oszilloskop?
Es triggert auf eine Flanke.
Und wie viele Flanken enthält dein Signal?
Auf jedenfall mehr als eine, vor allem dann, wenn es in einer 
Endlosschleife läuft.
Das heißt dass du nicht unbedingt auf die erste Flanke triggerst sondern 
auf eine beliebige, daher das Rauschen bzw. die scheinbar überlagerten 
Signale.
Wenn es ein besseres Oszi ist, kannst du evtl. auf Signalformen 
triggern.
Ansonsten in deiner Routine einen Triggerimpuls auf einen Pin ausgeben, 
diesen an Kanal A des Oszi und auf Kanal B dein RS232-Signal.

Viel Spaß!

Autor: Der Besucher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Marvin hat Recht!
Man ist schon zu sehr an die eingefrorenen Signale der Digitalsoszis 
gewöhnt, dass man das offensichtliche einfach übersieht.

Der Besucher

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> In der Simulation klappt alles einwandfrei
Ich habe den Quelltext auf meiner HP so überarbeitet, dass jetzt 
tatsächlich das LSB zuerst kommt ;-)

Ich würde dir raten, erst mal nicht dauernd zu Senden. Besser wäre, ein 
Byte zu schicken, dann eine kurze Pause einzulegen, dann erst das 
nächste. So kannst du dann auch besser triggern...

Oder mach es so, wie ich es oben vorgeschlagen habe:
>> Ich möchte jedes beliebgige 8-Bit Frame einstellen können.
> Dann gib an einem anderen FPGA-Pin das tx_busy aus und triggere auf das

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hans Hirsch:

Meistens bringt auch eine Vergrößerung der HOLD-Zeit am Oszilloskop ein 
besseres Bild.

Aber generell gilt: Für aperiodische Signale bzw. Signalformen eignet 
sich eher ein Speicheroszilloskop.

Duke

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]
  • [vhdl]VHDL-Code[/vhdl]
  • [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.