用STM32的SPI对外部SSI信号进行采集
旋转磁式编码器AS5154B(12位)的绝对接口使用SSI同步串行接口传输数据stm32里面怎么用SPI采集编码器绝对接口返回的数据呢但由于SPI仅有8位和16位数据模式,怎样才能正确采集呢SPI需要怎样配置?如果SPI采集不了,仅用IO口是否可以模拟时钟信号,软件上写SSI协议,这样的话采集效率是不是会降低?新手求指导。。toofree 发表于 2018-3-14 01:31
你单路器件应该用这个波形。
嗯嗯 以后注意严谨 toofree 发表于 2018-3-14 01:08
没用过也没查到AS5154B的资料。(刚查到,在下一楼层附件)
之前我写过SSI FPGA程序,但是可能每家的SSI都 ...
嗯CSn是片选信号谢谢提醒我加油弄搞好分享一波
你单路器件应该用这个波形。
你给的时序图是多片级联的时序。
本帖最后由 toofree 于 2018-3-14 01:32 编辑
没用过也没查到AS5154B的资料。(刚查到,在下一楼层附件)
之前我写过SSI FPGA程序,但是可能每家的SSI都不太一样吧。我之前用的是时钟和数据都是差分线,没有片选信号。结束信号是靠时钟消失固定时间来区分的。
对应你的这个时序的话,你的CSn是独立的片选信号吗,如果是的话,就可以用SPI搞。
你的完整的一帧是19位(0到18),你可以采24位(3个字节),然后把最后5位舍弃。
片选有效到时钟输出的延时TCLKFE,自己用软件延时搞定。3字节传输完成后把CSn撤掉。
原理明白了以后,用IO模拟也可以搞。
旋转位置编码器一般是,只要你随时读数,都是最新的位置。
SSI协议不太了解,百度了一下,好像也是串口通信的。。。不过,我觉得是否合适,应该先去了解SSI协议怎么实现的,有哪些需要注意的地方。。。楼上的说用PWM实现,我觉得不太可靠,因为PWM的精度控制太空难了。。。特别是发送特定个数的时钟波形,难度不是一般的大!!! 将pwm的输出作为SSI的clk信号,同时将clk信号与arm的某一个pin短路,那么通过软件来寻找下降沿,当下降沿的时候,将数据采集进来。看到有人这么理解不知道对不对。
页:
[1]