【单片机】使用AD7606+AD698芯片读取RVDT角位移

本文介绍了如何使用STM32单片机配合AD7606和AD698芯片对RVDT角位移进行高精度测量,通过AD698信号调节器改善测量稳定性和准确性,展示了实验过程中的硬件搭建、接口配置和实际效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  接上文,经过第一阶段的AD2S1210测量旋转变压器的角位移之后,现在用AD698来进一步的加强验证,目前网上有关于这方面的研究资料还是挺少的。
  AD698是美国ADI公司生产的单片式线性位移差分变压器信号调节系统。将AD698与RVDT/LVDT配合,能够高精确性、可重复性的将RVDT/LVDT的旋转/机械位移转换成单极性或双极性的直流电压,消除原边驱动的幅度漂移所导致的比例系数误差,改善测量的温度性能和稳定性。

0. 实验要求

  基于STM32单片机,使用AD7606+AD698芯片读取RVDT角位移及速度。
  RVDT:角位移传感器。由交流激励源驱动,产生一对交流电压,该电压根据磁芯的旋转位移进行相应变化。(这里用的是正余弦款,非差分款)
  RVDT广泛应用于铁路、航天航空、机械、建筑等领域,实现阀门开度、油门杆角度和精密位移的测量和反馈控制。
  硬件设施:STM32F103C8T6、TPS5430变压器、AD7606采样芯片、AD698信号调节器、CH340串口、TDS220示波器、RVDT及其他电容电阻元器件。

1. 硬件平台搭建

  AD7606采样芯片5V单电源供电,AD698芯片±15V供电。
  整体思路:AD698输出与RVDT角位移有关的直流电压,传给ADC采样芯片7606,随后通过串口发送到计算机显示电压值及对应的旋转角度。

2. 实验环境

3. AD7606采样芯片

产品特性

  • 高分辨率、双极性输入、同步采样、逐次逼近型模数转换器。
  • 8路同步采样,16位分辨率,SPI/DSP接口,双极性模拟输入范围:±10V或±5V,吞吐速率最高200kSPS。
  • 应用场景:电力线监控和保护系统、多相电机控制、仪表和控制系统、多轴定位系统、数据采集系统(DAS)。

根据芯片说明书要求,有几点需要注意:

转换时间

  这里采用16倍过采样,转换时间不得低于66us,转换完成后同时等待busy位再开始读取转换数据。

串行接口时序图

   方便起见,采用转换完成之后统一读取的方式,其中SPI通讯时序根据下图来编写。

串行接口时的说明

   CS接口保持低电平,SCK上升沿移出,下降沿移入,SCK空闲时高电平。
   所有模拟输入通道同步采样,串行接口读取,这里仅用一路DoutA线逐个输出数据,由于是16位分辨率,8个通道,所以完整的读取一次数据需要128个SCK周期。

其他的注意事项根据芯片数据手册看着弄就行了。

4. AD7606实验现象

   采用软件SPI读取时序,硬件和软件里都设置好之后,当输入电压范围是±10V时,AD7606通道悬空的默认输入电压是4V左右,这里通过串口发送8个通道值进行查看。

   可见,串口显示8个通道值均在4V左右,满足条件,说明功能良好,AD7606设置完成。

5. AD698信号调节器

产品特性

  • 通用LVDT/RVDT信号调节器,与LVDT/RVDT一起使用,将传感器的机械/位移位置转换为单极或双极直流电压,具有高度的准确性和可重复性。
  • 通过添加一些外部无源元件来设置激励频率和幅值,输出直流信号,可与四线制或半桥式LVDT/RVDT使用。
  • 技术指标:激励频率:20~20KHz、A/B范围:[0.1, 0.9]、输出电压:±11V,线性误差:0.05%。

根据芯片说明书要求,有几点需要注意:

外部元器件选型

  AD698是通过添加一些外部无源元件来设置激励频率和幅值。这里使用激励频率为3KHz,激励幅值3V,系统带宽250Hz。所以选择C1=12nF,C2=C3=C4=470nF,R1=10.3KΩ,R2=6.6KΩ。然后接线方式按照四线制方式接线,我这里是正余弦款,所以B接cos端,A接sin端,-BIN端和-AIN端短接到地。

Vout引脚输出电压公式

根据公式可得,旋转角度 α \alpha α A / B = sin ⁡ / cos ⁡ = tan ⁡ α = V o u t / ( I r e f ∗ R 2 ) ⇕ α = a r c tan ⁡ ( V o u t / ( I r e f ∗ R 2 ) ) \mathrm{A}/\mathrm{B}=\sin /\cos =\tan\mathrm{\alpha}=\mathrm{Vout}/\left( \mathrm{Iref}*\mathrm{R}2 \right) \\ \Updownarrow \\ \alpha =\mathrm{arc}\tan \left( \mathrm{Vout}/\left( \mathrm{Iref}*\mathrm{R}2 \right) \right) A/B=sin/cos=tanα=Vout/(IrefR2)α=arctan(Vout/(IrefR2))

6. AD7606+AD698实验现象

1. 示波器读激励频率

   我设置的激励频率是3KHz,示波器读出来是3.062KHz,在允许误差范围内。幅值约在3v左右,满足条件。

2. 读正余弦信号

   1正弦信号,2余弦信号,同时跟随旋转角度对应变化,满足条件。

3. 串口数据

  AD698的Vout接在AD7606的第一通道,由于直接输出16进制的直流电压信号不方便看,所以转化为输出旋转角度 α \alpha α 和对应的 A/B 的变量值。
  另外,由于 A / B = tan ⁡ α \mathrm{A}/\mathrm{B}=\tan \alpha A/B=tanα tan ⁡ α \tan \alpha tanα 的值有正有负,因此Vout电压值有正有负,正好满足AD7606双极性采样。
  此外,还有个问题,AD7606的输入电压范围是[-10, 10]V,由于我设置的R2电阻是6.6KΩ,根据公式计算,最大电压对应的最大旋转角度应该是72度,而实测最大角度只有64度,64度反推回去的R2电阻却是10KΩ,当我进一步减小R2阻值时,RVDT的最大旋转角度仍然只有64度。所以这里我认为,当前情况下的RVDT最大角度范围可能由于某种原因受限,所以RVDT的可用角度范围最大只能在[-64, 64]度。

  手动旋转一周测量值示意图:

RVDT在[-pi/2, pi/2]角度范围内可用角度为128°。
  串口现象如下所示:

  根据实测,角度范围在[-64°~64°]之间,且角度的变化精确跟随手动旋转变压器的变化,成功的输出了对应变化的直流信号,达到了本次实验的最终目的。

7. 总结

  本次实验采用AD7606采样电压值,通过集成芯片AD698实现RVDT传感器的测量,可根据传感器特性灵活设置RVDT传感器激励信号的频率和幅值,改变输出信号范围和偏置,实现了RVDT信号的精确测量,为后续RVDT信号的反馈控制应用提供支持。
  本次实验目的是为了测量得到旋转变压器的零位置,用来辅助标定旋转变压器平替设备的零位置,标定后就可以转而使用这个平替设备。
  旋转变压器的平替设备,也是输入激励信号,输出正余弦或差动信号,用来替代旋转变压器,且具备了自诊断和自标定作用,主要目的是作为自动试车用。目前的旋转变压器即油门杆是需要人工手动推拉,而平替设备只需在程序里面输入油门杆值即可,提高了自动化程度,节省人力操作。

03-08
### RVDT编程开发框架库工具教程文档下载 #### RVDT接口测试工装研究概述 RVDT(旋转变量差动变压器)是一种用于测量角度位置的传感器,在航空电子设备和其他工业控制系统中有广泛应用。针对RVDT的技术支持和开发资源,涵盖了多种方面,包括但不限于编程、开发框架、库文件以及相关工具。 #### 软件模块介绍 为了更好地理解和利用RVDT技术,开发者可以借助一系列专用软件工具来辅助工作: - **曲线数据生成工具** 此工具允许用户创建并管理用于模拟真实环境下的输入信号的数据集[^1]。通过图形界面操作,能够轻松调整参数配置,从而满足不同应用场景的需求。 - **测试数据记录与查看工具** 这一工具能够在实际运行过程中捕获所有必要的性能指标,并保存下来以便后续审查分析。它还具备强大的筛选机制,帮助工程师快速定位感兴趣的信息片段。 - **应用协议生成工具** 针对特定通信需求定制化的消息格式构建成为可能。该组件让用户自由定义报文结构内的各个组成部分及其属性特征,极大地提高了灵活性。 - **CRC插件诊断器与CRC插件生成器** 对于确保传输过程中的数据完整性至关重要的是循环冗余检验(CRC)算法的支持。这套组合型工具不仅简化了新校验码方案的研发流程,而且验证了现有实现的有效性和可靠性。 #### 获取更多资料的方法 对于希望深入了解RVDT编程及其实现细节的人士而言,建议访问官方技术支持网站或加入专业的在线社区论坛获取最新资讯和技术交流机会。此外,许多开源项目也提供了丰富的API文档和实例代码作为学习参考资料。 ```python import requests def fetch_rvdt_resources(): url = 'https://example.com/rvdt-resources' response = requests.get(url) if response.status_code == 200: resources = response.json() return resources['frameworks'], resources['libraries'], resources['tools'] else: raise Exception('Failed to retrieve RVDT resources') try: frameworks, libraries, tools = fetch_rvdt_resources() except Exception as e: print(e) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值