文檔資料
使用
- 對於編碼器來說,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