Electronic – Should the reset pin on MCP23S17 go to a GPIO

expandermicrocontrollerreset

Most example schematics for Arduino, Raspberry Pi etc have the reset pin tied to GND.

If number of GPIOs on the MCU wasn't a problem, would it be beneficial to have the reset of the expander connected to a MCU GPIO with a pull down resistor?

Best Answer

I would say yes in this case.

It may not make sense to do this always, because some chipsets like USB hubs or devices need strict reset timing in order to response to host requests in time. If the reset period is too long, it may fail to enumerate. If you cannot satisfy this timing with a "less than real time system" like a Raspberry PI, it makes it very challenging.

If there is not such a limitation I would certainly connect it. I've witnessed a case where a manufacturer of a complex DSP product did not connect a reset line to their RF chipset. Unfortunately the chipset's firmware (outside their control) would lockup at some point and couldn't get a fix from the vendor. The solution for recovering was to power cycle the modem. This meant for us, as an end user, power cycling our complete system. Ultimately we pressured the manufacturer to recall all of our modems to a newer hardware board that did have the reset line connected (+their firmware fix). All things considered, it was a very costly endeavor for us and them to get this fixed.

It may be an extreme example, but it could all have been spared if they just had connected the reset pin in the first place. It's not they were short on I/O I suppose: the host CPU was a powerful Cortex m4 in BGA package, on an otherwise relatively minimal digital design.

Unfortunately I'm not aware of the reset timings of the RF chipset, it may have been a limitation. Nevertheless it's worth considering if software control can guarantee a bit more "safety" in future bug fixing.