LTM2893 - 100MHz Isolated ADC Serial Interface

Features

  • Isolated Interface: 6000VRMS for 1 Minute
  • UL-CSA Recognition Pending
  • 100MHz SPI-Compatible I/O
  • Configurable SPI Word Length 8 to 32 Bits
  • Low Jitter Conversion Start (30psRMS)
  • Supports Simultaneously Sampled ADCs
  • Read Only (LTM2893), Read/Write (LTM2893-1)
  • Three Isolated Multiplexer Select Signals
  • 1.71V to 5.5V I/O Voltages
  • 3V to 5.5V Supply Voltages
  • High Common Mode Transient Immunity
  • 15mm × 6.25mm BGA Package

Typical Application

LTM2893 Typical Application

Description

The LTM®2893 is a high speed isolated μModule (micromodule) SPI interface with ADC control signals. The LTM2893 is optimized for isolating 1Msps high resolution 18-bit SAR ADCs, such as the LTC2338 and similar families, and can interface with most general purpose ADCs. The LTM2893-1 is optimized for isolating the LTC2348 and similar families of simultaneous sampling ADCs that require writing configuration settings into the ADC. LTM2893 isolates the conversion start, sampling signal, with very low aperture jitter (30ps) and low latency (20ns).

The interface enables fast throughput with no cycle latency, which makes the LTM2893 ideally suited for a wide variety of applications. The LTM2893 has a high speed SPI-compatible serial port that supports 1.71V to 5.5V logic and is configurable for ADCs with 8 to 32 bit SPI word lengths. It also isolates three select signals (SA, SB, SC) for controlling analog multiplexers or gain settings.

The isolation barrier tolerates large voltage ground variations between the logic interface and the isolated side of the LTM2893. Uninterrupted communication is maintained during voltage transients greater than 50kV/μs.

Packaging

For complete and up to date package information and drawings, please refer to our packaging page

Part Number Package Code Temp Package
Drawing
RoHS
LTM2893CY-1#PBF 15mm x 6.25mm x 2.06mm BGA BGA C 05-08-1987 Yes
LTM2893CY#PBF 15mm x 6.25mm x 2.06mm BGA BGA C 05-08-1987 Yes
LTM2893HY-1#PBF 15mm x 6.25mm x 2.06mm BGA BGA H 05-08-1987 Yes
LTM2893HY#PBF 15mm x 6.25mm x 2.06mm BGA BGA H 05-08-1987 Yes
LTM2893IY-1#PBF 15mm x 6.25mm x 2.06mm BGA BGA I 05-08-1987 Yes
LTM2893IY#PBF 15mm x 6.25mm x 2.06mm BGA BGA I 05-08-1987 Yes


LTM2893 Package Drawing

Order Info

  • Part numbers ending in PBF are lead free. Solder plated terminal finish (SnPb) versions are non-standard and special terms and conditions and pricing applies if available. Please contact LTC marketing for information.
  • Part numbers containing TR or TRM are shipped in tape and reel or 500 unit mini tape and reel, respectively
  • Please refer to our general ordering information or the product datasheet for more details

Package Variations and Pricing

Part Number Package Temp Price
(1-99)
Price
(1k)*
RoHS
LTM2893CY-1#PBF 15mm x 6.25mm x 2.06mm BGA C $12.79 $8.95 Yes
LTM2893CY#PBF 15mm x 6.25mm x 2.06mm BGA C $12.79 $8.95 Yes
LTM2893HY-1#PBF 15mm x 6.25mm x 2.06mm BGA H $16.88 $11.81 Yes
LTM2893HY#PBF 15mm x 6.25mm x 2.06mm BGA H $16.88 $11.81 Yes
LTM2893IY-1#PBF 15mm x 6.25mm x 2.06mm BGA I $14.06 $9.85 Yes
LTM2893IY#PBF 15mm x 6.25mm x 2.06mm BGA I $14.06 $9.85 Yes
Buy NowRequest Samples
* The USA list pricing shown is for BUDGETARY USE ONLY, shown in United States dollars (FOB USA per unit for the stated volume), and is subject to change. International prices may differ due to local duties, taxes, fees and exchange rates. For volume-specific price or delivery quotes, please contact your local Linear Technology sales office or authorized distributor.

Demo Boards

Linear Technology offers many demo boards free of charge to qualified customers. Contact your local sales office or distributor to inquire about a demo board. Certain demo boards are also available for sale via credit card on this website. Demo boards are for evaluation purposes only. It remains the customer’s responsibility to verify proper and reliable operation in the actual end application.

Part Number Description Price Documentation
DC2405A LTM2893 Demo Board | 100MHz SPI uModule Isolator $150.00
DC2542A LTC2358-18, LTM2893, ADA4522-1, LT6658 Demo Board | Isolated Industrial Data Acquisition Board (req ArrowSoCkit) $300.00
Buy Now

Companion Boards

Part Number Description Price Documentation
DC2026C Linduino One Isolated USB Demo Board: An Arduino- and QuikEval-Compatible Code Development Platform $75.00
DC590B Isolated USB Serial Controller for Linear Technology QuikEval-Compatible Demo Boards $50.00
DC890B USB Data Acquisition Controller, for PScope Evaluation Kits (up to 250Mbps, CMOS/LVDS) $300.00
Buy Now
Click here to view our complete list of demo boards

Applications

  • Remote Sensing
  • High Speed Data Acquisition
  • Industrial Process Control
  • Test and Measurement Equipment

Product Notifications

Please login to your MyLinear account for notifications of datasheet updates, new document releases and LTspice model announcements for your favorite products. If you do not have a MyLinear account you may Sign Up Now.

Forgot your password? Click here.
Need help? Email mylinear@linear.com with questions and comments.

Design Tools

Linduino

Linduino is an Arduino compatible platform for developing and distributing firmware libraries and code for SPI and I²C-compatible integrated circuits. The Linduino One board interfaces to more than 300 QuikEval demonstration cards, supporting a variety of product types including analog-to-digital converters (ADCs)digital-to-analog converters (DACs)power monitors, and more. Firmware libraries for individual devices are written in C and designed to be portable to a wide variety of processors and microcontrollers. Each library has a demonstration program that can be uploaded to the Linduino One platform to allow the circuit and software to be quickly and easily verified.

Click here for more information on Linduino

Code

Linduino is Linear Technology's Arduino compatible system for developing and distributing firmware libraries and example code for Linear Technology’s integrated circuits. The code below can be downloaded or copied and pasted into your project. Please visit the Linduino Home Page for demo board, manual and setup information.

This part is Code Supported: There is example code available for this part. The code below may rely on other drivers available in the full library.

Download LTM2893 - DC2405A.ino File

/*!
Linear Technology DC2405A Demonstration Board.
LTM2893-1: 100MHz ADC SPI Isolator
LTC2328-18: 18-Bit, 1Msps Pseudo-differential input ADC
Max SCK rate is 100MHz.

@verbatim

NOTES
  Setup:
   Set the terminal baud rate to 115200 and select the newline terminator. Equipment
   required is a voltage source (preferably low-noise) and a precision voltmeter.
   Ensure all jumpers on the demo board are installed in their default positions
   from the factory. Refer to Demo Manual DC2405A.

  How to test:
   The voltage source should be connected between inputs AIN and GND2. Ensure both
   inputs are within their specified absolute input voltage range. Ensure the voltage
   source is set within the range of -10.24V to +10.24V (single ended voltage range).
   (Swapping input voltages results in a reversed polarity reading.)

USER INPUT DATA FORMAT:
 decimal : 1024
 hex     : 0x400
 octal   : 02000  (leading 0 "zero")
 binary  : B10000000000
 float   : 1024.0

@endverbatim

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

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

REVISION HISTORY
$Revision: 6427 $
$Date: 2017-01-26 09:26:33 -0800 (Thu, 26 Jan 2017) $

Copyright (c) 2013, Linear Technology Corp.(LTC)
All rights reserved.

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

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.
2. 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.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, 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.

The views and conclusions contained in the software and documentation are those
of the authors and should not be interpreted as representing official policies,
either expressed or implied, of Linear Technology Corp.

The Linear Technology Linduino is not affiliated with the official Arduino team.
However, the Linduino is only possible because of the Arduino team's commitment
to the open-source community.  Please, visit http://www.arduino.cc and
http://store.arduino.cc , and consider a purchase that will help fund their
ongoing work.
*/

/*! @file
    @ingroup LTM2893
*/

#include <Arduino.h>
#include <stdint.h>
#include "Linduino.h"
#include "LT_SPI.h"
#include "UserInterface.h"
#include "LT_I2C.h"
#include "QuikEval_EEPROM.h"
#include "LTM2893.h"
#include <SPI.h>
#include <Wire.h>

// Function Declaration
void print_title();                                         // Print the title block
void print_prompt();                                        // Prompt the user for an input command
void print_user_command(uint8_t menu);                      // Display selected differential channels

void menu_1_read_input();
void menu_2_select_bits();

// Global variables
static uint8_t LTC2328_bits = 18;                   //!< Default set for 18 bits
float LTC2328_vref = 10.24;


//! Initialize Linduino
void setup()
{
  uint32_t adc_code;

  output_high(LTM2893_CSC_PIN);
  pinMode(LTM2893_CSC_PIN, OUTPUT);
  output_high(LTM2893_CSC_PIN);
  quikeval_I2C_init();           // Configure the EEPROM I2C port for 100kHz
  quikeval_SPI_init();           // Configure the spi port for 4MHz SCK
  quikeval_SPI_connect();        // Connect SPI to main data port
  output_high(LTM2893_CSC_PIN);
  Serial.begin(115200);          // Initialize the serial port to the PC
  print_title();
  print_prompt();
}


//! Repeats Linduino loop
void loop()
{
  uint16_t user_command;
  {
    if (Serial.available())
    {
      user_command = read_int();        // Read the user command
      if (user_command != 'm')
        Serial.println(user_command);   // Prints the user command to com port
      switch (user_command)
      {
        case 1:
          menu_1_read_input();
          break;
        case 2:
          menu_2_select_bits();
          break;
        default:
          Serial.println("  Invalid Option");
          break;
      }
      Serial.println();
      print_prompt();
    }
  }
}


// Function Definitions
//! Read channel
//! @return void
void menu_1_read_input()
{
  uint8_t user_command;
  int32_t adc_code;                           // The LTC2328 code
  int32_t display_code;
  float adc_voltage;                               // The LTC2328 voltage

  /*
    LTM2893_config(
            LTM2893_UC0_OSCDIV_6
            );

    LTM2893_config(
            LTM2893_UC1_WORDL_24
            );
  */
  // Read and display a selected channel
  //LTM2893_read(LTM2893_CS, &adc_code);  //discard the first reading
  //delay(100);
  LTM2893_read(LTM2893_CS, &adc_code);

  //output_high(LTM2893_CSC_PIN);

  display_code = adc_code >> (24 - LTC2328_bits);
  if (LTC2328_bits == 16)
    display_code = display_code & 0xFFFF;
  else
    display_code = display_code & 0x3FFFF;

  Serial.print(F("  Received Code: b"));
  Serial.println(display_code, BIN);

  // Convert the received code to voltage
  adc_voltage = LTM2893_code_to_voltage(adc_code, LTC2328_vref);

  Serial.print(F("  Equivalent voltage: "));
  Serial.print(adc_voltage, 4);
  Serial.println(F("V"));
}


//! Select number of bits
//! @return void
void menu_2_select_bits()
{
  uint8_t user_command;

  Serial.println();
  if (LTC2328_bits == 16)
    Serial.println(F("  16 bits selected"));
  else
    Serial.println(F("  18 bits selected"));

  Serial.println(F("  16 = 2328-16"));
  Serial.println(F("  18 = 2328-18"));
  Serial.print(F("  Enter a Command, based upon the resolution of the part under test: "));

  user_command = read_int();    // Read user input
  Serial.println(user_command);   // Prints the user command to com port
  switch (user_command)
  {
    case 16:
      LTC2328_bits = 16;
      break;
    case 18:
      LTC2328_bits = 18;
      break;
    default:
      {
        Serial.println("  Invalid Option");
        return;
      }
      break;
  }
}


//! Prints the title block when program first starts.
void print_title()
{
  Serial.println();
  Serial.println(F("*****************************************************************"));
  Serial.println(F("* DC2405A Demonstration Program                                 *"));
  Serial.println(F("*                                                               *"));
  Serial.println(F("* This program demonstrates how to receive data from an         *"));
  Serial.println(F("* isolated LTC2328-18 ADC using the LTM2893 Isolated ADC        *"));
  Serial.println(F("* Serial Interface module.                                      *"));
  Serial.println(F("*                                                               *"));
  Serial.println(F("* Set the baud rate to 115200 and select the newline terminator.*"));
  Serial.println(F("*                                                               *"));
  Serial.println(F("*****************************************************************"));
}


//! Prints main menu.
void print_prompt()
{
  Serial.println(F("*************************"));
  Serial.println(F("1-Read ADC Input"));
//  Serial.println(F("2-Select Number of bits (Default is 18 bits)\n"));
  Serial.print(F("Enter a command:"));
}

Download LTM2893 - Linduino CPP File

/*!
LTM2893-1: 100MHz ADC SPI Isolator

@verbatim

@endverbatim

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

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


REVISION HISTORY
$Revision: 6678 $
$Date: 2017-03-09 15:00:06 -0800 (Thu, 09 Mar 2017) $

Copyright (c) 2013, Linear Technology Corp.(LTC)
All rights reserved.

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

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.
2. 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.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, 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.

The views and conclusions contained in the software and documentation are those
of the authors and should not be interpreted as representing official policies,
either expressed or implied, of Linear Technology Corp.

The Linear Technology Linduino is not affiliated with the official Arduino team.
However, the Linduino is only possible because of the Arduino team's commitment
to the open-source community.  Please, visit http://www.arduino.cc and
http://store.arduino.cc , and consider a purchase that will help fund their
ongoing work.
*/

//! @ingroup Analog_to_Digital_Converters
//! @{
//! @defgroup LTM2893 LTM2893: Isolator for 1Msps ADC
//! @}

/*! @file
    @ingroup LTM2893
    Library for LTM2893: Isolator for 16/18-Bit 1Msps ADC
*/

#include <Arduino.h>
#include <stdint.h>
#include "Linduino.h"
#include "LT_SPI.h"
#include "LTM2893.h"
#include <SPI.h>


// Reads from a SPI LTM2893-XX device that has no configuration word and a 20 bit output word in 2's complement format.
void LTM2893_read(uint8_t cs, int32_t *ptr_adc_code)
{
  LT_union_int16_2bytes command;    // LTM2893 data and command
  command.LT_uint16 = 0;                // Set to zero, not necessary but avoids
  // random data in scope shots.

//Form a four byte object to hold four bytes of data
  LT_union_int32_4bytes data; //instantiate the union
  data.LT_byte[3] = 0;
  data.LT_byte[2] = 0;
  data.LT_byte[1] = 0;
  data.LT_byte[0] = 0;

  spi_transfer_block(cs,command.LT_byte,data.LT_byte,3);  // read 3 bytes 2893 is setup as 24 bits. overreading will cause a fault.

  *ptr_adc_code = data.LT_int32;

  return;
}

void LTM2893_config(uint8_t user_config)
{
  uint8_t *rx_data;
  spi_transfer_byte(LTM2893_CSC_PIN,user_config,rx_data);
}


// Calculates the voltage corresponding to an adc code in 2's complement, given the reference voltage (in volts)
/*
float LTM2893_code_to_voltage(int32_t adc_code, float vref)
{
  float voltage;
  if (adc_code >= pow(2,23)) {
  voltage = (float)adc_code - pow(2,23);
  voltage = voltage / (pow(2,22)-1);    //! 2) This calculates the input as a fraction of the reference voltage (dimensionless)
  voltage = voltage * -vref - (vref/pow(2,23));           //! 3) Multiply fraction by Vref to get the actual voltage at the input (in volts)
  }
  else {
  voltage = (float)adc_code;
  voltage = voltage / (pow(2,22)-1);    //! 2) This calculates the input as a fraction of the reference voltage (dimensionless)
  voltage = voltage * vref;           //! 3) Multiply fraction by Vref to get the actual voltage at the input (in volts)
  }
  return(voltage);
}
*/
float LTM2893_code_to_voltage(int32_t adc_code, float vref)
{
  float voltage;
  if (adc_code >= pow(2,23))
  {
    voltage = (float)adc_code - pow(2,24);
    voltage = voltage / (pow(2,23)-1);    //! 2) This calculates the input as a fraction of the reference voltage (dimensionless)
    voltage = voltage * vref;           //! 3) Multiply fraction by Vref to get the actual voltage at the input (in volts)
  }
  else
  {
    voltage = (float)adc_code;
    voltage = voltage / (pow(2,23)-1);    //! 2) This calculates the input as a fraction of the reference voltage (dimensionless)
    voltage = voltage * vref;           //! 3) Multiply fraction by Vref to get the actual voltage at the input (in volts)
  }
  return(voltage);
}

Download LTM2893 - Linduino Header File

/*!
LTM2893-1: 100MHz ADC SPI Isolator

@verbatim

Example Code:

Read ADC input.

    LTM2893_read(LTM2893_CS, &adc_code);   // Throws out last reading
    LTM2893_read(LTM2893_CS, &adc_code);   // Obtains the current reading and stores to adc_code variable

    // Convert adc_code to voltage
    adc_voltage = LTM2893_code_to_voltage(adc_code, vref);

@endverbatim

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

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

REVISION HISTORY
$Revision: 6678 $
$Date: 2017-03-09 15:00:06 -0800 (Thu, 09 Mar 2017) $

Copyright (c) 2013, Linear Technology Corp.(LTC)
All rights reserved.

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

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.
2. 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.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, 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.

The views and conclusions contained in the software and documentation are those
of the authors and should not be interpreted as representing official policies,
either expressed or implied, of Linear Technology Corp.

The Linear Technology Linduino is not affiliated with the official Arduino team.
However, the Linduino is only possible because of the Arduino team's commitment
to the open-source community.  Please, visit http://www.arduino.cc and
http://store.arduino.cc , and consider a purchase that will help fund their
ongoing work.
*/

/*! @file
    @ingroup LTM2893
    Header for LTM2893: Interface LTC2328 16/18-bit 1Msps ADC
*/

#ifndef LTM2893_H
#define LTM2893_H

#include <SPI.h>

//! Define the SPI CS pin
#ifndef LTM2893_CS
#define LTM2893_CS QUIKEVAL_CS
#endif

#define LTM2893_CSC_PIN QUIKEVAL_GPIO

//! @name LTM2893 Channel Address
//! @{
// Channel Address
//#define LTM2893_ADDRESS             0x00
//!@}

// UserConfig 0 Register
#define LTM2893_UC0_SA_DIR_ISO2LOGIC (1 << 0)
#define LTM2893_UC0_SB_DIR_ISO2LOGIC (1 << 1)
#define LTM2893_UC0_SC_DIR_ISO2LOGIC (1 << 2)
#define LTM2893_UC0_CRC              (1 << 3)
//- OSCDIV
#define LTM2893_UC0_OSCDIV_100       (0 << 4)
#define LTM2893_UC0_OSCDIV_66        (1 << 4)
#define LTM2893_UC0_OSCDIV_50        (2 << 4)
#define LTM2893_UC0_OSCDIV_40        (3 << 4)
#define LTM2893_UC0_OSCDIV_33        (4 << 4)
#define LTM2893_UC0_OSCDIV_25        (5 << 4)
#define LTM2893_UC0_OSCDIV_12        (6 << 4)
#define LTM2893_UC0_OSCDIV_6         (7 << 4)

// UserConfig 1 Register
//- OSCDIV
#define LTM2893_UC1_WORDL_8          ((0 << 0) | (1 << 7))
#define LTM2893_UC1_WORDL_12         ((1 << 0) | (1 << 7))
#define LTM2893_UC1_WORDL_14         ((2 << 0) | (1 << 7))
#define LTM2893_UC1_WORDL_16         ((3 << 0) | (1 << 7))
#define LTM2893_UC1_WORDL_18         ((4 << 0) | (1 << 7))
#define LTM2893_UC1_WORDL_20         ((5 << 0) | (1 << 7))
#define LTM2893_UC1_WORDL_24         ((6 << 0) | (1 << 7))
#define LTM2893_UC1_WORDL_32         ((7 << 0) | (1 << 7))
//- DEVCNT
#define LTM2893_UC1_DEVCNT_1         ((0 << 3) | (1 << 7))
#define LTM2893_UC1_DEVCNT_2         ((1 << 3) | (1 << 7))
#define LTM2893_UC1_DEVCNT_3         ((2 << 3) | (1 << 7))
#define LTM2893_UC1_DEVCNT_4         ((3 << 3) | (1 << 7))

//! Reads the LTM2893 and returns 32-bit data in 2's complement format
//! @return void
void LTM2893_read(uint8_t cs,           //!< Chip Select Pin
                  int32_t *ptr_adc_code    //!< Returns code read from ADC (from previous conversion)
                 );


//! Calculates the LTM2893 input voltage given the binary data and lsb weight.
//! @return Floating point voltage
float LTM2893_code_to_voltage(int32_t adc_code,                   //!< Raw ADC code
                              float vref              //!< Reference voltage
                             );

void LTM2893_config(uint8_t user_config);

#endif  //  LTM2893_H


Technical Support