• Content Count

  • Joined

  • Last visited

About RichardV

  • Rank

Recent Profile Visitors

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

  1. 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
  2. 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
  3. 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
  4. 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: : . 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:
  5. 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
  6. 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
  7. 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
  8. 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.
  9. 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
  10. 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
  11. 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
  12. 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
  13. Hello again Jon. I installed my board file, updated the files and got it to generate a bitstream. However, I cannot open SDK. here is the message (attached). I went into Explorer and set the properties of the directory and all sub-directories to uncheck that "Read Only" box. However, Vivado keeps making it "Read Only" and I can't do anything about it. SDK will not open this project. Can you please tell me why? Thank you, Richard V
  14. Thank you Jon, but I can't open this project with 2016.2 or the latest 2017.4. Below you can see the problem I get with 2017.4. I do not have the "IP" that this code wants, so I can't see the block diagram at all this time. Version 2016.2 indicates that the blocks are from a "future version". Version 2017.4 doesn't recognize the board you're using. Do I really have to load EVERY single example board into Vivado just to get these examples working? Thank you, Richard
  15. Hello. Thank you Arthur. Yes, I get that now. I'm downloading the latest version of Vivado and trying again. Back to my main problem though: I have new information. I did some debugging and I found that this "XGpio_DiscreteRead" function isn't returning the correct value. Please see my posted code. Here are two lines that do the same thing. One works, and the other does not: Data = XGpio_DiscreteRead(&Gpio, LED_CHANNEL); // This line does work. //Data = XGpio_DiscreteRead(&Gpio, PMOD_CHANNEL); // This line doesn't work! Always