As most established engineers will tell you, the best lessons learned are honestly from things we’ve screwed up in the past. One of my first mentors told me that and I’d have to agree 100%. Nothing burns itself into your mind quite as well as something that has bitten you on the other end.
With that in mind I wanted to share a recent experience I had with one of my favorite new devices in hopes of saving some of you future frustrations. The IRPS5401 is a multichannel PMIC from Infineon featuring PMBus control and a slew of features and configuration options. I’ve featured this device on several designs and it’s been great. Recently, we had a customer copy one of our power designs to use in their own design. Turns out they didn’t copy the design exactly, and after going around and around a few times we figured out why it wasn’t working the way we intended.
The IRPS5401 has a wide input range of 1.2V to 14V with external Vcc… spoiler alert, that little extra statement is going to be important. The device has internal logic that is powered from an internal LDO… IF Vin is 6V or above AND it is configured to do so.
So let’s rewind to UltraZed EG, which is the design that our customer was working with. This particular design was implemented to support a Vin range that would allow the board to run off a single 5V input. When operating off a Vin less than 6V, you must provide 5V to Vcc externally. We accounted for this by providing a dedicated 5V to Vcc using a 100% duty cycle capable switching regulator off of the board Vin. Now our hardware would support 5V to 12V input without requiring a BOM change. For use as a SOM, we wanted to provide flexibility to our customers who may have different system Vin voltages available to them.
So now let’s jump back to our non-working design. We had a board with preprogrammed devices on it, but the supplies were not coming up. Not only that, they wouldn’t show up on the PMBus. Even with blank devices, they should show up on the I2C PMBus, so that was immediately a big problem. After review and some help from my supplier colleagues, we discovered the issue: Vcc was connected to VDRV without an external supply feeding it 5V. To be clear, that is 100% accurate for a design that is set to run off of an internal Vcc… the problem was that our preprogrammed devices were configured to run off an EXTERNAL Vcc. The result was that the device would not power up the internal logic, meaning we couldn’t talk to the parts, which meant we couldn’t correct the programming file.
We reworked the boards to provide an external 5V to Vcc and, low and behold, it powered up properly with the expected profiles. At this point we went into the PowIRCenter GUI and changed the configuration file to run off of an internal Vcc, programmed it, powered it down, removed the external supply, repowered the board and it worked as expected.
So what I learned here was that when copying a reference design for a programmable power supply, not only do you need to review the datasheet and schematic, but also closely review the programming configuration. I had overlooked the different requirements for a Vin above or below 6V and mistakenly assumed that the internal regulator would power up if an external supply wasn’t provided. In our case, it was a check box that needed to be “checked”, and more documentation needed to be provided for use cases above and below a Vin of 6V.