Hello,I've been fiddling a bit with this lately, interfacing with the UART chip on this board, and running into some strange problems. As far as I can see there are 4 ports/pins available , UART_TXD, _RXD, _CTS and _RTS. I've not bothered with assigning anything on the _CTS and _RTS ports. I've tried my own statemachines for TX/RX - and also a variety of VHDL code snippets I googled. In short... nothing works, obviously I'm missing something. The UART chip have a couple of LED's - a green one for TX and a red one for RX. These blink ON whenever something is received or sent - a logic '0' on UART_TXD and _RXD. For testing I've tried hooking up the board using a crossed cable into my PC, running putty in serial mode with no flow control. No TX observed on the board, no RX on the putty console. Also I've tried hooking up my Garmin GPS, which sends something every few seconds. I did observe some RX on the board, but only if I sent something on the TX! I was suspecting XON/XOFF flow control to be the reason, but then I tried hooking the Garmin up into the serial putty console on the PC with XON/XOFF disabled and I still received data... Does anyone have any idea to what I might be missing here? M.
An RS232 UART has the 4 signals that you mention. When such a UART is not used together with a Modem, only the TXD and RXD are used. For example to send or receive something from your Garmin.To test a UART you can simple hook it up to a serial port of your PC and use a program like HyperTerminal or other to see if the link works. The easiest to get your UART working is to make a project with SOPC and a NIOS processor. SOPC (or QSYS) do have modules for UARTs.
Baud rates, start bit, parity, stop bit(s) of RX and TX I'll have to handle myself.I can think of the UART chip as a component doing voltage conversion between the FPGA pins and RS-232 wires, right? No weird logic inside? M.
The UART is a "Universal Asynchronous Receiver Transmitter". It is a block that will format data in a serial way to send out and also decode it to receive it. The UART takes care of formatting the data in the right sequence (start, stop, parity, data bits) and at the standard speeds (baud rate)On the DE2-115 you also have a RS232 level shifter changing the voltage levels of the DE2-115 (3.3 Volt I suppose) to the positive and negative voltages required by RS232.
--- Quote Start --- Baud rates, start bit, parity, stop bit(s) of RX and TX I'll have to handle myself. I can think of the UART chip as a component doing voltage conversion between the FPGA pins and RS-232 wires, right? No weird logic inside? M. --- Quote End --- yes， it's a phy only to convert the RS232 level to 3.3V-LVTTL level, no logic function.
--- Quote Start --- yes, it's a phy only to convert the RS232 level to 3.3V-LVTTL level, no logic function. --- Quote End --- Ok, thanks - that simplifies things. I'll create a pretty empty entity, wire the TX and RX to some LEDS. Add a PLL with 11.0592 MHz for some baud rates - then start SignalTapping on the pins @ PLL clock while sending data from my Garmin or putty console. :)