文档资料
使用
- 对于编码器来说,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