The input to this design is 12V which I envisage to be supplied by a commonly available power brick. Care needs to be taken to choose a supply that can deliver the current required by your output load. At the high end 66W at 3.3V equates to 5.5A at 12V plus losses, plus consumption by the controller itself. If you plan on providing 66W to your load then you’d want at least a 7A 12V supply on the input.
I’ve included a relay between the 12V input and the NXA66 because I don’t want the module powering up by itself without being co-ordinated by my controller. I discovered during experimentation that the module goes into an undefined state if you attempt to switch between the two available voltage levels while the power is on and for that reason I want to be able to set the control pins to the desired state and then power up the module. If the user decides to switch voltages while power is on then I’ll programmatically cut the power, set the VSP pin accordingly and then power up the module. A power MOSFET could be used equally well for this switching purpose; I tossed a virtual coin and it came down on the side of the relay.
All the functionality of the module is exposed to the controller. The slot itself is a 2×25 card edge connector with a 2.54mm pitch and an inter-row spacing of 5.08mm. The VSP and OUTEN pins are switched by MOSFETs and linked directly to LEDs that show their current state. Artesyn hint at a requirement for an output capacitor in their datasheet so I include a 150µF electrolytic at the output terminal. The output and return terminals themselves are doubled up to provide a higher current carrying capacity.
PGOOD is an open-drain (or collector) output. This means that the module can drive it low but it floats when high so it must be pulled up to a high level by the controller. Open-drain outputs are used when the I/O levels of the controller are not known by the designer. It would be no use specifying this output as a push-pull pin at 12V when the MCU on the board is 3.3V, for example. I connect PGOOD to the MCU with a pull-up resistor and use a separate MCU pin to light the indicator LED.
Current monitoring is provided by the Texas Instruments INA226 in a surface mount MSOP-10 package with a 0.5mm pin pitch. Sorry about that. Try as I might I just couldn’t find a suitable current monitor in a DIP package that came close to the capabilities of this little chip. This is the only SMD package on the board.
The INA226 continually senses the voltage across a very low value (2mΩ) resistor placed in the path of the output current. An internal ADC converts this to a digital value that can be queried by an MCU using the I2C protocol. You can set an internal calibration register for fine tuning the current reading to compensate for the inaccuracy inherent in the sense resistor value. As well as the current you can also query the sensed voltage and the power. It can also alert you via an output pin if a voltage or power threshold that you program is exceeded. This is all great stuff and is ideal for this project.
Really, It had to be an Atmega didn’t it? The requirement for a though-hole design rules out the STM32 F0, my favourite general-purpose ‘do almost anything’ MCU. This design will use the same Atmega328p made famous the world over by thousands of Arduino users. That same level of success means that you can pick up this MCU for just a few dollars from your favourite components store.
There are a few points to note about how the MCU is configured in this design. Firstly I’m using the internal 8MHz oscillator as the clock source which, given the documented 10% tolerance, does pose a risk to the ability to run a reliable UART for data logging. If I do revise this design then I will try to squeeze in an external crystal. Secondly, since I’ll be using the ADC there is an LC filter on AVCC which will also be used to set the AREF level.
The MCU and the external peripherals on this board all run at 5V so I need to drop the input level of 12V down to 5V to generate that supply. A 7V difference means that a linear regulator would be burning off a lot of power as heat so for efficiency reasons a switching buck regulator is the preferred option. I opted to use the Texas Instruments LM2574 Simple Switcher that can provide up to 500mA which should be more than enough for this design. TI’s Simple Switcher range are very reliable and easy to use. I’ve used them many times in the past and never had any issues with stability.