I have a XILINX protoboard with a XC3S200 & XCF01P , which i'm trying to program via Raspberry PI.
It loads a Demo program that, makes some leds blink in either direction, and react to 2 buttons
Schematic can be seen here:
**broken link removed**
Im trying to get my Rpi to read the IDCODE for starters, and this is where i'm stuck
I've successfully (or it seems so) read IR length to 14 bits (8bit for XCF01P, and 6bit ofr XC3S200), btw when sending TMS to travel between registers, is the value of TDI important?
And by putting all 1's in in IR, it seems to give me 2 TCK, before I see TDI on TDO (so 2 devices)
Now some say that by go to Test-Logic-Reset, and then to shift DR, one can read the IDCODE'S of the devices.
here's what i got:
Device 1: 0x80A0A049
Device 2: 0xFA822049
I've also tried to send to 0x09 to FPGA.
Since it's a 14bit register length here the bit sequence im sending (please tell if I send data wrong xD)
X is unknown,don't care
Into SHIFT-IR
TDI: 1, TMS: 0 (1X XXXX XXXX XXXX)
TDI: 0, TMS: 0 (01 XXXX XXXX XXXX)
TDI: 0, TMS: 0 (00 1XXX XXXX XXXX)
TDI: 1, TMS: 0 (10 01XX XXXX XXXX)
TDI: 0, TMS: 0 (01 001X XXXX XXXX)
TDI: 0, TMS: 0 (00 1001 XXXX XXXX)
//the next ones I have tried with both all 1's and all 0's
TDI: 1, TMS: 0 (1001001XXXXXXX)
TDI: 1, TMS: 0 (11001001XXXXXX)
TDI: 1, TMS: 0 (111001001XXXXX)
TDI: 1, TMS: 0 (1111001001XXXX)
TDI: 1, TMS: 0 (11111001001XXX)
TDI: 1, TMS: 0 (111111001001XX)
TDI: 1, TMS: 0 (1111111001001X)
TDI: 1, TMS: 1 (11111111001001) //Correct me if wrong, but last bit I send and want in register, TDI and TMS have to be HIGH, when TCK is set HIGH
This should to my understanding, PUT FPGA in IDCODE mode, and PROM into BYPASS mode
when I go to shift-DR, all i read is 1's
While experimenting back and forth, I also stumbled across the following.
If i send only 0's into the FPGA (SAMPLE), and the PROM doesn't matter, then if i go to Run-Test/Idle or either SELECT ** SCAN, my FPGA's DONE pin goes high, is this the right function?