Jump to content
  • 0

Arty S7-50 Arduino Board Reset


baywil

Question

I have an Arduino Ethernet shield board attached to an Arty S7-50. The Ethernet board goes stupid after running for awhile and refuses commands  - has to be power reset and I would like ArtyS7 to handle it.

The Spartan S7 has a reset input on pin C18 (CK_RST) that connects to the power button on the Arty S7. ck_rst.png.88be09b1196316087f7b978e55ffe439.png

rstButton.png.0bd69ead9e9d541040d7ae71b21cc637.png

The Arty S7 manual shows that pin C18 is also driven by the FTDI FT2232 USB-UART bridge via JP2.

FT2232.png.9c3c145aa798690b1de16f8e67714d4b.png

According to the Arty S7 manual, the RST pin on the shield connector J8 (which I would like to bounce) is "Connected to the red "RESET" button and a Digital I/O of the FPGA. When JP2 is shorted, it is also connected to the DTR signal of the FTDI USB-UART bridge."

1. Maybe I could reset the Ethernet board by bouncing the DTR signal on the FTDI bridge? I'm not sure how to directly access the FTDI.

The manual says "The red reset button labeled “RESET” generates a high output when at rest and a low output when pressed. The RESET button is intended to be used in Microblaze designs to reset the processor, but you can also use it as a general purpose push button."

2. If the reset button could also be used for general purposes, there must be some way to disconnect it from RESET. How would I program this button for general purposes? (I don't have it defined in Vivado)

Maybe C18 could be tied to a GPIO pin (via the Vivaldo block diagram) to pull it low to cause a reset. I realize that if this did work, it would reset the ArtyS7 as well as the Ethernet board.

3. Has anyone ever done anything like this to C18 CK_RST?

An idea I saw mentioned for the Ethernet board was to disconnect its RST pin from the connector (J8 counterpart) and wire it to one of the digital GPIO lines in the shield connector.

4. This could allow ArtyS7 to control the Ethernet board reset via GPIO. Has anyone ever done this?

J8.png.af9156674a788a2d7cf043d8d514246a.png

etherBoard.png.10c2f703ce39b6aca3ce6b36e40c2f4a.png

 

Any thoughts would be appreciated!

Thanks!

 

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0
Quote

2. If the reset button could also be used for general purposes, there must be some way to disconnect it from RESET. How would I program this button for general purposes? (I don't have it defined in Vivado)

Maybe C18 could be tied to a GPIO pin (via the Vivaldo block diagram) to pull it low to cause a reset. I realize that if this did work, it would reset the ArtyS7 as well as the Ethernet board.

With the jumper disconnected, C18 is functionally just another button input to the FPGA, it's not tied to any circuitry that resets the FPGA itself or the power supply. The jumper just connects an FTDI output pin to the same FPGA input as the button. User designs need to connect the input to logic inside the FPGA - it's just intended to reset soft-core processors. If pin 3 of the ethernet shield's power header accepts an active low reset, the button might already just work to trigger a reset without affecting the Arty.

Link to comment
Share on other sites

  • 0

Since the JP2 jumper only disconnects the FTDI output from C18, it has no effect on the hard-wired reset button. That button, will still be connected to C18 as well as the RST pin in the shield. If FPGA internal logic is able to force C18 low, it would effect the RST pin in the shield and reset the Ethernet board. C18 is connected to "reset" in the block diagram properties but, I'm unsure how to access it from Vitis.

Link to comment
Share on other sites

  • 0

For the jumper, just leave it disconnected so that the FTDI can't drive reset events. C18 could be manually constrained and connected to something like an AXI GPIO pin. See the template constraints here: https://github.com/Digilent/digilent-xdc/blob/master/Arty-S7-50-Master.xdc. How to use it is covered by this guide: https://digilent.com/reference/programmable-logic/guides/getting-started-with-ipi#add_gpio_peripherals_to_a_block_design.

Thanks,

Arthur

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...