最近拿到一个绝对式编码器基于SSI协议的,需求是把它反馈的位置信息读取出来做误差分析,使用说明书如下,因为是第一次接触这个协议,看了下它的时序图属于同步通信感觉跟IIC和SPI很相似,想着用32去读再通过JScope观测会方便一点。
编码器一共6跟线,VCC和GND外部5V供电,关于D+、D-和C+、C-属于差分IO,由于单片机属于TTL电平,差分信号是485电平,然后淘宝买了两个电平互转模块(这个模块是单通道的,时钟和数据各需要一个,所以买了两个),由于硬件控制流向的,所以使用很简单基本不用找说明文件,切记RX、TX要连对,数据传输过程中有指示灯可以参考。

硬件条件都具备了,其次就是软件,编码器说明书给的SSI时序不是很好,论坛找了找前人做过的,这个说得非常清楚,粘过来给大家(感谢大佬,这也是我开源的原因,互帮互助嘛)。

简单解释下这个它的时序,空闲状态时钟信号为高,每帧数据开始之前需要把时钟拉低持续t1时长,接受完毕之后(这个完毕主要取决于你接受数据帧的位数,我用的是26位,所以代码是按26位配置的)继续拉高进入空闲,想要做连续接收的时候也一样,帧与帧之前还是需要起始拉低结束拉高的,剩下的时间按典型值来设置问题不大。由于单片机本身是没有SSI协议的,我们只是自己模拟时序来进行通信的,所以通信的频率是不受控


3万+

被折叠的 条评论
为什么被折叠?



