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)
Hallo Rene, läuft Dein Programm inzwischen ?? Wie sieht der RX Teil aus ??? gruß
@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
bei mir hat sich das Problem wiederbelebt :) Mein Uart läuft nicht schau ma mal des bekomme ich schon zum laufen... hoffe ich.
@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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.