This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF52840 avoid via-in-pad by connecting pins together

Hi.

To avoid via in PAD I like to route a signal/pin from the inner row (closest to center) through a pin in the outer row. However, to be able to do that I must be sure the pins (GPIO pins) is an input after reset and when programming the device.

In my case it is for the UART and RESET pin I like to connect some pins together to be able to route them out from the package without using any via-in-PAD.

For example for the RESET pin (PAD AC13, inner row), I like to route it through the P0.17 pin (PAD AD12, outer row). This requires P0.17 is an input when programming and hence looks transparent for the RESET signal.

Schematic and layout in attached pdf. Will this approach be OK?

Best regards Joakim

nRF52840-no-via-in-pad.pdf

  • Hi,

    Are you aware that the UART traces can be routed to any pins you like and that you can configure the UART in SW to use those pins? You can do this with most peripherals in the nRF5 series, with the exception of the NFC, radio, analog, and debug pins (including the RESET pin). It is a very neat feature that allows you to avoid issues like yours and to avoid crossing traces on your layout.

    You can't change the RESET pin though, so then you can do what you suggest. The default reset state of the GPIOs is input mode, but with the input buffer disconnected. So basically they are floating with high impedance. Hence, routing the RESET signal through P0.17 as you suggest, shouldn't be a problem.

  • So I asked a very similar question  here but in response to moving the nRESET pin, I found in the documentation the PSELRESET[0] and PSELRESET[1] registers. It means the nRESET pin can be changed to a subset of the available GPIO pins. My concern though was whether or not the reset pin was needed to program a blank SoC. If that's the case, you run into the problem of needing access to the reset pin to change the reset pin -- defeating the purpose. 

  • Hi,

    The PSELRESET[] registers are a common source of confusion because unfortunately you cannot freely select any GPIO to use as a reset pin. Your only real option is whether to use P0.18 as a reset pin or a regular GPIO. In other words, 18 is the only valid parameter in the 'A' field in the PSELRESET register and you can just choose whether you want to use it or not.

    You don't need the reset pin to program the IC so you don't need to worry about access to it. When programming and debugging the IC is reset using the SWD lines. 

Related