- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, this will be a long post, but I feel like all the details are necessary this time...
I have a Cyclone V GT 5CGTFD9D5 OpenVINO PCIe Card dev board. It was working perfectly before I had a little accident with it. I tried to connect Arduino Uno to it (it has a designed slot for it). Looking from a perspective now, that was really stupid, because arduino slot was intended for arduino shield, not the arduino itself, but that was the fact... Arduino died after a couple of seconds because of a different voltage on its Vref pin and FPGA Vref (the pin, intended to be connected to the arduino) pin. As far as my FPGA goes: I checked absolutely all voltages on the board (12V, 5V, 3,3V, 1,8V, all test points, all references), and everything is fine here. When I connect the USB cable to its integrated Altera blaster, PC detects the correct chip model and lets me to connect. Seems like the FPGA has survived without any major damage except for one thing. I strongly suspect its flash memory chip got corrupted - it had a default program written to its flash that toggles the 7 segment displays and always run fan at 100% upon power up. After the incident, 7 segments displays started to behave unpredictably (random sections light up), also the fan control got unpredictable too...
At first I tried to desolder the flash chip and read it with a TL866II+ memory programmer (I have strong soldering skills, so didnt worry too much then). Since I have a OpenVINO PCIe Card sample project directory, I have the suspected default program .sof and .pof files. So my idea was to convert the default .pof file into .bin file, flash the memory with it, solder back to the FPGA and run it again. Unfortunately, I took me a couple of read/write experiments to determine the exact chip MPN. By now I am 99% sure, that the actual chip I have is MT25QL256 (It has Micron logo on the physical chip, so it has to be the one), but the data written to it is not aligned and still corrupted. However, the read and write cycles went perfectly fine on the memory programmer (I even used auto detect chip function to know the exact part number of the chip), so I suspect, the chip itself is not damaged or defected. When I soldered the chip back to fpga, I got the same fpga behavior as if nothing (regarding my memory chip desoldering) was ever done. But I still can not flash the memory chip using the blaster (I followed the guide provided in the manual, but I still get: Error (209025): Can't recognize silicon ID for device.)
Considering all the details I have provided you earlier, I consider it to be possible that even vendor ID got corrupted, but I still think that I have not damaged the chip physically. I checked it with an oscilloscope, I get the clock and some data signals on the lines... What are the options for me now? I could buy a new chip, but I am afraid that vendor ID would not match again (chip might be from a different batch, different version etc.) Are there any options to somehow still force the blaster to write data to chip disregarding the factory info? Thank you very much for any usefull advice.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
When you mention about chip ID, is it the FPGA chip ID or the Flash chip ID not detected? May I know how do you connect to the Arduino Uno previously that cause it to be damaged?
The reason I am asking is that I suspect that some of the FPGA IO bank might be damaged as well. So it might not fully damaged the FPGA chip but certain IO pin will not function correctly.
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am not sure which ID is unidentified exactly (just pasted the error message). I provide a picture down below of the quartus logs, I hope it can introduce any additional info.
Regarding my accident with arduino, I did not connect any power, USB or any cables to arduino at all. I just plugged the arduino to the FPGA, but there were absolutely no other cables plugged to the arduino, my initial asumption was that FPGA should supply sufficient voltage and current to arduino by itself, and I wanted just a quick check (it gives me some hope because arduino itself does not generate any voltages, it can not produce anything beyond of what it is given or fed by FPGA.) After the accident, I identified a fried voltage regulator chip on the arduino. But just like I mentioned before, there were no such signs on the FPGA, and my voltage testing verified it.
I may lack the programming setup knowledge, but I need some guidance on further steps, do I:
1) Keep tweaking the programmer settings and trying to flash the memory?
2) Order brand new flash chip, replace it and hope that it should work properly?
3) Order brand new FPGA chip together with flash chip and replace them both?
4) Any other option?
If you need some more details, please let me know. Thank you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
1) Keep tweaking the programmer settings and trying to flash the memory?
It looks like the FPGA is not able to communicate with the Flash. The device ID is for the flash
2) Order brand new flash chip, replace it and hope that it should work properly?
It might not help. It will depend on what type of damage.
3) Order brand new FPGA chip together with flash chip and replace them both?
This might be an option but it will not be cheap.
4) Any other option?
May I know how do you connect the Arduino to FPGA. I would like to understand the connection to determine what might be damaged.
May I know if you still need to use the FPGA with the flash?
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I will provide some pictures of arduino and FPGA. Thats the best way to explain how did I try to connect one to another. On the other hand. I used the arduino Uno headers on the FPGA just like one would use to connect standard arduino uno shield, except I used arduino itself.
At some point flash memory usage is inevitable in my application. I need to preserve the FPGA code after power off.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Do you understand the arduino header pinout and also the FPGA board pinout? You will need to understand what is the pin being connected between the 2 board to understand the potential damage done.
May I know what is the FPGA board use?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
May I know if you are able to provide more detail information as I would like to understand which pin is damage?
Thanks.,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Now I am waiting for the replacement flash memory chip to arrive. I did my research on replacing only the FPGA chip. I only found those at Mouser and DigiKey but the minimum amount is 40 at a unit price of 650 USD, so buying new devboard turns out way cheaper. I tested some of the FPGA pins. Both 7 segment displays dont work(I desoldered those and measured the voltages on the intended inputs on the PCB, I saw some random voltages like 1V, 1.5V 1.6V etc.) Also none of the four indicator leds works. I get constant 1.4V drop across those no mater the programmed pin state. LED0 is damaged itself (shows 0.078V drop across it on diode test mode.) But I measured every single one of the 2x20 GPIO connector pins with a 1 second led blink program. Surprisingly, every single pin in those connectors works normally. I am now trying to test if the PCIe will work, but since its my first time with it, it might take me a while to do it. For now thats all the information I can provide. Thank you for your help once again.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Based on this, I can assume that the FPGA certain IO bank is damaged. So I would recommend to replace the FPGA or board if you still need to use the GPIO port.
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
May I know if you have any other queries?
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
After intensive testing, I found out, that PCIE is working. I ran demonstration codes via batch and cpp files and I was able to retrieve some status info from the FPGA. I want to explore the PCIE capabilities a bit further but I face a problem. I dont know the addresses of the GPIOs. I would like to write some test codes (including buttons, leds, switches and other GPIO that are routed to the external connectors), based on the provided AVMM library/framework. But digging through all of the datasheets I could find, there is no information about ,,USER BAR" ,,ON CHIP MEMORY ADDRESS", ,,MEMORY SIZE" concepts (picture bellow is taken from the main datasheet, chapter ,,PCIe Reference Design for Windows".) Can you provide any more information, how can I adapt the manufacturer's example PCIE codes to do operations on all available GPIO pins? Also there are some uncertainties about the code for FPGA itself. The manual says to run provided batch files to upload specific .sof file to the FPGA, before running any C code for the PCIE. But there are only few example sets, so for a custom C code I will need to write custom .sof file to the FPGA as well. I did not find any guidelines or software examples about adapting the vhdl code to PCIE application. Can you provide any information (examples or pages, possibly documentation) about it? Thank you in advance.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page