搜索
bottom↓
回复: 21

开源MA732/MA702/MA730磁编码器,长引线解决方案

[复制链接]

出0入0汤圆

发表于 2023-10-16 01:27:59 | 显示全部楼层 |阅读模式
通常,电机轴端如果放置一个SPI接口的磁编,
如果想要将SPI引线直接拉至控制板,则需要非常注意电机引线带来的数据干扰。
通常这个引线长度只能10cm,稍微再长一些,SPI数据读取结果会产生非常严重的毛刺。

MPS的MA730、MA702、MA732等,提供了一种简化版的SPI接口,称为SSI,是只读接口。
SSI接口,单端拉线接入控制板,也会存在同样的问题。

解决办法,就是将CLK+Data线,转为RS422全双工,包含输入输出。
并且最好给出一个LDO,使用5V的电源,这样磁编板得到的3.3V,更干净一些,并且不会因为长引线电阻产生压降,使磁编板实际得到的电压低于3.3V

这里LDO可以随意替换成自己熟悉的型号、
RS422全双工芯片选择SIT3490EEUA,MSOP8封装, 高度很矮,体积也小,速度也够。

实测即使跟电机引线绑在一块,2米的应用距离也丝毫没有毛刺数据产生。

磁编端:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2023-10-16 01:32:41 | 显示全部楼层
控制板/驱动器端

也是一片SIT3490即可解决,为了性价比考虑,这里选择了价格更便宜的SOP8封装的SIT3490EESA



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2023-10-16 01:34:41 | 显示全部楼层
读取时序,
截图自MA732手册:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2023-10-16 01:41:29 | 显示全部楼层
读取代码很简单

这边演示是读取16位的,实际也可以只读取12位或者14位

后面还要自行处理 : 转动方向调整、零点、磁编校准、判断磁编掉线与否


  1. #define SSI_DATA()      (((GPIOB->IDR & GPIO_Pin_4)==0)? 0:1)

  2.     int angle = 0;
  3.    
  4.     SSI_CLK_H();
  5.     SSI_Delay();
  6.     SSI_CLK_L();
  7.     SSI_Delay();
  8.    
  9.     for(int i=0;i<16;i++)
  10.     {
  11.         angle <<= 1;
  12.         SSI_CLK_H();
  13.         SSI_Delay();
  14.         SSI_CLK_L();
  15.         SSI_Delay();
  16.         angle |= SSI_DATA();
  17.     }
复制代码

出105入79汤圆

发表于 2023-10-16 02:04:56 | 显示全部楼层
好方案,收藏了

出105入79汤圆

发表于 2023-10-16 02:09:39 | 显示全部楼层
这个RS422芯片可以解决10Mhz以下的2线(TX *1 / RX * 1)接口的长距离(20米+)收发问题

出100入312汤圆

发表于 2023-10-16 08:09:46 来自手机 | 显示全部楼层
lz大神,厉害

出0入0汤圆

发表于 2023-10-16 10:01:27 | 显示全部楼层
编码器长引线方案,mark一下。

出0入0汤圆

发表于 2023-10-16 10:15:00 | 显示全部楼层
这个方案可以试试

出0入90汤圆

发表于 2023-10-16 10:26:28 | 显示全部楼层
有点意思,长知识了今天

出0入13汤圆

发表于 2023-10-16 14:24:13 | 显示全部楼层
不错,14M高速 RS422全双工芯片 SIT3490EEUA

出0入0汤圆

发表于 2023-10-16 17:08:50 | 显示全部楼层
SPI转RS422,好思路!楼主牛逼!赞!收藏了。

出10入18汤圆

发表于 2023-10-16 17:34:42 | 显示全部楼层
LVDS多好啊

出10入12汤圆

发表于 2023-10-16 22:54:18 来自手机 | 显示全部楼层
我几年前用485发送低频数据:)

出0入0汤圆

发表于 2023-10-26 15:06:06 | 显示全部楼层
本帖最后由 A1804889557 于 2023-10-26 15:11 编辑

请问如果不用SSI接口,使用用SPI接口,要怎么弄?用四通道的        RS422芯片嘛?

出0入0汤圆

发表于 2023-11-10 22:36:09 | 显示全部楼层
A1804889557 发表于 2023-10-26 15:06
请问如果不用SSI接口,使用用SPI接口,要怎么弄?用四通道的        RS422芯片嘛?
(引用自15楼)

搞2片 是不是就可以了

出1310入193汤圆

发表于 2023-11-11 22:48:01 来自手机 | 显示全部楼层
查分信号发射和接收就是这样使用场景

出0入0汤圆

 楼主| 发表于 2023-11-13 04:11:35 | 显示全部楼层
zwp2012 发表于 2023-11-10 22:36
搞2片 是不是就可以了
(引用自16楼)

SPI主机是三发送一接收,
从机是一发送三接收。

芯片目前找到的,只有SN65LVDT14 、SN65LVDT41 这一对可以用。

出0入0汤圆

 楼主| 发表于 2023-11-13 04:12:02 | 显示全部楼层
A1804889557 发表于 2023-10-26 15:06
请问如果不用SSI接口,使用用SPI接口,要怎么弄?用四通道的        RS422芯片嘛?
(引用自15楼)

SN65LVDT14 、SN65LVDT41 这一对支持SPI差分的收发。

出0入0汤圆

发表于 2023-11-21 15:05:17 | 显示全部楼层
sy8501 发表于 2023-11-13 04:11
SPI主机是三发送一接收,
从机是一发送三接收。

(引用自18楼)

我是这样解决的:miso和sclk使用RS422转换,MOSI和CS就不用了,现在也能正常工作,我用的线缆是0.3M的,实测没毛刺 大佬我还有一个问题,BISS-C也能用咱们这套方案转换吗?目前几乎没找到STM32通过SPI转BISS-C的例子

出0入0汤圆

 楼主| 发表于 2023-11-21 22:06:01 | 显示全部楼层
A1804889557 发表于 2023-11-21 15:05
我是这样解决的:miso和sclk使用RS422转换,MOSI和CS就不用了,现在也能正常工作,我用的线缆是0.3M的, ...
(引用自20楼)

双向io的,直接使用485收发器来切换。

出0入4汤圆

发表于 2023-11-30 07:50:13 来自手机 | 显示全部楼层
差分驱动,记录一下
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-4 04:11

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表