Transient Resistor Values at the Output of a Resistor Module
Most Pickering Interfaces resistor modules include the use a chain of resistors where each resistor can be shorted out using a relay.
An 8 element resistor chain is shown:
When changing resistance values some relays will need to change state, some releasing, some making, depending on the initial and final values.
Suppose in the examples shown that R1 is 1 Ohm and the chain of resistors increases in binary values so R8 is 128 Ohms. Ignoring any path resistance in the relays or the PCB tracks when changing from 1 Ohm to 2 Ohms, the 1 Ohm resistor must be removed and the 2 Ohm resistor added. To change from 127 Ohms to 128 Ohms RL1 to RL7 are open in the initial state and RL8 is closed, the change involves changes the state of 7 relays as all the relays need to be open. The issues gets more complex as the chain length is increased.
In changing state there will be transient resistor values which this document will describe.
If these the actions of closing and opening relays were performed simultaneously there would be a period of time during which the contact states of the relays would be undefined and the chain resistance could go higher or lower than either initial or final values, including the possibility of a "zero" Ohm state (in reality a state where the resistance is determined by the series combination of all the relays and tracks with all relays closed) and the possibility of a maximum resistance state (where all the relays are open).
The characteristics of the relay could have a spread of open and closing times, and those times may have a dependency on the power supply voltage. This undefined behaviour may be undesirable and so the default behaviour of the Pickering driver is to implement a break-before-make sequence of operations which guarantees that the chain resistance will always go higher during the transition. There are alternate modes provided in the driver where relays are operated as make-before break or not sequenced at all (to minimise setting time) which will be described later.
The transition may also be further complicated by relay contact bounce.
Break before Make Behaviour
The value of the transient higher resistance depends on the starting and finishing resistance values. It could be as high as double the higher of the start and finish values. Consider changing from 15 Ohms to 16 Ohms, first the 16 Ohm resistor is added then the 1,2,4 and 8 Ohm resistors removed by a break before make operation; this results in a 31 Ohm transition value, roughly double larger of the the start or finish value.
For example when changing from 1 Ohm to 2 Ohms, first the 2 Ohm resistor is brought in followed by a delay to ensure the relay armature has finished moving, only then is the 1 Ohm resistor shorted, once again followed by a settling delay.
If we take into account relay characteristics, the output resistance for a change between 1 and 2 Ohms in principle could vary in a complex manner as shown below.
When a new resistance is requested there is an initial delay while the driver software computes the intermediate and final switch states and then transmits the intermediate data to the card hardware to perform the break operations. That is followed by a period of time while the relay armature traverses. When the appropriate time has passed the driver then transits the final switch pattern data to the card to perform the make operations. Once again there is a period of time as the armature traverses and on this part of the operation there may be contact bounce (shown as a saw tooth pattern to indicate uncertainty) before the requested value is considered to be stable.
Typically the compute time is less than 50us, the traverse and settling time for the relay is typically 200us for a reed relay and perhaps 2.5ms for an electro-mechanical (EM) relay. Since the settling time must be incurred twice, this leads to an operate time of about 450us for a reed relay based solution and about 5ms for an EM relay solution.
Make Before Break
Break before make is commonly used in switching systems to ensure no transient unintended paths that might cause damage are created. However, as described above in a resistor simulator this might not be desirable. The resistance going high might for example trip an alarm on emulation of a PTC resistor, or if the user is using current loops it might create a voltage higher than is desirable.
The driver therefore offers the option of make before break of the relays, the effect of which is cause the transient settings to be lower resistance than the smaller of the start and finish resistances. In the example given at the start of this page with a setting changing from 127 to 128 Ohms on an 8 bit chain RL8 would first be closed, creating a "zero" path resistance, and then RL1 to RL7 would be opened.
Most applications for resistor simulation use a current drive (or pseudo current drive) and a "zero" ohm transient state is not damaging, however if the application has a voltage source driving the resistor module this mode is not recommended as it could cause damage to the resistor module.
No Wait - Operating without settling delays
The driver also has the possibility of not sequencing the relays at all, instead changing state in one write operation. In this case it cannot be guaranteed what the transient values will be - it depends on the relative speed of the relays opening and closing. This mode is most commonly used in speed sensitive applications, or where the length of time a transient state takes to clear is more important than its direction and there is no possibility of a "zero" state causing damage.
Influence of Resistor Calls
The example given assumes that the relays are controlled directly, in designs where resistance calls are used the actual bit patterns for a given requested resistance will vary from module to module to take into account the calibration factors. That also means that for two otherwise identical modules with slightly different resistors the transient behaviour may be different.
Actual Relay Behaviour Examples
Relays do vary considerably from batch to batch and according to the system supply voltage but the following gives some examples on EMR transient behaviour. Unless otherwise stated the examples use the break before make mode.
The first pair of traces shows the behaviour of a typical small signal EMR that is commonly used in Pickering Interfaces EMR based resistor modules.
Under the conditions present at the time this relay has a faster opening time than closure time. On closing contact bounce can be seen, on opening the relay coil drive can be seen to be managed by a flyback diode that limits the voltage excursion to roughly 0.6V above the supply voltage.
Once these relays are placed in a resistor module then the driver will perform a break before make operation.
The next set of traces shows an EMR based resistor module changing state from 252 Ohms to 264 Ohms. The module has 1 Ohm resolution and so this involve multiple relays changing state.
The horizontal scale is 400us per division as before and the driver uses a break before make action.
The next set of traces shows the same transition but in this case the driver is set to no wait so no deliberate break before make is used.
In this example the relays give a natural break before make action, so the resistance is seen to still increase in value but the transition time from one state to the other is shortened by the absence of the second driver write cycle.
The actual transition could include states where the resistance transiently goes lower, the advantage is that the transition time is shorter between the two resistance values. The relays used were relatively new, as the relays age the behaviour may change, for example operate times may become longer or there may be more contact bounce.
In the break before make and the make before break mode of operation a change in resistance will consume just over double the relay settling time, during that interval the overall resistance of the chain will increase (break before make) to as much as double the higher of start and finish values or could fall to "zero" ohms if make before break is used.
If no-wait mode is used, the resistance altering function will return in about 50 us, but the transition between values is undefined and could momentarily produce "zero" Ohms across the chain. It is also left to the user to allow adequate time for relay traversal and contact bounce.