91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于EsDA MPC-ZC1 快速實現(xiàn)I2C 監(jiān)控報警

ZLG致遠(yuǎn)電子 ? 2023-08-23 15:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文介紹如何通過EsDA開發(fā)套件,快速完成一個I2C采集數(shù)據(jù)的監(jiān)控報警系統(tǒng),通過該系統(tǒng)可以減少I2C設(shè)備的故障損失和維修成本。

079d14c2-4185-11ee-8e12-92fbcf53809c.jpg ?簡介

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

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

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

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

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

該實驗主要用到timer、fscript、i2c_master_read、i2c_master_write和log節(jié)點,具體實現(xiàn)請見下文。


07a45426-4185-11ee-8e12-92fbcf53809c.jpg ?模擬恒溫箱業(yè)務(wù)邏輯

1. 設(shè)置過溫值和低溫值

自TPS02RAH從機設(shè)備中讀取到的實時溫度>過溫值,則說明需要減緩加熱功率;自TPS02RAH從機設(shè)備中讀取到的實時溫度

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

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

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

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

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

1.1添加節(jié)點并連線

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

07ae58c2-4185-11ee-8e12-92fbcf53809c.png1.2 配置節(jié)點

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

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

設(shè)置Tlow寄存器(0x02)如下:

print(msg.payload)
wb = wbuffer_create()wbuffer_write_uint8(wb,0x05)wbuffer_write_uint8(wb,0xA0)wbuffer_write_uint8(wb,0x00)wbuffer_write_uint8(wb,0x7F)wbuffer_write_uint8(wb,0xFF)wbuffer_write_uint8(wb,0xFA)
output.payload = wbuffer_get_data(wb)output.payloadLength = 6output.subAddress = 0x02

設(shè)置Thigh寄存器(0x03)如下:

print(msg.payload)
wb = wbuffer_create()wbuffer_write_uint8(wb,0x06)wbuffer_write_uint8(wb,0x40)wbuffer_write_uint8(wb,0x00)wbuffer_write_uint8(wb,0x7F)wbuffer_write_uint8(wb,0xFF)wbuffer_write_uint8(wb,0xFA)
output.payload = wbuffer_get_data(wb)output.payloadLength = 6output.subAddress = 0x03

雙擊i2c_master_write節(jié)點,打開屬性面板根據(jù)TPS02RAH數(shù)據(jù)手冊設(shè)置如下圖所示,并點擊I2C主機配置的鉛筆圖標(biāo)去設(shè)置I2C主機設(shè)備路徑名和時鐘頻率。

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

07bdd8b0-4185-11ee-8e12-92fbcf53809c.png配置I2C從機設(shè)備寄存器Thigh?寄存器(0x03)如下:

07ce706c-4185-11ee-8e12-92fbcf53809c.png

2. 配置報警模式根據(jù)TPS02RAH的數(shù)據(jù)手冊可知,報警模式需要在configurature寄存器中進(jìn)行設(shè)置。后讀取configurature寄存器的ALERT報警狀態(tài)位來報警。本實驗需要使能通道1 的配置,且需要連續(xù)測試的溫度值有2個均大于Thigh或者均小于Tlow的情況下才能報警置位(防止溫度不穩(wěn)定,忽高忽低頻繁假報警)。

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

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

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

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

2.1添加節(jié)點并連線

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

07e0c758-4185-11ee-8e12-92fbcf53809c.png

2.2配置節(jié)點

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

雙擊i2c_master_write的輸入節(jié)點fscript,因需要使用通道1 且根據(jù)數(shù)據(jù)手冊可知:因不支持待機模式所以SD置0;報警信號輸出TM為0比較模式;報警引腳輸出信號狀態(tài)控制POL為0;因本實驗采取的PT100精度頗高響應(yīng)超快所以當(dāng)在過溫或低溫狀態(tài)下,觸發(fā) ALERT 輸出信號的溫度值測試個數(shù)為2,所以F1置0,F0置1;通道1 的EN置0,使能配置;所以讀取configurature寄存器的ALERT報警狀態(tài)位時,初始狀態(tài)為高,當(dāng)高于Thigh超溫時,則ALERT報警狀態(tài)為0,當(dāng)?shù)陀赥low超溫時,則ALERT報警狀態(tài)為1。

print(msg.payload)
wb = wbuffer_create()wbuffer_write_uint8(wb,0x28)wbuffer_write_uint8(wb,0xb8)

output.payload = wbuffer_get_data(wb)output.payloadLength = 2output.subAddress = 0x01

雙擊i2c_master_write節(jié)點,打開屬性面板根據(jù)TPS02RAH數(shù)據(jù)手冊設(shè)置如下圖所示,并點擊I2C主機配置的鉛筆圖標(biāo)去設(shè)置I2C主機設(shè)備路徑名和時鐘頻率。

07f35526-4185-11ee-8e12-92fbcf53809c.png

3. 讀取報警狀態(tài)

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

本次實現(xiàn)需要用到 timer,fscript, i2c_master_read, fscript, log 這些節(jié)點:

  • timer: timer節(jié)點用于定時觸發(fā)I2C節(jié)點讀取數(shù)據(jù);
  • fscript:根據(jù)TPS02設(shè)備的數(shù)據(jù)手冊可知,設(shè)置configurature寄存器共兩個字節(jié)。分別代表兩個通道,第一個字節(jié)配置通道 1,第二個字節(jié)配置通道2。本實驗使用的是通道1。并將讀取出來的ALERT報警狀態(tài)提取出來;
  • i2c_master_read:主要用于向從機設(shè)備的configurature寄存器讀取ALERT報警狀態(tài);
  • log:將報警狀態(tài)打印顯示。

3.1添加節(jié)點并連線

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

0801b030-4185-11ee-8e12-92fbcf53809c.png

3.2配置節(jié)點

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

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

0815e9a6-4185-11ee-8e12-92fbcf53809c.png雙擊i2c_master_read節(jié)點,打開屬性面板根據(jù)TPS02RAH數(shù)據(jù)手冊設(shè)置如下圖所示,并點擊I2C主機配置的鉛筆圖標(biāo)去設(shè)置I2C主機設(shè)備路徑名和時鐘頻率。08212cf8-4185-11ee-8e12-92fbcf53809c.png

雙擊i2c_master_read的消費者節(jié)點fscript,將通道1 的ALERT報警狀態(tài)從讀取到的兩個字節(jié)的configurature寄存器數(shù)據(jù)提取出來。

因stat是ALERT報警狀態(tài)位的賦值,由數(shù)據(jù)手冊可知,當(dāng)報警信號輸出TM為0比較模式,報警引腳輸出信號狀態(tài)控制POL為0時,ALERT報警狀態(tài)位的賦值stat的初始值是1。因為只需初始化一次所以將stat變量放在Initialize中進(jìn)行初始化:

Initialize:

stat = 1;

Function:

//將讀取的6個uint8_t類型的數(shù)據(jù)打印rb = rbuffer_create(msg.payload, msg.payloadLength)print("length: "+ msg.payloadLength)
for(var i=0; i1) { d = rbuffer_read_uint8(rb); if(i == 0){ msg.channel1 = (d>>6) & 0x01; } msg.channel2 = (d>>6) & 0x01;}
if(stat != msg.channel1) { stat = msg.channel1; if(stat == 0) { //通道1 從1-->0,超溫報警 print("high temp error!\n"); } else if(stat == 1) { //通道1 從0--->1,低溫報警 print("low temp error!\n"); }}


07a45426-4185-11ee-8e12-92fbcf53809c.jpg ?模擬恒溫箱業(yè)務(wù)實現(xiàn)本模擬實驗在高溫報警時采取遠(yuǎn)離熱水源的形式來達(dá)到減少加熱功率的操作;在低溫報警時采取靠近熱水源的形式來達(dá)到增大加熱功率的操作,來實現(xiàn)模擬恒溫箱。并結(jié)合EsDA MPC-ZC1快速實現(xiàn)I2C采集監(jiān)測實驗來實時讀取PT100的溫度值。0834cb00-4185-11ee-8e12-92fbcf53809c.png實物接線圖如下:

0849bdda-4185-11ee-8e12-92fbcf53809c.jpg

因讀取溫度傳感器的數(shù)據(jù)處理比報警機制處理邏輯要稍靠后一點,顯示報警狀態(tài)后就立馬采取了相應(yīng)的減緩功率措施或增加功率措施。所以下圖大部分只截圖到正常的溫度顯示和報警打印顯示,而沒有具體的超溫/低溫溫度顯示。實驗結(jié)果如下:086337f6-4185-11ee-8e12-92fbcf53809c.png

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

087145e4-4185-11ee-8e12-92fbcf53809c.png讀取configurature寄存器的ALERT報警狀態(tài)位可知此時是高溫報警,此時需要減緩功率。088317ce-4185-11ee-8e12-92fbcf53809c.png讀取configurature寄存器的ALERT報警狀態(tài)位可知此時是低溫報警,此時需要增加功率。0891578a-4185-11ee-8e12-92fbcf53809c.png實驗結(jié)果:通過報警機制可保持45℃恒溫,上下5℃波動。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 開發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    378

    瀏覽量

    42142
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1556

    瀏覽量

    131207
  • ESDA
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    7996
  • MPC
    MPC
    +關(guān)注

    關(guān)注

    2

    文章

    36

    瀏覽量

    21707
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    MAX7304:集成ESD保護(hù)的I2C接口16端口GPIO與LED驅(qū)動器

    MAX7304:集成ESD保護(hù)的I2C接口16端口GPIO與LED驅(qū)動器 在電子設(shè)備的設(shè)計中,GPIO擴(kuò)展器和LED驅(qū)動器是常見的組件,它們對于實現(xiàn)設(shè)備的各種功能起著關(guān)鍵作用。今天我們要介紹
    的頭像 發(fā)表于 02-02 15:50 ?126次閱讀

    ISO1640-Q1:汽車級雙向 I2C 隔離器的卓越之選

    ISO1640-Q1:汽車級雙向 I2C 隔離器的卓越之選 在電子設(shè)計領(lǐng)域,對于需要可靠隔離的 I2C 通信場景,德州儀器(TI)的 ISO1640-Q1 汽車級雙向
    的頭像 發(fā)表于 01-21 14:00 ?265次閱讀

    I2C 為什么只要兩根線就能搞定通信?

    到目前為止,我們已經(jīng)討論了SPI通信和UART通信的基礎(chǔ)知識,現(xiàn)在讓我們討論本系列的最后一個協(xié)議,即集成電路間協(xié)議(I2C)。如果您曾經(jīng)構(gòu)建過使用OLED顯示器、氣壓傳感器或陀螺儀/加速度計模塊
    的頭像 發(fā)表于 01-04 09:14 ?1614次閱讀
    <b class='flag-5'>I2C</b> 為什么只要兩根線就能搞定通信?

    基于FPGA的I2C控制模塊設(shè)計

    I2C_WRITE_WDATA.v模塊實現(xiàn)I2C寫時序,I2C_Controller (I2C控制器)例化了
    的頭像 發(fā)表于 12-26 09:48 ?4847次閱讀
    基于FPGA的<b class='flag-5'>I2C</b>控制模塊設(shè)計

    TCA8418:I2C控制的鍵盤掃描IC深度剖析

    TCA8418:I2C控制的鍵盤掃描IC深度剖析 在電子設(shè)備的設(shè)計中,鍵盤掃描IC是實現(xiàn)人機交互的關(guān)鍵組件之一。德州儀器(TI)的TCA8418就是這樣一款具有卓越性能的I2C控制鍵盤掃描IC,它
    的頭像 發(fā)表于 12-25 09:20 ?303次閱讀

    深入解析TCA9617B:I2C總線中繼器的卓越之選

    TCA9617B是一款雙通道雙向I2C緩沖器,支持標(biāo)準(zhǔn)模式、快速模式(400kHz)和快速模式+(1MHz)的I2
    的頭像 發(fā)表于 12-22 15:20 ?475次閱讀

    AS32X601的I2C模塊操作EEPROM詳解

    。 I2C接口模塊實現(xiàn)I2C協(xié)議的標(biāo)準(zhǔn)模式和快速模式,支持多主機I2C總線架構(gòu)。其標(biāo)準(zhǔn)模式為100K,
    的頭像 發(fā)表于 12-21 21:39 ?954次閱讀
    AS32X601的<b class='flag-5'>I2C</b>模塊操作EEPROM詳解

    I2C的優(yōu)點介紹

    位)可實現(xiàn)更快的數(shù)據(jù)傳輸,使其適合中速設(shè)備。高速模式(高達(dá)每秒 3.4Mbits)可滿足需要設(shè)備之間快速數(shù)據(jù)交換的高性能應(yīng)用程序的需求。選擇合適的速度模式取決于系統(tǒng)的具體要求。 同步通信: I2C
    發(fā)表于 11-27 07:49

    深入剖析I2C協(xié)議

    ,I2C也是一種可以多主設(shè)備,多從設(shè)備的總線協(xié)議,通過地址索引,I2C可以使能所需從設(shè)備,I2C的出現(xiàn)主要是用來實現(xiàn)不同集成電路組件之間的控制功能,比如通過
    的頭像 發(fā)表于 08-21 15:10 ?3660次閱讀
    深入剖析<b class='flag-5'>I2C</b>協(xié)議

    第十八章 I2C通信測試

    本章介紹了I2C協(xié)議,其物理層用SDA和SCL雙線,支持多設(shè)備:協(xié)議層含起始/停止信號、應(yīng)答機制等。還講解W55MH32的I2C外設(shè)及初始化,并進(jìn)行了通信測試代碼的分析。
    的頭像 發(fā)表于 06-19 17:07 ?1304次閱讀
    第十八章 <b class='flag-5'>I2C</b>通信測試

    SPC574s如何使用SPC5Studio自帶的I2C實現(xiàn)I2C通信?

    SPC574s并沒有硬件I2C外設(shè),可以使用SPC5Studio自帶的SW I2C庫來實現(xiàn),但是由于SPC5Studio軟件資料太少,I2C一直沒有數(shù)據(jù),各位有相關(guān)的資料嗎?
    發(fā)表于 06-09 06:22

    SPC574s如何使用SPC5Studio自帶的I2C實現(xiàn)I2C通信?

    SPC574s并沒有硬件I2C外設(shè),可以使用SPC5Studio自帶的SW I2C庫來實現(xiàn),但是由于SPC5Studio軟件資料太少,I2C一直沒有數(shù)據(jù),各位有相關(guān)的資料嗎?
    發(fā)表于 06-05 08:17

    SPC574s如何使用SPC5Studio自帶的I2C實現(xiàn)I2C通信?

    SPC574s并沒有硬件I2C外設(shè),可以使用SPC5Studio自帶的SW I2C庫來實現(xiàn),但是由于SPC5Studio軟件資料太少,I2C一直沒有數(shù)據(jù),各位有相關(guān)的資料嗎?
    發(fā)表于 05-14 07:10

    基于RT-Thread的I2C(軟件) 實踐 | 技術(shù)集結(jié)

    ,我們可以通過菜單配置工具menuconfig快速設(shè)置軟件I2C的引腳,并借助其內(nèi)部已實現(xiàn)的驅(qū)動程序,方便快捷地完成調(diào)用與開發(fā)。(二)FRDM-MCXA153FR
    的頭像 發(fā)表于 05-06 18:44 ?1032次閱讀
    基于RT-Thread的<b class='flag-5'>I2C</b>(軟件) 實踐 | 技術(shù)集結(jié)

    I2C總線復(fù)用

    帝晶智慧屏I2C總線復(fù)用
    的頭像 發(fā)表于 03-11 17:20 ?2077次閱讀