UART receiver

Dec 12, 2004 6 Replies

Greetings !



I'm looking for a simple RS232 UART16550 receiver for my tiny cyclone board for different baudrates, 8databits, 1stop&startbit and no(!) partity and handshake stuff.



I found several free VHDL implementations in the net but compared to what I need they are to complicated and appear like shooting with missiles on birds ;-)


The entity might have a simple structure like this:



entity receiver is generic( frequency : integer := 10000000; -- e.g. for 10MHz baudrate : integer := 9600 -- e.g. for 9600bps );



port( clk : in std_logic; -- clockspeed is 'frequency' reset : in std_logic; -- resets the receiver receiver : in std_logic; -- input from receive pin from RS232 connector



char_avail : out std_logic; -- indicated that a valid char has beed received char : out std_logic_vector(7 downto 0) -- received char, only available for one clock ); end receiver;



The 'reciever' values are 'active high'...



This structure gives the responsibility for catching received data in time to the user but surely allowes adding a FIFO.


Probably this question has been asked about 47283407239 times in this group so please just send me a usefull link or code snippet...


Konstantin


Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/

formatting link
(but probably something you have already investigated).

The UART "problem" seems to be a pretty common example in various VHDL books. I think Ben Cohen's book has an implementation as well as Navabi's. I can't comment on how or if they work (synthesis).

Have you prowled around on the Xilinx web site. A quick search popped up lots of internal links, for example

formatting link
formatting link

but these may be the "missles" you are refering to. xapp223.pdf does look promising however...

If it was me, I'd start with one of the "missles" and start paring it down, removing features.

Hello:

At

formatting link
you can find many uarts, for a very simple UART I recommend you to use the miniUART project, if you need a complete 16650 UART use UART16550 project.

Best Regards

Javier Castillo snipped-for-privacy@opensocdesign.com

formatting link

"Konstantin Dols" wrote in news:opsiv94toznxvpac@pc113:

I am currently working on an implementation of such a controller for my semester project. So I will let you have a look to my code when I have finished it.

Greetz :)

Grégory Mermoud snipped-for-privacy@epfl.ch Swiss Federal Institute of Technology - Lausanne Computer Science Departement

010900080100040806070409 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit

Hi,

in the attachement you'll find something you could use. I've used it on a cyclone to do some ASCII communication (giving commands and sending/receiving data to/from the system). I'm just in the middle of updating the things so it's possible you have to mess around with some libs (or change the libs to 'work').

I've added some functions to convert a 4 bit hex 'string' into a 7 bit char 'string.

kind regards, Jan

K>

C_ASCII_CAPITAL_A;

C_ASCII_CAPITAL_B;

C_ASCII_CAPITAL_C;

C_ASCII_CAPITAL_D;

C_ASCII_CAPITAL_E;

C_ASCII_CAPITAL_F;

slave

E_EIA232State_Waiting then

Yeah that would be great !

Thanks !

Konstantin

Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required