
Progammable Decade Resistor: Calibration results
In one of the previous I covered in depth, how I use the term “calibration” in the context of the programmable decade resistor and how the calibration procedure works. Today it’s all about the result.

In one of the previous I covered in depth, how I use the term “calibration” in the context of the programmable decade resistor and how the calibration procedure works. Today it’s all about the result.

Generally, test and measurement equipment needs a certain period of warm-up time to provide low drift. That is also true for the programmable decade. I’m especially interested in the warm-up time with all relays off as well as with many relays on. I chose a value of 100 kΩ100\text{ k}\Omega for the second test. (For simplicity I decided against using latching relays, however that would be a better choice performance-wise as mentioned before. Due to the additional power dissipation in the relay coils the curves will look different.)

In this post I’ll show a few pictures of the programmable decade resistor in its enclosure. Inside the unit Mainboard with some powered relays Rear panel: Optional terminals for channel 2, digital inputs, USB, power and fuse Unit with the case closed

The mainboard features the main controller paired with an EEPROM, the resistor decades (precision resistors, signal relays) including two temperature sensors, relay drivers and signal conditioning for the two external digital inputs. Main controller The main controller is a STM32G441KBT6 microcontroller (170MHz Cortex M4, 128kB Flash, 32kB RAM). The microcontroller features a USB 2.0 device peripheral.

I got my Agilent 6611B AC power source/analyzer a few weeks back, but hadn’t used it as much as I wanted. The reason was simple: The connections are made with rear mounted screw terminals - hence it was just a bit inconvenient to interface with products and circuits. The solution was really simple: A Hammond Manufactoring enclosure equipped with a European " Schuko"-style power outlet and some additional safety-banana jacks for prototyping.

The block diagram provides an overview of the different circuit groups of each functional block, their internal connections and external interfaces. The Programmable Decade Resistor consists of three main functional blocks: Power supply (Power Supply Board) Programmable decades, control and driver circuits (Mainboard) User Interface (User Interface Board) The power supply board uses an off-the-shelve AC/DC converter to provide a +15V rail. The +15V rail powers the relays on the mainboard as well as a DC/DC converter. A single DC/DC converter generates a +3.3V supply for both the mainboard and the UI board, including the LED display. The power rails are earth-referenced. (Nevertheless, the inputs of the Programmable Decade Resistor are floating thanks to the isolation of the relays.)

Now that we have a calibrated programmable resistance decade, we can try to make the programmable decade resistor more accuracte - for higher resistance values. Actually, the idea behind that is trivial. I’d like to start with an example in which we set a resistance value of Rset=100.000 kΩR_{set} = 100.000\text{ k}\Omega. (Let’s not worry about temp drift, contact resistance etc.) In my case all resistors have a specified tolerance of 0.1%0.1\%. So we’d expect a resistance somewhere in the range of

While playing with an old Hameg HM504 and the Tektronix 465B oscilloscope that I repaired recently, I thought that I should do yet another mandatory tinker project: Using a microcontroller to write text on an oscilloscope screen via the XYZ-mode. And so I designed a small USB powered board around the STM32G441KBT6 which seems to be my go-to microcontroller nowadays. Its fairly capable dual channel 12-bit DAC (up to 5 MSPS) comes in really handy for generating the x- and y-components. Initially I thought about using a discrete 8-bit R2R network to modulate the brightness with the Z input, but after testing the circuit I finally decided keep it simple and just implement blanking with just a single GPIO output.

In the last post we had a look at the short circuit performance of a decade. This time I want to address the question whether we can make the resistor decade more accurate, despite the fact that the design doesn’t feature any mechanism ( e. g. potentiometer) to adjust resistance values. The short answer: Yes, partially. But first things first.

In the previous posts we discussed the topology selection as well as the power handling capabilities of the decade resistor. Now it’s time to have a look at different aspects of switching. Today it’s all about the effect of the contact resistance of the relays, which impacts the performance of the decade resistor, not only, but especially when a decade is shorted.