cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
2,220 Views
Registered: ‎11-14-2017

XC3S200AN program flash problem

Hello, I encountered a very tricky problem to download the program, a SPARTAN series based on the XC3S200AN-ftg256 chip circuit board products to be upgraded, because the previous engineer is to download the encrypted files, download methods are also different. Now iMACT software bit file can be downloaded successfully, but failed to download to flash. In order to solve the problem of downloading, many methods have been tried, but the problems have not been solved. The tried and tested methods include: changing the downloading device, changing the cable line, Use different computer to download, change the circuit board, modify the download speed, M0M1M2 connection circuit changes, the following are given to run Get Devis ID, Get Device Device Signature / Usercode, Read Device Status, Program Flash and Load Fpga Tips.

(tips: M2 / M1 / M0 connection circuit is correct, the actual measurement is 0/1/1,)

 

Get Device ID

INFO:iMPACT - Current time: 2017/11/15 14:22:57

Maximum TCK operating frequency for this device chain: 10000000.

Validating chain...

Boundary-scan chain validated successfully.

'1': IDCODE is '00000010011000011000000010010011'

'1': IDCODE is '02618093' (in hex).

'1': : Manufacturer's ID = Xilinx xc3s200an, Version : 0

 

GET Device Signature /Usercode

 

INFO:iMPACT - Current time: 2017/11/15 14:25:44

PROGRESS_START - Starting Operation.

Maximum TCK operating frequency for this device chain: 10000000.

Validating chain...

Boundary-scan chain validated successfully.

'1': Usercode is 'ffffffff'

PROGRESS_END - End Operation.

Elapsed time =      0 sec.

 

 

Read Device Status

INFO:iMPACT - Current time: 2017/11/15 14:27:12

PROGRESS_START - Starting Operation.

Maximum TCK operating frequency for this device chain: 10000000.

Validating chain...

Boundary-scan chain validated successfully.

'1': Reading status register contents...

CRC error                                                            :         1

IDCODE not validated while writing FDRI                                   :         1

DCM Locked                                                          :         1

status of GTS_CFG_B                                                   :         1

status of GWE                                                         :         0

status of GHIGH                                                       :         1

value of VSEL pin 0                                                     :         1

value of VSEL pin 1                                                     :         1

value of VSEL pin 2                                                     :         0

value of MODE pin M0                                                  :         1

value of MODE pin M1                                                  :         1

value of MODE pin M2                                                  :         1

value of CFG_RDY (INIT_B)                                               :         1

DONEIN input from Done Pin                                             :         1

SYNC word not found                                                   :         1

'1': SPI access core not detected. SPI access core will be downloaded to the device to enable ope rations.

INFO:iMPACT - Downloading core file C:/Xilinx/14.7/ISE_DS/ISE/spartan3a/data/xc3s200an_spi.cor.

'1': Downloading core...

 LCK_cycle = NoWait.

LCK cycle: NoWait

done.

'1': Reading status register contents...

INFO:iMPACT:2219 - Status register values:

INFO:iMPACT - 0011 1111 1110 1100

INFO:iMPACT:2492 - '1': Completed downloading core to device.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

INFO:iMPACT:583 - '1': The idcode read from the device does not match the idcode in the bsdl File.

INFO:iMPACT:1578 - '1':  Device IDCODE :        00000010011000010011111111101100

INFO:iMPACT:1579 - '1': Expected IDCODE:    00000010011000011000000010010011

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

Ready/Busy Bit: 0

Result of Main Memory Page to Buffer Compare: 0

Device Density Bits: 1101

Sector Protection enabled: 1

Power of 2 binary page size enabled: 1

INFO:iMPACT - Address 0x00000000 is in sector 0.

INFO:iMPACT - Address 0x00024831 is not located at the start of a sector boundary. The whole sector will be erased.

INFO:iMPACT - Address 0x00024831 is in sector 3.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

The security register values are:

Sector[0]: SECURED (ec)

Sector[1]: NOT SECURED (3f)

Sector[2]: NOT SECURED (61)

Sector[3]: NOT SECURED (2)

Sector[4]: SECURED (ff)

Sector[5]: SECURED (ff)

Sector[6]: SECURED (ff)

Sector[7]: SECURED (ff)

Sector[8]: NOT SECURED (0)

INFO:iMPACT - Address 0x00000000 is in sector 0.

INFO:iMPACT - Address 0x00024831 is not located at the start of a sector boundary. The whole sector will be erased.

INFO:iMPACT - Address 0x00024831 is in sector 3.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

The lockdown register values are:

Sector[0]: LOCKED DOWN (ec)

Sector[1]: NOT LOCKED DOWN (3f)

Sector[2]: NOT LOCKED DOWN (61)

Sector[3]: NOT LOCKED DOWN (2)

Sector[4]: LOCKED DOWN (ff)

Sector[5]: LOCKED DOWN (ff)

Sector[6]: LOCKED DOWN (ff)

Sector[7]: LOCKED DOWN (ff)

Sector[8]: NOT LOCKED DOWN (0)

'1': Reading security register...

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

Factory ID

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

 

done.

'1': Reading security register...

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

One-time User Programmable

37 FC 86 40 FF FF FF FF 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

 

done.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

PROGRESS_END - End Operation.

Elapsed time =      1 sec.

write cmdbuffer failed C0007000.

Error reading reference voltage level.

 

 

VREF was lost during the current operation. It is recommended that the operation be repeated.

write cmdbuffer failed C0007000.

Cable is not connected.

 

CRC error                                                            :         0

IDCODE not validated while writing FDRI                                   :         0

DCM Locked                                                          :         1

status of GTS_CFG_B                                                   :         0

status of GWE                                                         :         0

status of GHIGH                                                       :         0

value of VSEL pin 0                                                     :         1

value of VSEL pin 1                                                     :         1

value of VSEL pin 2                                                     :         1

value of MODE pin M0                                                  :         1

value of MODE pin M1                                                  :         1

value of MODE pin M2                                                  :         0

value of CFG_RDY (INIT_B)                                               :         0

DONEIN input from Done Pin                                             :         0

SYNC word not found                                                   :         1

 

 

 

Program Flash and Load Fpga

INFO:iMPACT - Current time: 2017/11/15 14:45:29

PROGRESS_START - Starting Operation.

Maximum TCK operating frequency for this device chain: 10000000.

Validating chain...

Boundary-scan chain validated successfully.

'1': SPI access core not detected. SPI access core will be downloaded to the device to enable operations.

INFO:iMPACT - Downloading core file C:/Xilinx/14.7/ISE_DS/ISE/spartan3a/data/xc3s200an_spi.cor.

'1': Downloading core...

 LCK_cycle = NoWait.

LCK cycle: NoWait

done.

'1': Reading status register contents...

read count != nBytes, rc = C0000011.

read failed C0000011.

INFO:iMPACT:2219 - Status register values:

INFO:iMPACT - 0000 0000 0001 0001

INFO:iMPACT:2492 - '1': Completed downloading core to device.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

INFO:iMPACT:583 - '1': The idcode read from the device does not match the idcode in the bsdl File.

INFO:iMPACT:1578 - '1':  Device IDCODE :        00000010011000010000000000010001

INFO:iMPACT:1579 - '1': Expected IDCODE:    00000010011000011000000010010011

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C0007000.

write cmdbuffer failed C000009D.

write cmdbuffer failed C000009D.

write cmdbuffer failed C000009D.

write cmdbuffer failed C000009D.

write cmdbuffer failed C000009D.

write cmdbuffer failed C000009D.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

'1': Configuration data download to FPGA was not successful. DONE did not go high, please check your configuration setup and spi mode settings.

write cmdbuffer failed 2000000F.

write cmdbuffer failed 2000000F.

PROGRESS_END - End Operation.

Elapsed time =      1 sec.

write cmdbuffer failed 2000000F.

Error reading reference voltage level.

 

VREF was lost during the current operation. It is recommended that the operation be repeated.

write cmdbuffer failed 2000000F.

Cable is not connected.

 

0 Kudos
6 Replies
Highlighted
Moderator
Moderator
2,203 Views
Registered: ‎01-15-2008

Re: XC3S200AN program flash problem

have you checked if the cable works fine with any other working boards in jtag mode?

check the following AR if it helps

https://www.xilinx.com/support/answers/24258.html

 

0 Kudos
Highlighted
Visitor
Visitor
2,184 Views
Registered: ‎11-14-2017

Re: XC3S200AN program flash problem

I use the download device is developed by other companies, not xilinx company developed, I wonder if this will have an impact.
0 Kudos
Highlighted
Moderator
Moderator
2,173 Views
Registered: ‎01-15-2008

Re: XC3S200AN program flash problem

when you say download device from third party is it programming cable? if so we cannot comment on the working of it.

so suggest you to use the supported programming cables for the impact programming tool

cable_setup.JPG
0 Kudos
Highlighted
Visitor
Visitor
2,169 Views
Registered: ‎11-14-2017

Re: XC3S200AN program flash problem

 
Third-party downloader should also work, otherwise they will not sell, I would like to know why the download is not successful.
0 Kudos
Highlighted
Advisor
Advisor
2,150 Views
Registered: ‎04-26-2015

Re: XC3S200AN program flash problem

Well, your XC3S200AN is definitely not very happy. It's identifying as either an Inmos product or an invalid device (IDCODE doesn't meet the standard). So, I can see four options:

 

(1) The chip or PCB is damaged (not really any way to determine which, apart from swapping chips).

 

(2) The programmer is damaged

 

(3) The programmer is set up wrong

 

(4) The software you're using is broken

 

Since you've already tested (1) and (2), I'd do (3) and (4) together by programming it in iMPACT instead of the third-party software. If iMPACT works fine then clearly there's something wrong with the third-party software. That might just be a configuration issue, or it might be something more serious - but if you can narrow it down to this point then you're in a much better position to debug the true cause.

Highlighted
Visitor
Visitor
2,134 Views
Registered: ‎11-14-2017

Re: XC3S200AN program flash problem

Thank you for your enthusiastic help, the problem has been solved!

 

The reason is that when the program is downloaded, the power amplifier module at the subsequent stage of the circuit board is started at the same time, and the voltage of the entire circuit is pulled down at the moment of starting, which directly affects the power supply of the download module, so the program can not be downloaded. Solution: Turn off the power amplifier module driver enable, after the download is successful, enable it.