mikrocontroller.net

Forum: FPGA, VHDL & Co. Problem mit einem UART


Autor: TheMason (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Moin moin,

ich habe wieder mal ein Problem. Ich möchte für mein Spartan3-Board
einen UART schreiben.

Als Vorlage für den UART habe ich den miniUART von Opencores genommen.
Allerdings hat der ja nur eine Baudrate (9600), ist ausgelegt für einen
40MHz Quarz und braucht einen Prozessor (wegen der Register). Daher habe
ich mir gedacht selbst einen zu schreiben (vor allem lernt man ja was
dabei).

Ich habe dann also erstmal den Clockgenerator und den TX-Teil gemacht.

Der Clockgenerator erzeugt mir aus meinen 50MHz halbwegs brauchbare
Baud-Clocks. Die 50MHz werden durch 27 geteilt. Dann durch einen
variablen Teiler geteilt (Teilerwerte : 2,3,6,12,24,48,96) der die
16fache Baudrate erzeugt (später für RX). Dieser Clock wird noch durch
16 geteilt und dann habe ich den Baud-Clock. (19200 Baud wird somit zu
19290 Baud, also ca 0.5% Fehler)
Der TX-Teil clockt die Daten mit der Baud Clock aus (mit einer 0 als
Startbit, LSB zuerst und nach dem letzten Bit, also MSB, noch eine 1).

Das Ausclocken beginnt mit einem Trigger-Signal (kommt von einer Taste
des Boards). Dieser Trigger steuert eine kleine Statemachine welche die
Bits mit der Baudclock rausclockt. Um Probleme mit dem Tastenprellen zu
vermeiden habe ich eine kleine Entprellung eingebaut (einfach nur nen
Zähler mit vergleicher).

Das TX-Signal sieht auf dem Scope auch ganz gut aus, und auf meinem
Terminal kommt auch was an. Das Problem ist nur das oftmals 2 Zeichen
ankommen von denen eines Schrott ist. Leider kommt das recht häufig vor
(so 1 falsches Zeichen auf 4 gesendete).
Ich weiß nicht wo der Fehler noch liegen kann.

Habe den VHDL-Code mal dabeigestellt. Wäre nett wenn jemand Zeit hat da
mal drüber zu gucken.

Gruß
Rene

PS. Es sieht vielleicht etwas umständlich aus mit dem Multiplexer zum
rausclocken des TX-Buffers, aber mir geht es erstmal nur darum das das
ganze vernünftig funktioniert (und ich den RX-Teil endlich machen kann)

Autor: Birefsane (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rene,

läuft Dein Programm inzwischen ?? Wie sieht der RX Teil aus ???

gruß

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Birefsane (Gast)

>läuft Dein Programm inzwischen ?? Wie sieht der RX Teil aus ???

Nach über zwei Jahren hat sich das Problem entweder gelöst oder 
aufgelöst ;-)

MFG
Falk

Autor: Birefsane (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bei mir hat sich das Problem wiederbelebt :) Mein Uart läuft nicht schau 
ma mal des bekomme ich schon zum laufen... hoffe ich.

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@birefsane

also der uart läuft inzwischen :-)
weiß nur nicht mehr genau was der fehler war. war jedenfalls was dummes 
(wie so meist). schau mal in mein audio-projekt rein. da stehen die 
sourcen zum vhdl uart ebenfalls drin, und da sollte es funktionieren.

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.