20230716_122355688_iOS

Programmable Decade Resistor: Optimization

I went into this project with the thought that it will be a rather small one. This certainly influenced some decisions I made along the way. Now that the project had evolved into a much larger thing than initially anticipated it’s reasonable to have another look at possible optimizations, albiet the calibration results were already pretty satifactory. The problem with the contact resistances From the start it was clear that the relays’ contact resistances will reduce the accuracy of the programmable decade resistor, especially in the lower two decades. (When using 0.1% resistors, for the third decade and up, the tolerance of the resistors is of the same or a higher magnitude than the contact resistance of the relays. So it’s much less important or even pointless to compensate for the contact resistance in those instances. This is especially true for the highest two decades where the algorithm described in a previous post can effectively eliminate the deviation by adjusting the “hardware setpoint” according to calibration values.) ...

July 20, 2023 Â· 5 min Â· Sebastian
20230714_190902745_iOS

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. Also, I’d like to mention the first post of this series in which I defined a rather loose accuracy goal of ≪±0.5% of value+0.3Ω\ll\pm 0.5\% \textrm{ of value} + 0.3 \Omega. In reality, I expect the device to be much, much better than this. Nevertheless, I will still compare the results to these limits. ...

July 15, 2023 Â· 7 min Â· Sebastian
20230617_155717412_iOS

Programmable Decade Resistor: Warm-up curve

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.) ...

July 7, 2023 Â· 3 min Â· Sebastian
20230617_155356512_iOS

Programmable Decade Resistor: Final Product

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

June 23, 2023 Â· 1 min Â· Sebastian
mainboard_ausschnitt

Programmable Decade Resistor: Mainboard

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. The main controller contains the business logic required to control the relays and provide a user interface. It handles the processing of user user inputs, originating from either the mentioned user interface board, from SCPI messages sent over USB (virtual COM port) or from the external digital inputs. ...

June 14, 2023 Â· 3 min Â· Sebastian
20230602_153929609_iOS

Breakout box for Agilent 6611B AC Power Source

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. ...

June 7, 2023 Â· 2 min Â· Sebastian
block_diagram

Programmable Decade Resistor: System Design

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.) ...

June 1, 2023 Â· 1 min Â· Sebastian
Screenshot 2023-04-26 195928

Programmable Decade Resistor: Switching (3)

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 ...

May 25, 2023 Â· 4 min Â· Sebastian
20230518_102646675_iOS

Displaying graphics and text on an oscilloscope screen

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. ...

May 18, 2023 Â· 4 min Â· Sebastian
prog_res_calibration

Programmable Decade Resistor: Switching (2)

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. Let’s have a look at another example of a programmable resistor: The Fluke 5450A is a resistance calibrator from the 80’s (or so) that uses fancy precision resistors and relays to provide 17 different resistance values. It misses any adjustment options too - stability is most important for a calibrator. Instead, the calibrator displays a calibrated value of the currently selected resistance that can be programmed by a calibration lab. This is an idea I’d like to adopt. Given the required equipment, performing the calibration of 17 resistance values isn’t that big of a deal, doing it for each of the 1,000,000 resistance values of the programmable decade resistor, however, is a non-starter. ...

May 11, 2023 Â· 3 min Â· Sebastian