| Linduino 1.3.0 Linear Technology Arduino-Compatible Demonstration Board

Data Structures | Macros
EasySMU.h File Reference
Example Designs » EasySMU: I2C Address Translator Demonstration and a Simple Multi-Channel Source Measurement Unit

Class Library Header File for EasySMU: I2C Address Translator Demonstration and a Simple Multi-Channel Source Measurement Unit. More...

## Detailed Description

Class Library Header File for EasySMU: I2C Address Translator Demonstration and a Simple Multi-Channel Source Measurement Unit.

User Guide
Schematic
Top-Level Linduino Firmware for EasySMU
EasySMU Class Reference
EasySMU_IOpanel Class Reference
EasySMU Webpage

    EasySMU: I2C Address Translator Demonstration and a Simple Multi-Channel Source Measurement Unit

    LTC4316: Single I2C/SMBus Address Translator
    LT1970A: Power Op Amp with Adjustable Precision Current Limit
    LT5400:  Quad Matched Resistor Network
    LTC2655: Quad I2C 16-/12-Bit Rail-to-Rail DACs with 10ppm/°C Max Reference
    LTC3265: Low Noise Dual Supply with Boost and Inverting Charge Pumps
    LTC2051: Dual Zero-Drift Operational Amplifier
    LT3010:  50mA, 3V to 80V Low Dropout Micropower Linear Regulator
    LT1991:  Precision, 100µA Gain Selectable Amplifier
    LTC6655: 0.25ppm Noise, Low Drift Precision Reference
    LTC2485: 24-Bit ΔΣ ADC with Easy Drive Input Current Cancellation and I2C Interface

    EasySMU is a single-channel ±12V/40mA programmable-voltage/programmable-current
    source with accurate voltage/current measurement capability. The LTC4316 I2C
    Address Translator enables up to eight independent EasySMUs to be controlled
    by a single I2C master.

    In this demonstration, each EasySMU board contains four I2C slaves and the
    associated components to implement a single-channel ±12V/40mA programmable-
    voltage/programmable-current source. The LTC4316 translates the I2C addresses
    of each EasySMU to a unique set of addresses, enabling up to eight EasySMU
    boards to be stacked on a single Linduino (I2C master). In this form, it
    resembles a multi-channel automated test system. Alternatively, an optional
    touchscreen allows the user to interactively control up to four channels,
    forming a compact multi-channel programmable-voltage/programmable-current
    bench source for lab testing, powered from a single 12V AC wall adapter.

    The primary purpose of the EasySMU is to demonstrate the LTC4316 I2C Address
    Translator. The programmable-voltage/programmable-current source and meter
    also provide a convenient demonstration of the associated components: LT1970A,
    LT5400-3, LTC2655-H, LTC3265, LTC2051, LT3010, LT1991, LTC6655, and LTC2485.
    While the EasySMU is not designed to demonstrate the ultimate performance that
    can be obtained from each of those components, the EasySMU does provide
    impressive results from a reasonably simple circuit.

Class Library Header File for EasySMU: I2C Address Translator Demonstration and a Simple Multi-Channel Source Measurement Unit

Definition in file EasySMU.h.

Go to the source code of this file.

## Data Structures
class | EasySMU
| The EasySMU class contains functions for interacting with the EasySMU source measurement unit. More...
union | EasySMU::eeprom_data_union
| Union that defines the calibration data stored in the EasySMU EEPROM. More...
struct | EasySMU::eeprom_data_union::data_struct_type
| This struct holds all of the calibration data, i.e. offset integers, LSB floats, etc. The eeprom_data_union contains a byte_array that is used to write and read this data to/from the EEPROM. More...

## Macros
#define | _EASYSMU_ID_STRING "Linear Technology, EasySMU-1.01 DC2591A"
| ID string written to EasySMU EEPROM. Value that will be returned by *IDN? serial command. More...
#define | EEPROM_FACTORY_CAL_STATUS_ADDRESS EEPROM_CAL_STATUS_ADDRESS+sizeof(eeprom_data_union)
| A backup version of the factory calibration is stored at this address. Factory calibration may be recovered from here to override a user calibration. More...
#define | EEPROM_FACTORY_CAL_INFO_ADDRESS EEPROM_FACTORY_CAL_STATUS_ADDRESS+sizeof(eeprom_data_union)
| Channel ID information returned by *IDN? command. More...
#define | CAL_INFO_STRLEN 32
| Defines length of the calibartion info string (serial number) which is stored in the EEPROM. More...
Channel name used as index in EasySMU array
#define | _CH0 0
#define | _CH1 1
#define | _CH2 2
#define | _CH3 3
#define | _CH4 4
#define | _CH5 5
#define | _CH6 6
#define | _CH7 7
DAC channel name (LTC2655 is a four channel DAC).
Channel A of the DAC is configures the output voltage.
#define | _EASYSMU_VOLTAGE_DAC LTC2655_DAC_A
#define | _EASYSMU_CURRENT_PULLUP_DAC LTC2655_DAC_B
| Channel B of the DAC configures the maximum pullup current. More...
#define | _EASYSMU_CURRENT_PULLDOWN_DAC LTC2655_DAC_C
| Channel C of the DAC configures the maximum pulldown current. More...
#define | _EASYSMU_ENABLE_OUTPUT_DAC LTC2655_DAC_D
| Channel D of the DAC is used to enable or disable the LTC1970's output. It is essentially used as a binary output here. More...
ADC conversion times.
LTC2485 ADC conversion time in milliseconds (1X mode)
#define | _LTC2485_CONVERSION_TIME_1X 150
#define | _LTC2485_CONVERSION_TIME_2X 75
| LTC2485 ADC conversion time in milliseconds (2X mode) More...
#define | _LTC2485_CONVERSION_TIME _LTC2485_CONVERSION_TIME_1X
| Use 1X mode conversion time for EasySMU conversions. More...
Used as a parameter to functions where source, sink, or both is specified.
#define | _SOURCE_ONLY 1
#define | _SOURCE_AND_SINK 0
#define | _SINK_ONLY -1

## Macro Definition Documentation

## ◆ _CH0

#define _CH0 0

Definition at line 72 of file EasySMU.h.

## ◆ _CH1

#define _CH1 1

Definition at line 73 of file EasySMU.h.

## ◆ _CH2

#define _CH2 2

Definition at line 74 of file EasySMU.h.

## ◆ _CH3

#define _CH3 3

Definition at line 75 of file EasySMU.h.

## ◆ _CH4

#define _CH4 4

Definition at line 76 of file EasySMU.h.

## ◆ _CH5

#define _CH5 5

Definition at line 77 of file EasySMU.h.

## ◆ _CH6

#define _CH6 6

Definition at line 78 of file EasySMU.h.

## ◆ _CH7

#define _CH7 7

Definition at line 79 of file EasySMU.h.

## ◆ _EASYSMU_CURRENT_PULLDOWN_DAC

#define _EASYSMU_CURRENT_PULLDOWN_DAC LTC2655_DAC_C

Channel C of the DAC configures the maximum pulldown current.

Definition at line 89 of file EasySMU.h.

## ◆ _EASYSMU_CURRENT_PULLUP_DAC

#define _EASYSMU_CURRENT_PULLUP_DAC LTC2655_DAC_B

Channel B of the DAC configures the maximum pullup current.

Definition at line 87 of file EasySMU.h.

## ◆ _EASYSMU_ENABLE_OUTPUT_DAC

#define _EASYSMU_ENABLE_OUTPUT_DAC LTC2655_DAC_D

Channel D of the DAC is used to enable or disable the LTC1970's output. It is essentially used as a binary output here.

Definition at line 91 of file EasySMU.h.

## ◆ _EASYSMU_ID_STRING

#define _EASYSMU_ID_STRING "Linear Technology, EasySMU-1.01 DC2591A"

ID string written to EasySMU EEPROM. Value that will be returned by *IDN? serial command.

Definition at line 67 of file EasySMU.h.

## ◆ _EASYSMU_VOLTAGE_DAC

#define _EASYSMU_VOLTAGE_DAC LTC2655_DAC_A

Definition at line 85 of file EasySMU.h.

## ◆ _LTC2485_CONVERSION_TIME

#define _LTC2485_CONVERSION_TIME _LTC2485_CONVERSION_TIME_1X

Use 1X mode conversion time for EasySMU conversions.

Definition at line 101 of file EasySMU.h.

## ◆ _LTC2485_CONVERSION_TIME_1X

#define _LTC2485_CONVERSION_TIME_1X 150

Definition at line 97 of file EasySMU.h.

## ◆ _LTC2485_CONVERSION_TIME_2X

#define _LTC2485_CONVERSION_TIME_2X 75

LTC2485 ADC conversion time in milliseconds (2X mode)

Definition at line 99 of file EasySMU.h.

## ◆ _SINK_ONLY

#define _SINK_ONLY -1

Definition at line 113 of file EasySMU.h.

## ◆ _SOURCE_AND_SINK

#define _SOURCE_AND_SINK 0

Definition at line 112 of file EasySMU.h.

## ◆ _SOURCE_ONLY

#define _SOURCE_ONLY 1

Definition at line 111 of file EasySMU.h.

## ◆ CAL_INFO_STRLEN

#define CAL_INFO_STRLEN 32

Defines length of the calibartion info string (serial number) which is stored in the EEPROM.

Definition at line 117 of file EasySMU.h.

## ◆ EEPROM_FACTORY_CAL_INFO_ADDRESS

#define EEPROM_FACTORY_CAL_INFO_ADDRESS EEPROM_FACTORY_CAL_STATUS_ADDRESS+sizeof(eeprom_data_union)

Channel ID information returned by *IDN? command.

Definition at line 107 of file EasySMU.h.

## ◆ EEPROM_FACTORY_CAL_STATUS_ADDRESS

#define EEPROM_FACTORY_CAL_STATUS_ADDRESS EEPROM_CAL_STATUS_ADDRESS+sizeof(eeprom_data_union)

A backup version of the factory calibration is stored at this address. Factory calibration may be recovered from here to override a user calibration.

Definition at line 105 of file EasySMU.h.