Search the Community

Showing results for tags 'spi'.

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 61 results

  1. Hello, I tried posting this on the Xilinx forums but got no response. These forums look more active and friendly so hopefully somebody can help me. I am really stuck. I am trying to follow along with the "How To Store Your SDK Project in SPI Flash" tutorial (, but I cannot get it to work. I am using an Artix-7 35T Arty FPGA Evaluation Kit. I am running Vivado v2017.2 (64-bit) and SDK v2017.2 on a Windows 10 machine. First, I created a simple "Hello World" program by following the steps in the "Arty - Getting Started With Microblaze" tutorial ( The only deviation from the instructions that I made was that after adding the MIG to the board, I added an AXI Quad SPI, with enabled port SPI_0, and then ran "Run Connection Automation". When I ran my C program on the Arty board it worked fine, and printed "Hello World" to my PuTTY terminal. I've attached my board file as both .bd and .png. Second, I tried store this "Hello World" program to the Arty's SPI Flash using the "How To Store Your SKD Project in SPI Flash" tutorial. But, it did not work. I'll walk you through what I did because there are a few things that I am confused about. Unless otherwise noted I followed the instructions exactly. Before step 0: I don't know what the QSpi mode jumper setting is referring to, so I didn't do anything. Step 1.3: I compressed my bitstream so I left FLASH_IMAGE_BASEADDR as 0xF8000000, like I found it. Steps 2.1 and 2.2: I used my "Hello World" app that I created by following the "Arty - Getting Started with Microblaze" tutorial. I couldn't place the sections into mig_7series_0 because that wasn't an option, so instead I used mig_7series_0_memaddr. Step 4.1: I used offset 0xF8000000 because that is what I used in Step 1.3. One other thing: the test says to use Arty flash type mt25ql128-spi-x1_x2_x4 (which I do), but the image of the "Program Flash Memory" window shows them using Arty flash type n25ql128-spi-x1_x2_x4. Step 5: it doesn't work. Does anyone have any suggestions? Is the SPI Flash some sort of external hardware that I need to plug into the Arty? Thanks in advance.
  2. canye23

    ADXL345 with SPI and LabView

    Hello, I am trying to get x,y,z axis data from the accelerometer adxl345 using linx in labview. I have managed to do that with I2C protocol, but I want to do it also with SPI protocol in order to achieve greater sampling rate. I have read the adxl345 datasheet but I struggle figuring out to which exact registers I must write so that I can read the datax,y,z registers. I attach my -so far now working- program below, thank you in advance.
  3. Guacamoleroger

    PmodCLS with 20x4 LCD

    Hy, guys, I am using the PmodCLS, and although it is retired now (October 2018), my project is ongoing with 4 of them, using an adapted VHDL demo code from resource center. I am in need of using one 20x4 LCD module instead of the 16x2 I have there. As a first innocent try, I just connected in parallel the 20x4 pins with the 16x2 pins. The 16x2 continue to work, but the 20x4 shows only squares...(contrast and backlight connections are ok). In the demo lookup file it does not seems to have a configuration command for the LCD. Is PmodCLS automatically configured for 16x2? How could I use a 20x4 LCD on PmodCLS? Does anyone have the information about the instructions set of PmodCLS that could be used on a 20x4 LCD? Thanks for your help, Guacamoleroger
  4. jma_1

    AD2 - I2C or SPI with Labview?

    Greetings, Is there a toolkit, etc. for use with the AD2 and Labview for I2C or SPI? I would like to monitor and simulate if possible. I have download and looked at both the Waveforms toolkit and AD2 toolkit, but did not immediately see this functionality. I'm guessing no such bundled library exits. Thank you Cheers, JMA
  5. Hi ! I am interested in using the Digital Discovery controlling multiple devices at the same time with different protocols. E.g. I would like to setup the UART on the digital discovery on DIO 28 as TX and 29 as RX while using SPI at the same time on the default setup DIOs as 24/CS, 25/CLK, 26/DQ0/MOSI, 27/DQ1/MISO. Using then I2C on e.g. 31/SCL and 30/SDA and CAN on 36/RX and 37/TX on top of that would be very nice as well. Is this possible from the user interface (which I would prefer) or do I need to create custom code for that?
  6. Lakshmi Tejas M A

    SPI with AD2

    Hi all, I am working on SPI transceiver with AD2 in master mode. I am using python sample codes provided. transmitting is working fine but in receiving i am able to get the signals on wire but not to the variable in python rgwRX = (c_uint16*1)() while True: dwf.FDwfDigitalSpiSelect(hdwf, c_int(4), c_int(0)) dwf.FDwfDigitalSpiRead16(hdwf, c_int(2), c_int(24),rgwRX, c_int(len(rgwRX))) dwf.FDwfDigitalSpiSelect(hdwf, c_int(4), c_int(1)) print rgwRX[0] I am getting only '0's corresponding signal while receiving tapped on CRO is attached and it is proper but when i try it using Waveforms software it works but i see same signal on wire
  7. vinay_shenoy

    SD Mode Operation for PmodSD

    Hello, Does PmodSD ( support SD mode of operation? Is it designed only to work with SPI mode as written in the reference manual? Please let me know Regards, Vinay Shenoy
  8. Victor McKeighan


    I'm using Xilinx ISE suite to design, test and program the Cmod S6 board. At this point I am able to configure the Spartan6 FPGA with a bit file over the USB connection (although I have not verified functionality), but I'm having a problem programming the serial PROM. Here is the report I get from the iMPACT tool: INFO:iMPACT - Current time: 5 Jul 2018 14:00:55 // *** BATCH CMD : Program -p 1 -dataWidth 1 -spionly -e -v -loadfpga PROGRESS_START - Starting Operation. Maximum TCK operating frequency for this device chain: 25000000. Validating chain... Boundary-scan chain validated successfully. '1': IDCODE is 'ffffff' (in hex). '1': ID Check failed. INFO:iMPACT:2488 - The operation did not complete successfully. INFO:iMPACT - SPI Device not found. INFO:iMPACT:2488 - The operation did not complete successfully. INFO:iMPACT - '1': Flash was not programmed successfully. PROGRESS_END - End Operation. Elapsed time = 4 sec. It seems to fail the ID Check, whatever that is. When I selected the PROM device, I chose S25FL128S from the available list. I think that is the correct one. Also, if I try to erase the PROM or do anything else with it, I get a similar error. I tried following instructions posted on this forum, but nothing seems to work.
  9. Hello, i am having trouble using the chipkit uc32 together with the analog shield here : When i connect the Shield to my Arduino UNO one samples needs about 10 microseconds witch should be right. Instead if i connect it to the chipKit uc32 it takes about a 150 microseconds. I guess the SPI communication is not working properly but i dont know why. Since i dont know wether the board is the retired version or the newest i thought it might not work if its the old one. Did anybody else have a similar problem or is there a way to find out wether my uc32 is the old or new revision. Thx in advance Edit: I solved the problem. Instead of using the Arduino IDE i switched to MPIDE. Now it works with a sample rate of 1sample / 25 microseconds. There might be a problem with the Additional Board Manager URL for the Arduino IDE. I might take a look at it if i have the time.
  10. rahulgujaran

    SPI_SLAVE_intr_example not working

    Hi all, I am working with zybo zync 7010. i am trying to build spi slave using quad spi using sdk example program. but the data is not received. program hangs on at while (TransferInProgress==TRUE) and will never come out of the loop. please help me out.
  11. Trillian

    Bistream Size Quad SPI

    Hi there, I'm trying to program the arty using quad spi and I get the following error: [Writecfgmem 68-4] Bitstream at address 0x00000000 has size 2192012 bytes which cannot fit in memory of size 2097152 bytes. So I'm ~95kb short. Now I wonder what I can try to make my Bitstream smaller. Would I just try to shrink my cpp application?
  12. I desperately want to connect three devices to a Raspberry Pi3 that has a single Pmod HAT Adapter fitted to it. The devices are all SPI types: Pmod AD1 Pmod ISNS20 Pmod TC1 I can only run 2x devices since ports JA(A) and JB(A) both support SPI, but JC(A) does not. Is stacking of Pmod HAT Adapters allowed or can I connect an SPI device directly to the open GPIO pins? I would greatly appreciate any advice! Even if NOPE is an answer...
  13. Gill

    PMOD DA4

    Hello, I am trying to use the pmod DA4 with my Arty S750 board. I'm aware that Digilent does not offer an IP for interacting with the Pmod, so I took it upon myself to design one. Anyways, things seemed to be going well until I actually tested the DA4. I know that the DA4 uses SPI to communicate, so I programmed the IP to communicate that way, and it does (outputs from the pmod connector correctly seen on an oscilloscope), but every time I connect it to the DAC I can't get much of anything to come out of the channels. I've read through the AD5628 reference manual, but a few things were ambiguous to me. First the commands on table 9. I don't really understand the difference between writing to the register (command 0) and writing to the DAC channel (command 3), and which I should be using for my project. And second, I plan on using an internal voltage, and it says that setting up the internal voltage is the first step. As I have it now, it's the first thing my program does and I'm afraid that the DAC is unable to read this input (maybe I should add a brief delay? I saw a brief delay in the "simon says" code). I know it's been a long post, but any answers or insights on the DA4 or any other part of my post is much appreciated. Thanks, Gill
  14. I'm having trouble getting the SPI1 port working as a slave on the Cmod board. It works fine as a master talking to an Arduino Mini Pro configured as a slave, but not vise versa. I verified that the Arduino Mini configured as a master is working, but I never receive anything in the SPI1BUF on the Cmod. I have tried setting SPI1CON to 0x8000 and 0x8080, but neither worked. Does anyone have sample code that works as a spi slave?
  15. amurices

    FPGA SPI transfer timed out

    Hi all, I'm having an issue with the FPGA SPI interface I programmed onto my microzed. The issue is that the interface cannot read the data sent back from my slave device! I'm using a SAMA5d3-xplained devboard, and an oscilloscope to measure signals. I made the SAMA return the same buffer it received, only with every byte shifted. So it's a semi-loopback routine. The oscilloscope captures both the correct signal back from the SAMA (every byte divided by 2), AND the signal going into it (out of the MicroZed). However, the spidev_test.c (that seemingly famous SPI testing utility on the torvalds repository ( program that I'm using shows one of two things: 1. Either the result is always an error of "SPI transfer timed out" 2. or the value in rx is the same as in tx. That is, even though the SAMA slave is demonstrably (via oscilloscope) returning something else, all the RX buffer gets is the same as was sent via the TX buffer. In fact, I can even disconnect the header that plugs the master to the slave, and this behavior becomes no different. The difference between these two results is simply a matter of removing the 1050th line in drivers/spi/spi.c when building the kernel. It's the call to wait_for_completion_timeout() in the function static int spi_transfer_one_message(struct spi_controller *ctlr, struct spi_message *msg). What I get from this is basically that the spi-xilinx.c driver does not know where to look for the output from the slave (MISO), and it either waits eternally for that output (if the call to wait_for_completion is left intact) OR it doesn't care to look for the data and just fills the rx buffer with the tx buffer. Now I have a very limited understanding of hardware and driver programming, so I'm basically like a blind man in the dark here. I'm adding printk() statements to spi-xilinx.c and spi.c everywhere, and checking their results with dmesg and there's just nothing enlightening (I'm using PetaLinux, and the devices all show up correctly in /dev and /sys). I'm hoping someone more experienced can shine a light on what I'm doing wrong here, or at least point me in the right direction. Attached is my device tree file, plus a screenshot of the hardware design. (the relevant node in the DT is highlighted below) amba_pl { #address-cells = <0x1>; #size-cells = <0x1>; compatible = "simple-bus"; ranges; axi_quad_spi@41e00000 { bits-per-word = <0x8>; compatible = "xlnx,xps-spi-2.00.a"; clock-names = "axi_clk", "spi_clk"; clocks = <0x1 0xf>, <0x1 0xf>; fifo-size = <0x10>; interrupt-parent = <0x4>; interrupts = <0x0 0x1d 0x1>; num-cs = <0x1>; reg = <0x41e00000 0x10000>; xlnx,num-ss-bits = <0x1>; xlnx,spi-mode = <0x0>; spidev@0 { compatible = "spidev"; reg = <0x0>; spi-max-frequency = <0x17d7840>; }; }; }; goodVersion1.dts
  16. I am new user of Waveforms 2015 and the Digital Discovery. I want to generate SPI signal and DIOs, to read from multiplexed-CH ADC. According to "Help" on WaveForms, DIO can be set using "DIO." in script for Protocol-SPI. (Help -> Protocol -> 2. SPI -> about Custom mode -> " DIO.: Lets you set(the ones are not declared as SPI signal) and red the digital pins." ) but I can't find its description. So, could I have the example how to use "DIO." in script for Protocol-SPI ? * I'm using WaveForms Ver:3.7.5 32-bit Qt5.6.3 Windows7. Thanks,
  17. attila

    SPI Sniffing with WF SDK

    Hello, I've got a question on how to sniff SPI data using Analog Discovery with the WaveForms SDK. The following example uses "sync record" which only stores samples on SPI clock or select (rising) edge. This lets you capture SPI data with an average bit rate of around 2MHz. SPI bursts of up to 40MHz are supported but the average rate needs to be lower.
  18. Enrico

    Zynq SPI timed out

    Dear All, Me and a colleague of mine are facing an SPI timeout issue on a Zynq. We already posted the issue in the Xilinx forum: but we did not receive any answer, yet. So I would like to ask your help. I am trying to use a TFT LCD screen with the Digilent Artyz7, exploiting the frame buffer. I created a project on Vivado that exports the Zynq PS SPI interface through EMIO. I have already deployed the linux-digilent kernel (v4.4.0) on the Zynq and I am able to see the SPI peripheral under /sys/class/spi_master/spi2.0 (the device tree has been generated using SDK). Thus, as soon as I try to insert the kernel module for the frame buffer support, I get the following error: spi2.0: SPI transfer timed out I attach the images from the logic analyzer: The kernel module of the frame buffer sends the data correctly through the SPI interface before going to timeout state. Any ideas or suggestions regarding this issue? Thanks a lot. Best Regards, Enrico
  19. M. Betz

    CMOD A7: accessing the SPI Flash

    I'm trying to get the picosoc project working on a CMOD A7. This is a soft-CPU running code directly from an SPI flash chip, hence I want to get access to the N25Q032A13EF440F pins from verilog. Looking at the Schematic and the .xdc file from the board support package, I can find definitions for qspi_cs and qspi_dq[0-4], which are the chip select and data lines respectively. However there is no definition for for the QSPI_SCK net, which connects to the FPGA pins CCLK_0 and IO_L3N_T0_DQS_EMCCLK_14, both of which are not defined in the .xdc file. Is that deliberately so? Cheers Michael Betz
  20. I want to capture UART data and SPI data at the same time in the Logic analyzer of Analog Discovery 2. UART baud is 115.2kHz and SPI is at 8Mhz. when i increase the sample rate, UART data is not captured. and without increasing the sample rate i can not capture SPI data. what is the optimal setting to capture both low frequency and high frequency signals at the same time?
  21. mgssnr

    SPI under Logic

    Hello, I just received my AD2, and I really like it! I like the WG and the scope, and while it took me a little while to figure out the Protocol analyzer, it does a pretty good job showing the data. However, at first glance, the SPI protocol handler under the logic analyzer is somewhat limited because it only handles one channel. One could capture four signals by using the logic analyzer and doing the work manually, but I would like to be able to handle all four (or 6) SPI channels in the logic analyzer, too. I have an MCP3208 which requires a command in the first 10 bits, and then in the next 14 bits returns the data on the MISO pin. Is there any way to do this in the logic analyzer? Thanks Matt Gessner
  22. rockxito32

    Usign multiple PmodACL with Zedboard by SPI

    Hi everyone, In this opportunity I want to establish a SPI communication between two PmodACL and a Zedboard, in Vivado software I done it this way: And I got the Bitstream file without any mistake. But how can I do the SDK configuration for read two PmodACL at the same time?
  23. Patrick Fitzpatrick

    HS2 Programming Cable. Multiple Instances

    I have a system where I'm using 2 HS2 cables. One is used for SPI control and the other for Jtag. For my SPI interface, I have written a DLL using the ADEPT2 SDK, that allows me to specify the serial number of teh device to connect for SPI. Unfortunately both devices enumerate as device name "jtagHs2" and If I start my Xilinx Viivado Hardware manager before my SPI interface, the Vivado is taking over the device I want to use for SPI. If I start my spi interface first then vivado correctly picks up the HS2 I want to use for JTAG. Is there a way to prevent this, for example can I change the name "jtagHS2" in my SPI interface eeprom? Thanks, Patrick
  24. NewbieRaspPi


    I am very new to Raspberry pi and I need help regarding my R-Pi and Pmod ACL2 I would just like to test the functionality of the SPI connection and that's it I am not allowed to install any software I should just use the configure terminal I have installed the spi-dev on my R-Pi and I can't seem to find the ACL2 I'm sure I have connected them correctly Pls help Thanks in Advance
  25. Hello, I am attempting to communicate to a Pmod RF2: IEEE 802.15 RF Transceiver with a Basys3 board using the SPI protocol in VHDL. The microchip on the pmod is the MRF24J40. How do I identify the address of the MRF24J40? To my understanding, if I want to write/read a memory location on the MRF24J40, I need to send the address followed by the address of the specific memory location on the MRF24J40. Is it written on the microchip itself? The master and slave SPI modules that I am attempting to use are linked to this post. The documentation for the master and slave links are below. The specification sheets for the pmod and MRF24J40 are included as well. Master: Slave: Pmod: Interface_Specification.pdf MRF24J40: Thank you. spi_slave.vhd spi_master.vhd