MLX90640 紅外熱成像儀測溫傳感器模塊開發筆記(九)EEPROM、 RAM、寄存器說明
河北穩控科技MLX90640 紅外熱成像儀測溫傳感器
EEPROM
地址范圍為 0x2400~0x273F,共 832 個字(1664 字節), 前 16 個字包含了唯一 ID 碼、工作參數(上電后自動同步到寄存器)、 MLX90640 的 I2C 地址。后面的 816 個字全部是每個像素的校正或者測量參數,數據手冊也沒有寫每個數據到底是什么意思,直接用就是了,不要問為什么。
RAM
地址范圍為 0x0400~0x073F,共 832 個字(1664 字節),前 768 個字是實時的 768 像素的測量數據,后面 64 個字是與當前剛剛測量完成的一半像素有關的計算因數。 RAM 是只讀的。
寄存器
地址范圍為 0x8000~0x8010,共 16 個字(32 字節),其中用戶可以訪問的有狀態寄存器0x8000、控制寄存器 0x800D,改變控制寄存器可以直接控制 MLX90640 的運行行為,是既有讀又有寫的部分。
河北穩控科技MLX90640 紅外熱成像儀尺寸
三部分建議的操作
上電后讀取一下 EEPROM,扔給 API 函數 MLX90640_ExtractParameters 得到的參數項變量。根據需要修改控制寄存器的值。循環讀取狀態寄存器,當有新的數據測量完成時讀取全部 RAM 扔給 API 函數MLX90640_CalculateTo 得到每個像素的溫度值。
狀態寄存器說明
狀態寄存器從字面來理解應該是只讀的,但數據手冊里卻定義了一些位是參數(可修改的),不管寄存器叫什么了,根據參數功能來用吧。
STA[15:5]:保留,只能寫入 0STA[4]: RAM 是否可寫, 0:不可寫; 1:可寫。在幀測量完成后,是否允許 MLX90640將測量的數據寫入(更新)到 RAM 里,這個功能可以在讀取一幀數據的過程中設置為不允許,即:當上位機正在讀取 RAM 的過程中,不允許再更新 RAM。這個位置同時還受控制寄存器中的 bit2 的限制,當 CTR[2]=0 時,無論這個位置怎樣設置,都會自動更新 RAM,僅當 CTR[2]=1時, STA[4]參數才會起作用。STA[3]:子頁測量完成標志位。 0:表示沒有完成; 1 表示已經完成了一幀的測量。STA[2:0]:剛剛完成的是幀 0 還是幀 1。
控制寄存器說明
CTR[15:13]:保留,只能寫入 0
CTR[12]:幀交錯模式,默認為 1(像素交錯模式),數據手冊上說了只有這種模式才能保證精度,那就不要改這一位,保持默認 1。
CTR[11:10]:測量精度, 00~11 表示 16 位~19 位,默認為 10(18 位)。改成 11 也沒什么效果,所以這個參數也保持默認吧。
CTR[9:7]:設置測量速率, 0~7 表示 0.5、 1、 2、 4、 8、 16、 32、 64Hz,默認為 010(2Hz),這個參數是唯一有用的參數。
CTR[6:4]:手動測量時,指定要測量哪個子頁(幀 0 還是幀 1)。數據手冊已經把手動測量部分刪除了,所以手動測量相關的參數可以忽略。
CTR[3]:手動測量還是自動測量,默認為 0(自動測量),不要使用手動測量(原因同上)。
CTR[2]:如何更新 RAM。 0:測量完成后自動更新; 1:根據 STA[4]參數。
CTR[1]:保留,只能寫入 0。
CTR[0]: 0:所有數據更新在一頁里; 1:使能子頁模式(頁 0 和頁 1),默認
河北穩控科技MLX90640 紅外熱成像儀測溫成果展示
審核編輯 黃昊宇
-
開發板
+關注
關注
25文章
4959瀏覽量
97214 -
紅外熱成像儀
+關注
關注
1文章
111瀏覽量
14883 -
測溫傳感器
+關注
關注
0文章
40瀏覽量
7067
發布評論請先 登錄
相關推薦
評論