Other Parts Discussed in Thread: TPS63031, INA230
Hello,
I am facing a really strange issue that I was not able to diagnose. I'm just posting a message here if someone has better ideas to fix it.
Here is my schematic:
Here is my board layout (far from being perfect, I know):
power pcb board - top.pdfpower pcb board - bottom.pdf
On my previous board revision everything works properly. Here is what I changed since:
- Switching from TPS631000DRLR to TPS63031DSKR due to inventory issues. I'm using this chip to get a 3.3V power supply to my RP2040 µC. These chips are using the SYS output of the BQ25611D to get power
- Adding the missing 1µF capacitor very close to the charger input, I did forget it in my previous board revision
- Fixing INT wiring. In my previous board revision, it was plugged incorrectly to 3.3V instead of a proper µC input
On this new board revision everything is working too except when I plug a power source to the BQ25611D chip, my µC resets. It was not the case before.
Here is what I tried to diagnose:
- Disabling charging (by setting /CE to HIGH): it stops resetting, but I need charging to work. When the RP2040 resets, it won't reset again until I enable back charging
- Monitoring 3.3V output from my TPS63031 with a scope: perfectly stable, even when plugging/unplugging the charger
- Monitoring the internal 1.1V from my RP2040 with a scope: perfectly stable too
- Monitoring the RUN input (where the RESET button is plugged too): perfectly stable to 3.3V too, even if my pull up resistor and my decoupling cap is a bit too far from the RP2040. I did manage to plug my probe directly to the RP2040 RUN pin and can confirm it's rock stable
- Monitoring voltage/current pulled from USB to my BQ25611D: nothing special, steady 5V with 0.01A to 0.1A load depending on the situation. Something is weird though: when I'm using a laptop to provide USB power, sometimes it cuts the USB power, like if there were a short circuit for a very bried period of time. But when I'm using a lab bench PSU, I'm not seeing any current spike and the issue still occurs.
- Using a very basic "Blink" Arduino sketch to confirm it was not a firmware issue: when blinking a LED with charging disable it works, when setting /CE to LOW, it resets again continiously
- Using a basic Arduino sketch to get the last reset reason: work still in progress but it looks like the reset reason is the same as when pressing the reset button. But as I said earlier, the RUN input is perfectly stable
Any ideas are welcome!