Silicon ChipPower LCR Tester, Part 1 - March 2025 SILICON CHIP
  1. Outer Front Cover
  2. Contents
  3. Publisher's Letter: Alipay & WeChat show us the way
  4. Feature: Prosthetic Limbs by Dr David Maddison, VK3DSM
  5. Subscriptions
  6. Project: Power LCR Tester, Part 1 by Phil Prosser
  7. Feature: The Power Grid’s Future, Part 1 by Brandon Speedie
  8. Project: Audio Mixing Cables by Julian Edgar
  9. Feature: Antenna Analysis, Part 2 by Roderick Wall, VK3YC
  10. Project: RF Remote Receiver by Tim Blythman
  11. Project: Continuity Tester by Tim Blythman
  12. Project: Versatile Waveform Generator by Randy Keenan
  13. Project: Shed Alarm by Julian Edgar
  14. Feature: Precision Electronics, Part 5 by Andrew Levido
  15. Project: Pico 2 Audio Analyser by Tim Blythman
  16. Feature: Transitioning to the RPi Pico 2 by Tim Blythman
  17. Serviceman's Log: The dishwasher that wouldn’t by Dave Thompson
  18. PartShop
  19. Vintage Radio: National R-70 Panapet by Ian Batty
  20. PartShop
  21. Market Centre
  22. Advertising Index
  23. Outer Back Cover

This is only a preview of the March 2025 issue of Silicon Chip.

You can view 49 of the 112 pages in the full issue, including the advertisments.

For full access, purchase the issue for $10.00 or subscribe for access to the latest issues.

Items relevant to "Power LCR Tester, Part 1":
  • Power LCR Meter PCB [04103251] (AUD $10.00)
  • PIC32MK0128MCA048 programmed for the Power LCR Meter [0410325A.HEX] (Programmed Microcontroller, AUD $20.00)
  • Software & STL files for the Power LCR Tester (Free)
  • Power LCR Meter PCB pattern (PDF download) [04103251] (Free)
  • Power LCR Meter panel artwork and drilling diagrams (Free)
Articles in this series:
  • Power LCR Tester, Part 1 (March 2025)
  • Power LCR Tester, Part 1 (March 2025)
  • Power LCR Meter, Part 2 (April 2025)
  • Power LCR Meter, Part 2 (April 2025)
Articles in this series:
  • The Power Grid’s Future, Part 1 (March 2025)
  • The Power Grid’s Future, Part 1 (March 2025)
  • The Power Grid’s Future, Part 2 (April 2025)
  • The Power Grid’s Future, Part 2 (April 2025)
Articles in this series:
  • Antenna Analysis, Part 1 (February 2025)
  • Antenna Analysis, Part 1 (February 2025)
  • Antenna Analysis, Part 2 (March 2025)
  • Antenna Analysis, Part 2 (March 2025)
  • Antenna Analysis, Part 3 (April 2025)
  • Antenna Analysis, Part 3 (April 2025)
Items relevant to "RF Remote Receiver":
  • Software for JMP022 - RF Remote Receiver (Free)
Articles in this series:
  • Wired Infrared Remote Extender (May 2024)
  • Symbol USB Keyboard (May 2024)
  • Wired Infrared Remote Extender (May 2024)
  • Thermal Fan Controller (May 2024)
  • Symbol USB Keyboard (May 2024)
  • Thermal Fan Controller (May 2024)
  • Self Toggling Relay (June 2024)
  • Self Toggling Relay (June 2024)
  • Arduino Clap Light (June 2024)
  • Arduino Clap Light (June 2024)
  • Lava Lamp Display (July 2024)
  • Digital Compass (July 2024)
  • Digital Compass (July 2024)
  • Lava Lamp Display (July 2024)
  • JMP009 - Stroboscope and Tachometer (August 2024)
  • JMP007 - Ultrasonic Garage Door Notifier (August 2024)
  • JMP009 - Stroboscope and Tachometer (August 2024)
  • JMP007 - Ultrasonic Garage Door Notifier (August 2024)
  • IR Helper (September 2024)
  • IR Helper (September 2024)
  • No-IC Colour Shifter (September 2024)
  • No-IC Colour Shifter (September 2024)
  • JMP012 - WiFi Relay Remote Control (October 2024)
  • JMP012 - WiFi Relay Remote Control (October 2024)
  • JMP015 - Analog Servo Gauge (October 2024)
  • JMP015 - Analog Servo Gauge (October 2024)
  • JMP013 - Digital spirit level (November 2024)
  • JMP013 - Digital spirit level (November 2024)
  • JMP014 - Analog pace clock & stopwatch (November 2024)
  • JMP014 - Analog pace clock & stopwatch (November 2024)
  • WiFi weather logger (December 2024)
  • Automatic night light (December 2024)
  • WiFi weather logger (December 2024)
  • Automatic night light (December 2024)
  • BIG LED clock (January 2025)
  • Gesture-controlled USB lamp (January 2025)
  • Gesture-controlled USB lamp (January 2025)
  • BIG LED clock (January 2025)
  • Transistor tester (February 2025)
  • Wireless flashing LEDs (February 2025)
  • Transistor tester (February 2025)
  • Wireless flashing LEDs (February 2025)
  • Continuity Tester (March 2025)
  • RF Remote Receiver (March 2025)
  • Continuity Tester (March 2025)
  • RF Remote Receiver (March 2025)
  • Discrete 555 timer (April 2025)
  • Weather monitor (April 2025)
  • Discrete 555 timer (April 2025)
  • Weather monitor (April 2025)
Articles in this series:
  • Wired Infrared Remote Extender (May 2024)
  • Symbol USB Keyboard (May 2024)
  • Wired Infrared Remote Extender (May 2024)
  • Thermal Fan Controller (May 2024)
  • Symbol USB Keyboard (May 2024)
  • Thermal Fan Controller (May 2024)
  • Self Toggling Relay (June 2024)
  • Self Toggling Relay (June 2024)
  • Arduino Clap Light (June 2024)
  • Arduino Clap Light (June 2024)
  • Lava Lamp Display (July 2024)
  • Digital Compass (July 2024)
  • Digital Compass (July 2024)
  • Lava Lamp Display (July 2024)
  • JMP009 - Stroboscope and Tachometer (August 2024)
  • JMP007 - Ultrasonic Garage Door Notifier (August 2024)
  • JMP009 - Stroboscope and Tachometer (August 2024)
  • JMP007 - Ultrasonic Garage Door Notifier (August 2024)
  • IR Helper (September 2024)
  • IR Helper (September 2024)
  • No-IC Colour Shifter (September 2024)
  • No-IC Colour Shifter (September 2024)
  • JMP012 - WiFi Relay Remote Control (October 2024)
  • JMP012 - WiFi Relay Remote Control (October 2024)
  • JMP015 - Analog Servo Gauge (October 2024)
  • JMP015 - Analog Servo Gauge (October 2024)
  • JMP013 - Digital spirit level (November 2024)
  • JMP013 - Digital spirit level (November 2024)
  • JMP014 - Analog pace clock & stopwatch (November 2024)
  • JMP014 - Analog pace clock & stopwatch (November 2024)
  • WiFi weather logger (December 2024)
  • Automatic night light (December 2024)
  • WiFi weather logger (December 2024)
  • Automatic night light (December 2024)
  • BIG LED clock (January 2025)
  • Gesture-controlled USB lamp (January 2025)
  • Gesture-controlled USB lamp (January 2025)
  • BIG LED clock (January 2025)
  • Transistor tester (February 2025)
  • Wireless flashing LEDs (February 2025)
  • Transistor tester (February 2025)
  • Wireless flashing LEDs (February 2025)
  • Continuity Tester (March 2025)
  • RF Remote Receiver (March 2025)
  • Continuity Tester (March 2025)
  • RF Remote Receiver (March 2025)
  • Discrete 555 timer (April 2025)
  • Weather monitor (April 2025)
  • Discrete 555 timer (April 2025)
  • Weather monitor (April 2025)
Items relevant to "Versatile Waveform Generator":
  • Versatile Waveform Generator PCB [04104251] (AUD $5.00)
  • Versatile Waveform Generator PCB pattern (PDF download) [04104251] (Free)
  • Front panel label and drilling template for the Versatile Waveform Generator (Panel Artwork, Free)
Articles in this series:
  • Precision Electronics, Part 1 (November 2024)
  • Precision Electronics, Part 1 (November 2024)
  • Precision Electronics, Part 2 (December 2024)
  • Precision Electronics, Part 2 (December 2024)
  • Precision Electronics, Part 3 (January 2025)
  • Precision Electronics, part one (January 2025)
  • Precision Electronics, part one (January 2025)
  • Precision Electronics, Part 3 (January 2025)
  • Precision Electronics, part two (February 2025)
  • Precision Electronics, Part 4 (February 2025)
  • Precision Electronics, Part 4 (February 2025)
  • Precision Electronics, part two (February 2025)
  • Precision Electronics, part three (March 2025)
  • Precision Electronics, part three (March 2025)
  • Precision Electronics, Part 5 (March 2025)
  • Precision Electronics, Part 5 (March 2025)
  • Precision Electronics, Part 6 (April 2025)
  • Precision Electronics, Part 6 (April 2025)
  • Precision Electronics, part four (April 2025)
  • Precision Electronics, part four (April 2025)
  • Precision Electronics, part five (May 2025)
  • Precision Electronics, Part 7: ADCs (May 2025)
  • Precision Electronics, part five (May 2025)
  • Precision Electronics, Part 7: ADCs (May 2025)
  • Precision Electronics, part six (June 2025)
  • Precision Electronics, part six (June 2025)
Items relevant to "Pico 2 Audio Analyser":
  • Pico (2) Audio Analyser PCB [04107231] (AUD $5.00)
  • 1.3-inch blue OLED with 4-pin I²C interface (Component, AUD $15.00)
  • 1.3-inch white OLED with 4-pin I²C interface (Component, AUD $15.00)
  • Short-form kit for the Pico 2 Audio Analyser (Component, AUD $50.00)
  • Pico Audio Analyser PCB pattern (PDF download) [04107231] (Free)
  • Pico 2 Audio Analyser firmware (0410723B) (Software, Free)
Articles in this series:
  • Pico Audio Analyser (November 2023)
  • Pico Audio Analyser (November 2023)
  • Pico 2 Audio Analyser (March 2025)
  • Pico 2 Audio Analyser (March 2025)
Items relevant to "Transitioning to the RPi Pico 2":
  • Software for the article on transitioning to the RPi Pico 2 (Free)

Purchase a printed copy of this issue for $13.00.

Part 1 by Phil Prosser POWER LCR METER While we have published plenty of LC and LCR meters over the years, this one is quite different. It can deliver up to 30A to inductors to determine their properties at higher power levels. That makes it particularly useful for determining when and how an inductor saturates. It can also measure very low resistances and very high capacitances. I nductors are the easiest of the basic components to make yourself. This is typically done by winding enamelled copper wire around a core or former. For air-cored inductors, you’re generally only worried about the inductance (which can be measured with an LC meter) and DC resistance (measured with a low-ohms meter). It’s quite a bit more complicated for inductors with a core, though. Cores are typically made of ferrite, compressed powdered iron or mu metal, and they all behave quite differently at higher current levels. As the current through the inductor increases, eventually the core saturates and the inductance drops. This meter will let you determine at which current the inductance starts to drop off and how fast it drops off. It isn’t just handy for self-wound inductors; any that you recover from a piece of equipment will likely have unknown properties – this device can erase that mystery. It can also measure very high capacitances and low DC resistances, which is handy for characterising the series resistance of any inductor, including air-cored types. As an example of when this device might come in handy, if you use a ferrite or iron-cored inductor in a loudspeaker crossover, its inductance will fall as the current through it increases Power LCR Meter Features & Specifications » Measures capacitance from 50nF to more than 1F » Measures resistance from 1mΩ to 300Ω » Measures inductance from 50μH to 1H+ » Measures inductance saturation from 10μH to 1H at up to 30A (limited by internal resistance) » Optional Kelvin probes for measuring low resistances » Power supply: 12-20V DC at 1A 28 Silicon Chip Australia's electronics magazine past its saturation point. The result of this is non-linear behaviour that will be heard as distortion. High-quality speakers use air cored inductors because they do not suffer this problem. However, large inductors in speakers still often have ferrite or iron cores to manage cost, and the bulk and high resistance of a large coil of wire. Another common application of power inductors is in switch-mode power supplies. At high currents, saturation in the core can reduce the inductance and degrade the performance of the power supply. While this tester will not characterise inductors at high frequencies, it is unusual in that it allows characterisation of inductors at very high currents, up to about 30A. Our Power LCR Meter measures inductance, resistance and capacitance for larger power devices. For measuring low resistances, it will push up to 1A through the resistor, although only for a very short time. This is not a general-purpose meter; it is for those chunky passives you are considering for your switch mode power supply, Class-D amplifier siliconchip.com.au output or loudspeaker crossover. It will give you insight into your parts that you won’t find in many other testers. Operating principles Rod Elliot describes a circuit that can be used to manually measure the saturation of power inductors on his website at https://sound-au.com/ project250.htm (we’ve seen it elsewhere but his description of how it works is pretty thorough). The problem with that approach is that you need an oscilloscope to make the measurements. This circuit uses an interesting technique to make that measurement, and in the deal we are forced to measure capacitance and resistance as part of the overall system, which makes for an unusual and capable device. The concept is to monitor the transient behaviour after we apply a voltage step across the inductor, analysing the current through and voltage across the device under test (DUT) over time. Pretty much all the similar circuits on the internet that we found use a variation of the simple circuit shown in Fig.1. We will avoid lots of maths here, but the following principles are used in this project. Most of us are familiar with the resistance equation (Ohm’s law): V = IR. The capacitor equivalent to this is C = q/v and its differential is C = (dq/ dt) ÷ (dv/dt). Realising that dq/dt is simply current, we have C = I ÷ (dv/ dt). For inductors, the equivalent formula is L = V ÷ (di/dt). This circuit uses the property that if we turn that driving Mosfet on and apply 1V across a 1H inductor, we can expect to see the current increase at 1A per second. Similarly, if the inductor is 100μH and the rail voltage is a 10V or so, then we get the formula 10-4H = 10V ÷ (di/dt), so we can expect di/ dt to be 105A/s or 100mA/μs. For a 10μH inductor with 10V applied, we can expect a rather lively 1A/μs rate of increase in current. This means that we will have to switch the Mosfet off pretty quickly after it turns on, or be ready to handle some very high currents after a few millionths of a second! By measuring the rate of change of current through the inductor, we can measure its inductance. If we measure that repeatedly at a series of points on siliconchip.com.au that current curve, we can monitor how the inductor behaves at different currents. Neat! Rod Elliot makes a case that running this manually with a programmable pulse generator makes sense. We found ourselves in a situation somewhat akin to the serviceman looking at a broken widget that probably ought to be thrown in the bin. The temptation to ‘have a go’ at automating the measurements was irresistible. Challenges this presents include: 1. Inductors have resistance, which really messes up the measurements if you ignore it. 2. The precise voltage across the DUT is important; if it droops during the measurement, you need to know by how much, or your results will be inaccurate. 3. It has to work over a wide range of inductor values and sizes. 4. We should ideally make sure that if someone connects an unexpected component, it won’t explode. 5. How do we make measurements of a process that can be over in 50 millionths of a second, and even get multiple results in that short a time? 6. If we have an inductor being tested with 30A flowing through it, we have the potential for a massive backEMF spike with significant energy once the test finishes. Those first three challenges mean that this meter needs to be able to Fig.1: the basic principle of measuring inductance at various currents. A brief pulse applied to the Mosfet gate results in the voltage source being applied across the DUT, resulting in a current ramp through Rshunt that can be measured. The inductance can be calculated from its slope. accurately measure the resistance of the DUT and also the test voltage applied, as this is essential to get a good measurement of the inductance. This meter needs to be able to tell whether the DUT is a capacitor or not. Only after determining these things can the meter then run the saturation current test. To measure resistance and capacitance, we can use a current sink in a fairly conventional way, which involves driving a constant current through the device under test, not a constant voltage. Dealing with the back-EMF that will be created when we switch off There are a few parts on the PCB but it isn’t overly complex. The second large capacitor is optional and zener diode ZD13 is not required on the final board. Australia's electronics magazine March 2025  29 the Mosfet drive after an inductance test requires a reverse diode across the DUT. As it turns out, our circuit needs a Mosfet there to discharge capacitors while testing them, so we can use a P-channel Mosfet to deal with this. With a bit of head scratching, we arrived at an arrangement that allows us to parallel the high-current saturation drive Mosfet with a constant current sink that’s used for resistance and capacitance tests. Since we have a system to measure resistance and inductance, and also to sense whether the DUT is a capacitor or not, we might as well measure what the capacitor value actually is. In Fig.1, the Mosfet basically shorts the DUT across the 10V supply rail. If we leave it inactive, we can dial up a current on a programmable current sink to make those other measurements. This leads to the arrangement shown in the block diagram, Fig.2. The key system components are: • A power supply capable of delivering 10V at up to 30A for brief periods • The DUT • A Mosfet that can connect the DUT between the power supply rail and the current sense circuitry. This includes a hardware-based current limiter. • A discharging Mosfet that can apply a load across the DUT. • A programmable current sink. • Differential current and voltage sensing circuits for the DUT. • The PIC32MK0128MCA048 microcontroller to manage all this (in a 48-pin TQFP package). The PCB includes headers allowing the trigger timing and DUT current to be monitored on an oscilloscope so you can look at those waveforms, but the microcontroller samples all relevant signals and provides measured results. To see the waveforms on an oscilloscope, you need to set it on single shot and run a measurement, as we describe later. The power supply operates from a DC plug pack. This is nominally 12-20V at 1A. The average current draw is not great, but tests will demand up to 1A from time to time. The software implements four distinct algorithms, for measuring resistance, capacitance inductance and the saturation of an inductor (plus low inductances). Measuring resistance In this mode, the Mosfets are left off and the constant current sink is switched on at ~10mA. We have two channels that can monitor the voltage across the DUT, one with a gain of 20 and one with unity gain. We can measure up to 3.3V across the DUT, which is a maximum of 330W at 10mA. The software looks at the value determined by the voltage, and if the resistance is less than about 30W, it increases the current to 100mA. If the resistance is below about 15W, the high gain channel is used with a current of 10mA, and so on through to Fig.2: in addition to the Mosfet to switch voltage across the DUT, a second one can be used to discharge it (in case it is a capacitor). The programmable current sink allows for lower-current testing, with a DAC controlling the current level. Two differential amplifiers are used to monitor the voltage across the DUT and the current through it (via the voltage across the shunt). 30 Silicon Chip Australia's electronics magazine the meter driving 1A with a high gain. At 1A drive with high gain, the maximum value is 0.165W (165mW) and with the 12 bits of analog-to-digital converter (ADC) resolution, we should be able to resolve under 1mW. You will need to be using the Kelvin probes to measure resistances down at this level. The precision of these measurements is a result of the current sink and its calibration, the differential amplifier, the Kelvin probes and the ADC itself. If you are reasonably careful with your current calibrations and use 1% resistors, you will see accuracy in the region of a few percent. Measuring capacitance The software can use the same constant current sink along with the discharging Mosfet to determine if there is a capacitor on the DUT terminals. It does this by discharging the DUT by shorting the terminals, then feeding current to the DUT for a short period, then monitoring the voltage across the DUT after this current is removed. If the DUT is a resistor or inductor, the voltage will rapidly fall to 0V. In fact, for an inductor, the back-EMF will generate a negative voltage across the DUT. If the DUT is a capacitor, it will hold charge and the software will see this positive voltage. We can control the magnitude and duration of the current applied to the DUT, and we have a pretty decent ADC that can measure the voltage across it. So the software can also read the capacitance. To achieve this, the positive terminal of the DUT is connected to the positive rail and the current sink draws 10mA from the negative terminal. At the same time, the software switches the Mosfet across the DUT switches on. This discharges the capacitor we are measuring and also provides a path for the 10mA to flow. After the current sink has stabilised, the software clears its measurement buffer and starts sampling at the maximum sampling rate of 3.75Msa/s. The software then switches the DUT discharge FET Mosfet off, allowing the DUT to start charging. If the capacitor exceeds a predefined voltage, the software stops sampling, switches the current off and discharges the DUT. The data in the measurement buffer is similar to an oscilloscope trace of the capacitor (DUT) voltage. As shown in Fig.3, the software looks for two points siliconchip.com.au on this charging trace, V1 & V2. It also counts the number of samples between them (T1 & T2). From this, we can calculate dv/dt = (V2 − V1) ÷ (T2 − T1) and, knowing the current applied, we can calculate the capacitance from C = I ÷ (dv/dt). This technique is a bit limited because, with 10mA flowing, a capacitance of 50nF will have a dv/dt of 10-2A ÷ 5 × 10-8, which is 0.2V/μs. Our ADC has a full-scale voltage of 3.3V, which means that the total charging time is about 16μs. Our dv is actually 2.2V if you dig into the software, which means dt is 11μs. At 3.75Msa/s, this is only 41 samples. Further, the power devices in the circuit have some pretty substantial self-capacitances that we have to calibrate out in software. So we have settled on 50nF as a practical lower capacitance limit. What happens if a big capacitor is connected? Our software data buffer is 12,800 samples long, which means we can measure a capacitance with dv = 2.2V and dt = 12,800sa ÷ 3,750,000sa/s or 3.4ms. This gives a maximum capacitance of 15μF or so. Luckily, our software can look at the measurement buffer and see that we have not achieved our preferred V2 threshold, then reduce the sampling rate and rerun the test. Sampling rates of 3.75Msa/s, 375ksa/s and 37.5ksa/s are used. If a big capacitor is being tested, we can then increase the test current to 100mA and then 1A. This gives us an upper measurement limit of 1.5F. Discharging a huge capacitor from 2.2V down to 0V requires a little caution. The software does this by pulsing on the Mosfet across the DUT, starting with 1μs pulses and increasing them until the Mosfet is fully on. This is intended to discharge large capacitors without creating massive current spikes. Similar to the resistance measurement system, the resolutions of these measurements are good. Parasitic capacitance, slew rate limitations and suchlike limit the precision below about 100nF. From there up, the meter will provide a measurement accuracy of a few percent. Measuring inductance The meter has two approaches to measuring inductance. Both use the property of applying a voltage to the siliconchip.com.au Fig.3: measuring a capacitor value involves first discharging it, then applying a fixed current and measuring the rate of voltage rise. Fig.4: measuring inductance is similar to capacitance, except that we are applying a fixed voltage and measuring the rate of current rise. DUT and measuring the rate of change of current. The simple inductance measurement uses the constant current sink. As shown in Fig.4, it is similar to how we measure capacitance in that we start by setting up the constant current sink with the DUT discharge FET switched on. Then, when we are ready, we switch it off and monitor the voltage across the inductor (DUT) and also the current flowing through it. Keep in mind that the “constant current sink” is really a current-limited constant voltage. That means the current sink is saturated and switched on hard right until the end of the test. We have chosen this approach for initial inductance measurement as we know that the current will be controlled to the limit set by the constant current sink. If a user attempts to test an extremely low inductance, or a short circuit, the DUT will be subjected to a brief current pulse that grows to 1A and runs for no more than 12,800 samples at 3.75Msa/s, or 3.4ms. An inductor’s key property is that it ‘resists’ changes to the current flowing through it, hence that di/dt = V/L property. So what happens if we switch a constant current sink on across an inductor? The current starts at zero, then immediately after the shorting Mosfet is switched off, the current is still zero. The constant current sink is on hard, applying the full 10V across the inductor, with no current (yet) flowing. Remember that equation, di/dt = V/L? Now V = 10V, and the current through the inductor grows at a rate set by the inductance. This increase in current continues linearly. Once the current through the inductor reaches the current sink’s set point, it starts throttling back to maintain the current at a constant value. So di/dt goes to zero, and the inductor current is constant, with notionally 0V across the inductor. Our software in this test captures a series of readings of both the voltage across the inductor and the current being through it. The software switches the current measurement ADC to high-gain mode, which uses a 1W shunt. We start with the maximum sampling rate, which allows us to measure the smallest inductors. On this test, the minimum practical measurement is about 50μH, which results from the 1A test current; di/dt = 10V ÷ (50 × 10-6H), which is 0.2A/μs. Our cutoff current is 1A, so we get 5μs of data before the current limit is reached. The op amp takes a while to respond and the current overshoots quite a lot, so we actually get somewhat more than this to work with. If you have a smaller inductor, the saturation test mode (see below) will measure down to about 10μH. We capture two sets of data: the voltage across the inductor and the current through it. Similar to the capacitance test, when the voltage across the inductor transitions from close to 0V to full-scale on our ADC, we know the pulse has started. When this voltage falls again, we know the maximum current has been achieved. If the software does not find the voltage falling before the end of the buffer, we know we need to reduce the sampling rate. The minimum sampling rate is 37.5ksa/s, which allows a minimum di/dt of 0.29A/s (0.1A ÷ [12800sa ÷ 37500sa/s]). This allows Australia's electronics magazine March 2025  31 the measurement of very high inductances, in the Henries range. The software uses only the mid-­ section of the current vs time curve to calculate the inductance, between 25% and 75% of the buffer. This means this inductance test result is at about 0.5A. The voltage across the inductor might not fall right down to 0V once the current through the inductor reaches the limit because real inductors have resistance. If there is a DC resistance of say 1W, once we reach 1A, there is 1V across the inductor. We can easily get around this in software by changing our detection threshold voltages. However, the voltage drop across that internal resistance affects the measured inductance. We need to consider the internal resistance of a component like an inductor as a property of the device. We can represent a real inductor as several ideal components, as shown in Fig.5. We ignore R2 in our meter, as this is the equivalent of a resistance ‘shorting’ your windings. In real-world circuits, especially tuned LC filters, such a resistance may be intentionally added to dampen the circuit, but it is generally not significant in normal devices. Fig.5: even ignoring core saturation, a real inductor can be modelled as four ideal components. It’s the selfcapacitance that is most troublesome. Fig.6: the current can rise higher than would be expected based on a lowcurrent test due to core saturation. The software takes this into account. 32 Silicon Chip C1 is a ‘lumped parallel capacitance’. This is most commonly the result of capacitance between the windings in a coil; an iron-cored inductor can also have capacitance between the windings and the core. Our meter does not seek to correct for this in the measurement, as the errors resulting from it are not significant. However, we see the impact of this when we apply a voltage across large coils, as the parallel combination of C1 and L1 causes visible ringing in the current in some cases. If you look at the data sheet for a commercial inductor, you will often see a ‘self resonant frequency’ figure; this capacitance plays in that characteristic. You can see some of this ringing in Scope 1, right at the start. This plays havoc with inductance estimation! R1 in Fig.5 is significant. This is the internal resistance we are concerned about. Our equation for di/dt = V ÷ L applies to only L1 in the figure; the voltage dropped across R1 is excluded from this. As the current flowing in the coil creates a voltage drop across the internal resistance, the effective voltage across L1 decreases. For a real coil, di/dt reduces as the current increases. This is clearly visible for a large air-cored inductor, which has a DC resistance of 0.46W, shown in Scope 2. When measuring inductance, the first thing our software does is to measure the DC resistance of the DUT. When calculating the inductance of the DUT, the software uses this as a correction factor; with some inductors, this correction is very significant. Measuring inductor saturation The saturation test will give you insight into the inductance’s behaviour as a function of current. This test uses the same principal as above, but this time we are not using a constant current sink. Instead, we will be connecting the DUT directly across the two 47,000μF capacitors using the main switching Mosfet, with our hardware current detector switching the Mosfet off when our pre-­programmed limit is reached. Again, the first thing the software does is to measure the DC resistance of the DUT. This is crucial, as the DC resistance tells us the maximum current that can flow through the DUT with our 10V across it. The software selects the current limit as 50% of Australia's electronics magazine the theoretical maximum, as for highvalue inductors, we expect the 47mF capacitors to discharge significantly during the test. The software then measures the inductance of the DUT using the constant current technique. This gives us a pretty optimistic value of inductance at high currents for all but air-cored inductors. The software uses this to calculate the time required for this inductor to reach the peak test current, and the sampling rate is adjusted to fit this into our sample buffer. Fig.6 shows what is happening here. The software then checks to see if the user has a capacitor on the DUT terminals. While we never managed to damage anything during development, it isn’t a great idea to suddenly apply 10V to a potentially large capacitor. The ADC inputs are set to monitor the high-current (low gain) measurement, which can measure up to 33A, while the second ADC channel monitors the 10V rail, which we know will droop throughout the test. From a first run, the software looks to see if the sampling rate was OK. If the DUT has saturated early, we increase the sampling rate to get a closer look at the saturation curve. So a second set of samples is taken with an optimised sampling rate, which fills our buffer with usable data. Once we have this data, the software splits this into 10 sections and calculates the inductance for each of the 10 regions. This set of results is stored to allow the user to scroll through. Our ADC has 12 bits of resolution, which gives a maximum of 4095 discrete current measurement values. If we had more than about 10 time slices, our current measurements would introduce quantisation errors and any noise on the measurements would become more significant. On the other hand, with fewer slices, we wouldn’t get as good an idea of the inductor’s behaviour. We decided that 10 readings is the best compromise. We initially intended for the software to estimate the saturation current from this data. If you take a look at some of the sample curves we provide later on, you might get a sense of the challenge this presents. The shape, rate of collapse of inductance and all sorts of ‘interesting’ effects would need to be considered. We were concerned that if the software throws up a guess, it will take siliconchip.com.au on a credibility it does not deserve. A human can scroll through the numbers and easily see where the inductance rolls off and how fast it falls. The software sets the second measurement to “100%” as it is normally the cleanest data point, and all others are relative to this. 11.2A. This shows the inductance starts somewhat above the rating and falls relatively slowly. That glitch on the initial application of the test voltage is from inter-winding capacitance, and demonstrates why we do not try to measure inductance from the start of the sample set. Real measurement examples Circuit details Let’s look at why saturation matters in inductors. We will include some plots of the inductors we used in testing this device, as the behaviours illustrate not only why this parameter is important, but also why it is hard for the meter to give a simple answer to this value. In each of the following oscilloscope plots, the blue/cyan curve is the current, which is at a scale of 100mV per amp. So 3.3V is the full scale of the ADC at 33A. The yellow trace is the trigger signal. The duration of these sweeps all vary, as that is a function of the DC resistance of the coil, and thus the inductance and the sampling rate the software selects. Scope 1 and Table 1 are for a Bourns 2200LL-470-V-RC rated for 20.9μH <at> 10.3A. It starts with an inductance somewhat above its rating and falls relatively slowly. Scope 2 and Table 2 are for a 1.8μH air-cored inductor. This shows current curving downwards as a result of the DC resistance of the inductor. Scope 3 and Table 3 show the values for a 550μH air-cored inductor. There is some variation in the measured inductance; given this is an air cored inductor, this is due to measurement errors in the meter. Scope 4 and Table 4 are for the secondary of a Dick Smith M-2156 transformer. This is typical of the saturation in a soft-iron-cored device. The measured values show the remarkable collapse in inductance past saturation. Scope 5 and Table 5 are for an Altronics L6630 470μH 5A inductor. This shows that this device behaves as specified at the rated current, but the initial inductance is substantially higher, and the inductance rolls off in a reasonably controlled manner. That step at the start of the curve is the INA181 differential amplifier slewing to ‘keep up’ with the rate of change; this forms a real limitation on the lower inductance we can measure. Scope 6 and Table 6 are for a Bourns 2200HT-100-V-RC rated for 7.9μH <at> Now that we know how the device works, let’s look at the full circuit. siliconchip.com.au We have broken it up into three separate diagrams that perform logically distinct functions: the test circuitry (Fig.7), the control circuitry (Fig.8) and the power supply (Fig.9). We’ll start by examining the test circuitry, which is where most of the complexity lies. The DUT connects between CON5 and CON6, to the left of centre in Fig.7. This places it between the +10V_FILT high-current supply rail and Q4 & Q5. Current Inductance 2.2A 44μH 3.4A 41μH 4.7A 35μH 6.2A 32μH 7.9A 27μH 9.9A 22μH 12.4A 18μH 15.4A 14.2μH 19.3A 10.4μH 24.4A 7.7μH Scope 1: testing a Bourns 2200LL-470-V-RC inductor rated for 20.9μH <at> 10.3A. Current Inductance 1.0A 1.8mH 1.9A 1.8mH 2.8A 1.8mH 3.7A 1.8mH 4.5A 1.8mH 5.2A 1.8mH 6.0A 1.8mH 6.6A 1.9mH 7.2A 1.8mH 7.8A 1.8mH Scope 2: testing a 1.8μH air-cored inductor with a relatively high DC resistance of 0.55W. Current Inductance 1.2A 555μH 2.4A 559μH 3.6A 570μH 4.7A 566μH 5.7A 559μH 6.6A 575μH 7.5A 544μH 8.4A 512μH 9.2A 582μH 10A 564μH Scope 3; testing a 550μH air-cored inductor with a 0.44W DC resistance. Australia's electronics magazine March 2025  33 Fig.7: the blue text here refers to connections from this circuit to pins on microcontroller IC1, shown in Fig.8. Q4 applies the full +10V_FILT across the DUT when on; if the current gets too high, IC4b causes IC3b to reset, switching Q4 off. Q5 sinks a fixed current determined by DAC IC2. The voltage across the DUT is monitored by IC6 or IC7a and fed to the micro, while IC8 monitors the current (the 1W shunt voltage is also fed directly to microcontroller pin 12). Q4 is the main switch that connects the bottom end of the DUT to ground via the low-value 5mW shunt, while Q5 is the constant current sink, in combination with an extra 1W shunt and op amp IC7b. Q4 is an Infineon IPP013N04NF2SAKMA1. These are relatively inexpensive but only have 1.3mW of on-­ resistance and can carry up to 197A continuously. We don’t suggest you substitute this part, but if you must, most Mosfets with under 10mW of on-resistance and a continuous current rating of at least 50A should be OK. The gate drive for Q4 comes from transistors Q9/Q10, which form a totem pole drive. This buffers the very high gate capacitance of the Mosfet, speeding up the switch-on and switch-off times. Q9 & Q10 are controlled by a 4013 D-type flip-flop (IC3b). 34 Silicon Chip This enables us to switch off the Mosfet rapidly once the current through it exceeds a programmed threshold. To achieve this, we drive the reset pin of our flip-flop from a dedicated comparator (IC4b) which compares the current reading to a programmed threshold. IC2 is an MCP4822 12-bit DAC. One of its outputs (output A, pin 8) drives the negative input of this LM393 comparator, while the current sense line from IC8 (INA281) drives the positive input. The INA281 has a 5% settling time of 1μs, the LM393 has a response time of 1μs, and the 4013 reset-to-Q time is 130ns (0.13μs). The Q output of IC3b controls the Mosfet, so we have an overall delay from sensing the current to switching the Mosfet drive off in less than 5μs. We can program the MCP4822 to produce voltages from 0 to 2V, allowing us to set a current limit from 0 to 30A. Australia's electronics magazine The microcontroller sets flip-flop IC3b using control signals from its RC11 and RC10 pins that are level-­ shifted by transistors Q6 & Q7 and applied to the CLK and D inputs of IC3b, respectively. This allows the micro to set the flip-flop and enable Mosfet Q4, but the reset signal from the over-current detection circuitry can always override this and switch the Mosfet off. Mosfet Q2 is used to discharge the DUT. This is a Vishay SUP70101EL P-channel Mosfet. It is included to allow capacitors to be discharged before testing. It also provides a reverse current path for an inductive DUT at the end of tests. If the voltage across the DUT reverses, up to 30A can flow through the body diode in Q2. This device needs to be able to handle the maximum saturation current, as at the end of a saturation test, Q2 is switched on, and it will carry the full siliconchip.com.au Current Inductance 1.1A 15.9μH 1.5A 10.1μH 2.1A 6.8μH 3.0A 4μH 4.4A 2.7μH 6.3A 2.0μH 8.4A 1.7μH 10.8A 1.5μH 13.1A 1.3μH 15.5A 1.1μH Scope 4: testing the secondary of a Dick Smith M-2156 transformer with a soft iron core (DC resistance of 0.28W). Current Inductance 1.9A 718μH 2.6A 604μH 3.5A 476μH 4.7A 342μH 6.2A 255μH 8.4A 176μH 11.3A 131μH 15A 98μH 19.8A 73μH 25.5A 57.1μH Scope 5: testing an Altronics L6630 470μH 5A toroidal inductor with a powdered iron core. Current Inductance current through its body diode until it decays. This will result in energy being dissipated in Q2. The SUP70101EL is rated at 100A, with an Rds(on) of 10mW. If substituting, we would stick to similar ratings, but this is not an expensive part for what it does. As Q2 is a P-channel device, its gate drive is relative to its positive source terminal, which connects to the +10V_FILT rail. Thus, there is a level-shifter based around transistors Q3 and Q8 that allows us to drive it from a 0-3.3V microcontroller output pin (RD8). Diode D8 speeds up its switch-off. The programmable current sink is included to allow us to measure the resistance of the DUT. We generally want to run this at 10mA, 100mA or 1A. The actual current is programmed by the other DAC channel, output B (pin 6) of IC2. siliconchip.com.au 3.2A 11.8μH * 5.4A 13.6μH 7.5A 13.0μH 9.6A 12.0μH 11.9A 11.5μH 14.3A 10.9μH 16.9A 9.5μH 19.6A 9.3μH 22.4A 8.6μH 25.5A 7.8μH Scope 6: testing a Bourns 2200HT-100-V-RC inductor rated for 7.9μH <at> 11.2A (with a DC resistance of 0.01W). * this low measurement is likely due to inter-winding capacitance The current sink is fairly conventional, with IC7 amplifying the difference between the voltage from IC2 on its positive input with the voltage sensed across the 1W and 0.005W shunt resistors. Running a wide-bandwidth current sink with various inductances as a load is a challenge with stability. The 33nF Australia's electronics magazine feedback capacitor across IC7b helps to keep it stable. The differential current and voltage sense circuits are implemented with INA281B1 instrumentation amplifiers (when a higher gain is required) and TLC072 op amp for low-gain (unity) differential voltage measurements. These differential amplifiers all have March 2025  35 their ground references tied to the VREF− pin used by the ADC. The TLC072 was chosen in preference to the more common TL072 due to its lower DC offset. Using differential amplifiers allows us to remove common-mode signals on the +10V_FILT rail, which we know will droop during measurements, and also remove the DC offset on the DUT voltage. This allows us to make best use of the 0-3.3V input voltage range of the ADC. CON1 provides a way to improve measurement accuracy by removing the voltage drop in the connectors and leads to the DUT from the equation. If CON1 is not used, IC6 measures the voltage across the DUT directly from CON5 & CON6 via 10W resistors. If instead separate wires connect from pin 1 of CON1 to the DUT’s negative lead and pin 2 to the positive lead, any voltage drop between the PCB connectors to CON5/CON6 and the DUT itself will not affect the measurements. The extra test leads will effectively short out the 10W resistors, providing a voltage measurement right at the DUT terminals. Schottky diodes D6, D7, D9 & D10, in combination with 470W series Fig.8: microcontroller IC1 dominates the control circuitry. Results are displayed on an LCD screen connected to CON2, while pushbuttons S1-S4 allow the user to select modes. EEPROM IC5 stores calibration data, while crystal X1 provides accurate timing. 36 Silicon Chip Australia's electronics magazine resistors, protect the microcontroller’s analog inputs from voltages outside the range of 0-3.3V that it can handle. At the same time, zener diodes ZD11 & ZD12 protect the Mosfets from voltage spikes at their gates that could damage them. Half of IC3 (IC3a) and IC4 (IC4a) are not used, so their inputs are terminated to avoid them floating and possibly causing extra noise. Microcontroller circuitry The control circuit is shown in Fig.8. All the lower pins of microcontroller IC1 with arrows and blue labels connect to points in Fig.7. Those points in Fig.7 also have arrows and blue writing showing which microcontroller pin they connect to. In Fig.8, besides the 48-pin microcontroller, we have an alphanumeric LCD screen connected via 16-pin header CON2, four pushbuttons (S1S4) with associated pull-up resistors, an EEPROM (IC5) that’s controlled by IC1 over an SPI serial bus, an 8MHz crystal for accurate timing, an in-­ circuit programming header (CON3) and numerous bypass capacitors. We chose the PIC32MK0128­ MCA048 because it incorporates two 3.75Msa/s, 12-bit ADCs that we can operate synchronously. Well, it has three, but we only use two. These can sample voltages at various pins; we are using five inputs in this project (AN0, AN1, AN3, AN6 & AN13). This microcontroller includes a direct memory access (DMA) subsystem that allows the ADC data to be moved into RAM quickly by hardware inside the microcontroller. This means the PIC32 is only interrupted after 128 samples are captured on each channel, allowing the PIC32 to capture a large buffer of samples at this full sampling rate for us to analyse. This PIC has 32kiB of RAM and 128kiB of flash program memory. We use the majority of the RAM for a large data buffer. In inductor tests, this includes synchronised 10V rail voltages and current measurements. This processor runs at 120MHz and includes an amazing array of peripherals for a chip that costs less than $7. The only thing that is more amazing is how complicated some of these modern processors can be to set up and write software for! The 25AA256 EEPROM is used to store calibration data; just about any siliconchip.com.au Fig.9: the power supply generates five rails from the 12-20V DC input: +3.3VD, +3.3VA, -3.3V, +10V_FILT and +10V. The +10V and -3.3V rails power devices like op amps, +3.3VD powers the micro, +3.3VA is the ADC reference voltage and +10V_FILT supplies current to the DUT. pin-compatible SPI EEPROM will do, as we only use a handful of locations at the bottom of the address range. The three pushbuttons (ENTER/UP/ DOWN) are mounted on the rear of the PCB so they project through the case, near the standard 16×2 character LCD screen. We have stuck to a text display as these are commonly available, and aside from the power and LED connections being inconsistent between suppliers, they are interchangeable. While a graphical display might be nice, it is not essential and would add cost and complexity. It would also complicate sourcing, as there are many similar but incompatible graphical displays available. The support circuitry around the PIC microcontroller is mostly per application notes. There are separate 3.3V digital (+3.3VD) and analog (+3.3VA) rails. The analog rail forms the reference for the ADC, so keeping it clean is important. Power supply Turning now to Fig.9, the 10V rail is generated with an LM2576 switchmode buck regulator (REG5) for reasonable efficiency. Its switching output is filtered by inductor L1 and the 1000μF capacitor on its output to efficiently produce a smooth 10V rail. The output current from the LM2576 siliconchip.com.au is limited to about 1.5A by PNP transistor Q1 and the 0.39W resistor, which together pull the feedback pin of REG5 high if the current limit is exceeded. This is included to ensure that for extended high current pulses, the LM2576’s internal over-current protection is not activated. There are two 10V rails. The one labelled +10V drives the op amps. This is isolated by diode D3 and a 100μF filter capacitor to minimise disturbances on this rail during high-current pulses on the +10V_FILT rail. The +10V_FILT high-current rail is filtered by a 330μH inductor which feeds two 47,000μF 16V capacitors (they are in Fig.7). This very substantial filter has been selected to ensure that even when testing large inductors, the +10V_FILT rail does not droop too much. Diodes D1 & D2 form a charge pump with the two 10μF capacitors to generate a negative voltage from REG5’s switching node, which is regulated down to -3.3V by REG3 (LM337). This allows our op amps to handle signals right down to 0V. The +3.3VA and +3.3VD rails are generated from the 12-20V input by identically configured linear regulators REG1 & REG2. We can get away with this since there isn’t a huge demand for current on those rails. Australia's electronics magazine During calibration, we measure the 3.3VA rail voltage. This is important as any error in this voltage will translate to the measurement errors. The LP2950 regulators have an inherent accuracy of about ±1%. We recommended using the LP2950ACZ-3.3G but the non-AC version is available from local stores with only slightly reduced specs. Calibration will take care of that. Bulk capacitance Using two 47,000μF capacitors seems pretty generous but if we want to test a 10mH inductor at 20A, these capacitors need to deliver ½LI2J of energy, which is 2J (0.5 × 0.01H × 202A). This energy can only come from the capacitors, as the LM2576 can only deliver an amp or so. At 10V, our two capacitors store ½CV2J = 4.7J (0.5 × 0.047F × 2 × 102V). If we take 2J from these capacitors and put it in the inductor, the voltage rail will drop from 10V down to 7.6V or so. We can test much larger inductors than 10mH, but our design assumes that they will be tested at lower currents, which we think is reasonable as such a large inductor will have a fairly high DC resistance. This DC resistance will limit the maximum current. By the way, 2J is quite a lot of energy. Do not touch the DUT during testing, March 2025  37 and do not disconnect it while the test is running, as the back-EMF from such a large amount of energy will generate a very high voltage if it is disconnected while current is flowing. The substantial P-channel Mosfet on the board handles this back-EMF at the end of each test. If you disconnect the DUT from the tester during operation, this current path for back-EMF will be removed, which will result in a very high voltage spike. This could deliver a serious shock if you are touching the DUT terminals. An industrial electric fence delivers 2-5J, which is sufficient to dissuade the most stubborn animals. You really do not want to experience that! So much software The real functionality in this meter is all in the software. While we’ll discuss it in broad strokes, you can download the complete source code from our website. So if you are inclined, you can take a deeper look, or perhaps could write your own functions or display routines. The code is written in the relatively low-level C language, as the software needs to run very quickly during testing. C is not too hard to learn, but it does leave a lot of responsibility for the user to get things right. I am a hardware engineer, and the code does kind of reflect this. Still, you will find a structured state machine controlling the meter, drivers for various hardware subsystems, and an effort to implement code in functions to improve its readability. A brief look at the PIC32MK0128 data sheet is also enough to turn your hair grey. It is 562 pages of joy, and a lot of it directs you to sub-data-sheets for specific functions. This project uses multiple timers, ADC channels, direct memory access, SPI modules and general purpose I/Os. For different measurements and component values, the software changes the settings on many of these. Microchip provides a development environment that integrates the compiler, code editor, programmer and debugger. There is also a “Code Configurator tool”, which helps configure the bewildering array of modules in the microcontroller. This is a mix of graphical representation of how parts of the microcontroller interconnect with text boxes that allow you to, for example, program 38 Silicon Chip Parts List – Power LCR Meter 1 double-sided PCB coded 04103251, 156 × 118mm 1 Ritec RP1285 186 × 146 × 75mm IP65 sealed ABS enclosure [Altronics H0310] 1 12-20V DC 1A+ power supply 1 3D-printed LCD bezel (see text next month) 2 PCB-mount M205 fuse clips (F1) 1 1A fast-blow M205 fuse (F1) 1 16 × 22mm TO-220 PCB-mounting heatsink (HS1) [Altronics H0650] 2 330μH 3A toroidal inductors (L1, L2) [Altronics L6527] 3 vertical PCB-mount SPDT momentary pushbuttons plus small button caps (S1-S3) [Altronics S1493 + S1481] 1 vertical PCB-mount SPDT mini toggle switch (S5) [Altronics S1315] 1 8MHz low-profile crystal resonator, HC-49S (X1) 1 20kW top-adjust single-turn trimpot (VR1) 1 16 × 2 wide blue LED-backlight alphanumeric LCD [Altronics Z7018] Cable/wire/tubing 2 200mm lengths of red/black heavy-duty hookup wire 2 200mm lengths of red/black medium-duty hookup wire 1 500mm length of light-duty figure-8 wire 1 200mm length of 16-way ribbon cable 1 100mm length of 3mm diameter black heatshrink tubing Hardware 1 TO-220 silicone insulating washer and bush 4 M3 × 10mm tapped spacers 1 M3 × 10mm panhead machine screw 8 M3 × 6mm panhead machine screws 1 M3 hex nut 9 M3 flat washers Connectors 3 2-pin vertical polarised headers, 2.54mm pitch, with matching plugs and pins (CON1, CON7, CON11) 1 2×8-pin vertical header, 2.54mm pitch (CON2) 1 5-pin vertical header, 2.54mm pitch (CON3) 1 2-way mini terminal block, 5/5.08mm pitch (CON4) 2 6.3mm PCB-mount vertical spade lugs (CON5, CON6) 3 2-pin vertical headers, 2.54mm pitch (JP8-JP10) 3 jumper shunts 1 16-way IDC inline socket 2 panel-mount binding posts, red & black 2 panel-mount banana sockets, red & black 2 chassis-mount BNC sockets 1 panel-mount DC socket (to suit power supply) Integrated circuits 1 PIC32MK0128MCA048 32-bit microcontroller programmed with 0410325A.HEX, TQFP-48 (IC1) 1 MCP4822-E/P 12-bit SPI DAC, DIP-8 (IC2) 1 4013B dual D-type flip-flop CMOS IC, DIP-14 (IC3) 1 LM393 dual single-supply comparator, DIP-8 (IC4) 1 25AA256-I/SN 32kiB EEPROM, SOIC-8 (IC5) [Mouser 579-25AA256-I/SN] 2 INA281B1 20V/V 1.3MHz current sense amplifiers, SOT-23-5 (IC6, IC8) 1 TLC072AIP dual low-noise JFET-input op amp, DIP-8 (IC7) 2 LP2950-3.3 3.3V 100mA low-dropout linear regulators, TO-92 (REG1, REG2) 1 LM337 1A adjustable negative linear regulator, TO-220 (REG3) 1 LM2576 3A integrated buck switch-mode DC/DC converter, TO-220-5 (REG5) Other semiconductors 2 BC558 30V 100mA PNP transistors, TO-92 (Q1, Q10) 1 SUP70101EL 100V 120A P-channel Mosfet, TO-220 (Q2) [Mouser 78-SUP70101EL-GE3] 5 BC548 30V 100mA NPN transistors, TO-92 (Q3, Q6-Q9) Australia's electronics magazine siliconchip.com.au 1 IPP013N04NF2SAKMA1 40V 197A N-channel Mosfets, TO-220 (Q4) [Mouser 726-IPP013N04NF2SAKM] 1 TIP121 NPN Darlington transistor with integral diode, TO-220 (Q5) 2 12V 400mW/1W zener diodes, DO-35/DO-41 (ZD11, ZD12) 4 1N4148 75V 200mA signal diodes, DO-35 (D1-D3, D8) 1 1N5822 40V 3A schottky diode, DO-201AD (D4) 5 BAT85 30V 200mA schottky diodes, DO-34 (D5-D7, D9, D10) Through-hole capacitors 2 47,000μF 16V snap-in electrolytic [Mouser 598-81LX473M016A452] 3 1000μF 25V low-ESR radial electrolytic 5 100μF 25V low-ESR radial electrolytic 6 10μF 50V low-ESR radial electrolytic 16 100nF 63/100V MKT 1 33nF 63/100V MKT 1 220pF 50V ceramic SMD capacitors (all X7R ceramic SMD M2012/0805 unless noted) 2 10μF 10V 3 1μF 50V 8 100nF 50V SMD M2012/0805 2 18pF 50V NP0/C0G ceramic SMD M2012/0805 TH resistors (all ¼W 1% axial unless noted) 2 47kW 23 4.7kW 1 560W 1 330W 1 1W 1W 5% 1 33kW 1 2.7kW 4 470W 4 100W 1 0.39W 5W 5% 1 10kW 2 1kW 1 330W 1W 5% 1 100W 1W 5% 1 0.005W open-air [Welwyn OAR1-R005FI or similar] SMD resistors (all ⅛W 1% SMD M2012/0805 unless noted) 1 10kW 1 1kW 1 470W 2 10W timer periods. This code configurator generates device driver code for each subsystem that you can use in your program. This forms the device driver layer for the microcontroller, making our life much easier. For the external parts like the SPI EEPROM, DAC and 16×2 LCD, we don’t have the luxury of a code configurator, but we can use libraries that we or other people have developed in the past. For control of things like the Mosfets, we wrote simple ‘drivers’ to allow the main program to perform common functions without the complication of directly interfacing to hardware. A good example is the “CORETIMER_DelayMs(X)” function call, which lets our program ask for a delay of X milliseconds. The driver looks after things like clock frequencies and suchlike. Similarly, HDByteWriteSPI() is a function that allows us to write a byte to the SPI EEPROM at a defined location. We don’t care what specific EEPROM it is, as long as we can save data to it and read data from it. By using these high-level drivers in our program, the code is much easier to read and also, once we have tested them, we can treat them as ‘black boxes’. Our top-level algorithm can command the hardware to perform functions such as “Pulse_Start()” without needing to bother with any of the hardware details. You will have noticed there are actually four fairly independent measurement modes. We won’t go into detail here, but from a high level, the main program file “Inductor_Tester.c” performs the main functions: 1. Configures the hardware 2. Loads and saves calibration data 3. Allow the operator to: a. Calibrate the meter b. Measure resistance, inductance, capacitance and inductor saturation c. Display results. These functions all live in a simple state machine that allows the user to select the measurement desired and review the measurements. Next month The PCB mounts on the rear of the lid. Except for the power input, the terminals on the side are optional. siliconchip.com.au Australia's electronics magazine This article has already become quite long, and we haven’t gotten up to the construction, calibration or testing steps yet. We’ll have all that next month, along with some hints on using the device effectively. SC March 2025  39