• Content Count

  • Joined

  • Last visited

About Ajeeth_kumar

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hi @jpeyron, As you suggested to start with this C:\Xilinx\SDK\2018.3\data\embeddedsw\XilinxProcessorIPLib\drivers\uartns550_v3_5. I have already gone through that example provided by xilinx and tried running it. With this example as a base, I have started my project. So just by having a look at the example project is not going to help me out I guess. Regards Ajeeth Kumar
  2. Hi @jpeyron, Thanks for responding to my query. In my project i am using UART16550 IP, so inputs related to UART16550 will be helpful for me to proceed. Regards Ajeeth Kumar
  3. Hi, I am working on a project where i use four UART for an application, all four uart lines sends and receives approx. 20 bytes of characters and expects 20 bytes o character in every 16 milliseconds. And the data transfer will be continuous. NOTE : All four UARTs, are on PL side and controlled by PS of my zynq SoC.. NODE B : Zybo NODE A : Subsystem The UART communication is between NODE A and NODE B. NODE A sends data to NODE B, in turn NODE B should receive the data and reply with an acknowledgement. In this case NODE B is my Zybo Node A is another subsystem. So the data transmission is initiated by NODE A and the control is with NODE A. NODE A will Enable the data transmission for all four UARTs. Now the problem which i am facing is, when NODE A enables the transmission for any two of the UART lines the data transmission is smooth, the problem arises only when i enable the other two. Which means the zybo is not capable of attending to those interrupts which is simultaneously coming from NODE A through four UART lines. My data contains Start byte and Stop byte, Both Start and stop byte are same character. I will attach a my Interrupt handler for reference. **************NOTE************** UART IP on PL side : UART16550 Type of UART : Interrupt driven. Software used : Vivado 2018.3 and SDK Bare metal software. UART interrupt priority : equal priority for all four UARTs. ********************************** I am not very sure about how to use four UARTs efficiently with my Zybo . Please help me with the problem, any inputs from your side will be appreciated. The following is my UART interrupt handler. *************************************************************************** static void RW1RecvHandler(void *CallBackRef, unsigned int EventData) { int i, ch, RecvCount, index; RecvCount = EventData; // repeat this loop for all chars received, i.e., for all ReceivedCount i = 0; while (i < RecvCount) { ch = RW1_RecieveBuffer[i++]; // get the received char from the buffer if(RW1_Start_byte_flag == 1) { // Stop Byte Check for RW1 if (ch == 0xc0) { // Ignore one of the two successive start byte characters if (RW1_ReceivedCount > 1) { RW1_Start_byte_flag = 0; RW1_Buffer[RW1_ReceivedCount++] = ch; RW1_Frame_complete_flag = 1; } } else { if ((index = RW1_ReceivedCount) < TEST_BUFFER_SIZE) { RW1_Buffer[index] = ch; RW1_ReceivedCount++; } else RW1_Start_byte_flag = 0; } } // Start Byte Check for RW1 else if (ch == 0xc0) { RW1_Start_byte_flag = 1; RW1_ReceivedCount = 0; RW1_Buffer[RW1_ReceivedCount++] = ch; // Note the cpu time when first character is received XTime_GetTime(&t_start_RW1); RW1_Frame_complete_flag = 0; } } if(RW1_Frame_complete_flag == 0) { // set up the buffer for next char in interrupt mode XUartNs550_Recv(&RW1, RW1_RecieveBuffer, 1); } } Thanks & Regards Ajeeth Kumar
  4. Hi @jpeyron @xc6lx45, I'm glad to say that i have resolved the issue. The problem was in interrupt setup for UART, where i was calling send and receive function right after the initialization of each UART. I would like to thank you for sparing your time in solving my issue. Regards Ajeeth kumar
  5. Hi @xc6lx45 @jpeyron, I have found out where exactly the problem lies in my project. There's a problem in setting up of the interrupt for UART (PL side). I have integrated 4 number of UART16550 IP, where i have found that in interrupt setup only one UART16500 is setting up properly when it tries to initialize rest of the UART in software side the zybo hangs up. I guess i am not setting up the interrupt in a proper way. My project has Ethernet and UART16550 which works interrupt based. Below is my interrupt setup. interrupt_setup.c
  6. Hi @jpeyron Here is a link to my compressed Xilinx project --> https://drive.google.com/file/d/15HvUP4OmN7HSjwwvhAJ9DW-xC79KNIvr/view?usp=sharing Regards Ajeeth Kumar
  7. Hi @xc6lx45, Thanks for your suggestion. I was trying to give a delay of 2 seconds in the fsbl main function. still i didn't find any improvement with the delay. Kindly have a look at the attachments to know where exactly i add delay.
  8. Can i get your mail ID so that i can share the project to you personally.
  9. Hi Jon, Thanks for replying to my query,. As you suggested, i have already tried adding some delay of 5 seconds in the beginning of my C program's main function. I didn't find any difference by doing this activity. I will share you the link to my project very shortly
  10. Hi, I am working on a project where i'm using Digilent zybo AP SoC with xilinx vivado for Hardware design and Xilinx SDK for software design. My application uses following protocol/peripherals: 1. UARTns16550 PL side (Programmable Logic) in interrupt mode. 2. GPIOs 3. Ethernet mac (lwIP stack) I started my software design using xilinx lwip perf client application project. Then i started modifying the perf client C code according to my need. My project contains Uartns16550, tcp/ip server and client program which receives real-time data. So coming to my problem, i am able to run my application from xilinx sdk GDB and system debugger. But, when i dump my code in QSPI flash and try to boot, the zybo is not booting up. I also tried loading different application project like tcp perf server, perf client. By doing this the processor boots up properly through QSPI flash. I followed the steps provided by Digilent for programming the flash and i also ensured that the jumpers are in the right place where it has to be. I believe that there's a problem with my program since i have started modifying the tcp perf client code for my project. I am not getting a clue where my code is going wrong. Operating System : Windows 10 Software : Xilinx vivado 2018.3/SDK 2018.3 Any inputs related to this will be appreciated. Thanks & Regards Ajeeth kumar
  11. Hi Jon, As you suggested i have already followed the tutorial Zynq Server tutorial, still i was facing the problem. But later i found the mistake in Block Design, the ethernet MDIO pin was made Extended (EMIO), i connected MDIO pin to corresponding MDIO pin. Then the demo code started working. Thanks for your time. Regards Ajeeth Kumar
  12. Hi folks, I hope all is well with you. I am a newbie to zynq AP SoC. I started working with Digilent Zybo board, lwip ethernet echo server example. Problems facing. 1. Auto Negotiation failure if i set the link speed to auto in bsp. If i set link speed to 1000Mbps the program says that the ethernet link is down. 2. How to modify the echo server program where i can send and receive data to a specific ip address with specific port number as Server and also as client. I am using a Xilinx SDK version 2018.3 Operating system: Windows 10 Happy to hear a best possible solution from you folks. Thanks in advance. Regards Ajeeth kumar