【单片机】使用AD2S1210旋变芯片读取RVDT角位移及速度

  最近在做单片机的子项目,经过近半个月的安装调试,第一阶段顺利完成了。只能说第一次做这种小工程确实缺乏经验,跟书本上学的还是有些出入。做下记录,方便后面来查看。

0. 实验要求

  基于STM32单片机,使用AD2S1210旋变芯片读取RVDT变压器电压。
  RVDT:旋转可变差分变压器(Rotary Variable Differential Transformer),角位移传感器,其原理与LVDT类似。由交流激励源驱动,输出一对与旋转角度成比例的电压信号。(这里用的是正余弦款,非差分款)
  RVDT具有无限分辨率、使用寿命长,精度高的特点,可实现360°转动测量,广泛应用于铁路、航天航空、机械、建筑等领域,实现阀门开度和精密位移的测量和反馈控制。
  硬件设施:STM32F103C8T6、TPS5430变压器、AD2S1210旋变转换器、RS422转换、Kingst Logic Analyzer逻辑分析仪、TDS220示波器、RVDT旋转变压器。

1. 硬件平台搭建

  AD2S1210旋变芯片5V供电,采用电平转换芯片28v转5v。串口传输用串口转422或者串口转USB均可。

实验环境

2. AD2S1210芯片

产品特性

  • AD2S1210是一款10位至16位分辨率旋变数字转换器,集成片上可编程正弦波振荡器,为旋变器提供正弦波激励。
  • 具备功能:绝对位置与速度输出,最大跟踪速率: 3125 rps(10位分辨率),系统故障检测,兼容DSP和SPI接口标准。
  • 应用场景:直流和交流伺服电机控制,编码器仿真,电动助力转向,电动汽车,集成的启动发电机/交流发电机,汽车运动检测与控制。

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

跟踪速率与分辨率关系
RESET复位

  初始时先低电平复位,随后恢复高电平。

串行接口时的说明

   CS接口保持低电平,数据上升沿移出,下降沿移入,SCK空闲时高电平。

串行接口时序图

   这种芯片的时序图比较奇怪,spi通信开始时,先SCK低电平再WR低电平,结束时,先WR高电平再SCK高电平,感觉是SPI模式2的变形,跟常规的时序图不太一样,还有就是读写数据要分开通信,如果是同时交换数据那种结果就不对(在这调试了很久)

激励频率输出与正余弦信号输入

  对应前面的,AD2S1210输出交流激励源驱动RVDT,RVDT的一对交流信号作为AD2S1210的输入。

3. keil编程

   采用软件SPI通讯,读写数据分开。

AD2S1210.c
main.c

   先配置寄存器,然后读一遍出来看写进去没有,最后读位置和速度寄存器。

4. 实验现象

1. 串口数据

   AD2S1210可以直接读取RVDT的旋转位置及速度,这里设置成:前十个是配置寄存器信息,第十一个是故障信息,最后四个是位置和速度数据。速度最高位为方向,0正转,1反转。
   经过测试,位置和速度数据正常,10位分辨率,忽略后6位。

   顺便说一下,故障信息显示的是0x10,对应错误是正弦/余弦输入超过DOS失配阈值,这我查了一下网站,据说是“造成这种故障一般是SIN/COS信号存在干扰,可以调整下滤波器参数或者提高系统抗干扰能力”。所以看来是外部干扰影响的,这种故障信息不会影响位置和速度读取,无伤大雅。

2. 示波器读激励频率

   我设置的激励频率是15KHz,但是示波器读出频率18.35KHz,感觉很疑惑,因为根据我设置的参数反推回去芯片CLK频率应该是9.830MHz,这跟芯片的8.192MHz有点出入,然后我又仔细看了一遍说明书,芯片时钟频率是在8.192±25%的范围之内,所以激励频率有出入是正常的。

3. 逻辑分析仪读时序

   根据时序仪显示,时序图和芯片说明书的时序图一致,满足要求,所以读写数据是正确的。

5. 总结

  • 配置好寄存器之后,读一遍配置寄存器数据即可,不能重复读配置寄存器数据,重复读会数据不一致
  • SPI读写分开,先写再读
  • 芯片说明书要认真阅读,尤其是时序图,还有就是注意上升沿和下降沿的时间延时。
  • 延时纳秒 delay(0x01): 500ns,delay(0x0f): 2.84us,delay(0xff): 10.84us,>>=1: 100ns。

6. 后续

   用AD698芯片读转子位置和速度,加强验证。

  更新 ⇒ \Rightarrow 【单片机】使用AD7606+AD698芯片读取RVDT角位移。

  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值