TT075: Stanford HEMT supply
Uses ToprHEMTPS modules, each of which can control two HEMTs. Each module contains a 16-bit 4-channel D/A converter, 2 channels of which are followed by a precision buffer, for generating 05V Vds at 100mA for driving two HEMTs. Two more channels generate -5V to +5V Vgs. There's an integrated ADC for measuring Ids as well as remote Vds.
The two-module version, built onto a TipTop1590G:
The base is a generic TipTop1590G, containing a MKR-Zero compatible. Hardware and firmware can support 2 ToprHEMTPS boards for a total of 4 HEMTs.
The 4-module version, built onto a TopTip1590BBRPNT:
The ToprHEMTPS board pics:
ToprHEMTPS schematic:
Output connector is a male DB-15. Pinout:
Pin 1 = Vdsout 1Â (0-5V, 100mA max)
Pin 2 = Vdsout1 Sense +
Pin 3 = Vdsout1 Sense -
Pin 4 =Â Vgsout1 (-5V to +5V, low current)
Pin 5 = Vdsout 2Â (0-5V, 100mA max)
Pin 6 = Vdsout2 Sense +
Pin 7 = Vdsout2 Sense -
Pin 8 =Â Vgsout2 (-5V to +5V, low current)
Pons 9-15 = GND
Vdsout sense lines may be left unconnected if not needed. And frankly, the D/A output is as accurate as the A/D, so other than detecting shorts, etc., remote sensing probably won't be necessary.
Arduino code for 2-module version:
Arduino code for the 4-module version:
The instrument looks like a standard Arduino MKRZero (2-module) or RP2040 Pico (4-module).
The control protocol is the standard Cruft ASCII protocol, implemented over a USB com port. All commands are single ASCII characters, some followed by numeric arguments. Spaces are ignored. Commands are case-sensitive: capital letters update a parameter, and are typically followed by an argument. Lower-case letters are requests for data from the instrument.
All commands terminate with a semicolon. If the instrument understands and executes the command, it echoes the command, replacing the ";" with "!". If a command doesn't exist or the argument is out of range, the instrument replaces the ";" with "?".
Commands:
S <arg>; selects active slot. Valid arguments are 1 and 2. Power-on default is 1.
C <arg>; selects active HEMT channel. Valid arguments are 1 and 2.  Power-on default is 1.
D <arg>; sets drain voltage of active HEMT channel in millivolts. Valid arguments are floats in the range of 0.0 to 4990.0.
d; reads back drain voltage of selected HEMT channel. Note that this is mostly for diagnostics, as the "D" command is at least as accurate as the "d" command.
r; reads back remote voltage (Vds+ - Vds-) of selected HEMT channel. Mostly for diagnostics unless you anticipate significant resistance on the Vds line to the HEMT.
G <arg>; sets the Vgs in millivolts. Valid arguments are in the range of -5000.0 mV to +5000.0 mV.  Power-on default sets Vgs to 0.0V.
g; reads back the previously set Gate voltage. This is a firmware-only operation, simply returning the previously set Vgs, rather than measuring it.
N; turns oN the Vds driver of both HEMTs of the active slot. Power-on default has the drivers turned off .
F; turns ofF the Vds driver of both HEMTs of the active slot.
The preferred protocol is to use "D" to set the correct Vds, then use "N" to enable the output drivers.
i; returns the drain current of the selected HEMT, in mA.
--------------------------------------------------------------------------------------------------------
Isolated version: each module is galvanically isolated from the base, and the other module, although the two drivers on each module share a ground.
There are two versions of the base. One uses external 9V power supplies or 9V battery packs:
And another supplies its own power:
It needs 18V at >2A, e.g. SDI50-18-U-P6 (102-3800-ND)
Schematics:
Arduino code:
Small changes needed to deal with the possibility of power disappearing and reappearing on the modules, which requires reinitializing the DAC and ADC chips.
No electrical changes to the modules, but I needed to use shorter tip pins to avoid hitting the chokes on the isolated base.
Copyright © 2024 The President and Fellows of Harvard College * Accessibility * Support * Request Access * Terms of Use