cstanton recently posted about PCB manufacturers to see if he could get some action in this forum. So here goes: this post is in reference to the last PCB I recently designed for an electronic dc load - I didn't find a way to create a blog in this section. In any case, I've not posted it elsewhere because I wasn't ready to blog about it but it seems like a good candidate to get feedback and comments because:
- I've never designed or built something like this before.
- It's already designed, manufactured and populated the PCB. This means that any comments raised can be checked against reality! So a comment such as "You should check XYZ because I think the ABC will oscillate like a plucked guitar string without a 47K resistor at point HIJ" can be verified.
- It's not tested because I haven't yet created the software to drive it. Any verification will have to wait until l do so.
Unfortunately, if I just posted the PCB it probably wouldn't make much sense, so it requires some explanation and the post is quite long. This DC load is a module for my Instrument Control Board, thus the driving signals are produced elsewhere and you need to bear that in mind.
Schematic
Less-interesting Sub-Sections
Board I/O: incoming power and signals from the ICB. This module only requires +5V/-5V DC so other power inputs are ignored.
Temperature Monitors: There were unused ADC outputs so I provisioned space to add two thermocouples which I will attach to the MOSFETS as a back-up temperature monitor, primarily for testing to make sure that my Heatsink Monitor is reasonably accurate and I can judge from differential values when to turn the Fan on/off.
Heatsink Temperature Monitor: There is an I2C driven TO-220 monitor stuck on the heatsink to provide temperature feedback to the ICB which will then drive the fan on/off accordingly.
Indicators: Two LEDs to indicate (a) power is applied to the board (from the IDC); (b) that the DC load is on, i.e. a signal is being received from the ICB and is actively driving current through the MOSFETS.
Fan: connector for a 2-lead fan that will be attached to the case behind the heatsink.
Driving Signals
The ICB has 4 DAC outputs that could be used. Nominally, only one is required but I was trying to think about how best to use what is available and I also threw the RTCC_MFP output into the ring. The latter is a square wave that is generated by the RTCC on the ICB in one of four possible frequencies. I decided to put a MUX in the signal path so I could choose which output to use: this could be driven from software on the ICB and allow, for example, switching between two output levels or a frequency signal. DAC C and DAC D are used to control the logic table that 'selects' which input signal appears on the COM pin. the PWRSIG pin enables/disables the output and is driven from the ICB either through a software switch or a physical momentary button on the ICB enclosure.
DC Load Control
This of course is the meat of the DC load module. I need to be clear up front in that I used a few inputs to create this:
- There are a number of posts on E14 that describe a DC Load circuit which I reviewed. In particular Jan Cumps and Peter (? Sorry, forget the surname now) had a whole set of blog postings on their DC Load design.
- John Scully, on YouTube, posted an excelled series on DC Load, in particular parallelsing the MOSFETS for improved outputs.
The driving signal is coming from the MUX, is buffered and then divided by 10 to give me an input to the driving Op Amp, between 0 and 0.5V. There's also a trimmer to help with accuracy of this signal. The signal is then driven into the MOSFETS with feedback to allow 0 to 5A to flow through the MOSFETS - I'll almost certainly limit this to 3A because that is more in line with the PSUs I have and power dissipation I can (economically) achieve. I do have a PSU that can drive 5A for testing purposes.
I did start off with the MOSFETS in parallel in the most obvious way (not shown, but I'm sure you can picture this setup in your mind.) The main issue with any approach to paralysing MOSFETS is that they aren't all created equal, so that for, say, any particular Gate Voltage, each MOSFET will allow more current to flow because it has a smaller Rds-ON. John Scully had experimented with this and fundamentally it came down to these properties of a MOSFET:
Fig 9 from the datasheet shows that as junction temperature rises, so does Rds-ON. So in the normal run of things any MOSFET that is driving more current will get hotter thus its Rds-ON will increase and current reduce as a result. In theory then, there is some self-balancing in the circuit. However, Figure 7 shows that as junction temperature increases, a lower Gate-Source Threshold is required for the same amount of current. If the actual GS(th) isn't decreased as temperature increases then it will drive that MOSFET even harder, increasing its temperature with a cyclic feedback on GSth - potentially with thermal runaway for that particular MOSFET. These two figures really imply that a simplistic approach to parallelising MOSFETS isn't going to work very well at higher currents.
The circuit shown uses a NPN transistor to bias the GS(th) voltage. As the voltage over the small resistors (e.g. R12) increases it turns on the transistor which pulls the Gate voltage down thus reducing the GS(th) as temperature increases. John Scully explains this much better than I can but I'm sure you see the essence of it. This active feedback helps regulate any MOSFET that would normally want to draw more current than the others.
Sense Feedback
This allows an additional connection from the DUT output terminals to the DC Load Module that provides a more accurate feedback of voltage than that measured directly at the MOSFET outputs which is impacted by lead length, size, components, PCB traces etc. The choice of resistors reduces the voltage to a level that can be safely input to the ADC 2 channel.
PCB
Hopefully the above is enough of an explanation for the PCB to make sense. It is a 2 layer board, 181mm x 80mm sized to fit the PCB rails in the enclosure I have for it: all signals but one are on the top layer; ground and -5V are on the bottom layer. The load current path is as large as could be placed whilst maintaining a good clearance to other signals. All heatsink mounted components wire into the connectors along the top edge. Other components are placed to ease routing and avoid routing traces onto the bottom layer - successful in all cases except for the COM output of the MUX.
Unfortunately, KICAD doesn't have 3D models for every component but the photo should help:
As I mentioned at the start, this isn't tested yet as I haven't finished writing the software to drive it from the ICB. However, please "have at it" and I can report back in the future on any comments made. As this is meant to be the PCB Prototyping forum, I think it would be useful if any comments were related to real-life experience/problems/successes etc to better help other readers.