Sridhar Prasath Aruppukottai Ganesan

Members
  • Content Count

    31
  • Joined

  • Last visited

Everything posted by Sridhar Prasath Aruppukottai Ganesan

  1. hello @JColvin Thanks for the reply and your support. I have been working on the interrupts for the past month. I think I have already found one possible solution for my query. But I think your support and help would be also very helpful in moving forward. I will definitely go through the content given in the link. Thank you.
  2. Greetings all, I have gone through the xuartlite interrupt system example many times.But still I could not able to understand the process of the example. My task : 1. A process will be continuously running in a while loop, 2. If an interrupt ( a string "RING") in the receiver buffer of uartlite occurs, the first process should stop and the interrupt handling process should occur. 3. After the interrupt handling, the first process should continue. Anybody having any idea how to resolve this? Thank you in advance. PS: If there is any clear explanation about the xilinx provided uartlite interrupt example anywhere in the internet, please kindly provide the link. It would be really helpful
  3. Dear @jpeyron i could also get the same ouput for uartlite interrupt example in my sdk. But I couldnt able to understand the code completely. There are some doubts in that code. 1. What are sendhandlers and recvhandlers? 2. Could you please just tell in simple words what are we exactly doing in that example? Your help is very much needed. Thank you
  4. suppose that, if i receive a string "RING" in the receiver buffer of UARTLITE, I have to enter the interrupt handler function. How should I define this interrupt?
  5. Greetings all, This might be a basic question about uartlite interrupt. lets assume that, we are going to use the uartlite in interrupt mode. 1. If we scugic interrupt, it will enter into interrupt handler function for each cycle(based on the timeout value). 2. If we use custom interrupt(user defined interrupt) , how will it enter the interrupt handler at the first place? "The interrupt handler should know that this is the reason(interrupt)why i am entering the interrupt handler function" ..right? 3. where will we define that interrupt? otherwise there is a great chance that it wont enter the interrupt handler function at all..right?
  6. Dear @jpeyron sorry to disturb you again. But I think that i have found the problem. There is nothing wrong about the initialization of uartlite or using multiple uarts. I will list out the problem i am facing . There is some problem with the coding . I dont know what that is. If you see the previous example with arduino, If I send some commands to GSM module,it will send some response.(only once) 1. Here in SDK, I have written some code for sending command "AT". Usually the response should be "OK" and it happens only one time(as you can see in the arduino code). Here, I am getting the response from the GSM but I have to give it in a while loop to get the response (see files: file1 and file4). I donno why I have to give in a while loop and it contain the correct response as well as some of the characters("T") from the given command("AT"). And since it is infinetely running, i could not take a screenshot. Thats y I stopped the cursor and took a photo. 2. For the next command "AT+CPIN?" , the response should be "+CPIN: READY". Here also , I have to give it in a WHILE loop to get the response back . And it contains some of the characters("T+CPIN?") from the given command. I dont know why that is happening. (see files: file2 and file3) 3. I tried to give the commands without the WHILE loop. Then I am not getting any correct response("+CPIN: READY") . I am getting only the characters("T+CPIN?") from the already given command.(see file5). I hope I have explained the problem to your proper understanding.
  7. Dear @jpeyron I might have found what is causing the problem. Ur valuable advice is needed. 1. As you can see from the uploaded image, the first xil_printf statements( xil_printf("AT");) is the command which needed to be sent to rx of uartlite_1 block(GSM module is connected). 2. But the default stdin and stdout of xilinx sdk is ps7_UART 1. So whatever the xil_printf statemets are, they are redirected towards uart 1(and not towards uartlite) . GSM module will only work if it receives commands from uartlite. I hope I have explained this clearly. 3. So I tried to change the stdin and stdout to uartlite so that the xil_printf statements are directed towards uartlite. But the problem is that now I am not able to view anything in the terminal. Is there a way to change the stdin and stdout to uartlte and still view the xil_printf statements?????? ur valuable advice is needed. Thank u in advance
  8. Greetings all, Usually, the default uart for xilinx sdk is ps7_uart1. But I want to use axi uartlite block as my stdin and stdout since I want to redirect the xil_printf statements to uartlite rx pin. Is that possible to change the stdin and stdout to axi uartlite and still view the printf statements in the terminal output???
  9. Dear @jpeyron Thanks for the reply. As far as I know, this does not require any ip customization and block modification. For your understanding, I thought it would be a good idea to post the arduino code as well. The module sagem HILOC works at a baudrate of 115200. 1. I have attached the screenshot of the arduino code for sending a simple command "AT" to GSM. For that, the reply from GSM would be "OK". PFA the file(file name: 1) 2. Hardware part(vivado): I thought of replicating the same in xilinx sdk. But here, the baudrate could be configured in vivado. So first, I have created AXI uartlite(baudrate 115200) and connected the pins rx and tx to JC2_N and JC2_P pins of JC connector. I have used zync block for processing the data. Finally, I have created a bitstream and exported the code to xilinx sdk. (file name: 4) 3. Software part(xilinx sdk): Then I have done a simple coding in xilinx sdk. I am sending "AT" to GSM. And expecting response "OK" from GSM.(file names:2 and 3) Note: First I used sleep function to create a delay. It doesnt seem to be working. Hence I have created a manual delay. So I have created a simple timer which goes inside the loop and count the seconds.(Its functionality is checked in other codes as well). I could not able to find what I am doing wrong. I have tried to change the stdin and stddout (bsp settings) to axi_uartlite_1, the block i m using for GSM module. Its also not working. Please help me with this process. If the staff members have any idea about this, I would be really thanful to them.
  10. yaaa sure...... 1. I will share the link which will help to get the response from gsm module when connected with ARDUINO... https://stackoverflow.com/questions/36884514/get-at-command-response Just have a look at it ,so that you will get a flow of what is happening. And I will also share the datasheet as well.. 2. This is the link for the user manual of HILO module. https://fccid.io/VW3HILOC/User-Manual/Users-Manual-965333 I will also attach AT commands list in a file and what will be the response from the GSM module. PFA the file. Just have a look at it and help me in this process. AT Command Set for SAGEMCOM Hilo3G Module draft 0.2.pdf
  11. hello @jpeyron I will check the datasheet of the GSM module. I am using sagem HILO module...
  12. hi @jpeyron Thanks for your reply. The code I have designed is printing the streaming data and I have managed to parse the data (latitude,longitude,time,date etc) and store it in the memory. Infact, that is what I needed to do with pmodgps by connecting pmodgps ip. But unfortunately, for vivado 2017.4, I think there is a problem with pmodgps ip . So I decided to do it with AXI uartlite Ip and do manual coding . Even there is no problem with pmodgps ip, have managed to collect the data with my code and my purpose has been served. So, I dont need to do it with pmodgps IP anymore. My next task is to send the data to server via gsm module. So if you have your valuable time,please have a look at my querry about my GSM module. Warm regards, Sridhar Prasath
  13. Hi @jpeyron Thanks for the reply. You are the one who is replying to my question every time. Thank you so much. I have used pmodgps ip and ran the sample code ...It didnt work for me. I have waited for almost half an hour near the window. Instead, I have created AXI UARTLITE IP and connected the tx and rx pins of gps module and created a manual custom code to parse the streaming data. Now its perfectly working with my manual code. Thank you again. If you have time, try to look at my next post about GSM module. I am really trying to find the answer for the past 10 days. Thank you in advance.
  14. Hello @xc6lx45 Thanks for ur reply. Its completely dependent on the GSM module. And I have verified the loopback test as well. They are perfectly working. The response should be from the tx pin of GSM module. I have to send some commands from tx pin of UART of zedboard. And I should receive some response from the GSM module from the tx pin of GSM to the rx of zedboard. I think I have explained my doubt clearly in the above post. Please go through the post once again and do the needful \
  15. Greetings, My project is to send some data to http server from zedboard via GSM module(through AT commands). I have designed the hardware connection in vivado (conected rx,tx,vcc and gnd pins in JB connector) . I have set the baudrate to 115200(for module hilo) and I think I am sure that the tx and rx pins are perfectly working. Now my question is how to send AT commands to GSM module. For those who dont know about GSM module , I ll just brief about its working. Basically in GSM modules, if some characters(AT COMMANDS) are typed and sent , the GSM module will respond with some characters. For example, 1. If I type 'A','T' (2 characters in this case) , the response from GSM module will be OK('O','K') 2. If I type 'A','T','+','C','P','I','N','?' (7 characters), the response will be 'C','P','I','N',':','R','E','A','D','Y' (CPIN:READY) So basically I have to send some commands from tx pin of zedboard to rx pin of GSM module. And I have to receive some response from tx pin of GSM to rx pin of zedboard. Hope everybody gets the basic idea.(only for those who doesnt know abt GSM module. Not for pros😀) So I have wrote some code, which will send the commands to the baseaddress of UARTLITE ( I have used AXI UARTLITE for this module). The problem is that I m sending the data to the UARTLITE address and searching for the response from the same UARTLITE baseaddres. But I dont know from which address to read the response back.. Hope all got my question. For your convenience, I will post some part of the code. unsigned char Sender1[] = {'A','T','\0'}; unsigned char Sender2[] = {'A','T','D','+','4','9','1','7','6','3','0','1','7','4','8','1','4',';','\0'}; int Index =0; int i = 0; int u=0; SendBuffer[Index]='\0'; RecvBuffer[Index]='\0'; while(Sender != '\0'){ for (Index = 0; Index < TEST_BUFFER_SIZE; Index++) { SendBuffer[Index] = Sender[i+Index]; XUartLite_SendByte(UARTLITE_BASEADDR, SendBuffer[Index]); } for (Index = 0; Index < TEST_BUFFER_SIZE; Index++) { RecvBuffer[Index] = XUartLite_RecvByte(UARTLITE_BASEADDR); Receiver[i+Index] = RecvBuffer[Index]; } i = i + TEST_BUFFER_SIZE; u++;
  16. Hello all, I have connected PmodGps to JA connector of zedboard. I have downloaded the pmod example code(Microblaze) and did a little modification for Zynq devices. The code is listed below. For some reasons the code does not seem to be working. (The build is finished but there is blank terminal. Its not going inside that while loop. Probably because GPS.Ping does not get any data). And there is a minor warning in one of the files of BSP (bsp -> ps7_coretexa9_0 -> libsrc -> PmodGps_v1_1 - > src - PmodGPSselftest.c). I have attached the screenshots for better understanding. Please help me with this. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- /************ Include Files ************/ #include "PmodGPS.h" #include "xil_cache.h" #include "xparameters.h" #include "xil_printf.h" /************ Macro Definitions ************/ #ifdef XPAR_CPU_CORTEXA9_0_CPU_CLK_FREQ_HZ #define PERIPHERAL_CLK 100000000 // FCLK0 frequency is not in xparameters.h for some reason #else #define PERIPHERAL_CLK XPAR_CPU_M_AXI_DP_FREQ_HZ #endif /************ Function Prototypes ************/ void DemoInitialize(); void DemoRun(); /************ Global Variables ************/ PmodGPS GPS; /************ Function Definitions ************/ int main(void) { DemoInitialize(); DemoRun(); return 0; } void DemoInitialize() { GPS_begin(&GPS, XPAR_PMODGPS_0_AXI_LITE_GPIO_BASEADDR , XPAR_PMODGPS_0_AXI_LITE_UART_BASEADDR, XPAR_CPU_CORTEXA9_0_CPU_CLK_FREQ_HZ); GPS_setUpdateRate(&GPS, 1000); } void DemoRun() { while (1) { if (GPS.ping) { GPS_formatSentence(&GPS); if (GPS_isFixed(&GPS)) { xil_printf("Latitude: %s\n\r", GPS_getLatitude(&GPS)); xil_printf("Longitude: %s\n\r", GPS_getLongitude(&GPS)); xil_printf("Altitude: %s\n\r", GPS_getAltitudeString(&GPS)); xil_printf("Number of Satellites: %d\n\n\r", GPS_getNumSats(&GPS)); } else { xil_printf("Number of Satellites: %d\n\r", GPS_getNumSats(&GPS)); } GPS.ping = FALSE; } } } -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  17. Hello all, If I need to access the OCM from PL side, do I need to create any specific blocks like AXI CDMA?? I need to store the incoming data from Axi Uartlite in OCM. How should i access it? What are the IP blocks required to connect in the hardware design? And What is the difference between OCM and DDR?? Which memory should i use to store the incoming data from the uartlite? Note: I searched this question . And I didnt find any suitable answer related to my question. Please help me with this.
  18. Dear @jpeyron I think I have found the solution for this question. I have followed your instructions and it started working. Thank you for your response. You are of great help.
  19. Dear @jpeyron Thanks for your response. I think I have solved this part. I physically created a loopback between tx and rx wires and the example started working. Thank you so much. You are of great help.
  20. Dear @jpeyron I think I did not do that. could u please explain why should i do that and what is that purpose? or is there any link to explain that? Is it necessary to make that connection to view the incoming data on the Pc terminal? Note: Do i have to connect both tx and rx pins(I m using JA2 and JA4 of JA connector) physically with a wire to facilitate the operation
  21. Hello @jpeyron Thanks for your reply..I have used AXI uartlite port for connecting the gps module on JA connector and i have modified the constraints file as well. And this gps module works on 9600 baudrate. I have changed that also. Finally i hvae changed stdin and stdion as AXI UARTLITE 0 in BSP settings. But I have an EMPTY TERMINAL. If i use UART1 as stdin and stdout, then UARTLITE TEST HAS BEEN FAILED and its been displayed in the terminal. But for axi uartlite stdin and stdout, i m getting nothing. I have attached the corresponding screenshots for your reference. Thank you in advance
  22. Greetings all, This might be a basic question. I have connected a GPS module (gtpa010) tx and rx pins to UART0 port(EMIO pins JA2 and JA4 of JA connectors). Its baud rate is 9600. So i have changed the baudrate to 9600 in the configuration of UART0. So i have created the hardware design, added the constraints for the EMIO pins. set_property PACKAGE_PIN AA11 [get_ports UART_0_rxd] set_property PACKAGE_PIN AA9 [get_ports UART_0_txd] set_property IOSTANDARD LVCMOS25 [get_ports UART_0_*] set_property PULLDOWN true [get_ports UART_0_*] So I have exported the hardware and launched the SDK and created basic program for viewing the serial data coming on UART0. I have attached the program as well. I donno whether it is correct or not. What should i do to view the serial data on PC terminal that has been coming through UART 0.?? int main() { XUartPs_Config *Uartpsconfig; XUartPs myuartps; int Status; init_platform(); Uartpsconfig= XUartPs_LookupConfig(XPAR_PS7_UART_0_DEVICE_ID); XUartPs_CfgInitialize(&myuartps, Uartpsconfig, Uartpsconfig->BaseAddress); while(1){ Status= XUartPs_SelfTest(&myuartps); printf("gps data : %d", Status); cleanup_platform(); return 0; } } This might me wrong .So help me with this
  23. hello @jpeyron I have attached the screenshot. But i m not sure whether it is understandable or not. I will try to explain few points from the design 1. uartlite_0 is for GPS module. only writing to DDR memory is required. so i connected tx pin only to s2mm port. 2. uartlite_1 is for GSM. reading and writing r required. so connected both rx and tx pins. 3. Need two write channels for writing data. Hence I implemented TWO Axi DMA blocks. 4. connected external interface ports to make connection to the pmod connectors. Please help me with this if my understanding is wrong.
  24. hey @jpeyron this is going to be a baremetal project. I tried using the AXI uartlite for both modules. I tried connecting the AXI UARTLITE port with direct memory access port(S_AXI_S2MM) to access the DDR memory. But I think both UARTLITE and S_AXIS_S2MM configurations are different. So i could not make a connection between these ports. I could connect only tx pin of AXI Uartlite and s_axis_s2mm_tdata pin of S_AXIS_S2MM Port. And all other pins were left unconnected and the port S_AXIS_S2MM is left unconnected. So I think because of that, it had thrown some error. And if i want to use AXI UARTLITE for both of them, where do i specify to which pins its been connected to. Do i need to create CREATE INTERFACE PORT for each of the AXI_UARTLITES and specify them in the constraints file ??? Note: Is my way of using AXI Direct memory access to access the DDR memory is correct(While using AXI UARTLITE blocks)??
  25. Dear @jpeyron Thank you so much for your response. I would really need your help. 1. I am using GTPA010 Gps module and I am going to connect on pmod connectors(Tx pins and Rx pins on JA2 and JA4 and ground seperately). The Gps module has external power supply. So think it wont need vcc. 2. For GSM module, the connection is almost same as GPS module(Any other pmod connector among JB,JC,JD and maybe JE on the PS side). 3. One of the tasks is to collect the GPS data and store it in the internal memory of zedboard. I have to collect the GSM data(cellId , base stations etc) as well. 4. Whenever requested , the gps data on the internal memory should be sent to a remote server via GSM. I donno how to start with hardware design. I m planning to use UART0 and UART1 for both these pmod connections. Please help me with this hardware design