LTC2508-32 - 具可配置数字滤波器的 32 位过采样 ADC

特点

  • ±0.5ppm INL (典型值)
  • 61sps 时的 145dB 动态范围 (典型值)
  • 4ksps 时的 131dB 动态范围 (典型值)
  • 保证 32 位,无漏失码
  • 具同步功能的可配置数字滤波器  
              放宽的抗混迭滤波器要求
  • 双输出 32 SAR ADC
             
    32 位数字滤波低噪声输出
              14 位差分 + 8 位共模 1Msps 无延迟输出
  • 宽输入共模范围
  • 保证工作至 85°C
  • 1.8V 至 5V SPI 兼容型串行 I/O
  • 低功率:24mW (在 1Msps)
  • 24 引脚 7mm x 4mm DFN 封装

典型应用

LTC2508-32 Typical Application
LTC2508-32 Typical Application

描述

LTC®2508-32 是一款低噪声、低功率、高性能 32 位 ADC,其具有一个集成的可配置数字滤波器。LTC2508-32 采用单个 2.5V 工作电源,具有一个高达 ±VREF 的全差分输入范围,且 VREF 的范围从 2.5V 至 5.1V。LTC2508-32 支持 0V 至 VREF 的宽共模范围,从而简化了模拟信号调理要求。

LTC2508-32 同时提供两个输出代码:(1) 一个 32 位数字滤波高精度低噪声代码;和 (2) 一个 22 位无延迟复合代码。可配置数字滤波器通过对来自 SAR ADC 内核的数据流实施低通滤波和降频采样以降低测量噪声,产生了 32 位滤波输出代码。22 位复合代码由一个代表差分电压的 14 位代码和一个代表共模电压的 8 位代码组成。22 位复合代码可在每个转换周期中提供,并没有延迟周期。

可通过引脚搭接方便地针对 4 种不同的降频转换因子配置数字滤波器。这些配置提供一个 131dB (在 3.9ksps) 和 145dB (在 61sps) 的动态范围。数字低通滤波器放宽了对于模拟抗混迭的要求。采用 SYNC 引脚可以很容易地实现多个 LTC2508-32 器件的同步。

封装

如需了解完整与最新的封装信息及图例,请查阅我们的封装网页

器件型号 封装 Code 温度 封装图 RoHS 数据
LTC2508CDKD-32#PBF 7x4 DFN-24 DKD C 05-08-1864 Yes
LTC2508CDKD-32#TRPBF 7x4 DFN-24 DKD C 05-08-1864 Yes
LTC2508IDKD-32#PBF 7x4 DFN-24 DKD I 05-08-1864 Yes
LTC2508IDKD-32#TRPBF 7x4 DFN-24 DKD I 05-08-1864 Yes


LTC2508-32 Package Drawing

订购信息

  • 以 PBF 结尾的器件型号表示这些是无铅型器件。如需了解有关含铅涂层器件的信息,请与凌力尔特公司联系。

  • 型号当中包含 TR 或 TRM 的器件分别采用卷带装500 片微型卷带装的形式进行装运。

  • 如需了解更多的细节,请查阅我们一般订购信息或产品数据手册。

各种封装型式和定价

器件型号 封装 温度 价格 (以 1 ~ 99 片为批量) 价格 (以 1000 片为批量) * RoHS 数据
LTC2508CDKD-32#PBF 7x4 DFN-24 C $12.79 $8.95 Yes
LTC2508CDKD-32#TRPBF 7x4 DFN-24 C $12.85 $9.01 Yes
LTC2508IDKD-32#PBF 7x4 DFN-24 I $14.71 $10.30 Yes
LTC2508IDKD-32#TRPBF 7x4 DFN-24 I $14.77 $10.36 Yes
购买要求提供样品

* 美国价目表所列之价格仅供预算之用,单位为美元 (针对规定批量的美国 FOB 单价),随时可能变更。国际销售价格有可能因为地方税额、费用和汇率而有所不同。如需了解特定批量的价格或货运报价,请您与凌力尔特当地的销售办事处或授权分销商联系

演示电路板

凌力尔特的演示电路板可免费提供给合资格的客户,请您与当地的销售办事处或分销商联系,申请获取演示电路板。另外,某些演示电路板也可通过信用卡在此网站上购买。演示电路板仅供评估之用。器件在实际终端应用中的正确与可靠运作的验证仍然是客户的责任。

器件型号 描述 价格 Documentation
DC2222A-B LTC2508-32 Demo Board | 32-Bit Over-Sampling ADC with Configurable Digital Filter (req DC590, DC2026 or DC890) $200.00
购买

Companion Boards

器件型号 描述 价格 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
购买
点击这里查看我们的演示板完整列表

应用

  • 地震学
  • 能源勘探
  • 自动化测试设备 (ATE)
  • 高准确度仪表

产品通知

请登录您的 MyLinear 帐户,以获得数据表更新通知、新文档发布、以及针对您喜爱产品的 LTspice 模型通告。 如果您还没有 MyLinear 帐户,可以立即 注册

忘记密码吗? 请单击这里
需要帮助吗? 如果有任何问题或意见,请发送电子邮件至 mylinear@linear.com

设计工具

Linduino

Linduino 是一款可兼容 Arduino 的平台,其用于开发和分配用于 SPI 和 I2C 兼容型集成电路的固件库和代码。Linduino One 电路板可连接 300 多款 QuikEval 演示板卡并支持多种产品类型,包括模数转换器 (ADC)数模转换器 (DAC)功率监视器等等。用于个别器件的固件库采用 C 语言编写并专为可移植到众多的处理器和微控制器而设计。每个固件库具有一种演示程序,此演示程序可上载至 Linduino One 平台以简便快捷地完成电路和软件的验证。

点击这里以了解 Linduino 的更多相关信息

 

代码

Linduino 是凌力尔特的 Arduino 兼容型系统,适用于开发和分发针对凌力尔特集成电路的固件库和代码范例。下面的代码程序可以下载或者“拷贝并粘贴”到您的设计方案之中。请访问 Linduino 主页以获取演示板、手册和设置信息。

该器件得到了代码支持: 提供了可用于该器件的代码示例。下面的代码有可能依存于完整库中提供的其他驱动程序。

Download LTC2508 - Linduino CPP File

/*!
LTC2508: 32-Bit Over-Sampling ADC with Configurable Digital Filter.

@verbatim

The LTC2508-32 is a low noise, low power, high performance 32-bit ADC
with an integrated configurable digital filter. Operating from a single
2.5V supply, the LTC2508-32 features a fully differential input range
up to ±VREF, with VREF ranging from 2.5V to 5.1V. The LTC2508-32 supports
a wide common mode range from 0V to VREF simplifying analog signal
conditioning requirements.

@endverbatim

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

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

REVISION HISTORY
$Revision: 7189 $
$Date: 2017-07-10 14:53:29 -0700 (Mon, 10 Jul 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 LTC2508 LTC2508 : 32-Bit Over-Sampling ADC with Configurable Digital Filter.

//! @}

/*! @file
    @ingroup LTC2508
    Library for LTC2508 32-Bit Over-Sampling ADC with Configurable Digital Filter.
*/

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

// Calculates the output voltage from the given digital code and reference voltage
float LTC2508_code_to_voltage(int32_t code, float vref)
{
  float voltage;
  voltage = (float)code / 2147483648 * vref;
  return voltage;
}

// Send n num of pulses on pin given
void send_pulses(uint8_t pin, uint16_t num_of_pulses)
{
  uint16_t i;
  output_high(pin);

  for (i = 0; i < num_of_pulses; ++i)
  {
    output_low(pin);                      // Pull CS low
    output_high(pin);                     // Pull CS high
  }
  output_low(pin);                        // Leave CS low
}

// Reads 5 bytes of data on SPI - D31:D0 + W7:W0
uint32_t LTC2508_read_data(uint8_t QUIKEVAL_CS, uint16_t *DF)
{
  uint8_t rx[5];
  uint8_t tx[5] = {0,0,0,0,0};
  uint32_t code = 0;


  spi_transfer_block(QUIKEVAL_CS, tx, rx, 5);       // Read 5 bytes on SPI port

  code = rx[4];
  code = (code << 8) | rx[3];
  code = (code << 8) | rx[2];
  code = (code << 8) | rx[1];

  switch (rx[0])
  {
    case 0x85:
      *DF = 256;
      break;
    case 0xA5:
      *DF = 1024;
      break;
    case 0xC5:
      *DF = 4096;
      break;
    case 0xE5:
      *DF = 16384;
      break;
    default:
      *DF = 0;
  }
  return code;
}

Download LTC2508 - Linduino DC2222AB.ino File

/*!
Linear Technology DC2222AB Demonstration Board.
LTC2508: 32-Bit Over-Sampling ADC with Configurable Digital Filter

@verbatim

NOTES

   Set the terminal baud rate to 115200 and select the newline terminator.
   Provide an external voltage supply of +/-9V or 10 V.
   QUIKEVAL_GPIO is connected to the SYNC pin.
   16 bits of configuration data: 1 0 0 0   0 0 0 0   0 SEL0 SEL1 0   0 0 0 0

   Steps involved:
   1. Set I2C mode on QuikEval connector.
   2. Send configuration data through sneaker port to set DF.
   3. Send a SYNC pulse.
   4. Set SPI mode on QuikEval connector.
   5. Send DF number of MCLK pulses.
   6. Read data out through SPI.

  Explanation of Commands:

   Option 1: Read 40 bits of data and calculate input analog voltage.
   Option 2: Set the DF value for filter.
   Option 3: Set the reference voltage.

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

@endverbatim

http://www.linear.com/product/LTC2508-32

http://www.linear.com/product/LTC2508-32#demoboards

REVISION HISTORY
$Revision: 7191 $
$Date: 2017-07-10 15:21:37 -0700 (Mon, 10 Jul 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 LTC2508
*/


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

float VREF = 5.0;
uint16_t global_config_data = CONFIG_DF_1024;
uint16_t num_of_mclk_pulses = 1024;

// Function Declarations
void sneaker_port_init();
void initialise_i2c_data(uint16_t value, uint8_t i2c_data[48]);
int8_t i2c_write_block_data_no_command(uint8_t address, uint8_t length, uint8_t *values);
uint16_t decode_DF_value(uint8_t byte0);
float code_to_voltage(uint8_t rx[5]);

// Setup function
void setup()
{
  Serial.begin(115200);         // Initialize the serial port to the PC
  print_title();

  sneaker_port_init();          // Send configuration data through sneaker port and a SYNC pulse

  print_prompt();
}


// Loop function
void loop()
{
  uint8_t user_command;
  if (Serial.available())               // Check for user input
  {
    user_command = read_int();                     //! Reads the user command
    if (user_command != 'm')
      Serial.println(user_command);
    switch (user_command)                               //! Prints the appropriate submenu
    {
      case 1:
        menu_1_read_voltage();          // Print single-ended voltage menu
        break;
      case 2:
        menu_2_change_DF();            // Differential voltage menu
        break;
      case 3:
        menu_3_set_VREF();           // Sequencing menu
        break;
      default:
        Serial.println("Incorrect Option");
        break;
    }
    print_prompt();
  }
}

//! Displays the ADC output and calculated voltage
void menu_1_read_voltage()
{
  uint16_t DF;
  float voltage;
  uint32_t code = 0;

  send_pulses(MCLK_pin, num_of_mclk_pulses);        // Send MCLK pulses
  code = LTC2508_read_data(QUIKEVAL_CS, &DF);
  voltage = LTC2508_code_to_voltage(code, VREF);

  Serial.print(F("\n  Data          : 0x"));
  Serial.println(code, HEX);
  Serial.print(F("  DF            : "));
  Serial.println(DF);
  Serial.print(F("  Input Voltage : "));
  Serial.print(voltage, 9);
  Serial.println(F(" V"));

}

//! Function to change the DF value for filter
void menu_2_change_DF()
{
  uint8_t user_command;
  Serial.print(F("\n  Enter the new DF option (1-256, 2-1024, 3-4096, 4-16384) : "));
  user_command = read_int();                     //! Reads the user command
  Serial.println(user_command);
  switch (user_command)                               //! Prints the appropriate submenu
  {
    case 1:
      global_config_data = CONFIG_DF_256;
      num_of_mclk_pulses = 256;
      break;
    case 2:
      global_config_data = CONFIG_DF_1024;
      num_of_mclk_pulses = 1024;
      break;
    case 3:
      global_config_data = CONFIG_DF_4096;
      num_of_mclk_pulses = 4096;
      break;
    case 4:
      global_config_data = CONFIG_DF_16384;
      num_of_mclk_pulses = 16384;
      break;
    default:
      Serial.println("Incorrect Option");
      break;
  }

  sneaker_port_init();
}

//! Function to change the voltage reference
void menu_3_set_VREF()
{
  Serial.println(F("\n  Remove the R37 resistor and probe in the new reference voltage at VREF"));
  Serial.print(F("\n  Enter the new reference voltage : "));
  VREF = read_float();
  Serial.print(VREF);
  Serial.println(F(" V"));
}


//! Send configuration data through sneaker port
// Send I2C data to sneaker port to bit bang WRIN_I2C(CS) at P2,
// SCK at P5 and SDI at P6.
//! Send a SYNC pulse after configuration.
void sneaker_port_init()
{
  uint8_t i;
  uint16_t config_value = global_config_data;
  uint8_t i2c_data[48];                 // 48 bytes of data: 3 bytes each for 16 bits

  quikeval_I2C_init();                      // I2C Mode at 100kHz
  quikeval_I2C_connect();                   // Connect I2C to main data port
  initialise_i2c_data(config_value, i2c_data);      // Populate i2c_data array with values to bit bang P3, P5, P6

  i2c_write_byte(SNEAKER_PORT_ADDRESS, CS_LOW);     // P3 = 0 pulls WRIN_CS low

  for (i = 0; i < 48; ++i)
  {
    i2c_write_byte(SNEAKER_PORT_ADDRESS, i2c_data[i]);  // Sending configuration data
  }
  i2c_write_byte(SNEAKER_PORT_ADDRESS, CS_HIGH);    // P3 = 1 pulls WRIN_CS high

  // Send a SYNC pulse and leave it low
  pinMode(QUIKEVAL_GPIO, OUTPUT);   // Make SYNC pin on output mode
  digitalWrite(QUIKEVAL_GPIO, LOW);   // SYNC is connected to GPIO pin of the QuikEval connector
  digitalWrite(QUIKEVAL_GPIO, HIGH);
  digitalWrite(QUIKEVAL_GPIO, LOW);


  quikeval_SPI_init();          // SPI Mode for QuikEval connector
  quikeval_SPI_connect();
}

// Create the array of 3 bytes each for 16 bits sneaker port data
void initialise_i2c_data(uint16_t value, uint8_t i2c_data[48])
{
  uint8_t i;
  uint8_t set_bit;
  uint8_t *p = i2c_data;
  for (i = 0; i < 16; ++i)
  {
    set_bit = (value >> i) & 0x01;
    if (set_bit)
    {
      *p++ = 0x40;
      *p++ = 0x60;
      *p++ = 0x40;
    }
    else
    {
      *p++ = 0x00;
      *p++ = 0x20;
      *p++ = 0x00;
    }
  }

  /* Serial.println("\nI2C values to configure DF: ");
  for(i = 0; i<48; ++i)
  {
    if(i%3 == 0)
    Serial.print("\n");
    Serial.print("\t0x");
    Serial.print(i2c_data[i], HEX);
  }  */
  Serial.print("\n");
}


//! Prints the title block when program first starts.
void print_title()
{
  Serial.print(F("\n************************************************************************\n"));
  Serial.print(F("* DC2222AB Demonstration Program                                       *\n"));
  Serial.print(F("*                                                                      *\n"));
  Serial.print(F("* This program demonstrates how to configure LTC2508 to set DF value,  *\n"));
  Serial.print(F("* and to read out 32 bits of data and configuration information        *\n"));
  Serial.print(F("*                                                                      *\n"));
  Serial.print(F("* Setup:                                                               *\n"));
  Serial.print(F("* Set the baud rate to 115200 and select the newline terminator.       *\n"));
  Serial.print(F("* Power the board with +/- 9V or 10 V.                                 *\n"));
  Serial.print(F("*                                                                      *\n"));
  Serial.print(F("* NOTES:                                                               *\n"));
  Serial.print(F("* Please note that LTC2508 requires 10 samples to settle and hence,    *\n"));
  Serial.print(F("* the first few samples do not reflect the exact input voltage.        *\n"));
  Serial.print(F("*                                                                      *\n"));
  Serial.print(F("************************************************************************\n"));
}

//! Prints main menu.
void print_prompt()
{
  Serial.print(F("\nMain Menu:\n"));
  Serial.print(F("  1-Read Voltage input\n"));
  Serial.print(F("  2-Change DF\n"));
  Serial.print(F("  3-Set VREF\n"));
  Serial.print(F("\nEnter a command:"));
}

Download LTC2508 - Linduino Header File

/*!
LTC2508: 32-Bit Over-Sampling ADC with Configurable Digital Filter.

@verbatim

The LTC2508-32 is a low noise, low power, high performance 32-bit ADC
with an integrated configurable digital filter. Operating from a single
2.5V supply, the LTC2508-32 features a fully differential input range
up to ±VREF, with VREF ranging from 2.5V to 5.1V. The LTC2508-32 supports
a wide common mode range from 0V to VREF simplifying analog signal
conditioning requirements.

@endverbatim

http://www.linear.com/product/LTC2508-32

http://www.linear.com/product/LTC2508-32#demoboards

REVISION HISTORY
$Revision: 7189 $
$Date: 2017-07-10 14:53:29 -0700 (Mon, 10 Jul 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 LTC2508
    Header for LTC2508: 32-Bit Over-Sampling ADC with Configurable Digital Filter
*/

#ifndef LTC2508_H
#define LTC2508_H

#define SNEAKER_PORT_ADDRESS  0x20
#define MCLK_pin        QUIKEVAL_CS
#define CONFIG_DF_256     0x8000
#define CONFIG_DF_1024      0x8400
#define CONFIG_DF_4096      0x8200
#define CONFIG_DF_16384     0x8600

#define CS_LOW          0x00
#define CS_HIGH         0x08

//! Calculates the output voltage from the given digital code and reference voltage
float LTC2508_code_to_voltage(int32_t code, float vref);

//! Send n num of pulses on pin given
void send_pulses(uint8_t pin, uint16_t num_of_pulses);

//! Reads 5 bytes of data on SPI - D31:D0 + W7:W0
uint32_t LTC2508_read_data(uint8_t QUIKEVAL_CS, uint16_t *DF);

#endif

技术支持