0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Linduino从LTC2508-32实现高速数据采集

星星科技指导员 来源:ADI 作者:Malavika Sajikumar 2023-01-04 11:31 次阅读

LTC®2508-32 是一款具有集成式可配置数字平均滤波器的快速、32 位 SAR ADC。演示板DC2222A-B具有与DC890以及Linduino通信连接器。演示手册介绍了如何将主板连接到 DC890 并运行 PScope。它还解释了如何使用Linduino(或DC590B板)运行QuikEval并以非常慢的数据速率读取数据。

本博客旨在展示如何使用 Linduino 从 LTC2508-32 实现高速数据采集。Linduino上的QuikEval连接器没有足够的GPIO线来控制滤波器的下采样因子(DF)选择引脚(SEL1,SEL0)。因此,板载 FPGA 在收到初始配置数据后控制 SEL 线路。I/O 扩展器(我们的工程师称之为“运动鞋端口”)用于通过 SPI 将配置信息发送到板载 FPGA,进而设置 SEL 线路。如果这令人困惑,请继续阅读,它将开始有意义。

Linduino 的速度不够快,无法以全采样速度从 LTC2508 捕获数据。但是,使用高度优化的代码,避免使用中断超时并将SPI时钟调整到4 MHz,可以实现合理的采样速度。这在本博客的最后一部分进行了解释。

零件的详细信息

LTC2508-32 具有两个数字串行接口,一个用于滤波输出数据,另一个用于无延迟输出数据。Linduino上的QuikEval连接器连接到滤波输出串行接口(SDOA)。

poYBAGO08xmAV-N7AABS9xL-4BA307.jpg?la=en&h=300&imgver=1

图1.LTC2508 框图

滤波后的输出仅在 SYNC 脉冲后每转换一次 DF 次数更新一次。MCLK引脚上的每个上升沿都会启动一个新的转换。因此,滤波后的输出在 MCLK 脉冲的 DF 数之后在 I/O 寄存器中可用。请参考下面的流程图,或在 LTC2508-32 产品手册中阅读更多相关信息。数字滤波器可通过引脚绑定 SEL0 和 SEL1 轻松配置为四种不同的下采样因子。

poYBAGO08yCAdy6pAABAtExQgsk845.jpg?la=en&h=300&imgver=1

演示板的详细信息

本节旨在解释板载 FPGA 如何根据发送给它的配置数据设置 SEL 引脚。FPGA 等待通过 SPI 发送的 16 位序列配置数据。要发送到FPGA的16位配置数据是:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 0 0 0 0 SEL0 SEL1 0 0 0 0 0 0 0 0 0

位 15:选择串行接口。1 = SDOA,0 = SDOB
位 10:SEL0
位 9:SEL1

其余位由 LTC25XX 系列中的其他器件使用。

SEL1 SEL0 东风
0 0 256
0 1 1024
1 0 4096
1 1 16384

FPGA的SPI线连接到运动鞋端口(CS_IN、SDI_IN和SCK_IN)的P5、P6和P7,如下图所示。这些引脚被位撞击以创建到FPGA的SPI端口。运动鞋端口的P0-P7的位敲击是通过传输I完成的2C 数据从 Linduino 到 Sneaker Port,这将在下面的部分中解释。

poYBAGO08yGAUIO3AABTPE4fk2o212.jpg?la=en&h=300&imgver=1

图3.整个系统的接线图

与“运动鞋港口”的通信

pYYBAGO08yKAKJdbAABKA3Z5FkY269.jpg?la=en&h=300&imgver=1

运动鞋端口输出引脚的位敲击是通过发送 I 来完成的2C 数据。要说我2C 到运动鞋端口,第一个字节是 I2芯片的C地址,第二个字节是P0-P7的数据。FPGA 的 SPI 引脚为 CS = P7、SDI = P6 和 SCK = P5。每个 P0-P7 引脚的状态转换为唯一的 I2C 字节。

SPI 状态 小七 小六 小五 小四 小三 小二 小一 P0 我2C 字节
CS 低、SDI 低、SCK 低 0 0 0 0 0 0 0 0 0
CS 低、SDI 低、SCK 高 0 0 1 0 0 0 0 0 0×20
CS 低、SDI 高、SCK 低 0 1 0 0 0 0 0 0 0×40
CS 低、SDI 高、SCK 高 0 1 1 0 0 0 0 0 0×60

注意:

为了在SDI线上传输0,我们需要将数据线保持低电平,并使SCK线变为低电平、高电平和低电平。这是通过传输 0×00、0×20 和 0×00 来实现的。

注意:

为了在SDI线上传输1,我们需要将数据线保持高电平,并使SCK线变为低电平、高电平和低电平。这是通过传输 0×40、0×60 和 0×40 来实现的。

注意:

如果用户想使用自己的电路板连接到DC2222A,则需要将QuikEval连接器的引脚2驱动到VCCIO,以便DC2222A的FPGA知道已连接控制器并侦听其命令。

林杜伊诺代码:

LTC2508 与 SPI 通信,这些信号通过 QuikEval 连接器单独访问,以从器件中读取数据。你可以在这里找到林杜伊诺代码。
Linduino代码可以分为三个独立的部分:

a) 功能:无效sneaker_port_init()

该函数将配置数据写入FPGA,然后发送SYNC脉冲。

P3 = 0 拉WRIN_CS低

i2c_write_byte(SNEAKER_PORT_ADDRESS、CS_LOW);

for(i = 0; i < 48; ++i)

{

发送配置数据

i2c_write_byte(SNEAKER_PORT_ADDRESS,i2c_data[i]);

}

P3 = 1 拉高WRIN_CS

i2c_write_byte(SNEAKER_PORT_ADDRESS、CS_HIGH);

b) 功能:空隙send_pulses(uint8_t引脚,uint16_t num_of_pulses)
此功能将 DF 个脉冲发送到连接到 LTC2508 MCLK 的 CS 引脚。

c) 功能:uint32_t LTC2508_read_data(uint8_t QUIKEVAL_CS、uint16_t *DF)
使用 QuikEval 连接器上的连接通过常规 SPI 从 LTC2508-32 读取数据。

优化项目

如前所述,Linduino的速度不够快,无法从LTC2508进行高速数据采集。但是,通过以下步骤,我们可以有一个合理的读出数据的速度。这个修改后的Linduino代码可以在以下位置找到:

LTSketchbook部件号200025002508DC2222_interrupt_driven_read

MCLK 由外部时钟源驱动,以避免切换 CS 引脚时出现延迟。

DRDY 已连接到 INT1。当数据就绪(DRDY)引脚变为低电平时,即当数据在转换后准备就绪时,将触发中断;此时,它被宣读出来。

在 Linduino 代码中,数据在中断服务例程中连续捕获,并作为十六进制值打印到串行控制台。以后可以将数据转换为电压。

连续打印的数据使用TeraTerm记录到文件中。以下各节将介绍设置 Tera 术语。

数据被读出,转换为电压并使用Python脚本绘制。

poYBAGO08ySAJNmJAADIFgPjn1s119.jpg?la=en&h=300&imgver=1

图5.LTC2508 DRDY# 连接至 INT1 (数字引脚 3)

图6是示波器照片,显示了DRDY引脚上脉冲后SDOA线路上的数据。DRDY引脚在MCLK上的DF脉冲数之后触发。

pYYBAGO08yaAczwAAAD1R5RfdeI065.jpg?la=en&h=300&imgver=1

图6.示波器照片显示DRDY脉冲后SDOA的数据。

当MCLK为100 kHz且DF = 256时,可实现的数据速率为390.635 Hz,如下面的示波器所示。

poYBAGO08yeANDjBAADxrWe3Sww760.jpg?la=en&h=300&imgver=1

图7.连续的DRDY脉冲和数据跟随SDOA线路。

如何设置TeraTerm:

使用此链接安装 Tera 术语。

打开 Tera 术语。

如果“新建连接”选项卡尚未打开,请转到“文件 à 新连接”。

pYYBAGO08ymAblexAABWzg-fPFw500.jpg?la=en&h=300&imgver=1

图8.在 Tera Term 上设置新连接。

确保Linduino USB已插入。

选择串行连接和正确的串行端口。

poYBAGO08yqALm4MAABVXpuTsW0692.jpg?la=en&h=300&imgver=1

图9.设置串行COM端口。

去 设置 à 串行端口.

pYYBAGO08yuATpuSAABTzy6tHsQ195.jpg?la=en&h=300&imgver=1

图 10.打开串行端口。

设置波特率。

ltc2508-img11.jpg?la=en&h=300&imgver=1

图 11.设置 COM 端口的参数

将数据记录设置为文件 à 选择正确的文件。

poYBAGO08zeAX5elAABNTZlBlIo574.jpg?la=en&h=300&imgver=1

图 12.将数据记录设置为文件。

保持 Tera Term 打开以查看其他驱动程序写出的数据。

数据记录文件现在应包含零件捕获的所有数据。

现在数据已记录到 data.txt 中,请确保文件开头没有不完整或垃圾数据。这可能是由于在读取过程中开始的数据记录。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 滤波器
    +关注

    关注

    158

    文章

    7331

    浏览量

    174779
  • 连接器
    +关注

    关注

    96

    文章

    12632

    浏览量

    133127
  • adc
    adc
    +关注

    关注

    95

    文章

    5651

    浏览量

    539460
收藏 人收藏

    评论

    相关推荐

    【Aworks申请】高速数据采集系统

    申请理由:本开发板为ARM系类,能移植Linux系统,可以实现快速高效的系统,并且能实现数据云共享。对于高速数据采集系统,开发板的资源可以适
    发表于 07-17 14:43

    实现高速数据采集有哪些方法?

    数据采集在现代工业生产及科学研究中的重要地位日益突出,对实时高速数据采集的要求也不断提高。在信号测量、图像处理、音频信号处理等一些高速、高精度的测量中,都要求进行
    发表于 07-31 07:25

    12位数据采集组件LTC1290

    LTC1290单片12位数据采集系统的典型应用。 LTC1290是一个数据采集组件,包含一个串行I / O逐次逼近型A / D转换器
    发表于 04-01 09:40

    如何利用FPGA实现高速连续数据采集系统设计?

    高速连续数据采集系统的背景及功能是什么?如何利用FPGA实现高速连续数据采集系统设计?FPGA在高速
    发表于 04-08 06:19

    怎么实现基于USB2.0的高速同步数据采集系统的设计?

    怎么实现基于USB2.0的高速同步数据采集系统的设计?
    发表于 05-21 06:47

    基于PCI总线的高速数据采集卡系统设计与实现

    基于PCI总线的高速数据采集卡系统设计与实现:本文介绍一种基于PCI总线的高速数据采集卡系统的设计方法,讨论了设计
    发表于 06-22 19:04 44次下载

    基于CPLD和嵌入式系统的高速数据采集系统的设计与实现

    基于CPLD和嵌入式系统的高速数据采集系统的设计与实现 介绍一种基于CPLD和嵌入式系统的高速数据采集系统,并详细阐述了系统的结构和软硬件
    发表于 10-15 23:46 631次阅读
    基于CPLD和嵌入式系统的<b class='flag-5'>高速</b><b class='flag-5'>数据采集</b>系统的设计与<b class='flag-5'>实现</b>

    高速大容量数据采集系统设计与实现

    高速大容量数据采集系统设计与实现,下来看看
    发表于 05-10 11:24 14次下载

    LTC2508 - Linduino DC2222AB.ino File

    LTC2508 - Linduino DC2222AB.ino File
    发表于 02-19 08:07 0次下载
    <b class='flag-5'>LTC2508</b> - <b class='flag-5'>Linduino</b> DC2222AB.ino File

    LTC2508 - Linduino CPP File

    LTC2508 - Linduino CPP File
    发表于 02-19 08:09 26次下载
    <b class='flag-5'>LTC2508</b> - <b class='flag-5'>Linduino</b> CPP File

    LTC2508-32 Filter Coefficients

    LTC2508-32 Filter Coefficients
    发表于 03-11 08:08 4次下载
    <b class='flag-5'>LTC2508-32</b> Filter Coefficients

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

    LTC2508-32: 具可配置数字滤波器的 32 位过采样 ADC 数据手册
    发表于 03-21 07:20 15次下载
    <b class='flag-5'>LTC2508-32</b>: 具可配置数字滤波器的 32 位过采样 ADC <b class='flag-5'>数据</b>手册

    DC22A-B LTC2508-32演示板|集成可配置数字滤波器的32位过采样ADC(需要DC590、DC2026或DC890)

    演示电路2222A内置LTC2508-32LTC2512-24 ADC。LTC2508-32LTC2512-24均为集成可配置数字均值滤波器的低功耗、低噪声、
    发表于 05-30 20:24 13次下载
    DC22A-B <b class='flag-5'>LTC2508-32</b>演示板|集成可配置数字滤波器的32位过采样ADC(需要DC590、DC2026或DC890)

    DC2222A-A LTC2500-32/LTC2508-32/LTC2512-24:集成可配置数字滤波器的32位/24位过采样ADC

    、低噪声、高速32位/24位SAR ADC,采用2.5V单电源供电。下文针对LTC2508-32,但适用于所有器件,唯一区别在于采样速率和位数。DC2222A演示了LTC2508-32配合使用DC590
    发表于 05-30 21:06 9次下载
    DC2222A-A <b class='flag-5'>LTC</b>2500-32/<b class='flag-5'>LTC2508-32</b>/<b class='flag-5'>LTC</b>2512-24:集成可配置数字滤波器的32位/24位过采样ADC

    LTC2508-32过滤系数

    LTC2508-32过滤系数
    发表于 05-31 20:10 1次下载
    <b class='flag-5'>LTC2508-32</b>过滤系数