LJTick-DAC Datasheet
The LJTick-DAC works with the T-series (T4/T7/T8) and with any UD family device (U3/U6/UE9), except for the oldest U3 hardware revision 1.20 (U3A, pre 2007), as that U3 did not support I2C. The LJTick-DAC does not work with the U12.
The LJTick-DAC connects to a digital I/O block (e.g. FIO6/FIO7), not to the DAC0/DAC1 terminals.
The LJTick-DAC (LJTDAC) is an analog output expansion module. It provides a pair of 14-bit analog outputs with a range of ±10 volts. The 4-pin design plugs into any of the standard DIO/DIO/GND/VS screw terminal blocks on the LabJack, and thus up to 10 of these can be used per device to add 20 analog outputs.
The update rate of the LJTDAC is limited by the communication time between the host and the device. See Section 3.1 of the U3/U6/UE9 User’s Guide or data rates for T-Series devices for detailed information, but it generally takes about 1 ms to do an update via USB “high-high” or Ethernet, while it takes about 4 ms via other USB connections. Only 1 DAC channel can be updated per low-level communication. That means, for instance, that if updates are done at the 1 ms rate to build a 100 Hz sine wave, there will only be about 5 updates per half-cycle of the waveform and it will appear to be a smooth sine. With a 10 Hz sine wave, however, there will be about 50 updates per half-cycle and the waveform will appear much smoother.
The pins shown on the right side of the LJTDAC (Figure 1) connect to the LabJack. The VS/GND pins power the LJTDAC, while the DIOA/DIOB pins are used for digital communication (I2C) between the LJTDAC and LabJack. DIOA is the serial clock (SCL) and DIOB is the serial data (SDA). Following are descriptions of the screw-terminal connections:
GND: Connected directly to LabJack ground (GND).
VS: This is the same 5 volt output as the VS terminals on the LabJack itself. This is an output terminal, not an input. It can be used to provide 5 volt (nominal) power as needed.
DACA/DACB: Output of each 14-bit digital-to-analog converter.
Low-Level I2C Communication
The LJTDAC has a non-volatile 128-byte EEPROM (Microchip 24C01C) on the I2C bus with a 7-bit address of 0x50 (d80), and thus an 8-bit address byte of 0xA0 (d160). Bytes 0-63 are available to the user, while bytes 64-127 are reserved.
EEPROM Address | Description | Nominal Value |
0-63 | User Area |
|
64-71 | DACA Slope | 3.1586E+03 bits/volt |
72-79 | DACA Offset | 3.2624E+04 bits |
80-87 | DACB Slope | 3.1586E+03 bits/volt |
88-95 | DACB Offset | 3.2624E+04 bits |
96-99 | Serial Number |
|
100-127 | Reserved |
|
The slopes and offsets are stored in 64-bit fixed point format (signed 32.32, little endian, 2’s complement). The serial number is simply an unsigned 32-bit value where byte 96 is the LSB and byte 99 is the MSB.
The DAC (digital-to-analog converter) chip on the LJTDAC is the LTC2617 (linear.com) with a 7-bit address of 0x12 (d18), and thus an 8-bit address byte of 0x24 (d36). The data is justified to 16 bits, so a binary value of 0 (actually 0-3) results in minimum output (~-10.3 volts) and a binary value of 65535 (actually 65532-65535) results in maximum output (~10.4 volts).
For more information about low-level communication with the LJTDAC, see the I2C example in the VC6_LJUD archive or see the Linux example.
UD Communication
The LJTick-DAC works with any UD family device (U3/U6/UE9), except for U3 hardware revision 1.20 (U3A), as that U3 did not support I2C. It also does not work with the U12 (which is not a UD family device).
The LabJack UD driver for Windows (V2.76+) has special support for the LJTDAC. First, the following special channel is used with the put config IOType to specify where the LJTDAC is connected to the LabJack:
LJ_chTDAC_SCL_PIN_NUM //Used with LJ_ioPUT_CONFIG. The desired pin # is passed in the Value parameter.
Then there is one IOType used for all further communication with the LJTDAC. The value of the Channel parameter used with this IOType is always one of the following 7 special channels:
LJ_ioTDAC_COMMUNICATION //Main IOType.
LJ_chTDAC_SERIAL_NUMBER //Read-only.
LJ_chTDAC_READ_USER_MEM //x1 is array of 64 bytes.
LJ_chTDAC_WRITE_USER_MEM //x1 is array of 64 bytes.
LJ_chTDAC_READ_CAL_CONSTANTS //x1 is array of 4 doubles.
LJ_chTDAC_WRITE_CAL_CONSTANTS //x1 is array of 4 doubles.
LJ_chTDAC_UPDATE_DACA //Pass DAC voltage in Value parameter.
LJ_chTDAC_UPDATE_DACB //Pass DAC voltage in Value parameter.
Note that the _CAL_CONSTANTS special channels above are floating point doubles. The UD library converts to/from the fixed point format stored on the LJTick-DAC.
Typical operation consists of simply setting the pin number for SCL and then updating DAC channel A and/or B:
//Tell the driver that SCL is on FIO6. The driver then assumes that SDA is on FIO7.
//This is just setting a parameter in the driver, and not actually talking
//to the hardware, and thus executes very fast.
ePut(lngHandle, LJ_ioPUT_CONFIG, LJ_chTDAC_SCL_PIN_NUM,6,0);
//Set DACA to 1.2 volts. If the driver has not previously talked to an LJTDAC
//on FIO6/FIO7, it will first retrieve and store the calibration constants. The
//low-level I2C command can only update 1 DAC channel at a time, so there
//is no advantage to doing two updates within a single add-go-get block.
ePut(lngHandle, LJ_ioTDAC_COMMUNICATION, LJ_chTDAC_UPDATE_DACA, 1.2, 0);
//Set DACB to 2.3 volts.
ePut(lngHandle, LJ_ioTDAC_COMMUNICATION, LJ_chTDAC_UPDATE_DACB, 2.3, 0);
For more information about UD communication with the LJTDAC, see the LJTDAC example in the VC6_LJUD archive.
T-series (T4/T7/T8) & LJM Communication
T-series devices have special registers available for controlling the LJTick-DAC. The TDAC#
registers that you write to should correspond to the DIO numbers that the TDAC is connected to. See the DIO mapping tables in the T-Series datasheet for conversions from FIO/EIO/CIO/MIO numbers to DIO#.
Updating an output through the LJM library is easy. For example, the following line of code sets the voltage on the DACB channel associated with DIO11 (aka EIO3). That means DACA on the LJTick-DAC would be connected to DIO10 (aka EIO2):
err = LJM_eWriteName(handle, "TDAC11", 7.5)
MIO2 (DIO22) does not support the LJTick-DAC.
Specifications: (25 deg C, VS = 5 volts)
Parameter | Conditions | Min | Typical | Max | Units |
|
|
|
|
|
|
General |
|
|
|
|
|
Supply Voltage |
| 4.5 | 5 | 5.5 | V |
Supply Current | Vout = 0, No load |
| 5 |
| mA |
| Both Outputs @ 3mA |
| 29 |
| mA |
Operating Temperature |
| 0 |
| 70 | °C |
|
|
|
|
|
|
DIO |
|
|
|
|
|
Pull-up Resistors | To VS |
| 5100 |
| Ω |
Low Level Input Voltage |
|
|
| 0.3*VS | V |
High Level Input Voltage |
| 0.7*VS |
|
| V |
Low Level Output Voltage | Sink Current = 3mA | 0 |
| 0.4 | V |
Clock Frequency (DIOA) |
|
|
| 400 | kHz |
|
|
|
|
|
|
DAC Outputs |
|
|
|
|
|
Typical Output Range |
| -10.3 |
| 10.4 | V |
Power-up Output Voltage |
|
| 0.05 |
| V |
Resolution |
|
|
| 14 | bits |
|
|
|
| 1.22 | mV |
Accuracy |
|
| 0.05 | 0.5 | % FS |
Differential Linearity Error |
|
|
| ±1 | counts |
Integral Linearity Error |
|
| ±5 | ±16 | counts |
Temperature Drift |
|
| 20 |
| ppm/°C |
Update Time (1) |
|
| 1 |
| ms |
Update Rate (1) |
|
| 1000 |
| Hz |
Slew Rate |
|
| 0.1 |
| V/μs |
Output Impedance |
|
| 0.1 |
| Ω |
Output Current (2) | Total for both channels |
|
| 10 | mA |
(1) The update time is similar to the numbers found in Section 3.1 of the U3/UE9 User's Guide. The time is typically about 1 ms over Ethernet or USB "high-high", and typically about 4 ms over USB "other".
(2) This is the current limit for both channels combined. The first thing you notice as you get close to the current limit is that the minimum output voltage increases, and this effect will be worse if your VS supply voltage is low. For example, at 10 mA, the minimum output is typically about -9.5 volts.
LJTickDAC Testing Utility
For your convenience, the LJTickDAC testing utility for UD family devices is available for download.
Declaration of Conformity
Manufacturers Name: LabJack Corporation
Manufacturers Address: 6900 West Jefferson Ave Suite 110, Lakewood, CO 80235 USA
Declares that the product
Product Name: LabJack Tick DAC
Model Number: LJTick-DAC
conforms to the following Product Specifications:
EMC Directive: 89/336/EEC
EN 55011 Class A
EN 61326-1: General Requirements