当前位置: 首页 > news >正文

【单片机】使用AD2S1210旋变芯片读取转子位置和速度

历时十天的反复调试,终于跑通了。只能说第一次做这种小工程确实缺乏经验,跟书本上学的还是有些出入。做下记录,方便后面来查看。

0. 实验要求

  基于STM32单片机,使用AD2S1210旋变芯片读取电机转子位置和速度。
  硬件设施:STM32F108C8T6,TPS5430,AD2S1210,RS422转换,Kingst Logic Analyzer,示波器。

1. 硬件平台搭建

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

实验环境

2. AD2S1210注意事项

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

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

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

串行接口时的说明

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

串行接口时序图

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

3. keil编程

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

AD2S1210.c
main.c

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

4. 实验现象

1. 串口数据

   前十个是配置寄存器数据,后四个是位置和速度数据。
   经过测试,位置和速度数据正常,10位分辨率,忽略后6位。

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。

6. 后续

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

http://www.lryc.cn/news/288490.html

相关文章:

  • EasyExcel实现导出图片到excel
  • Cybellum—信息安全测试工具
  • 六、Kotlin 类型进阶
  • Chrome 浏览器插件 runtime 字段解析
  • 七分钟交友匿名聊天室源码
  • Aleo项目详细介绍-一个兼顾隐私和可编程性的隐私公链
  • qt学习:实战 http请求获取qq的吉凶
  • 【NodeJS JS】动态加载字体的各方式及注意事项;
  • 每次请求sessionid变化【SpringBoot+Vue】
  • 勤学苦练“prompts“,如沐春风“CodeArts Snap“
  • springboot(ssm线上医院挂号系统 在线挂号预约系统Java系统
  • 万界星空科技可视化数据大屏的作用
  • 5月22日比特币披萨日,今天你吃披萨了吗?
  • 内网穿透、远程桌面、VPN的理解
  • 如何发布自己的npm包,详细流程
  • 【书生·浦语大模型实战】“PDF阅读小助手”学习笔记
  • 用ChatGPT写申请文书写进常春藤联盟?
  • uni-app导航栏自定义“返回按钮”多种方法设置原生返回
  • 【kubernets】kubelet证书单独更新
  • 【STM32】STM32学习笔记-硬件SPI读写W25Q64(40)
  • 防御保护---安全策略
  • RustDesk私有化部署,自建远程桌面搭建教程
  • Flutter环境搭建【win10虚拟机】+夜神模拟器【主机】
  • 【数据结构和算法】种花问题
  • Vite+Electron快速构建一个VUE3桌面应用(一)
  • 第二百八十九回
  • Likeshop多商户商城源码系统,支持二开
  • Excel:将截面数据转换成面板数据
  • 209.长度最小的子数组(力扣LeetCode)
  • Docker容器部署OpenCV,打造高效可移植的计算机视觉开发环境