RichardV

Members
  • Content Count

    29
  • Joined

  • Last visited

About RichardV

  • Rank
    Member

Recent Profile Visitors

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

  1. Hello artvvb. Thank you for code, but I can't even generate a bitstream yet. Attached is my block diagram (without the GPIO signals for controlling the OLED). Did I do a simple error here? I keep getting weird errors even though I'm letting Vivado do the automated connecting. The messages are confusing and long (image below). All I want to is drive the PMOD OLED as a simple SPI port device. I managed to set the QSPI to Standard mode, Master, with FIFO enable (tried without FIFO too), but it still doesn't work. I cannot find a simple SPI example anywhere at Digilent that works with
  2. Hello artvvb. Thank you for your response. I'm sorry if used the terms incorrectly. I meant that the Microblaze supports QSPI devices, but I only want to drive a simple SPI device, like an OLED or a temperature sensor. From what I recall, QSPI uses 4 lines for each of the MISO and MOSI signals. It looks like you answered my question, the QSPI can be configured to run in "standard mode". It's unfortunate, though, that every example of the QSPI port uses all 4 lines to read a flash memory. I have sample projects for the OLED that use the ordinary SPI port, but it's for the Zynq.
  3. Hello, I want to use the Cmod-A7 for a project, but it uses the Microblaze processor and only supports QSPI, from what I can tell. Is it possible to configure the QSPI port to use only part of its resources to drive a regular (legacy) SPI port? Thank you, Richard V
  4. Hello. I have a quick question, I am looking for the exact schematic for the "Digilent Spartan-3an Board". The Digilent part number is: PB210-112. I have the Revision D board, but I'd be happy to get anything "-3AN". The -3A board schematic is close, but there are many reference designator differences that make it difficult to follow the design and actual board. I've scoured the internet, but couldn't find this particular schematic. Can anyone help me locate it? Thank you, Richard V
  5. Hello again. I got my JTAG-HS1 programmer today (Limited Time, $40 + shipping). I had a few setbacks, overcame them and would like to share. This lengthy post is just FYI for anyone interested in resurrecting a Spartan-3 (3A, 3AN, 3E) board. I no longer need support on the subject of this post, but I am thankful to Dan and Zygot for helping me get to this point. Sorry, but I can't help with the "Spartan-3 DSP"; I avoided it since I don't have one. I didn't understand Zygot's previous discussion on bending out the pins to make the JTAG HS1 connector fit. Now I get it (image). T
  6. Hello again, I found the HS1 cable zygot mentioned. It's available for a "limited time", so I just jumped on it. I'm going to give this a try. It was a little lower cost than the HS2, but I don't know if it was worth it. I think the HS2 might be capable of supporting more devices. I will update this thread to show my success or failure after I get it. Best Regards, Richard V HS1 link http://store.digilentinc.com/jtag-hs1-programming-cable-limited-time-see-jtag-hs3/
  7. Thank you both Dan and zygot. You've given me gold. This is some really great information. However, I could not find the JTAG-HS1 zygot mentioned. I found the JTAG-HS2 at the Digilent store: :http://store.digilentinc.com/jtag-hs2-programming-cable/ . I just reviewed the schematic for the 3A board. The VCC is connected to 3.3 volts. The HS2 programmer works with 1.5 to 5 volts. Does anyone think me buying this HS2 is a mistake for my purpose? My concern is if the driver supports the 3A and 3E boards. I'm not sure if it matters. Spartan-3AN Schematic: https://www.xilinx.com/support/doc
  8. Hello Dan. I found a lot of information (links below), but the only programming information that I can find uses the "JTAG" port, which means I would have to buy a $60 dongle for an old, outdated board that I just want to learn with. I also don't know if these newer dongles will work with this old board. The board apparently has an on-board dongle for programming, but I can't find information on it. I would appreciate any information. My board is P/N: HW-SPAR3AN-SK-UNI-G-(SPARTAN-3A). I also have a Spartan-3E boards, which is nearly the same, but has different pinouts. If the 3E boar
  9. Hello. I picked up this Spartan-3AN development board to follow along this good book: "FPGA Prototyping by VHDL Examples", Xilinx Spartan -3 Version, by Phong P. Chu. The book appears to be published by Wiley-Interscience. It's a very good book to learn VHDL with. Dr. Chu recommended using ISE version 8.2 and Modelsim XE III. I tried using the latest ISE version (14.7), but it kept crashing. What I would like to ask is, can you recommend a tool-chain that is still available, and is compatible with the Spartan 3 series boards? I am able to synthesize a project using ISE 8.2, but I c
  10. Hello again. I tried something different. I wanted to focus on that example that is imported, as I originally started. I fixed my block diagram, but did something different because I'm not using the PMOD IP. I added an input port vector [0:0], configured as an interrupt. I also added this line for the interrupt pin in my constraint file: set_property -dict { PACKAGE_PIN K18 IOSTANDARD LVCMOS33 } [get_ports { Interrupt_1[0] }]; #IRQ This is my interrupt pin. I also set it up to interrupt on the falling edge. The Bitstream generated with no problems. Moving into SDK. I i
  11. Hello Jon. This is excellent! I just have one question regarding the block diagram: I see this Concat IP connects to the SPI interrupt. I presume "Concat" mean concatenate. If correct, I can see why it is needed for multiple interrupts. However, why is it needed for a single interrupt, like you have shown? Thank you Jon.
  12. Hello. I am trying to use one of the imported examples (xspi_intr_example.c) from within SDK (found link in system.mss in SDK). I want to use this "interrupt" example (I presume "intr" means "interrupt") to figure out how to use interrupts with MicroBlaze and SDK. No Interrupt Port Externals When I imported it, I got a compiler error regarding a missing header file: #include "xscugic.h". I found a copy of this file, and others linked to it (.c and .h files). Multiple copies with different versions are shown. I don't know which one to pick so I chose the set of files with the h
  13. Hello Natsu. I agree that it's not a good idea to big-bang the SPI port. I'm just trying to set the initial conditions. I plan on using regular SPI commands afterwards. I'm mostly trying to verify if I'm actually writing to an SPI port. This is my first time using a SPI device. I'm new to Vivado and SDK, but I have worked with microcontrollers in the past. It's a bit harder with an FPGA and MicroBlaze, but I know the challenge is worth it. Thank you, Richard V
  14. Hello, I am trying to avoid all of those SPI commands with higher level abstractions. The low-level example seems to help, but it is incomplete. It doesn't show how to setup or toggle the slave select lines. I presume this is done automatically, but I want manual control. I cannot find information on MicroBlaze registers. For example, let's look at XSpi_SetSlaveSelect. This is all I could find: file:///C:/Xilinx/SDK/2016.2/data/embeddedsw/XilinxProcessorIPLib/drivers/spi_v4_2/doc/html/api/group__spi__v4__1.html#ga162523a3e9b29f063701db303ac8cf17 . It's not very clear, or correct. Let me e
  15. Hello again Jon. I have narrowed down the problem to 1 line of code. Data = XGpio_DiscreteRead(&Gpio, LED_CHANNEL); // Read does work here //Data = XGpio_DiscreteRead(&Gpio, PMOD_CHANNEL); // Read doesn't work here The top line works. I can read back the register that sets the LED_CHANNEL. However, the line below does not work. I cannot read back the value of PMOD_CHANNEL. I have watched this in the debugger window with a watch on the Data variable. The second line always returns 0, no matter what the real state of PMOD_CH