ctk520 发表于 2011-7-22 12:16:52

基于CPLD+AD2S1200实现的旋变解码

程序功能:
(1)实现旋转变压器0~360°的角度解码,精度为0.1°;
(2)采集的角度解码数据通过12位并口输出(亦可在程序中设定为串口);
(3)解码后的角度值通过数码管以十进制的形式显示出来;
(4)该程序同时可以实现电机转速解码,同样的转速可以通过数码管显示出来;

解码程序(内附详细程序说明)ourdev_660114J15GI7.rar(文件大小:1015K) (原文件名:CPLD+AD2S1200程序.rar)

ctk520 发表于 2011-7-22 12:23:34

回复【楼主位】ctk520
-----------------------------------------------------------------------
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_660115SDM2M8.jpg
AD2S1200时序图 (原文件名:AD2S1200时序图.jpg)

AD2S1200英文资料ourdev_660116P2VXKK.rar(文件大小:346K) (原文件名:AD2S1200.rar)
AD2S1200中文资料ourdev_660117JG6INX.rar(文件大小:291K) (原文件名:AD2S1200_cn.rar)
AD2S1200评估板(内含原理图)ourdev_660118MJQTAJ.rar(文件大小:1.23M) (原文件名:AD2S1200评估板.rar)
AD2S1210英文资料(AD2S1200升级版)ourdev_660119D0O5NL.rar(文件大小:657K) (原文件名:AD2S1210_cn.rar)

ctk520 发表于 2011-7-22 12:27:54

回复【楼主位】ctk520
-----------------------------------------------------------------------

再附上配套的旋转变压器的相关资料,如下:
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_660120UCF4DX.jpg
旋转变压器外观图 (原文件名:旋转变压器外观图.jpg)

旋转变压器说明书ourdev_660121FYYPWY.rar(文件大小:300K) (原文件名:BEM50.5-1旋转变压器.rar)

wangyj173 发表于 2011-7-26 14:32:34

感谢lz无私奉献,以前听一个同事说,旋变解码很难

ctk520 发表于 2011-7-26 21:28:09

回复【3楼】wangyj173
-----------------------------------------------------------------------
旋变解码原理性的东西其实也不难,解码芯片的应用也不难,关键是要充分地阅读并理解其datasheet,将时序图完全吃透,写程序时最好是采取状态机的方法,一步步读取数据就ok了,剩余的一些小问题再针对性地解决就好了~

ctk520 发表于 2011-7-28 09:34:28

%>_<%第一次发帖,竟然都无人问津,太寒心了,泪奔ing...

adsladsl 发表于 2011-7-28 09:38:00

绝对得顶,这个~估计用的人不多的缘故吧

.oOo. 发表于 2011-7-28 09:47:23

编码器不了解,现在学习一下

adsladsl 发表于 2011-7-28 10:00:38

楼主有没出现上电后编码器输出角度翻转180度的情况。

x_cling 发表于 2011-7-28 10:01:15

顶起,虽然现在用不上,学习一下总是好的。

wx2k 发表于 2011-7-28 10:05:28

记号一下

ctk520 发表于 2011-7-28 14:39:32

回复【6楼】adsladsl
-----------------------------------------------------------------------

恩,呵呵,应该是,用的人少,所以问津的人也少~

ctk520 发表于 2011-7-28 14:40:15

回复【7楼】.oOo.
-----------------------------------------------------------------------

我也是刚接触不久。据了解,旋变解码主要是用在对电机转子位置和旋转速度的精确测量,能适应冲击震动和温湿度变化等恶劣的工作环境,普通的光电编码器很容易损坏,而旋转变压器由于其坚固耐用而可靠性比较高。

adsladsl 发表于 2011-7-28 14:42:39

回复【12楼】ctk520
-----------------------------------------------------------------------

是的,说的很有道理~楼主圈圈是什么?
你用的编码器是哪家公司的?多摩川的吗?

ctk520 发表于 2011-7-28 15:05:18

回复【8楼】adsladsl
-----------------------------------------------------------------------

我在调试的过程中倒从来没有遇到过编码器输出角度翻转180°的情况,但在网上也有看到一些网友说有此类情况出现,类似削峰,就是编码器输出的sin或cos波形只有正半轴或负半轴(不知与你说的情况是否一致),其中的原因无非有二:一是编码器的驱动电路设计的有问题,这个可以参照AD2S1200资料手册上的参考电路设计,一般应该没什么问题;二是编码器的接线有问题,"+"、"-"接反了。
再附上一些有关ADI芯片应用的问答集锦,以供大家参考:
ADI论坛问答集锦1ourdev_661634OJF0MN.rar(文件大小:333K) (原文件名:ADI论坛问答集锦1.rar)
ADI论坛问答集锦2ourdev_661635E01LBS.rar(文件大小:961K) (原文件名:ADI论坛问答集锦2.rar)

adsladsl 发表于 2011-7-28 15:23:51

回复【14楼】ctk520
-----------------------------------------------------------------------

是有时候开机的时候出现翻转180的情况。找不到原因,开始我们也是用cpld驱动的,后来用74hc14,单片机直接读信号。

ctk520 发表于 2011-7-28 15:50:52

回复【13楼】adsladsl
-----------------------------------------------------------------------
圈圈是指?
多摩川的编码器好像应用的是比较多的,性能也比较好,但我用的是上海一家公司自产的编码器(公司名字就不说了,旋转变压器说明书里面有,免得有做广告的嫌疑,呵呵~)

ctk520 发表于 2011-7-28 16:02:04

回复【15楼】adsladsl
-----------------------------------------------------------------------

有时候?那我也晕了,毕竟我没遇到这种情况,所以也猜不出具体是什么原因,如果实在解决不了且必须解决的话,我建议你可以直接联系ADI的技术支持,可以针对性地去解决,一般两天左右可以得到回复。
我用单片机和CPLD都试了,都没出现什么大问题,只是在对时序控制和解码精度的问题上费了一些功夫,还算比较顺利O(∩_∩)O~

adsladsl 发表于 2011-7-28 16:37:08

回复【17楼】ctk520
-----------------------------------------------------------------------

有没试过直接用单片机读取,可以省掉CPLD的。这个方案是我们从代理商那里买的板子上的~

ctk520 发表于 2011-7-28 16:48:35

回复【18楼】adsladsl
-----------------------------------------------------------------------

恩,试了啊,最初用的是单片机+74HC573来读取AD2S1200的12位并行数据的输出,两者的控制接口直接通过100R的电阻相连就可以了,后来因为项目的需要才改成CPLD的,单片机或CPLD选其一均可~

guaiguaima 发表于 2011-7-28 17:19:30

我目前正在做的位置检测正是采用AD2S1210做解码读取位置控制PMSM,但存在一些问题,采用SPI接口读写AD2S1210的寄存器,发现寄存器的值可以自己改变,如控制字自己变化后励磁信号没有了输出,整个位置读写即出现了错误,不知有没朋友遇到过。希望能和楼主交流一下!!回复【楼主位】ctk520
-----------------------------------------------------------------------

ctk520 发表于 2011-7-28 18:24:31

回复【20楼】guaiguaima
-----------------------------------------------------------------------

寄存器的值不稳定,读出的数据总是发生变化,应该是AD2S1200的控制时序出了问题。
第一,既然你采用的是SPI接口读写,解码数据应该是串行输出,串行读写时序图,如下:
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_661675QYMBZY.jpg
(原文件名:1.jpg)
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_661676YJD8Y8.jpg
(原文件名:2.jpg)
在时间的控制上,要特别注意Min和Max的取值范围,最好是能像我在1楼发的“并行时序图”那样,将每一个状态机的时序标注出来,然后跟自己的程序一一对照,这样可以做到一目了然,就不会出现时序混乱的问题了;
第二,如果你只需要读取位置寄存器(POS),最好是将速度寄存器(VEL)禁止掉,使RDVEL恒等于1,这样就不会出现所读取的位置和速度数据相互干扰的问题;
以上观点仅供参考,具体问题还得具体分析,呵呵~

guaiguaima 发表于 2011-7-29 11:54:16

控制时序没有问题,用示波器详细的看了时序满足要求,唯一怀疑的就是电路受到了干扰!目前正在排除故障,还有一问题想与楼主交流,你的旋变返回给AD2S1200的信号波形是什么样的?能否发点图,即SIN,SINLO之间,SIN,GND之间和SINLO,GND之间!不知道你的旋变输出到AD2S1200之间有没信号调理电路?

cq0801 发表于 2011-8-24 10:02:37

收藏一下!

yuanshi3 发表于 2012-2-6 13:22:32

回复【20楼】guaiguaima
-----------------------------------------------------------------------

你好,能和你交流下吗?554254640

yuanshi3 发表于 2012-2-6 13:59:23

回复【21楼】ctk520
-----------------------------------------------------------------------

这个旋变屏蔽措施也得做好,尤其是针对控制电机而言,有机会探讨下,Q554254640

xiaozhangzjj 发表于 2012-6-20 17:14:51

楼主 我现在做AD2S1210解码相关,,您的这个程序能发给我参考一下么,谢谢。

lcw1989 发表于 2012-7-6 14:03:46

好东西,现在正在用旋变,谢谢楼主分享!讲的真的很好。

goodlizzy 发表于 2013-11-5 15:19:49

搞了几周了,还是没能搞定,难

机器人天空 发表于 2014-3-18 15:18:29

mark........

jacktau 发表于 2014-6-13 10:50:22

感谢楼主的无私奉献!

larry.wong 发表于 2014-7-5 14:30:39

好资料,工控很常用的!

cchwhk 发表于 2014-9-30 11:48:06

请问你有旋变和AD2S1210的电路图吗?我的图感觉一直有问题,我的旋变是:变比0.5,励磁频率是10KHZ,输入电压7Vrms.

szy494468597 发表于 2015-4-14 22:02:29

学习一下

s梦想s 发表于 2015-10-30 16:30:13

正好需要,谢谢啊!
页: [1]
查看完整版本: 基于CPLD+AD2S1200实现的旋变解码