Jump to content
  • 0

Arty A7 - Problem running working design from Rev. C


TomF

Question

I just bought a second Arty A7-35T board which is a Rev. E board, my first one is a Rev C board. With this Rev C, I successfully generated a design which works fine though the board files are from Rev. E.

Now, I program the new board with the working binaries and if does not work. What can I try to make it work?

 

Best regards

Link to comment
Share on other sites

15 answers to this question

Recommended Posts

@D@n,

I had a SPI flash implemented in the design, but didnt use it in SDK yet. I tried the following things:

1. Changed flash type in the SPI block in the block diagram from Micron to Spansion

2. Deleted the SPI block 

None of these worked, I still get no response from UART or Ethernet. When I program the Rev. C board with the new bitstream and microblaze binary, it still works.

Tom

Link to comment
Share on other sites

@TomF,

A couple more quick things to try: have you double checked the jumper settings?  Have you deleted your project directory, and then rebuilt it for the new board?

Otherwise, we might need to go back to the beginning to verify that you can load something (anything) onto the board: Does blinky work?

Dan

Link to comment
Share on other sites

@D@n,

I already checked the jumper settings, also permutated all possible cases. I always had the board files for Rev E.0 installed, though I was using a Rev. C board which worked fine. Will I still need to rebuild it? 

I loaded the example jpeyron posted here and it worked. I confirmed the UART works as well by running the demo from the flash. When I run a simple hello world application on my bitstream, it does not work. Having a breakpoint in the first line of the main loop shows, that the procesor never reaches it. When I manually pause the execution I get an error message: 

"Cannot suspend: TCF errror report:

Command: RunControl suspend "JTAG-jsn-Arty

[...]

Error text: Cannot stop MicroBlaze. Stalled on instruction fetch 

Error code: 1"

 

Tom

Link to comment
Share on other sites

@TomF,

Ok, if I've got this right, the MicroBlaze CPU is trying to start, it makes a request of some peripheral to get its first instruction, and it is unable to do so?

That sounds (again) like a flash issue to me.  Remember, the flash device changed.  Lots of configuration needed to change with it.  The older Micron flash requires a more complicated setup to get into.  There's a different number of dummy cycles following the address and before the data.  The flash doesn't start up from power up the same, neither does it reset the same as the older flash did.

Have you built anything into your design that you can use to query the board and see what's going on?  It's typically the first thing I build into any of my designs ... If you want to try some of my own methods here, we could take this off-line and work through it.

Dan

Link to comment
Share on other sites

@TomF,

One other quick question: If you load your design in SPI x1 mode rather than SPI x4 (QSPI) mode, does anything change?

The Spansion flash chip has an internal bit within it that needs to be set before it will enable QSPI mode, so this might help.  Others on Xilinx's forum(s) have struggled with missing this as well.

Dan

 

Link to comment
Share on other sites

@TomF,

Ok, so ... the flash works, the board works, but the SDK doesn't?

This sounds like one of the SDK's files is still stuck thinking you are working with the old design, and that it hasn't gotten updated at all.

Hence, I'd return to @jpeyron's advice and recommend that you rebuild the project, to clean out any undocumented values contained in any Vivado/SDK generated files.

Dan

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...