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

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

3天内不再提示

如果FPGA上只有一个GPIO该如何进行模拟测量

analog_devices 来源:亚德诺半导体 作者:亚德诺半导体 2021-11-21 10:02 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Q:

如果系统中的FPGA/微处理器上只剩下一个GPIO,该如何进行模拟测量?

A:

可以使用电压-频率转换器代替模数转换器

在关注机器健康和其他物联网(IoT)解决方案的现代应用中,随着检测功能的日趋普及,对更简单的接口以及更少的I/O和更小的器件尺寸的需求也随之增长。连接到单个微处理器或FPGA的器件密度不断增加,而应用空间(以及由此导致的I/O引脚数量)却受到限制。在理想情况下,所有应用都需要一个ASIC来提供小巧的集成式解决方案。

但是,ASIC的开发既耗时又昂贵,并且不具备满足其他用途的灵活性。因此,越来越多的应用都在使用微处理器或尺寸小巧的FPGA,以便能够经济高效地按时完成产品开发。在本文中,我们将探讨一种温度-频率转换器,它只需要使用一个GPIO引脚即可提供准确的温度结果。本文还将演示如何将电压-频率转换器用于各种检测应用。

动机

某些传感器测量值(例如温度、湿度和气压)本质上是直流电,而且其变化速率并未快到(它们也不需要足够精确的分辨率)足以保证ADC的需求以及与之相关的设计考虑。大多数ADC要求快速准确的时钟生成和时序、稳定的基准电压、具有非常低输出阻抗的基准缓冲器以及模拟前端电路,以便对传感器输出进行适当的信号调理,然后才能对其进行数字量化并通过系统进行监控。在进行环境温度检测时,分立式应用可能会在惠斯通电桥中使用一个热敏电阻,然后由仪表放大器获得其输出,再馈入ADC。这种设计属于过度设计,需要超出应用所需的更多空间、功率和计算周期,而应用本身可能仅需要每15秒进行一次测量。

LTC6990

固定频率或电压控制型操作

- 固定:单个电阻器负责设置频率 (最大误差 《 1.5%)

- VCO:两个电阻器负责设定 VCO 中心频率和调谐范围

频率范围:488Hz 至 2MHz

2.25V 至 5.5V 单电源操作

72μA 电源电流 (在 100kHz)

500μs 启动时间

VCO 带宽 》 300kHz (在 1MHz)

CMOS 逻辑输出可供应 / 吸收 20mA

50% 占空比方波输出

输出使能 (当停用时可以选择低或高阻抗状态)

-55ºC 至 125ºC 工作温度范围

采用扁平 (高度仅 1mm) SOT-23 (ThinSOTTM) 封装和 2mm x 3mm DFN 封装

能否设计一种替代性测量解决方案,既能减少与ADC信号链相关的元件数量和复杂性,还能测量模拟电压?该解决方案就是采用一个电压-频率转换器(例如 LTC6990, 将其配置为电压控制振荡器(VCO)模式,这样就可以用来测量模拟电压,而无需ADC。在本示例中,将精密热电偶放大器 AD8494配置为环境温度传感器,其输出电压用作LTC6990的输入,从而生成一个温度-频率转换器的信号链。

2dee75c4-49d6-11ec-b939-dac502259ad0.png

图1. 简单的温度-频率转换器。

如何将温度输入转换为频率输出?

如今,许多现代电子设备都需要板载温度监控系统。将模拟信号转换为脉宽调制信号或数字信号的方法已有大量的文献记载。但是,如果测量解决方案需要一个ADC,则存在一些与成本、精度和速率相关的不利因素。通常,测量越精确,解决方案就越昂贵。该电路提供了一种低成本且易于连接的通用解决方案,其精度可以根据温度测量系统的需求而改变。

AD8494是一款热电偶精密放大器,但它也可以通过将其输入短路接地用作环境温度传感器。输出则定义为:

2e58db6c-49d6-11ec-b939-dac502259ad0.png

在使用单极性电源的电路中, –VS=地电压(0 V),同时还必须向AD8494的REF引脚施加一个失调电压,从而使输出电压偏置高于地电压,即使环境温度为负时也是如此。

温度传感器的输出电压 VOUT定义为:

2e7bda72-49d6-11ec-b939-dac502259ad0.png

在VCO模式下,LTC6990的频率输出定义为:

2eb47cec-49d6-11ec-b939-dac502259ad0.png

由于AD8494的输出电压是LTC6990的 VCTRL 因此可以用公式1来替换公式2中的 VCTRL 设定 RSET = R­VCO 则得到以下结果:

2ee8a364-49d6-11ec-b939-dac502259ad0.png

这样就可以解出 Tambient 消掉电压单位,于是得到公式5:

2f0e565e-49d6-11ec-b939-dac502259ad0.png

得到频率输出了,有什么用处呢?

频率输出的美妙之处在于可以使用单个GPIO引脚进行传感器测量。如果使用图3所示的同步计数器电路,那么在其CLK_IN输入端将始终会观察到时钟的上升沿。如果将LTC6990的 FOUT 用作输入时钟,则每次检测到 FOUT 的上升沿时,计数器都会递增,从而创建了一个周期计数器。如果每次测量之间的时间间隔保持恒定,则可以计数给定时间间隔内的周期数,并可通过浮点运算或查找表计算出频率。将采集时间 TAcquisition n除以计数所得的周期数,可以得出 FOUT的周期。对该关系式取倒数则得到公式6。

2f3f7838-49d6-11ec-b939-dac502259ad0.png

图2. 一个以LTC6990输出作为其时钟输入的4位同步计数器。

30bebc3c-49d6-11ec-b939-dac502259ad0.png

Verilog代码示例显示了一个通过使用FPGA上的单个GPIO输入来计数周期数的函数。采集周期越长,测量结果就越精确。在下述代码示例中,使用了一个16位计数器来提高分辨率。同时还假定在架构的更高层级执行采集时间测量控制逻辑。

30e15210-49d6-11ec-b939-dac502259ad0.png

图3. Verilog代码示例。

结论

在本应用中,我们讨论了一种新型的温度-频率转换器。它提供了一种精确测量温度的低成本方法。如果温度超过–40°C至+125°C的工业温度范围,则可在传感器的输入端安装一个热电偶。下图总结列出了测量系统的误差。它说明了环境温度与输出频率以及系统精度之间的线性关系。尽管此解决方案可能无法提供非常好的温度分辨率结果,但对于可接受大约±2°C误差的应用,它提供了一个经济简单的温度测量接口。此外,采用电压-频率转换器的概念也可用于测量其他类型的传感器输出,且无需使用ADC。

责任编辑:haq

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

    关注

    27

    文章

    9365

    浏览量

    155115
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73147
  • GPIO
    +关注

    关注

    16

    文章

    1313

    浏览量

    55727

原文标题:用一个GPIO数字接口也能测量温度?教你一个简单方法

文章出处:【微信号:analog_devices,微信公众号:analog_devices】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    有多少种方法可以进行频响曲线测量

    APx500软件提供了频响曲线的多种测量方法,对音频产品的频响特性进行测量分析。如果只用
    的头像 发表于 11-14 11:29 297次阅读
    有多少种方法可以<b class='flag-5'>进行</b>频响曲线<b class='flag-5'>测量</b>?

    将蜂鸟E203的内核移植到fpga之后怎么进行二次开发呢?

    你们好!请问下我将蜂鸟E203的内核移植到fpga之后怎么进行二次开发呢?比如我想点亮板子的led?驱动摄像头
    发表于 11-10 07:09

    如何利用Verilog HDL在FPGA实现SRAM的读写测试

    本篇将详细介绍如何利用Verilog HDL在FPGA实现SRAM的读写测试。SRAM是种非易失性存储器,具有高速读取和写入的特点。在FPGA中实现SRAM读写测试,包括设计SRA
    的头像 发表于 10-22 17:21 3955次阅读
    如何利用Verilog HDL在<b class='flag-5'>FPGA</b><b class='flag-5'>上</b>实现SRAM的读写测试

    【NCS随笔】如何进入system_off深度睡眠模式以及配置GPIO中断唤醒

    【NCS随笔】如何进入system_off深度睡眠模式以及配置GPIO中断唤醒 本文章主要是讲解NCS下面使用nRF54L15如何进入system_off模式,以及如何配置通过按键唤醒
    的头像 发表于 09-29 00:56 480次阅读
    【NCS随笔】如<b class='flag-5'>何进</b>入system_off深度睡眠模式以及配置<b class='flag-5'>GPIO</b>中断唤醒

    DLPLCRC410EVM是否提供触发信号接口用于后续的同步测量?是否也需要利用FPGA对触发信号进行编程?

    使用额外的DDR将要投影的图案预先加载 在软件则需要使用VHDL或其他硬件描述语言对APPSFPGA进行编程 不知道上述理解是否正确? 另外,我的问题在于: 1. EVM是否提供触
    发表于 02-19 07:04

    采用AFE0064和ADS8363加fpga结构,如何进行控制?

    采用AFE0064和ADS8363加fpga结构,详问如何进行控制?
    发表于 02-05 06:10

    ADS5401有模拟供电数字供电,但是地却只有,不分模拟和数字,这样的话应该怎么接?

    ADS5401有模拟供电和数字供电,但是地却只有,不分模拟和数字,这样的话应该怎么接?我们这个板子
    发表于 01-22 08:29

    ADS1247用来给电桥进行测量,关于输入端阻容的疑问求解

    如上图,ADS1247用来给电桥进行测量,电桥的输出端为Sensor2_OUT+和Sensor2_OUT-,ADS1247的输入端由R11/C14、R12/C16和C15等阻容组
    发表于 01-22 07:49

    何进行电磁波谱的实验测量

    进行电磁波谱的实验测量,通常需要借助专业的光谱仪器和遵循定的实验步骤。以下是基本的实验指南:
    的头像 发表于 01-20 17:32 1254次阅读

    如何配置GPIO引脚

    引脚是微控制器多功能接口,可以被配置为数字输入、数字输出、模拟输入/输出或特殊功能。在数字模式下,GPIO引脚可以是高电平(逻辑1)
    的头像 发表于 01-09 09:39 1866次阅读

    请问做反射式血氧饱和度测量时如何进行标定呢?

    请问做反射式血氧饱和度测量时如何进行标定呢? 目前已完成透射式血氧饱和度测量仪的设计和实现,采用的Fluke的生命体征模拟仪Prosim8进行
    发表于 01-08 06:42

    如果FPGA采集AD1672,如何保障FPGA时钟同1672时钟致?

    次用这种AD芯片,买了开发板,发现,开发板母板没有晶振。请教几个问题。 1。母板用的时钟是SCLK作为源时钟吗? 2、如果
    发表于 12-24 06:17

    使用GPIO模拟I2C的电路设计

    Questions:当使用GPIO模拟I2C时应如何进行电路设计?Answer: I2C协议中规定了总线上任意器件输出低电平都会将总线拉低,也就是总线上各器件是通过线“与”的方式来连接的。所以
    发表于 12-23 11:20

    请问AFE5801的输出是如何进行差分到单端的处理进FPGA的?

    1请问AFE5801的输出是如何进行差分到单端的处理进FPGA的?我用的FPGA型号是CycloneIII跟设置pinplanner为LVDS_E_3R或者LVDS有关吗? 2再就是芯片
    发表于 12-23 08:31

    采用AFE0064和ADS8363加fpga结构,如何进行控制?

    方案目前采用AFE0064和ADS8363加fpga结构,详问如何进行控制? 目前是用块板有2的AFE0064芯片,分高能与低能。十几块板与1
    发表于 12-10 08:00