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

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

0. 实验要求

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

1. 硬件平台搭建

  旋变芯片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的变形,跟常规的时序图不太一样,还有就是读写数据要分开通信,如果是同时交换数据那种结果就不对(在这调试了很久)

3. keil编程

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

AD2S1210.c
main.c

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

4. 实验现象

1. 串口数据

   前十个是配置寄存器信息,第十一个是故障信息,最后四个是位置和速度数据。速度最高位为方向,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芯片读转子位置和速度,加强验证。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/360493.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

布局管理和样式表

目录 手动操作 相关功能解释: Qt Designer或者QC中的Spacer控件及其属性 网格布局 代码操作 setFocusPolicy() 如果不进行布局,意味着界面上的东西都是写死的。 当我们进行布局操作之后,控件的位置、大小一般会根据窗口缩放来自动调整。…

视频怎么去掉人声保留背景声?这4个简单方法你一定要知道

视频怎么去掉人声保留背景声?在日常生活中,我们经常会遇到需要将视频中的声音去除,尤其是要去掉人声而保留背景声音。这不仅在处理个人视频时非常有用,对于许多专业的视频编辑工作来说也是必不可少的。本文将为你介绍4个简单的方法…

RabbitMQ入门概念

目录 一、RabbitMQ入门 1.1 rabbitmq是啥? 1.2 应用场景 1.3 AMQP协议与RabbitMQ工作流程 1.4 Docker安装部署RabbitMQ 二、SpringBoot连接MQ配置 2.1 示例1 2.1 示例2 —— 发送实体 一、RabbitMQ入门 1.1 rabbitmq是啥? MQ(Message…

solidworks 焊接型材库

型材库中有大部分型材 H型钢有49种 八角钢有40种 扁钢有60种 不等边钢有84种 槽钢有41种 也可以按照自己需要的去添加 下载地址https://download.csdn.net/download/jintaihu/19347986

opencv——将2张图片合并

效果演示: 带有绿幕的图片的狮子提取出来,放到另一种风景图片里! 1. 首先我们要先口出绿色绿幕,比如: 这里将绿色绿色绿幕先转为HSV,通过修改颜色的明暗度,抠出狮子的轮廓。 代码 : import cv2 as cv import numpy as np import matplotlib.pyplot as plt def showI…

3671系列矢量网络分析仪

01 3671系列矢量网络分析仪 产品综述: 3671系列矢量网络分析仪产品包括3671C(100kHz~14GHz)、3671D(100kHz~20GHz)、3671E(100kHz~26.5GHz)、3671G&#x…

幻兽帕鲁服务器多少钱?幻兽帕鲁服务器价格,2月最新

2024年幻兽帕鲁服务器价格表更新,阿里云、腾讯云和华为云Palworld服务器报价大全,4核16G幻兽帕鲁专用服务器阿里云26元、腾讯云32元、华为云26元,阿腾云atengyun.com分享幻兽帕鲁服务器优惠价格表,多配置报价: 幻兽帕鲁…

(HAL)STM32F407ZGT6——10-4 高级定时器 PWM 输入模式实验

一、高级定时器简介 高级定时器的框图和通用定时器框图很类似,只是添加了其它的一些功能,如:重复计数器、带死区控制的互补输出通道、断路输入等。 高级定时器的时钟来自APB2, 而PCLK2 168Mhz, 我们设置PPRE2不分频, 因此高级定时器时钟 …

RTC实时时钟之读取时间

1. RTC 基本介绍 RTC(Real Time Clock) 即实时时钟,它是一个可以为系统提供精确的时间基准的元器件,RTC一般采用精度较高的晶振作为时钟源,有些RTC为了在主电源掉电时还可以工作,需要外加电池供电 2. RTC 控制器 2.1 RTC的特点是:…

NC248:左叶子之和(C++)

1.题目描述 2.题目分析 我们以一个二叉树为例 左叶子的特点是什么? 是左节点并且没有左右孩子节点 所以我们用leftnode保存root->lefe节点,判断条件为leftnode存在,并且不存在leftnode->left和leftnode->right,如果满…

[力扣 Hot100]Day18 矩阵置零

题目描述 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 出处 思路 在原数组上直接操作势必会出现“冗余”的0,即原本[i,j]处不是0,例如由于i行的其他位置有0导致[i,j]…

Kali Linux初识

Kali Linux(以前称为 BackTrack Linux)是一个开源的、基于 Debian 的 Linux 发行版,旨在进行高级渗透测试和安全审计。它通过提供通用工具、配置和自动化来做到这一点,使用户能够专注于需要完成的任务。 包括 600 多种渗透测试工…

LeetCode 使循环数组所有元素相等的最少秒数

地址:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 难度:中等 题目描述:给你一个下标从 0 开始长度为 n 的数组 nums 。 每一秒,你可以对数组执行以下操作: 对于范围在 [0, n - 1] 内的每…

【中关村开源生态论坛暨大模型智能应用技术大会】—— 探索AI和开源在未来的应用

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-9ttR7rpX3BzyF2C4 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

任务悬赏系统搭建开发定制,任务分销系统

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、任务悬赏系统功能和运营方式 总结 前言 任务悬赏系统就是在小程序内可以做任务赚取佣金,这款系统主要针对手上有达人资源的用户可以冲一下这个项目…

(自用)learnOpenGL学习总结-高级OpenGL-几何着色器

在顶点着色器和片段着色器中间还有一个几何着色器。 几何着色器的输入是一个图元的一组顶点,在几何着色器中进行任意变换之后再给片段着色器,可以变成完全不一样的图元、可以生成更多的顶点。 #version 330 core layout (points) in; layout (line_str…

MySql 慢SQL配置,查询,处理

一.慢SQL配置相关 1.查看慢SQL是否开启 执行下面命令查看是否开启慢SQL show variables like %slow_query_log; 复制代码 OFF: 未开启ON: 2.打开慢SQL配置 执行下面的命令开启慢查询日志 set global slow_query_logON; 复制代码 3.修改慢查询阈值 前面介绍了SQL执行到达了…

Elasticsearch Windows版安装配置

Elasticsearch简介 Elasticsearch是一个开源的搜索文献的引擎,大概含义就是你通过Rest请求告诉它关键字,他给你返回对应的内容,就这么简单。 Elasticsearch封装了Lucene,Lucene是apache软件基金会一个开放源代码的全文检索引擎工…

已解决,引入外部文件,element-plus中的分页组件,当其位置在页面底部时,layout中的sizes(下拉框)始终向下弹出,且显示不完整,期望向上弹出

已解决:由于引入了外部样式,定位的问题导致的 解决办法: .el-select-dropdown {position: initial;margin: 0px;}排查问题的方法: 注释引入的外部文件,逐级排查问题所在,再新的css文件中重写样式&#xff…

第5章 python深度学习——波斯美女

第5章 深度学习用于计算机视觉 本章包括以下内容: 理解卷积神经网络(convnet) 使用数据增强来降低过拟合 使用预训练的卷积神经网络进行特征提取 微调预训练的卷积神经网络 将卷积神经网络学到的内容及其如何做出分类决策可视化 本章将…