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

    文章

    8116

    浏览量

    141117
  • 代码
    +关注

    关注

    30

    文章

    4536

    浏览量

    66496
  • GPIO
    +关注

    关注

    16

    文章

    1124

    浏览量

    50414

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

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

收藏 人收藏

    评论

    相关推荐

    MCU重新电后,如何进行ECC初始化?

    如题,在重新电之后,需要读取ram地址,读取时进入异常,查阅资料后发现是由于重新电,需要进行ECC初始化,请问这何进行
    发表于 03-19 07:53

    ADE7913_1将CLKOUT输出到ADE7913_2的XTAL1,如何进行同步?

    我用2片ADE7913进行模拟量采集,ADE7913_1将CLKOUT输出到ADE7913_2的XTAL1,但关于如何进行同步,不知道怎么操作
    发表于 12-25 07:44

    AD5522四通道是不是可以同时进行测量并得到四组独立的模拟量?

    通道,使用AD5522本身自带的ADC,是否是回采电流?在软件显示? AD5522四通道是不是可以同时进行
    发表于 12-07 08:16

    变频电源纹波电压如何进行测量呢?

    变频电源纹波电压如何进行测量呢? 变频电源的纹波电压是指电源输出的交流电压中存在的波动成分。这种波动常常以正弦波的形式表现,并且频率与电源的工作频率相同。在某些应用中,纹波电压的大小对设备的正常运行
    的头像 发表于 11-16 14:27 550次阅读

    新apcups电源如何进行初充电

    电子发烧友网站提供《新apcups电源如何进行初充电.doc》资料免费下载
    发表于 11-15 09:55 0次下载
    新apcups电源如<b class='flag-5'>何进行</b>初充电

    放大器的内部噪音如何进行精确测量?它和哪些因素有关?

    放大器的内部噪音如何进行精确测量?它和哪些因素有关?在测试时需要注意那些问题? 放大器的内部噪音是指在放大器工作时,电子元件的随机热运动所产生的噪声。这些噪声会降低放大器的信号质量,并影响系统的性能
    的头像 发表于 11-09 09:42 318次阅读

    使用GPIO模拟I2C的电路设计

    当使用 GPIO 模拟 I2C 时应如何进行电路设计?
    发表于 10-23 08:22

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

    在本文中,我们将探讨一种温度-频率转换器,它只需要使用一个GPIO引脚即可提供准确的温度结果。本文还将演示如何将电压-频率转换器用于各种检测应用。
    的头像 发表于 10-21 16:05 1283次阅读
    <b class='flag-5'>如果</b><b class='flag-5'>FPGA</b>/微处理器上只剩下一个<b class='flag-5'>GPIO</b>,该如<b class='flag-5'>何进行</b><b class='flag-5'>模拟</b><b class='flag-5'>测量</b>?

    移植到FPGA只有JTAG接口,进行MCU调试是采用其他扩展引脚定位为MCU的JTAG调试?

    移植到FPGA只有JTAG接口。再进行MCU调试的话,是采用其他扩展引脚定位为MCU的J
    发表于 08-11 13:41

    求助,MCU重新电后如何进行ECC初始化?

    如题,在重新电之后,需要读取ram地址,读取时进入异常,查阅资料后发现是由于重新电,需要进行ECC初始化,请问这何进行
    发表于 08-07 10:05

    直线模组如何进行精度校准?

    直线模组如何进行精度校准?
    的头像 发表于 08-01 17:44 720次阅读
    直线模组如<b class='flag-5'>何进行</b>精度校准?

    如何在ESP01使用GPIO0和GPIO2?

    ),ESP 不断重启。 我知道:带引脚外露的 ESP8266 模块很便宜,但 ESP01 小得多,我碰巧挂了些。 如果我不尝试分配 GPIO2,我的(ntp 时钟)程序在 ESP01
    发表于 05-25 08:08

    我试图使用FPGA以及些其他辅助器件,测试芯片的功能。我如何选择FPGA型号及其余器件。

    我试图使用FPGA以及些其他辅助器件,给予待测芯片模拟电压(3.3V,30V,以及初始
    发表于 05-11 20:33

    FPGA系统设计中,如果用两FPGA工作,应该如何设计两片之间的通信?

    FPGA系统设计中,如果用两FPGA工作,应该如何设计两片之间的通信?从片的配置和时钟输入与主片有何不同?
    发表于 05-08 17:18

    MPC5774P的RAM (64k) 不足如何进行

    我们的 RAM (64k) 不足,现在当我将些操作系统任务堆栈移动到系统 Ram (384K) 时,它会影响系统的性能。请让我知道如何进行。为系统 Ram 启用数据缓存会有帮助吗?如果是这样,请告诉我
    发表于 04-20 09:27