Is it possible to fix a corrupted flash? Error (209025): Can't recognize silicon ID for device
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.