Linduino  1.3.0
Linear Technology Arduino-Compatible Demonstration Board

LTC1592: 16-bit SoftSpan DAC with Programmable Output Range. More...

Detailed Description

LTC1592: 16-bit SoftSpan DAC with Programmable Output Range.

The LTC1592 is a 16-bit serial input DAC that operates on a single 5V supply.
It can be software-programmed for either unipolar or bipolar mode. It can
also be programmed for different output voltage ranges - two output ranges in
unipolar mode and four output ranges in bipolar mode.

The device includes an internal deglitcher circuit that reduces the glitch
impulse to less than 2nV-s (typ).

When the CS/LD is brought to a logic low, the data on the SDI input is loaded
into the shift register on the rising edge of the clock.  A 4-bit command word
(C3 C2 C1 C0), followed by four “don’t care” bits and 16 data bits(MSB-first)
is the minimum loading sequence required. When the CS/LD is brought to a logic
high, the clock is disabled internally and the command word is executed.

SPI DIN FORMAT (MSB First):

Byte #1                     Byte #2                        Byte #3
C3 C2 C1 C0  X  X   X   X   D15 D14 D13 D12 D11 D10 D9 D8  D7 D6 D5 D4 D3 D2 D1 D0

http://www.linear.com/product/LTC1592

http://www.linear.com/product/LTC1592#demoboards

Copyright 2018(c) Analog Devices, Inc.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of Analog Devices, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
  • The use of this software may or may not infringe the patent rights of one or more patent holders. This license does not release you from the requirement that you obtain separate licenses from these patent holders to use this software.
  • Use of the software either in source or binary form, must be run on or directly connected to an Analog Devices Inc. component.

THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Header File for LTC1592: 16-bit SoftSpan DAC with Programmable Output Range

Definition in file LTC1592.h.

Go to the source code of this file.

Functions

void LTC1592_write (uint8_t cs, uint8_t dac_command, uint16_t data)
 Transmits 24 bit input stream: 4-bit command + 4-bit don't-care + 16-bit data. More...
 
float LTC1592_code_to_voltage (uint16_t data, float RANGE_HIGH, float RANGE_LOW)
 Calculates the voltage from ADC output data depending on the channel configuration. More...
 
uint16_t LTC1592_voltage_to_code (float voltage, float RANGE_HIGH, float RANGE_LOW)
 Calculates the 16 bit data code from voltage. More...
 

Macros

#define LTC1592_CS   QUIKEVAL_CS
 Headerfiles. More...
 
LTC1592 Commands
#define LTC1592_COPY_SREG_TO_BUF1   0x00
 
#define LTC1592_COPY_BUF1_TO_BUF2   0x10
 
#define LTC1592_COPY_SREG_TO_BUF1_BUF2   0x20
 
#define LTC1592_RANGE_0_TO_5V   0x80
 
#define LTC1592_RANGE_0_TO_10V   0x90
 
#define LTC1592_RANGE_PLUS_MINUS_5V   0xA0
 
#define LTC1592_RANGE_PLUS_MINUS_10V   0xB0
 
#define LTC1592_RANGE_PLUS_MINUS_2_5V   0xC0
 
#define LTC1592_RANGE_MINUS_2_5V_TO_PLUS_7_5V   0xD0
 

Function Documentation

◆ LTC1592_code_to_voltage()

float LTC1592_code_to_voltage ( uint16_t  data,
float  RANGE_HIGH,
float  RANGE_LOW 
)

Calculates the voltage from ADC output data depending on the channel configuration.

Returns
Floating point voltage
Parameters
data16-bit digital data input
RANGE_HIGHMaximum voltage range
RANGE_LOWMinimum voltage range

Definition at line 92 of file LTC1592.cpp.

◆ LTC1592_voltage_to_code()

uint16_t LTC1592_voltage_to_code ( float  voltage,
float  RANGE_HIGH,
float  RANGE_LOW 
)

Calculates the 16 bit data code from voltage.

Returns
16 bit data code
Parameters
voltageVoltage to be converted
RANGE_HIGHMaximum voltage range
RANGE_LOWMinimum voltage range

Definition at line 100 of file LTC1592.cpp.

◆ LTC1592_write()

void LTC1592_write ( uint8_t  cs,
uint8_t  dac_command,
uint16_t  data 
)

Transmits 24 bit input stream: 4-bit command + 4-bit don't-care + 16-bit data.

Returns
void
Parameters
csChip Select
dac_command4-bit command: c3 c2 c1 c0 X X X X
data16-bit digital data input

Definition at line 80 of file LTC1592.cpp.

Macro Definition Documentation

◆ LTC1592_COPY_BUF1_TO_BUF2

#define LTC1592_COPY_BUF1_TO_BUF2   0x10

Definition at line 85 of file LTC1592.h.

◆ LTC1592_COPY_SREG_TO_BUF1

#define LTC1592_COPY_SREG_TO_BUF1   0x00

Definition at line 84 of file LTC1592.h.

◆ LTC1592_COPY_SREG_TO_BUF1_BUF2

#define LTC1592_COPY_SREG_TO_BUF1_BUF2   0x20

Definition at line 86 of file LTC1592.h.

◆ LTC1592_CS

#define LTC1592_CS   QUIKEVAL_CS

Headerfiles.

Define the SPI CS pin

Definition at line 79 of file LTC1592.h.

◆ LTC1592_RANGE_0_TO_10V

#define LTC1592_RANGE_0_TO_10V   0x90

Definition at line 88 of file LTC1592.h.

◆ LTC1592_RANGE_0_TO_5V

#define LTC1592_RANGE_0_TO_5V   0x80

Definition at line 87 of file LTC1592.h.

◆ LTC1592_RANGE_MINUS_2_5V_TO_PLUS_7_5V

#define LTC1592_RANGE_MINUS_2_5V_TO_PLUS_7_5V   0xD0

Definition at line 92 of file LTC1592.h.

◆ LTC1592_RANGE_PLUS_MINUS_10V

#define LTC1592_RANGE_PLUS_MINUS_10V   0xB0

Definition at line 90 of file LTC1592.h.

◆ LTC1592_RANGE_PLUS_MINUS_2_5V

#define LTC1592_RANGE_PLUS_MINUS_2_5V   0xC0

Definition at line 91 of file LTC1592.h.

◆ LTC1592_RANGE_PLUS_MINUS_5V

#define LTC1592_RANGE_PLUS_MINUS_5V   0xA0

Definition at line 89 of file LTC1592.h.