91Âţ»­

Table of Contents

UART Transmitter mit FPGA und VHDL

ZurĂĽck zur ThemenĂĽbersicht

Aufgabenstellung

Bauen Sie einen UART Transmitter und senden Sie ĂĽber die UART Schnittstelle Buchstaben vom FPGA zu einem angeschlossenen Rechner.

Vorbereitung

Projekt aktualisieren

Aktualisieren Sie das dtlab Projekt mit

cd ~/projects/dtlab
git pull

VHDL toplevel top_uart

Die Datei beschreibt das Modul “top_uart”. “top_uart” stellt den toplevel auf dem FPGA dar.

Die UART

Auf dem FPGA soll ein UART Transmitter aufgebaut werden, mit dem man Zeichen an einen Rechner schicken kann. Die Ăśbertragung hat die folgenden Parameter

Die Architektur ist in Abbildung 1 dargestellt.

UART Transmitter

Abbildung 1: UART Transmitter Architektur auf dem FPGA

Wenn man auf den KEY1 drückt, dann sollen die Daten an den Schaltern SW[7..0] über die UART seriell übertragen werden. Die Übertragungsgeschwindigkeit wird mit dem “baudcnt” Modul gesteuert.

Abbildung 2: UART Transmitter Timing

In Abbildung 2 ist das Timing der Schaltung für eine Bitdauer von drei Systemtakten dargestellt. Das wäre eine Baudrate von 16,6 MBit/s bei einer Systemtaktfrequenz von 50 MHz. Das wäre also viel zu schnell. So kann aber das Zusammenspiel der Komponenten “baudcnt” und “uart_tx_shift” einfacher dargestellt werden.

Die Testbench dient zur Simulation von “top_uart”.

baudcnt

Das Modul steuert die Übertragungsrate wie in Abbildung 2 dargestellt. Das Enablesignal sorgt im “uart_tx_shift” Modul dafür, dass das nächste Bit ausgegeben wird.

uart_tx_shift

Das Modul dient zur Serialisierung des 8 Bit Datenwortes, das von den Schaltern SW[7..0] kommt.

Labor

Im Labor gibt es ein FTDI-RS232 Kabel zum Anschluss eines Rechners an eine RS-232 Schnittstelle. Auf dem FPGA Board ist ein MAX232 Chip mit dem die 3,3V Logiksignal auf RS-232 (+7/-7V) Niveau gewandelt werden. Das Kabel enthält einen . Das Kabel kann also per USB an einen Rechner angeschlossen werden.

 FTDI RS-232 Kabel Abbildung 3: FTDI RS-232 Kabel

Software auf dem Rechner

Nach dem Einstecken des Modems erscheint unter /dev/ttyXXXXXXX ein neues Device. Unter Linux ist dies /dev/ttyUSB0, unter MacOS ist dies /dev/tty.usbserial-DM000IKG

Auf dem Rechner wird ein Terminalprogramm benötigt, mit dem die Daten von der seriellen Schnittstelle angezeigt werden können.

sudo screen /dev/ttyUSB0 57600
gtkterm --port /dev/ttyUSB0 --speed 57600 --echo

Stellen Sie auf dem FPGA Board ĂĽber die Schalter verschiedende Zeichen ein und ĂĽbertragen Sie das Zeichen an den Rechner.

Die zeigt die Codes fĂĽr die verschiedenen Buchstaben.