首頁(yè) 區(qū)塊鏈 > 正文

【EsDA應(yīng)用】基于EsDAMPC-ZC1快速實(shí)現(xiàn)I2C監(jiān)控報(bào)警

本文基于前文的一篇I2C博客文章繼續(xù)拓展I2C實(shí)時(shí)采集后的監(jiān)控報(bào)警實(shí)驗(yàn),PT100溫度傳感器的溫度采集和讀取顯示不在本文贅述,具體詳細(xì)的操作步驟可在《EsDA MPC-ZC1 快速實(shí)現(xiàn)I2C采集監(jiān)控》文章中查看。

實(shí)驗(yàn)基于EsDA開(kāi)發(fā)平臺(tái),MPC_ZC1作為I2C主機(jī)設(shè)備,TPS02測(cè)溫模塊作為從機(jī)設(shè)備。因本實(shí)驗(yàn)器材是高精度儀器,但實(shí)驗(yàn)環(huán)境有限所以溫度波動(dòng)范圍較大,所以本實(shí)驗(yàn)通過(guò)報(bào)警機(jī)制模擬恒溫箱(恒溫45℃,誤差±5℃)的實(shí)驗(yàn)場(chǎng)景。設(shè)計(jì)步驟如下:

設(shè)置過(guò)溫值和低溫值;


(資料圖)

配置TPS02測(cè)溫模塊configurature寄存器的工作模式;

讀取TPS02測(cè)溫模塊configurature寄存器的ALERT報(bào)警狀態(tài)位,過(guò)溫和低溫時(shí)做相應(yīng)的操作。

自TPS02RAH從機(jī)設(shè)備中讀取到的實(shí)時(shí)溫度>過(guò)溫值,則說(shuō)明需要減緩加熱功率;自TPS02RAH從機(jī)設(shè)備中讀取到的實(shí)時(shí)溫度<過(guò)溫值,則說(shuō)明需要增大加熱功率。通過(guò)以上邏輯去設(shè)置模擬恒溫箱的過(guò)溫值和低溫值。

本次實(shí)現(xiàn)需要用到 timer,fscript, i2c_master_write 這些節(jié)點(diǎn):

timer:timer節(jié)點(diǎn)用于觸發(fā)I2C節(jié)點(diǎn)寫入值,因過(guò)溫值和低溫值不需要頻繁被設(shè)置所以timer的定時(shí)周期設(shè)置大一點(diǎn);

fscript:根據(jù)TPS02設(shè)備的數(shù)據(jù)手冊(cè)可知,設(shè)置溫度的上、下限值,都是6個(gè)字節(jié),前三個(gè)字節(jié)對(duì)應(yīng)通道1的上、下限值,后三個(gè)字節(jié)對(duì)應(yīng)通道2的上、下限值。

i2c_master_write:主要用于向從機(jī)設(shè)備的Thigh寄存器寫溫度上限值,Tlow寄存器寫溫度下限值。

本實(shí)驗(yàn)采用的是通道1 ,上限值是50℃(0x06 4000),下限值是45℃(0x05 A000)。

timer節(jié)點(diǎn)觸發(fā)通過(guò)I2C向TPS02RAH設(shè)備的Thigh寄存器和Tlow寄存器寫入過(guò)溫值和低溫值,將timer,fscript,i2c_master_write節(jié)點(diǎn)加入到畫布中,并繪制連線。

雙擊timer節(jié)點(diǎn),打開(kāi)屬性面板設(shè)置定時(shí)周期(ms),觸發(fā)i2c_master_write節(jié)點(diǎn)寫入溫度上、下限值。

雙擊i2c_master_write的輸入節(jié)點(diǎn)fscript,并查看TPS02RAH測(cè)溫模塊的數(shù)據(jù)手冊(cè)。得知TPS02RAH的Thigh寄存器有6個(gè)字節(jié)是設(shè)置溫度的上限值,測(cè)溫模塊有兩個(gè)通道,所以前三個(gè)字節(jié)設(shè)置通道1的溫度上限值,后三個(gè)字節(jié)設(shè)置通道2 的溫度上限值;而Tlow寄存器有6個(gè)字節(jié)是設(shè)置溫度的下限值,同樣,前三個(gè)字節(jié)設(shè)置通道1的溫度下限值,后三個(gè)字節(jié)設(shè)置通道2的溫度下限值。

配置I2C從機(jī)設(shè)備寄存器Tlow寄存器(0x02)如下:

本次實(shí)現(xiàn)需要用到 timer,fscript, i2c_master_write 這些節(jié)點(diǎn):

timer: timer節(jié)點(diǎn)用于觸發(fā)I2C節(jié)點(diǎn)寫入值,因報(bào)警模式不需要頻繁被設(shè)置所以timer的定時(shí)周期設(shè)置大一點(diǎn);

fscript:根據(jù)TPS02設(shè)備的數(shù)據(jù)手冊(cè)可知,設(shè)置configurature寄存器共兩個(gè)字節(jié)。分別代表兩個(gè)通道,第一個(gè)字節(jié)配置通道 1,第二個(gè)字節(jié)配置通道2。本實(shí)驗(yàn)使用的是通道1;

i2c_master_write:主要用于向從機(jī)設(shè)備的configurature寄存器寫工作模式。

timer節(jié)點(diǎn)觸發(fā)通過(guò)I2C向TPS02RAH設(shè)備的configurature寄存器寫入報(bào)警模式,將timer,fscript,i2c_master_write節(jié)點(diǎn)加入到畫布中,并繪制連線。

雙擊timer節(jié)點(diǎn),打開(kāi)屬性面板設(shè)置定時(shí)周期(ms),觸發(fā)i2c_master_write節(jié)點(diǎn)寫入報(bào)警模式。

根據(jù)數(shù)據(jù)手冊(cè)以及2.2的操作可知,除去初始狀態(tài),configurature寄存器的ALERT報(bào)警狀態(tài)變?yōu)?時(shí)為超溫狀態(tài);configurature寄存器的ALERT報(bào)警狀態(tài)變?yōu)?時(shí)為低溫狀態(tài)。

timer節(jié)點(diǎn)定時(shí)觸發(fā)通過(guò)I2C向TPS02RAH設(shè)備的configurature寄存器讀取報(bào)警模式,將timer,fscript,i2c_master_read,log節(jié)點(diǎn)加入到畫布中,并繪制連線。

雙擊timer節(jié)點(diǎn),打開(kāi)屬性面板設(shè)置定時(shí)周期(ms),觸發(fā)i2c_master_read節(jié)點(diǎn)讀取報(bào)警模式。

雙擊i2c_master_read的輸入節(jié)點(diǎn)fscript,并查看數(shù)據(jù)手冊(cè)。將configurature寄存器的兩個(gè)字節(jié)讀取出來(lái)。

因stat是ALERT報(bào)警狀態(tài)位的賦值,由數(shù)據(jù)手冊(cè)可知,當(dāng)報(bào)警信號(hào)輸出TM為0比較模式,報(bào)警引腳輸出信號(hào)狀態(tài)控制POL為0時(shí),ALERT報(bào)警狀態(tài)位的賦值stat的初始值是1。因?yàn)橹恍璩跏蓟淮嗡詫tat變量放在Initialize中進(jìn)行初始化:

Function:

讀取configurature寄存器的ALERT報(bào)警狀態(tài)位可知此時(shí)是低溫報(bào)警,此時(shí)需要增加功率。

關(guān)鍵詞:

最近更新

關(guān)于本站 管理團(tuán)隊(duì) 版權(quán)申明 網(wǎng)站地圖 聯(lián)系合作 招聘信息

Copyright © 2005-2023 創(chuàng)投網(wǎng) - www.mallikadua.com All rights reserved
聯(lián)系我們:39 60 29 14 2@qq.com
皖I(lǐng)CP備2022009963號(hào)-3