![]() |
Linduino
1.3.0
Linear Technology Arduino-Compatible Demonstration Board
|
Class Library Header File for EasySMU: I2C Address Translator Demonstration and a Simple Multi-Channel Source Measurement Unit. More...
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 |
#define _EASYSMU_CURRENT_PULLDOWN_DAC LTC2655_DAC_C |
#define _EASYSMU_CURRENT_PULLUP_DAC LTC2655_DAC_B |
#define _EASYSMU_ENABLE_OUTPUT_DAC LTC2655_DAC_D |
#define _EASYSMU_ID_STRING "Linear Technology, EasySMU-1.01 DC2591A" |
#define _EASYSMU_VOLTAGE_DAC LTC2655_DAC_A |
#define _LTC2485_CONVERSION_TIME _LTC2485_CONVERSION_TIME_1X |
#define _LTC2485_CONVERSION_TIME_2X 75 |
#define CAL_INFO_STRLEN 32 |
#define EEPROM_FACTORY_CAL_INFO_ADDRESS EEPROM_FACTORY_CAL_STATUS_ADDRESS+sizeof(eeprom_data_union) |
#define EEPROM_FACTORY_CAL_STATUS_ADDRESS EEPROM_CAL_STATUS_ADDRESS+sizeof(eeprom_data_union) |