编码器芯片MLX90363的使用

文档资料

使用

  • 对于编码器来说,Rotary Application模式
  • SPI驱动中,CS必须在8个字节都发送完成后才禁能,不能每发送一个字节就使能+禁能
  • 检验SPI通讯的方法,发送NOP帧,然后如果通讯正常,MLX90363回复的应该是回显
while(1)
{
	send NOP command
}
  • 发送和接收,master发送和回复帧的格式。!!!特别注意,上述表格只是正常情况,也可能回复错误帧,必须查看具体命令(例如Get1命令如果超时就会回复错误帧)此表描述了发送和回复之间的功能码。但是对于具体的帧格式没有单独列表列出来,得自己整理。这要求必须对datasheet有框架层次的了解。例如Get1命令,发送帧格式,回复正常时格式,回复不正常时格式,必须到每一张每一节去找出来。
  • 三种查询模式,Trigger Mode1、2和3,我们记住的是目前只用Mode1
    • Trigger Mode1为常用,
    • Trigger Mode2为多个MLX90363时用,需发送同步帧
    • Trigger Mode3和Mode1区别时,Mode3发送的数据为缓存数据(??还没弄懂)
  • 发送查询命令(无论Get1、2和3)都要设置一个Timeout参数,这个参数的意义是:(摘抄自Datasheet)

The parameter TimeOutValue tells the maximum life time of the Regular Data Message.
The time step is t1us (See table in Section 10), the maximum time-out is 65535 * t1us. The timeout
timer starts when the message is ready, and stops on the SS rising edge of the next
message.

翻译过来就是:两个帧之间的空闲间隔,这个情况很明显,如果仿真打断点后,再次Get1时会回复错误帧,根据错误提示发现是Time out故障

  • MLX90363另一得注意的是:发送和回复的不同步。如下图:

    其中第一次发送GET1命令时,如果刚上电回复的是版本号;如果非刚上电且第一次发送Get1,回复NTT,如果此时再发送GET1命令,才能实时回复当前采集的数据;如果此时再发送NOP命令,根据NOP命令的特性,回复的是上一条命令的数据。总结:通过Get1查询数据的流程是:发送Get1命令初始化MLX90363->发送Get1命令获取实时数据

  • ???(不确定的地方)NOP命令分为chanllenge模式和NOP模式,chanllenge模式回复回显;NOP模式发送上一次帧。但是什么情况下是chanllerge模式,什么情况下是NOP模式,初步理解为当NOP跟前一帧组成一个序列时,NOP为NOP模式;当和前一帧部组成一个序列时,回复回显。(这是自己的理解,待确认)如下为NOP模式:

while(1)
{
    Get1();
    NOP();
}
  • 时钟周期允许为8us

posted on 2017-01-15 13:39  樊四郎  阅读(4683)  评论(0编辑  收藏  举报

导航