UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Contributor
Contributor
3,760 Views
Registered: ‎03-04-2016

Unable to communicate with UARTLite IP Core using MicroBlaze

Jump to solution

Hi,

 

I have a question about the UART communication using UARTLite IP in block design.

My block design contains a MicroBlaze to receive data from UARTLite (Baudrate: 9600, 8 data bits, no parity) to manage my already successful tested partial reconfiguration. The block design is instantiated in my top level file which contains in/out for RX,TX, clock, reset, etc.

 

My Virtex-7 board is connected via JTAG for debug and USB (USB-to-UART driver from tutorial is installed!).

After flashing FPGA in SDK I can start debugging without any problems, configuration of FPGA is working and the initialization of UART and HWICAP is successful, too (no error returned in function). 

 

In a simple xil_printf() statement which will send bytes to "STDOUT_BASEADDRESS" (address of UART) my TeraTerm/puTTY/SDK terminal is not able to receive any data (same serial configuration of UARTLite of course..).

 

I tried to figure out the problem by checking xparameter.h, generated block design file and the BSP configuration settings for UART, but I wasn't able to find any mistake yet..

 

 

If you have any idea why this simple design isn't working please let me know!

If you need further information about my design feel free to ask for it!

 

Best regards,

  Michael

 

 

 

blockdesign.PNG
BSP_settings.PNG
0 Kudos
1 Solution

Accepted Solutions
Highlighted
Explorer
Explorer
5,877 Views
Registered: ‎07-14-2014

Re: Unable to communicate with UARTLite IP Core using MicroBlaze

Jump to solution

Apologies if I'm telling you to check the obvious, but have you checked if

a) anything is present on the output pin (using an oscilloscope)

b) that the right IO pins are specified (and/or Rx/Tx directions are correct.

c) can you send a character independently of the xil_printf, just using the driver code?

d) Can you get a "Hello World" application to run on the hardware.

 

My guess is it should be something like a setup or config issue as I can't say I've had many problems with the UARTLite in the past

 

Simon

6 Replies
Voyager
Voyager
3,680 Views
Registered: ‎06-20-2017

Re: Unable to communicate with UARTLite IP Core using MicroBlaze

Jump to solution

I cannot help, but since nobody has answered, and based on the limited information, here are two quick things I'd look at:

 

1.  Try to use xil_printf exclusively (e.g., see print on line 98).

2.  Make sure bit 4 of the control register is a 0.

Adaptable Processing coming to an IP address near you.
0 Kudos
Contributor
Contributor
3,655 Views
Registered: ‎03-04-2016

Re: Unable to communicate with UARTLite IP Core using MicroBlaze

Jump to solution

Hi,

 

thanks a lot for you reply!

 

I checked the status register, bit 4 is 0 (interrupt disabled). I tried it again but my register TX_FIFO_EMPTY is always 1 while stepping into xil_printf()

 

 

registers.PNG
0 Kudos
Explorer
Explorer
3,635 Views
Registered: ‎07-14-2014

Re: Unable to communicate with UARTLite IP Core using MicroBlaze

Jump to solution

Hi,

 

My first thought from a very quick and cursory look at the code would be that you are using a xil_printf before initialising the UART.

 

Not sure if this is the cause or not, but it would make me suspicious.

 

Regards

 

Simon

 

0 Kudos
Contributor
Contributor
3,619 Views
Registered: ‎03-04-2016

Re: Unable to communicate with UARTLite IP Core using MicroBlaze

Jump to solution

Hi Simon,

 

thanks for your reply and your good eye!

 

I deleted the first xil_printf() in my code but after further successful init it's not possible to receive any data from UART.

 

Best regards

0 Kudos
Highlighted
Explorer
Explorer
5,878 Views
Registered: ‎07-14-2014

Re: Unable to communicate with UARTLite IP Core using MicroBlaze

Jump to solution

Apologies if I'm telling you to check the obvious, but have you checked if

a) anything is present on the output pin (using an oscilloscope)

b) that the right IO pins are specified (and/or Rx/Tx directions are correct.

c) can you send a character independently of the xil_printf, just using the driver code?

d) Can you get a "Hello World" application to run on the hardware.

 

My guess is it should be something like a setup or config issue as I can't say I've had many problems with the UARTLite in the past

 

Simon

Contributor
Contributor
3,416 Views
Registered: ‎03-04-2016

Re: Unable to communicate with UARTLite IP Core using MicroBlaze

Jump to solution

Thank you Simon for your advises.

 

After measurement I recognized my output is always 0. After checking schematic of eval board again I checked the UART-to-USB bridge. Then I recognized the UART reset pin (active low). I added it to my port map and forced it to 1. 

 

Now I successfully receive bytes from FPGA in TeraTerm and sending bitstream file for partial reconfiguration works very well!

 

Thanks you!

 

0 Kudos