Circuit is a Raspberry Pi 4A SPI master node talking with one MCP23S17 device: datasheet. I'm testing the singlest circuit version in a protoboard.
We are using A bank GPIOs for reading, and B bank GPIOs for writting. From them, two GPIOs will be used with wires, one belongs to the input bank and the other one belongs to the output pins group. So Out_1 and In_1 both will have one wire connected at each pin, as can be seen at the picture.
At the end of the wire it could be contact between out_1 wire and in_1 wire or not. So in_1 wire could be reading from out_1 pin or being not connected to anything ('Z' state/open circuit).
Input pin is configured with internal R pull up in order to read VDD when not connected.
Normally out_1 will ever be writing '0', so everytime in_1 is connected to out_1 --> in_1 will ever read a '0' value.
The circuit can be seen at the following pictures, when reads '1':
When reads GND:
This circuit is working at 1Mhz, as you can see MCP is fed with Raspberry supply pins. They don't need extra capacitors because Raspberry provides 100nF at their 3.3V and 5V pins.
At pictures it can be seen that Reset and Address signals has no R pull up, because they will be by the moment to VDD or GND constantly, with any value change. Resistors will be added to the final design where Rst will come from another digital source, instead of VDD.
Application works making thousands of writing/reading in a loop.
It can be working fine during most of the time, during hours.
But suddenly the device is reaching too much temperature, I think it's closer to get burn. Here, reading fails. Even the two contiguous GPIO pins starts changing its input values when they are not connected to anything.
When it ocurres I can see how the multimeter reads 2.8v instead 3.3V from VDD Raspberry pins. So, it seems to be an extra current consumption but I don't know from which pin and why.
This situation stops if the device is reset. After making a reset, the temperature falls to normal and it works fine.
What can be happened? Why is the device getting this consumption? Would does it need to put resistors at address or reset pins?
Added after posting and some new tests:
I have realized when overcurrent starts. By the moment during a week under test I can say when it happens: when I handle wires and push one of them into the GPIO input pin hole. My python control sw gives me feedback about when an input toggle its input value. I can see by screen how when overheating has started, a long toggle-switching is produced before get the stable. As long as toggle time is, then so closer to start the undesired behavior.
I have done a hw debouncig to an input with a 1uF capacitor and toggle has minimized until almost being completely avoided.
Thanks in advance.