Search the Community

Showing results for tags 'cmod a7'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • News
    • New Users Introduction
    • Announcements
  • Digilent Technical Forums
    • FPGA
    • Digilent Microcontroller Boards
    • Non-Digilent Microcontrollers
    • Add-on Boards
    • Scopes & Instruments
    • LabVIEW
    • Other
  • General Discussion
    • Project Vault
    • Learn
    • Suggestions & Feedback
    • Buy, Sell, Trade
    • Sales Questions
    • Off Topic
    • Educators
    • Technical Based Off-Topic Discussions

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start





Website URL







Found 31 results

  1. yorees11

    Interrupts Not Working in Microblaze

    Hi all, I have been working with the CMOD A7 board using vivado 2018 and sdk. I have been trying to get the microblaze soft core to respond to the interrupts generated by the peripherals. I started with the timer but have since moved simpler to the uart. I have connected my hardware as shown here. And the code that I am testing is an imported example from drivers board support package. Specifically, it is the one from the uartlite and it is the interrupt exapmle. /****************************************************************************** * * Copyright (C) 2002 - 2015 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * Use of the Software is limited solely to applications: * (a) running on a Xilinx device, or * (b) that interact with a Xilinx device through a bus or interconnect. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * * Except as contained in this notice, the name of the Xilinx shall not be used * in advertising or otherwise to promote the sale, use or other dealings in * this Software without prior written authorization from Xilinx. * ******************************************************************************/ /******************************************************************************/ /** * * @file xuartlite_intr_example.c * * This file contains a design example using the UartLite driver (XUartLite) and * hardware device using the interrupt mode. * * @note * * The user must provide a physical loopback such that data which is * transmitted will be received. * * MODIFICATION HISTORY: * <pre> * Ver Who Date Changes * ----- ---- -------- ----------------------------------------------- * 1.00a jhl 02/13/02 First release * 1.00b rpm 10/01/03 Made XIntc declaration global * 1.00b sv 06/09/05 Minor changes to comply to Doxygen and coding guidelines * 2.00a ktn 10/20/09 Updated to use HAL Processor APIs and minor changes * for coding guidelnes. * 3.2 ms 01/23/17 Added xil_printf statement in main function to * ensure that "Successfully ran" and "Failed" strings * are available in all examples. This is a fix for * CR-965028. * </pre> ******************************************************************************/ /***************************** Include Files *********************************/ #include "xparameters.h" #include "xuartlite.h" #include "xintc.h" #include "xil_exception.h" #include "xil_printf.h" /************************** Constant Definitions *****************************/ /* * The following constants map to the XPAR parameters created in the * xparameters.h file. They are defined here such that a user can easily * change all the needed parameters in one place. */ #define UARTLITE_DEVICE_ID XPAR_UARTLITE_0_DEVICE_ID #define INTC_DEVICE_ID XPAR_INTC_0_DEVICE_ID #define UARTLITE_INT_IRQ_ID XPAR_INTC_0_UARTLITE_0_VEC_ID /* * The following constant controls the length of the buffers to be sent * and received with the UartLite device. */ #define TEST_BUFFER_SIZE 100 /**************************** Type Definitions *******************************/ /***************** Macros (Inline Functions) Definitions *********************/ /************************** Function Prototypes ******************************/ int UartLiteIntrExample(u16 DeviceId); int SetupInterruptSystem(XUartLite *UartLitePtr); void SendHandler(void *CallBackRef, unsigned int EventData); void RecvHandler(void *CallBackRef, unsigned int EventData); /************************** Variable Definitions *****************************/ XUartLite UartLite; /* The instance of the UartLite Device */ XIntc InterruptController; /* The instance of the Interrupt Controller */ /* * The following variables are shared between non-interrupt processing and * interrupt processing such that they must be global. */ /* * The following buffers are used in this example to send and receive data * with the UartLite. */ u8 SendBuffer[TEST_BUFFER_SIZE]; u8 ReceiveBuffer[TEST_BUFFER_SIZE]; /* * The following counters are used to determine when the entire buffer has * been sent and received. */ static volatile int TotalReceivedCount; static volatile int TotalSentCount; /******************************************************************************/ /** * * Main function to call the UartLite interrupt example. * * @param None * * @return XST_SUCCESS if successful, XST_FAILURE if unsuccessful * * @note None * *******************************************************************************/ int main(void) { int Status; /* * Run the UartLite Interrupt example, specify the Device ID that is * generated in xparameters.h. */ Status = UartLiteIntrExample(UARTLITE_DEVICE_ID); if (Status != XST_SUCCESS) { xil_printf("Uartlite interrupt Example Failed\r\n"); return XST_FAILURE; } xil_printf("Successfully ran Uartlite interrupt Example\r\n"); return XST_SUCCESS; } /****************************************************************************/ /** * * This function does a minimal test on the UartLite device and driver as a * design example. The purpose of this function is to illustrate * how to use the XUartLite component. * * This function sends data and expects to receive the same data through the * UartLite. The user must provide a physical loopback such that data which is * transmitted will be received. * * This function uses interrupt driver mode of the UartLite device. The calls * to the UartLite driver in the handlers should only use the non-blocking * calls. * * @param DeviceId is the Device ID of the UartLite Device and is the * XPAR_<uartlite_instance>_DEVICE_ID value from xparameters.h. * * @return XST_SUCCESS if successful, otherwise XST_FAILURE. * * @note * * This function contains an infinite loop such that if interrupts are not * working it may never return. * ****************************************************************************/ int UartLiteIntrExample(u16 DeviceId) { int Status; int Index; /* * Initialize the UartLite driver so that it's ready to use. */ Status = XUartLite_Initialize(&UartLite, DeviceId); if (Status != XST_SUCCESS) { return XST_FAILURE; } /* * Perform a self-test to ensure that the hardware was built correctly. */ Status = XUartLite_SelfTest(&UartLite); if (Status != XST_SUCCESS) { return XST_FAILURE; } /* * Connect the UartLite to the interrupt subsystem such that interrupts can * occur. This function is application specific. */ Status = SetupInterruptSystem(&UartLite); if (Status != XST_SUCCESS) { return XST_FAILURE; } /* * Setup the handlers for the UartLite that will be called from the * interrupt context when data has been sent and received, specify a * pointer to the UartLite driver instance as the callback reference so * that the handlers are able to access the instance data. */ XUartLite_SetSendHandler(&UartLite, SendHandler, &UartLite); XUartLite_SetRecvHandler(&UartLite, RecvHandler, &UartLite); /* * Enable the interrupt of the UartLite so that interrupts will occur. */ XUartLite_EnableInterrupt(&UartLite); /* * Initialize the send buffer bytes with a pattern to send and the * the receive buffer bytes to zero to allow the receive data to be * verified. */ for (Index = 0; Index < TEST_BUFFER_SIZE; Index++) { SendBuffer[Index] = Index; ReceiveBuffer[Index] = 0; } /* * Start receiving data before sending it since there is a loopback. */ XUartLite_Recv(&UartLite, ReceiveBuffer, TEST_BUFFER_SIZE); /* * Send the buffer using the UartLite. */ XUartLite_Send(&UartLite, SendBuffer, TEST_BUFFER_SIZE); /* * Wait for the entire buffer to be received, letting the interrupt * processing work in the background, this function may get locked * up in this loop if the interrupts are not working correctly. */ while ((TotalReceivedCount != TEST_BUFFER_SIZE) || (TotalSentCount != TEST_BUFFER_SIZE)) { } /* * Verify the entire receive buffer was successfully received. */ for (Index = 0; Index < TEST_BUFFER_SIZE; Index++) { if (ReceiveBuffer[Index] != SendBuffer[Index]) { return XST_FAILURE; } } return XST_SUCCESS; } /*****************************************************************************/ /** * * This function is the handler which performs processing to send data to the * UartLite. It is called from an interrupt context such that the amount of * processing performed should be minimized. It is called when the transmit * FIFO of the UartLite is empty and more data can be sent through the UartLite. * * This handler provides an example of how to handle data for the UartLite, * but is application specific. * * @param CallBackRef contains a callback reference from the driver. * In this case it is the instance pointer for the UartLite driver. * @param EventData contains the number of bytes sent or received for sent * and receive events. * * @return None. * * @note None. * ****************************************************************************/ void SendHandler(void *CallBackRef, unsigned int EventData) { TotalSentCount = EventData; } /****************************************************************************/ /** * * This function is the handler which performs processing to receive data from * the UartLite. It is called from an interrupt context such that the amount of * processing performed should be minimized. It is called data is present in * the receive FIFO of the UartLite such that the data can be retrieved from * the UartLite. The size of the data present in the FIFO is not known when * this function is called. * * This handler provides an example of how to handle data for the UartLite, * but is application specific. * * @param CallBackRef contains a callback reference from the driver, in * this case it is the instance pointer for the UartLite driver. * @param EventData contains the number of bytes sent or received for sent * and receive events. * * @return None. * * @note None. * ****************************************************************************/ void RecvHandler(void *CallBackRef, unsigned int EventData) { TotalReceivedCount = EventData; } /****************************************************************************/ /** * * This function setups the interrupt system such that interrupts can occur * for the UartLite device. This function is application specific since the * actual system may or may not have an interrupt controller. The UartLite * could be directly connected to a processor without an interrupt controller. * The user should modify this function to fit the application. * * @param UartLitePtr contains a pointer to the instance of the UartLite * component which is going to be connected to the interrupt * controller. * * @return XST_SUCCESS if successful, otherwise XST_FAILURE. * * @note None. * ****************************************************************************/ int SetupInterruptSystem(XUartLite *UartLitePtr) { int Status; /* * Initialize the interrupt controller driver so that it is ready to * use. */ Status = XIntc_Initialize(&InterruptController, INTC_DEVICE_ID); if (Status != XST_SUCCESS) { return XST_FAILURE; } /* * Connect a device driver handler that will be called when an interrupt * for the device occurs, the device driver handler performs the * specific interrupt processing for the device. */ Status = XIntc_Connect(&InterruptController, UARTLITE_INT_IRQ_ID, (XInterruptHandler)XUartLite_InterruptHandler, (void *)UartLitePtr); if (Status != XST_SUCCESS) { return XST_FAILURE; } /* * Start the interrupt controller such that interrupts are enabled for * all devices that cause interrupts, specific real mode so that * the UartLite can cause interrupts through the interrupt controller. */ Status = XIntc_Start(&InterruptController, XIN_REAL_MODE); if (Status != XST_SUCCESS) { return XST_FAILURE; } /* * Enable the interrupt for the UartLite device. */ XIntc_Enable(&InterruptController, UARTLITE_INT_IRQ_ID); /* * Initialize the exception table. */ Xil_ExceptionInit(); /* * Register the interrupt controller handler with the exception table. */ Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT, (Xil_ExceptionHandler)XIntc_InterruptHandler, &InterruptController); /* * Enable exceptions. */ Xil_ExceptionEnable(); return XST_SUCCESS; } The problem is that the code gets stuck in the while loop (as it did with the other interrupt examples) and is always waiting for the interrupt. In either case the event that triggers the interrupt has occurred and the interrupt signal goes high but the controller never acknowledges the interrupt nor runs the handler. I am needing some help as to what is going wrong here and I'm not sure if its the hardware or software. Thanks,
  2. Hi All, I have recently downloaded Vivado 2018.2 and begun playing around with CMOD A7 35T. I did the the blinky tutorial and then just finished Cmod A7 Programming Guide. At the end of which, I programmed the button project into the flash memory of the device. I then disconnected the device and plugged it back in to verify the code was loaded onto the device on startup. The code indeed loaded and I can light the LEDs with the corresponding button; however, now my host pc cannot find the target device anymore. I tried restarting Vivado and plugging and unplugging the FPGA board and nothing seems to get it to show up in the hardware manager wizard or autoscan. I'm pretty new to FPGA programming so I could use some help to get my board reconnected and the program in Flash erased. Thanks
  3. Hello! I am started to create an application with Vivado 18.1 on Cmod A7 board with microblaze and 2 Pmod NAV IP. I downloaded these from Digilents's repository. After I successfully generated the bitstream from the hardware design, I exported and launched the Vivado SDK. I got the following error: 14:51:02 ERROR : (XSDB Server)ERROR: [Hsi 14:51:02 ERROR : (XSDB Server)55-1550] Repository Directory C:/Users/L1/Documents/vivado_projects/project_x/project_x.sdk/szstem_wrapper_hw_platform_3/drivers doesn't exist in the disk 14:51:02 ERROR : Failed to openhw "C:/Users/L1/Documents/vivado_projects/project_x/project_x.sdk/szstem_wrapper_hw_platform_3/system.hdf" Reason: ERROR: [Common 17-39] 'hsi::open_hw_design' failed due to earlier errors. 14:51:02 ERROR : Unable to create Hardware Specification Project with specification file: C:/Users/L1/Documents/vivado_projects/project_x/project_x.sdk/szstem_wrapper.hdf After I googled a bit, this error seems for me to be related to this post . As I think, the Vivado failed to generate the hardware properly. Please give me some instruction to handle this error with the PmodNAV IP My full Vivado project is available here and Thank You for the help.
  4. Tim H

    CMOD A7 Schematic Rev B.1

    Hi All, Does anyone know the source of the signal "GCLK" on the Cmod A7? The source for "GCLK" appears to be "usb_12MHz" ... however, there is no reference to this signal on the schematic (as far as I can tell). At first, I thought "GCLK" was driven by the 100MHz oscillator, then I noticed that this component was a "no-load", sure enough, I can measure a 12MHz signal directly on the board and the timing of my strobes validates that. Does anyone have any insight? Many thanks, Tim.
  5. smarano

    FTDI Drivers Issue

    Hi, I'm using an CMOD A7 board that use an FT2232HQ USB-UART bridge. I have installed the driver from FTDI Chip Community and all work perfectly but sometimes there is an issue. I have about 10 board, if i connect one to pc and try to communicate with it, all work, sometimes if i disconnet this board and connect another the Pc recognized it but i can't communicate with it. I don't know why but to bypass this issue i need to open device manager and uninstall the USB Composite Device Driver and install it again and all work correctly. This is an issue because i won't to do this procedure each time that the problem occurs. Anyone can help me? Regards Stefano
  6. Weevil

    32bit data transfer using uartlite

    Hi all, actual i try to transfer a data stream from the DMA via uart to my PC. In my design an DDS-compiler generates a 32bit sine wave, which should be transfered via uart and read by a python script. The general data transfer works, but sometimes i get some noisy signal. This signal happens also when using a lower sample rate. For the uart data transfer actual i did not add any marker where the 32 bit value begins or ends. So i expect this is the problem, but i don't know how to include this in my SDK and python code. Maybe any suggestion? (The FPGA design is similar to my previous post using the Cmod A7) Plot of the result with pyqtgraph: SDK code: int XAxiDma_Poll_Uart(u16 DeviceId) { int Status, Index; int Tries = NUMBER_OF_TRANSFERS; u32 *RxBufferPtr; u32 *RxPacket; u8 BytesSent; RxBufferPtr = (u32 *) RX_BUFFER_BASE; RxPacket = (u32 *) RX_BUFFER_BASE; for (Index = 0; Index < MAX_PKT_LEN_WORDS; Index ++) { RxBufferPtr[Index] = 0xCC; } /* Flush the SrcBuffer before the DMA transfer, in case the Data Cache is enabled*/ Xil_DCacheFlushRange((u32)RxBufferPtr, MAX_PKT_LEN); Status = XAxiDma_SimpleTransfer(&AxiDma, (u32) RxBufferPtr, MAX_PKT_LEN, XAXIDMA_DEVICE_TO_DMA); if (Status != XST_SUCCESS) {return XST_FAILURE;} while (XAxiDma_Busy(&AxiDma, XAXIDMA_DEVICE_TO_DMA)) {/* Wait*/} /* Invalidate the TestBuffer before receiving the data, in case the Data Cache is enabled*/ Xil_DCacheInvalidateRange((u32)RxPacket, MAX_PKT_LEN); //send data to uart BytesSent = XUartLite_Send(&UartLite, RX_BUFFER_BASE, sizeof(RxPacket)); while (XUartLite_IsSending(&UartLite)) {/*Wait*/} return XST_SUCCESS; } Python code: import numpy as np import sys import serial buffersize = 512 byte_number = 4 ser = serial.Serial( port='COM6',\ baudrate=921600,\ parity=serial.PARITY_NONE,\ stopbits=serial.STOPBITS_ONE,\ bytesize=serial.EIGHTBITS,\ timeout=0) for u in range(20): #read serial buffer s = #convert to integer for i in range (int(len(s)/byte_number)): res_value = dataSerial[(i*byte_number):((i+1)*byte_number)] value = int.from_bytes(res_value, byteorder='little', signed = True) dataSerialFormated = np.append(dataSerialFormated, value)
  7. Benmo

    CMOD A7 Programming Guidance

    Hi, I have very little experience with programming FPGA's so recently purchased a CMOD A7 to teach myslef. I have followed the tutorial on LED Button and it worked fine. What i would like to do next create a sketch that turns on the LED when a pin goes HIGH and then once I understand how to do this output a pin HIGH when another goes HIGH. Below is the file used for the LED when button is pressed. Where can I go to learn how to do this? In the code below what does `timescale 1ns / 1ps do? `timescale 1ns / 1ps module btn_led( input [1:0]btn, // Button inputs output [1:0]led // Led outputs ); // Assign each btn to it's respective led assign led = btn; endmodule
  8. John_Anacall

    Questions about how to use UART

    Once again I'm sorry if I'm asking what can be considered silly questions, but I'm diving into the FPGA world by myself and I'm having serious dificulties finding documentation or examples that fit my questions. I'm using a Cmod A7 and I want to develop a GUI to let the user define some parameters. Through what I've been researching I believe the way to do it is using UART with the micro usb of the board. I've seen some examples of UART implementations, some I found in responses here on the forum, but due to my lack of knowledge it seems to me they lack important things so I could understand them. So I'll ask two questions: 1 - I believe that if I want to let the user change some parameter, that parameter must be a register and I need to know its adress. But how do I define the adress of that register? I haven't been able to find any example for this. 2 - It seems that the Cmod A7 has two UART ports according to the XDC file, so exactly how am I supposed to use them? Will that make a diference from examples like this one? João
  9. anurag

    create delay in verilog in cmod a7

    hello, i am using cmod a7. i am trying to blink the led at 1 sec delay(using verilog language). please help me with the code and also let me know the frequency we will be using to create delay and at which pin will it be available.
  10. I have an Arty-35 evaluation board that came with a device-locked, node-locked Vivado license. (BTW, the board and tools are very nice). Does my limited Vivado license also cover programming the Cmod A7: Breadboardable Artix-7 FPGA Module which also uses an Artix-7 A7-35T FPGA component? I think they're the same Artix-7 device, so it seems like it should work. I'd like to purchase one of these Cmod A7 FPGA DIP devices, but I want to be sure my Vivado license will cover it.
  11. anurag

    ethernet with cmod A7

    hello, i want to know whether or not it is possible to connect ethernet port to CMOD A7. as number of input output lines are restricted .if yes then how?
  12. Hi folks, I'm using some very basic examples with Cmod A7, which work in the sense that they result in a behaving FPGA. However, I'm trying to get rid of, or at, least understand the various warnings. One warning that occurs for all examples I tried is: CFGBVS-1#1 Warning Missing CFGBVS and CONFIG_VOLTAGE Design Properties Neither the CFGBVS nor CONFIG_VOLTAGE voltage property is set in the current_design. Configuration bank voltage select (CFGBVS) must be set to VCCO or GND, and CONFIG_VOLTAGE must be set to the correct configuration voltage, in order to determine the I/O voltage support for the pins in bank 0. It is suggested to specify these either using the 'Edit Device Properties' function in the GUI or directly in the XDC file using the following syntax: ... OK, I see where to set them in the Tools > Edit Device Properties window, but I'm not sure what to set them to for the Cmod A7. Available values are: CONFIG_VOLTAGE: 1.5, 1.8, 2.5, 3.3 CFGBVS (Configuration Bank Voltage Selection): GND, VCC0 ... but I'm not too inclined to just experiment with different values, for fear of doing some damage. (Though somehow, the default blank settings appear to work, other than the warning message.) Questions: Do these settings set something in the FPGA configuration, or do they merely inform Vivado of the hardware's design? Does the specific wiring of this board impose/require only certain values for these items, or can alternatives be chosen? What is/are those settings, and under what circumstances do you use them? This appears to relate: Also ug470_7series_Config.pdf, "Configuration Banks Voltage Select" section. I note on the Cmod A7 schematic that: CONFIG block of IC2 (FPGA): Various xxx_0 inputs (ie: bank 0) are wired to 3.3V signals CFGBVS_0 is externally pulled up to 3.3V POWER block of IC2 shows VCCO_0 and VCCO_14 wired to 3.3V So my guess is that the settings should be: CONFIG_VOLTAGE: 3.3 CFGBVS (Configuration Bank Voltage Selection): VCC0 (selects high range of I/O voltages) I infer that these are actually fixed requirements of the Cmod A7, and if so, maybe they could be set in the board definition file or the default XDC file? Thoughts? Thanks. Graham
  13. gwideman

    Source for Cmod A7 Stopwatch demo?

    I'm wondering where do we find the source for the Cmod A7 Stopwatch demo? One the demo's page ( I can only find links for the bit and bin files. Since this is the only one of the Cmod A7 demos that exercises the pins (as opposed to on-board features), it would be useful to have a known-good demo project to modify. Thanks!
  14. Hi, I am trying to make conventional FT2232H JTAG work with the CMOD A7. The method is standard and has been used for many years (e.g. xc3sprog.exe), my code works with many other boards, including the Digilent-licensed adapters sold by Trenz-Elektronik. My board itself is functional (Vivado Hardware manager recognizes it correctly), but I can't get my own JTAG code to work: The data readback pin of the JTAG interface appears to be stuck on HIGH. Any attempt to read IDCODE, or loop data through BYPASS mode, returns all-ones 0xFF. Unfortunately, there is a missing page in the schematic: The TMS, TCK, TDI_FPGA and TDO_FPGA lines (page 2 quadrant B2) seem to go nowhere. My question: Can you please provide the necessary information to make a "conventional" FTDI JTAG interface work with this board? It would be a very interesting module, but I need my own JTAG ... Maybe I'm missing only some GPIO settings for the remaining pins of the FT2232H bank, but without documentation there isn't much I can do.
  15. Raphael Christian

    CMOD A7 System Generator

    Hi, Can I use a CMOD A7 to run co-simulations using Vivado System Generator? In previous versions of System Generator it was possible to add custom boards. Is there a way to do it in Vivado?
  16. Hi All, I have the Cmod A7 35T, downloaded Vivado 2016.4, and I am on Windows 7 OS. When I go into the hardware manager I can connect to the localhost (connect_hw_server) but when I attempt open_hw_target I get the following error in the Tcl Console: Error: [Labtoolstcl 44-469] There is no hw_target. I've checked to make sure that my device drivers are up to date. I'm just using a standard micro-usb cable that I had in my house. According to Digilent, I don't need a special USB cable. Any help or advice you could provide would be extremely appreciated. Thanks! Edit: I've tried a few more things and want to provide some more information. I've uninstalled and reinstalled Vivado. When I reinstalled it I made sure that "Install Cable Drivers" was selected. I went into Device Manager and made sure my drivers were up to date. There was even an iteration where I uninstalled the drivers and manually installed them from the command line. When I plug in my Cmod A7, the out of box demo is already loaded on the board. I can click button 0 and the LEDs "count" as expected. I have Tera Term and I can click button 2. Tera Term then displays the Memory Test Application as expected.
  17. smarano

    Program CMod A7 35T without Vivado

    Hi, I have a question, there is a way to programm my Cmod A7 without Vivado->Hardware Manager? I got some issues with Vivado, sometime crash. Another question is, there is a way to separate programming phases? At moment i have a download.bit, firmware.srec and data.txt, with hardware manager i have fused them in firmware.mcs and have flashed it in my SPI Flash. There is a way to program my flash only with download.bit and firmware.srec and later with data without overriding the other memory banks? Kind Regards Stefano
  18. Hi all, I have an interrupt that is generated by a custom ip and when it is triggered, I read a register from the custom ip and read from the pmod sf3 to write those values back to the custom ip. However the interrupt gets stuck and won't return to the main code when I have the pmod sf3 code in there, but it does when I just read a value from the custom ip and print it. I have attached the c code that I have written. Any ideas why this is happening? Thanks! c_code.txt
  19. For bitstream encryption using battery-backed RAM, you are suppose to supply the Vccaux pin with voltage to keep the encryption key alive in memory. 1. Where is the Vccaux pin on the Cmod A7? (Hopefully it is not the VU pin because it would be really wasteful to power the whole FPGA just to keep the encryption key alive!) 2. What voltage is supposed to be supplied? Thanks, David
  20. vc26

    Programming Flash CMOD A7

    Hi all, I programmed my flash recently, but the sdk .elf file didn't seem to be working so I attempted the whole process again. However, now my board seems to be stuck in somewhere not so good. When I plug the USB in, only a red led is on, compared to originally before flash, the orange done led was also on. Also, now I can no longer program the qspi flash in vivado hardware manager anymore. It always fails during the programming stage because the blank check fails. Is my flash stuck in some kind of mode? Also, how can I clear it and restore my fpga to it's original state? Thanks!
  21. vc26

    CMOD A7 35t BRAM Problem

    Hi all, I'm trying to read and write to a BRAM on the CMOD a7 35t (artix 7). However, it always reads back zero. I set it up the same way on the ARTY board and it read back fine. Does anyone know the explanation for this, or have any possible solutions? Thanks!
  22. smarano

    Cmod A7 communication with Arduino

    hi, i have a question. I need to communicate with my Cmod A7 35T using arduino. I know that it is can't communicate directly but i found a middle chip that could be a solution. This component is : with new firmware i can set on this chip the right communication port. My design is something like this, arduino send serial data to usb host that convert and send them to cmod, i have setted the right coomunication port and the right boudrate but there is an issues. I can see the datas flow (using the led) but USB-UART bridge can't read it. I set ISR with only one function that take each byte and print it. But nothing is read by uart. i don't know if i have explained the problem, but i ask some information about it. regards Stefano
  23. Hi: I was wondering if anyone has used the MicBlaze - AXI based access to the XADC to communicate with the AUX4 (XSM_CH_AUX4??) and AUX12 (XSM_CH_AUX12??) channels. Based on my read of the and the comments, I guess the CMOD A7 analog inputs to be the XSM_CH_AUX 4 and 12 channels. I seem to be missing something with regards to how to initialize them. Thoughts? Peter
  24. I spotted a question on Stack Exchange's electronics forum regarding symbols in the A7's schematic … I'm not the original poster, but I'm now very curious too – what do those coloured blocks on certain groups of pins mean?
  25. Hi Guys, I am following the instruction from Digilent about the booting MicroBlaze Project with SPI instruction, I got error right after I create the SREC_SPI_Bootloader using templete after step 1.5, I got error: "ddd.elf section `.rodata' will not fit in region `microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr' ddd C/C++ Problem" "region `microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram_if_cntlr' overflowed by 2864 bytes ddd C/C++ Problem" I know this system only 4Mb Flash, so, the #define FLASH_IMAGE_BASEADDR 0x00300000. But, I even tried to change to FLASH_IMAGE_BASEADDR 0x00000001, system still report me the same error. Here is my system setup: I am using 16K data cache and instruction cache. There is no error with "Hello word" project, I could run with no issue. Did some one have this same issue or any suggestion for this?