99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

【產(chǎn)品應(yīng)用】基于 EsDA MPC-ZC1 快速實現(xiàn) I2C采集監(jiān)測

AGk5_ZLG_zhiyua ? 來源:未知 ? 2023-05-31 18:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

EsDA開發(fā)平臺為產(chǎn)品上線提供動力。本文將基于EsDA開發(fā)平臺,通過拖拽、連線方式,10分鐘快速搭建一個I2C數(shù)據(jù)采集監(jiān)測業(yè)務(wù),為客戶產(chǎn)品開發(fā)、部署、上線縮短周期。

1a7b00ae-ff9a-11ed-90ce-dac502259ad0.jpg??簡介

I2C 是一種串行通信總線,只需SCK、SDA兩根雙向I/O線即可在連接到總線上的設(shè)備之間傳送信息。因其所需引腳少,可擴(kuò)展性強(qiáng),數(shù)據(jù)傳輸速率快等,所以現(xiàn)被廣泛使用于IC間的通訊。在各種嵌入式應(yīng)用場景中,使用I2C總線通信的傳感器也有很多。比如 eeprom、溫濕度傳感器、流量傳感器、壓力傳感器等。

EsDA 平臺在使用I2C總線通信時只需要通過拖拽節(jié)點、連線繪制流圖,即可實現(xiàn)從I2C從機(jī)讀取數(shù)據(jù),大大的簡化了開發(fā)流程,縮短了項目開發(fā)周期,為客戶產(chǎn)品搶占市場提供先機(jī)。

本文基于EsDA開發(fā)平臺,MPC_ZC1作為I2C主機(jī)設(shè)備,定時從TPS02RAH從機(jī)設(shè)備中去讀取溫度寄存器的值,并將采集到的溫度值上傳到ZWS云端,實現(xiàn)溫度實時監(jiān)控功能,該實驗主要用了到timer、fscript、i2c_master_read、log和zws節(jié)點,具體實現(xiàn)請見下文。

1a84ef2e-ff9a-11ed-90ce-dac502259ad0.jpgI2C相關(guān)節(jié)點介紹

I2C外設(shè)共有3個幾點,分別是i2c_master、i2c_master_read和i2c_master_write節(jié)點。i2c_master節(jié)點主要用來配置I2C的設(shè)備名稱以及設(shè)備參數(shù),i2c_master_read節(jié)點主要用于讀取從機(jī)設(shè)備的數(shù)據(jù),i2c_master_write節(jié)點主要用于向從機(jī)設(shè)備寫入數(shù)據(jù)。

1. i2c_master_write節(jié)點

I2C主機(jī)向從機(jī)設(shè)備寫數(shù)據(jù),可配置從機(jī)相關(guān)的設(shè)備信息和通信參數(shù)。

1.1 屬性

1a91fba6-ff9a-11ed-90ce-dac502259ad0.png

  • 名稱(name):節(jié)點名稱,用于索引查找本節(jié)點;
  • 顯示名稱(displayName):用于畫布上顯示的名稱;
  • 主機(jī)配置(i2c master config):綁定一個I2C主機(jī)的配置節(jié)點;
  • 從機(jī)地址(Slave address):從機(jī)設(shè)備的地址;
  • 地址位數(shù)(address bits):從機(jī)的地址位數(shù),由于7位尋址和10位尋址是兼容的所以可以在同一個I2C總線上同時使用7位和10位兩種不同模式的設(shè)備,可配為7位(7 bits);10位(10 bits);
  • 是否忽略從機(jī)應(yīng)答(whether to ignore the slave ack signal):可配:忽略從機(jī)應(yīng)答(ignore);不忽略從機(jī)應(yīng)答(do not ignore);
  • 從機(jī)設(shè)備寄存器地址位寬(SubAddressBitWidth):可配:do not set sub-address表示不設(shè)置從機(jī)的寄存器地址寬度;1 bytes sub-address表示從機(jī)具有1字節(jié)(8位)的寄存器地址寬度;2 bytes sub-address表示從機(jī)具有2字節(jié)(16位)的寄存器地址寬度;4 bytes sub-address表示從機(jī)具有4字節(jié)(32位)的寄存器地址寬度;
  • 從機(jī)設(shè)備寄存器地址(SubAddress):從機(jī)設(shè)備子地址(寄存器地址)。注意從機(jī)設(shè)備寄存器地址位寬為0則不能設(shè)置從機(jī)子地址。
1.2輸入
  • payload :輸入數(shù)據(jù)流,存放需要寫入的數(shù)據(jù)。此節(jié)點接收如下類型的數(shù)據(jù):binary type(二進(jìn)制類型); wbuffer object type(指針類型); string type(字符串類型);

  • payloadLength :需要寫入的數(shù)據(jù)長度,單位字節(jié);

  • subAddress :從機(jī)設(shè)備子地址(寄存器地址)。注意從機(jī)設(shè)備寄存器地址位寬為0則不能設(shè)置從機(jī)子地址。

1.3輸出

sink類型節(jié)點一般并不具備數(shù)據(jù)輸出。

2.i2c_master_read節(jié)點

I2C主機(jī)向從機(jī)設(shè)備中讀數(shù)據(jù):對從機(jī)的設(shè)備地址等進(jìn)行輸入/配置,最后將從機(jī)中讀取到數(shù)據(jù)和長度等信息進(jìn)行輸出。

2.1 屬性

1aa0d3b0-ff9a-11ed-90ce-dac502259ad0.png

  • 名稱(name):節(jié)點名稱,用于索引查找本節(jié)點;

  • 顯示名稱(displayName):用于畫布上顯示的名稱;

  • 主機(jī)配置(i2c master config):綁定一個I2C主機(jī)的配置節(jié)點;

  • 從機(jī)地址(Slave address):從機(jī)設(shè)備的地址;

  • 地址位數(shù)(address bits):從機(jī)的地址位數(shù),可配為7位(7 bits);10位(10 bits);

  • 是否忽略從機(jī)應(yīng)答(whether to ignore the slave ack signal):可配:忽略從機(jī)應(yīng)答(ignore);不忽略從機(jī)應(yīng)答(do not ignore);

  • 是否發(fā)送應(yīng)答(whether send nak):當(dāng)主機(jī)讀取數(shù)據(jù)時主機(jī)是否發(fā)送給從機(jī)的應(yīng)答ACK信號; do not send表示不發(fā)送主機(jī)ACK信號; send表示發(fā)送主機(jī)的ACK信號;

  • 從機(jī)設(shè)備寄存器地址位寬(SubAddressBitWidth):可配:do not set sub-address表示不設(shè)置從機(jī)的寄存器地址寬度;1 bytes sub-address表示從機(jī)具有1字節(jié)(8位)的寄存器地址寬度;2 bytes sub-address表示從機(jī)具有2字節(jié)(16位)的寄存器地址寬度;4 bytes sub-address表示從機(jī)具有4字節(jié)(32位)的寄存器地址寬度;

  • 從機(jī)設(shè)備寄存器地址(SubAddress):從機(jī)設(shè)備子地址(寄存器地址)。注意從機(jī)設(shè)備寄存器地址位寬為0則不能設(shè)置從機(jī)子地址。

2.2輸入
  • Length :讀的數(shù)據(jù)長度,單位字節(jié);

  • subAddress :從機(jī)設(shè)備子地址(寄存器地址)。注意從機(jī)設(shè)備寄存器地址位寬為0則不能設(shè)置從機(jī)子地址;

2.3輸出
  • payload :讀緩沖區(qū),用于存放接受讀取到的數(shù)據(jù),類型pointer.如果下一個節(jié)點為fscript,則可以使用rbuffer讀取數(shù)據(jù);

  • payloadLength :讀的數(shù)據(jù)長度,單位字節(jié);

  • subAddress :從機(jī)設(shè)備子地址(寄存器地址)。注意從機(jī)設(shè)備寄存器地址位寬為0則沒有從機(jī)子地址。

3.i2c_master配置節(jié)點

I2C主機(jī)的通用配置。

3.1 屬性

1aae364a-ff9a-11ed-90ce-dac502259ad0.png

  • 名稱(name):節(jié)點名稱,用于索引查找本節(jié)點,在某些aw_flow_designer的版本被隱藏起來了,只能通過點擊i2c_master_read和i2c_master_write這兩個節(jié)點主機(jī)配置去顯現(xiàn);

  • 顯示名稱(displayName):用于畫布上顯示的名稱;

  • 設(shè)備名(Devname):I2C主機(jī)設(shè)備路徑名;

  • 時鐘頻率(clock frequency):I2C設(shè)備的SCK時鐘頻率。

3.2輸入

config配置節(jié)點一般不具備數(shù)據(jù)輸入。

3.3輸出

config配置節(jié)點一般不具備數(shù)據(jù)輸出。

1a84ef2e-ff9a-11ed-90ce-dac502259ad0.jpg業(yè)務(wù)開發(fā)

1. 采集PT100的實時溫度

MPC_ZC1作為I2C主機(jī)設(shè)備,定時從TPS02RAH從機(jī)設(shè)備中去讀取溫度寄存器的值,并將采集到的溫度值上傳到ZWS云端,實現(xiàn)溫度實時監(jiān)控。

該實驗主要用到timer、fscript、i2c_master_read、log和zws節(jié)點:

  • timer:timer節(jié)點用于定時觸發(fā)采集PT100的溫度;
  • i2c_master_read:i2c_master_read節(jié)點主要用于從從機(jī)設(shè)備讀取數(shù)據(jù);
  • fscript:fscript節(jié)點主要用于對TPS02RAH從機(jī)設(shè)備讀取的數(shù)據(jù)進(jìn)行轉(zhuǎn)換處理
  • 和對i2c_master_read節(jié)點進(jìn)行輸入配置(配置要讀取的字節(jié)長度);
  • log:log對采集到的溫度值進(jìn)行打印顯示;
  • zws:zws節(jié)點將fscript節(jié)點輸出溫度值上報到zws云端。
1.1添加節(jié)點并連線周期性的去讀取I2C從機(jī)TPS02RAH設(shè)備溫度寄存器的值,將timer,fscript,i2c_master_read,log節(jié)點添加到畫布中,并連線繪圖。1ac3cdc0-ff9a-11ed-90ce-dac502259ad0.png1.2配置節(jié)點雙擊timer節(jié)點,打開屬性面板設(shè)置定時周期(ms),周期性的去讀取TPS02的溫度值。雙擊i2c_master_read的輸入節(jié)點fscript,并查看TPS02RAH溫度傳感器的數(shù)據(jù)手冊。得知TPS02RAH溫度寄存器的值有6個字節(jié),且數(shù)據(jù)傳輸順序:先傳輸高字節(jié)后傳輸?shù)妥止?jié),可知前3個字節(jié)存儲通道1的溫度測試結(jié)果,后3個字節(jié)存儲通道2的溫度測試結(jié)果。所以i2c_master_read節(jié)點的輸入:fscript需讀取兩個通道6個字節(jié)的數(shù)據(jù)。其他的參數(shù)可在i2c_master_read節(jié)點的屬性中配置。1ad9285a-ff9a-11ed-90ce-dac502259ad0.png雙擊i2c_master_read節(jié)點,打開屬性面板根據(jù)TPS02RAH的數(shù)據(jù)手冊設(shè)置如下圖所示,并點擊I2C主機(jī)配置的鉛筆圖標(biāo)去設(shè)置I2C主機(jī)設(shè)備路徑名和時鐘頻率。1ae0d622-ff9a-11ed-90ce-dac502259ad0.png雙擊i2c_master_read的輸出消費(fèi)者節(jié)點fscript,將讀取到溫度寄存器的兩個通道溫度根據(jù)下面的溫度轉(zhuǎn)換公式將溫度輸出并打印到log中。TPS02ARH的溫度轉(zhuǎn)換公式:兩通道六字節(jié)數(shù)據(jù),前三位字節(jié)數(shù)據(jù)對應(yīng)通道 1,后三位字節(jié)數(shù)據(jù)對應(yīng)通道 2,操作方法一樣,取通道一數(shù)據(jù)分析如下:1af081da-ff9a-11ed-90ce-dac502259ad0.png當(dāng) value≥223時,即當(dāng)前測量溫度為負(fù)溫度值:1b0618ec-ff9a-11ed-90ce-dac502259ad0.png

當(dāng) value<223時, 即當(dāng)前測量溫度為正溫度值:

1b1d09a8-ff9a-11ed-90ce-dac502259ad0.png

i2c_master_read的輸出消費(fèi)者節(jié)點fscript的內(nèi)容如下:

//將讀取的6個uint8_t類型的數(shù)據(jù)打印
rb = rbuffer_create(msg.payload, msg.payloadLength)


temperature1 = 0 //通道1的溫度
temperature2 = 0 //通道2的溫度
for (var i = 0; i < msg.payloadLength; i = i+1) {
    d = rbuffer_read_uint8(rb);
    if(i > 2){
        temperature2 = temperature2 + (u32(d)<<(8*(5-i)));
    }
     temperature1 = temperature1 + (u32(d)<<(8*(2-i)));
}
if (temperature1 < 8388608) {//temperature<2^23正溫度
    msg.temperature1 = temperature1/8192
} else {//負(fù)溫度
    msg.temperature1 = -(16777216 - temperature1)/8192
}
if (temperature2 < 8388608) {
    msg.temperature2 = temperature2/8192
} else {//負(fù)溫度
    msg.temperature2 = -(16777216 - temperature2)/8192
}
msg.payload = join(",","channel 1:",msg.temperature1,"channel 2:",msg.temperature2)


print(msg.payload)

1.3下載驗證

選擇流圖下載接口,并點擊運(yùn)行按鈕。

1b391ab2-ff9a-11ed-90ce-dac502259ad0.png

完成流圖下載,根據(jù)實物連線可知PT100連接的是通道1,隨著手捂探頭,可以看到channel 1(通道1)的溫度從27.67上升到30.23,因為channel 2(通道2)沒有接PT100的探頭所以數(shù)值保持850不變。

1b49033c-ff9a-11ed-90ce-dac502259ad0.jpg

1b52c4b2-ff9a-11ed-90ce-dac502259ad0.png

1b5d1728-ff9a-11ed-90ce-dac502259ad0.png

1.4接入zws云端

登錄:https://www.zlgcloud.com/按照EsDA MPC-ZC1應(yīng)用:IoT監(jiān)測控制系統(tǒng)(一)這篇文章中接入云端方法的介紹,在ZWS云端上為MPC-ZC1添加新的數(shù)據(jù)點,如下圖所示:添加通道1 的溫度顯示:

1b6ad6e2-ff9a-11ed-90ce-dac502259ad0.png

添加通道2 的溫度顯示:

1b79dca0-ff9a-11ed-90ce-dac502259ad0.png

在AW_FLOW Designer畫布中添加zws_iot_data_out節(jié)點并連線。

1b8837a0-ff9a-11ed-90ce-dac502259ad0.png

輸入對應(yīng)的三元組信息并選擇正確的數(shù)據(jù)上報方式和目標(biāo)鍵值對。

1b9a1010-ff9a-11ed-90ce-dac502259ad0.png

下載流圖并觀察云端設(shè)備列表的實時數(shù)據(jù)如下圖所示。

1ba8a6ca-ff9a-11ed-90ce-dac502259ad0.png

1a84ef2e-ff9a-11ed-90ce-dac502259ad0.jpg技術(shù)交流長按識別如下二維碼可加入“工控板/核心板技術(shù)交流群”,與志同道合的朋友交流,并有專業(yè)技術(shù)人員為您答疑解惑,如有問題可以咨詢小致微信zlgmcu-888。

1bc65b0c-ff9a-11ed-90ce-dac502259ad0.png


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

    關(guān)注

    13

    文章

    412

    瀏覽量

    31928

原文標(biāo)題:【產(chǎn)品應(yīng)用】基于 EsDA MPC-ZC1 快速實現(xiàn) I2C采集監(jiān)測

文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    I2C總線復(fù)用

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

    I2C總線通信原理 如何設(shè)計I2C總線電路

    I2C總線通信原理 I2C(Inter-Integrated Circuit)總線是一種用于集成電路之間進(jìn)行通信的串行通信協(xié)議。它最早由飛利浦公司(現(xiàn)被恩智浦電子收購)于1982年推出,是一種簡單
    的頭像 發(fā)表于 01-31 15:01 ?1139次閱讀

    I2C總線的優(yōu)缺點分析

    I2C總線作為一種廣泛使用的串行通信協(xié)議,以其簡單性和高效性在嵌入式系統(tǒng)中占據(jù)著重要地位。 I2C總線的優(yōu)點 1. 簡單性和低成本 I2C總線只需要兩條線(數(shù)據(jù)線SDA和時鐘線SCL)
    的頭像 發(fā)表于 01-17 15:50 ?1167次閱讀

    I2C總線與Arduino的接口示例

    在現(xiàn)代電子設(shè)計中,I2C總線因其簡單性和靈活性而廣受歡迎。它允許多個設(shè)備共享同一通信線路,從而節(jié)省空間和成本。Arduino,作為一個多功能的微控制器平臺,自然也支持I2C通信。 I2C總線
    的頭像 發(fā)表于 01-17 15:34 ?1607次閱讀

    I2C總線協(xié)議詳細(xì)解析

    1. I2C總線簡介 I2C總線由Philips Semiconductor(現(xiàn)為NXP Semiconductors)在1980年代初期開發(fā)。它是一種多主機(jī)總線,允許多個設(shè)備共享同一總線。I
    的頭像 發(fā)表于 01-17 15:22 ?910次閱讀

    I2C總線故障排除技巧

    導(dǎo)致整個系統(tǒng)的功能受到影響。 1. 檢查硬件連接 1.1 確認(rèn)電源和接地 首先,確保I2C設(shè)備的電源和接地連接正確無誤。不良的電源或接地連接可能導(dǎo)致信號不穩(wěn)定,從而引發(fā)通信錯誤。 1.2 檢查總線線纜 檢查SDA和SCL線是否正確連接,并且沒有損壞。在長距離傳
    的頭像 發(fā)表于 01-17 15:20 ?2354次閱讀

    I2C總線應(yīng)用實例分析

    。I2C總線使用兩條線進(jìn)行通信:數(shù)據(jù)線(SDA)和時鐘線(SCL)。這種雙線制設(shè)計使得I2C總線能夠在多個設(shè)備之間共享,而不需要為每個設(shè)備單獨布線。 應(yīng)用實例:溫濕度傳感器 假設(shè)我們正在設(shè)計一個智能家居系統(tǒng),需要實時監(jiān)測室內(nèi)的溫
    的頭像 發(fā)表于 01-17 15:09 ?753次閱讀

    I2C總線上拉電阻阻值如何確定?

    導(dǎo)讀I2C總線在產(chǎn)品設(shè)計中被廣泛應(yīng)用,盡管其結(jié)構(gòu)簡單,但經(jīng)常發(fā)生上拉電阻設(shè)計不合理的問題。本文將對I2C上拉電阻的選擇進(jìn)行簡要分析。一根信號線上,通過電阻連接一個固定的高電平VCC,信號線初始、空閑
    的頭像 發(fā)表于 12-27 11:34 ?1859次閱讀
    <b class='flag-5'>I2C</b>總線上拉電阻阻值如何確定?

    RISC V的I2C操作

    。tsuData中,1代表10ns;Timeout中,1表示10nstLow和tHigh的1代表10ns10.1.3 軟件部分(Risc V)l? I2C通信主要包括以下幾個部分:
    的頭像 發(fā)表于 11-01 11:06 ?733次閱讀

    了解I2C總線

    電子發(fā)燒友網(wǎng)站提供《了解I2C總線.pdf》資料免費(fèi)下載
    發(fā)表于 10-08 11:13 ?2次下載
    了解<b class='flag-5'>I2C</b>總線

    TAS5421-Q1和TAS5411-Q1 I2C應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《TAS5421-Q1和TAS5411-Q1 I2C應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 09-26 10:35 ?0次下載
    TAS5421-Q<b class='flag-5'>1</b>和TAS5411-Q<b class='flag-5'>1</b> <b class='flag-5'>I2C</b>應(yīng)用說明

    I2C基本指南

    電子發(fā)燒友網(wǎng)站提供《I2C基本指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-10 09:40 ?0次下載
    <b class='flag-5'>I2C</b>基本指南

    具有熱插拔功能和IEC ESD功能的隔離式I2C緩沖器如何改進(jìn)隔離式I2C

    電子發(fā)燒友網(wǎng)站提供《具有熱插拔功能和IEC ESD功能的隔離式I2C緩沖器如何改進(jìn)隔離式I2C.pdf》資料免費(fèi)下載
    發(fā)表于 09-07 09:58 ?0次下載
    具有熱插拔功能和IEC <b class='flag-5'>ESD</b>功能的隔離式<b class='flag-5'>I2C</b>緩沖器如何改進(jìn)隔離式<b class='flag-5'>I2C</b>

    I2C靜電放電防護(hù)方案

    100 kbps至5 Mbps。該總線在嵌入式系統(tǒng)設(shè)計領(lǐng)域使用廣泛,主要應(yīng)用于低速外設(shè)與處理器、微控制器之間的互連,如溫度傳感器、LCD顯示屏驅(qū)動器、數(shù)模轉(zhuǎn)換器等。 由于I2C總線需外接線路以傳輸數(shù)據(jù),易受ESD靜電放電等不利因素侵?jǐn)_,對終端
    的頭像 發(fā)表于 08-21 15:34 ?996次閱讀
    <b class='flag-5'>I2C</b>靜電放電防護(hù)方案

    簡單認(rèn)識I2C通信協(xié)議

    I2C(Inter-Integrated Circuit)通信協(xié)議是由飛利浦公司(現(xiàn)為恩智浦半導(dǎo)體)開發(fā)的一種簡單、雙向二線制同步串行總線協(xié)議。自1982年發(fā)布以來,I2C協(xié)議因其高效、靈活和易于實現(xiàn)的特點,在電子設(shè)備間的數(shù)據(jù)交
    的頭像 發(fā)表于 07-25 18:06 ?2625次閱讀