加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1. gpio節(jié)點
    • 2. gpio_in節(jié)點
    • 3. gpio_out節(jié)點
    • 4. led節(jié)點
    • 5. button節(jié)點
    • 6. adc節(jié)點
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

【EsDA 應(yīng)用】常用IO設(shè)備節(jié)點詳解

2023/09/14
2630
閱讀需 17 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

本文介紹如何通過EsDA開發(fā)套件,快速熟悉常用IO設(shè)備節(jié)點及其使用方法,大大縮短了用戶對EsDA的學(xué)習(xí)開發(fā)周期。

本文選用EPC6450-AWI開發(fā)板,以及圖形化設(shè)計工具AWFlow Designer進行測試講解,對常用IO設(shè)備節(jié)點和使用方法進行詳細說明。

前期了解

對AWFlow工具以及AWFlow理論并不了解的,可以點擊AWFlow文檔進行學(xué)習(xí):https://awtk.zlg.cn/pro/docs/AWFlow/

對AWFlow有一定的了解但是對EsDA和相關(guān)節(jié)點的綜合應(yīng)用并不了解的,可以點擊Z站的EsDA專欄進行學(xué)習(xí):https://z.zlg.cn/specialInfo?id=134

常用節(jié)點簡介

本文將對gpio引腳電平操作的gpio節(jié)點,gpio_in節(jié)點,gpio_out節(jié)點三個節(jié)點,對led燈操作的led節(jié)點,對按鍵操作的button節(jié)點,對adc通道采集的adc節(jié)點進行詳細描述。

1. gpio節(jié)點

1.1 查看幫助文檔

在搜索框中輸入gpio關(guān)鍵字即可檢索出gpio節(jié)點,點擊gpio節(jié)點即可看到右邊彈出gpio節(jié)點的幫助文檔界面,里面包含節(jié)點的簡介以及屬性,輸入和輸出的相關(guān)參數(shù)介紹。用戶可以在此操作下找尋相關(guān)節(jié)點的幫助文檔去了解節(jié)點的相關(guān)參數(shù)。

此節(jié)點將屬性值“GPIO序號”配置為GPIO輸入模式。因該節(jié)點為filter類型節(jié)點,所以有1輸入1輸出,當本節(jié)點輸入值msg.payload不為0時,則讀取屬性值“GPIO序號”的電平值作為輸出;若輸入值msg.payload為0則不將讀取到的引腳電平值進行輸出傳遞,此時無輸出。1.2 屬性

    名稱:可用于索引查找本節(jié)點;顯示名稱:用于畫布上顯示的名稱,僅做顯示;GPIO序號:對需要操作的GPIO引腳序號進行選定,此引腳序號與目標板的絲印一一對應(yīng);模式:設(shè)置GPIO序號引腳的輸入模式,float是浮空輸入,pull up是輸入上拉,pull down是輸入下拉。

1.3 輸入

msg.payload :不為0則表示讀取屬性值“GPIO序號”的電平值,為0則不將讀取到的電平值進行輸出傳遞給下一個節(jié)點。

所有節(jié)點的輸入?yún)?shù)都是由上級節(jié)點的輸出提供的,且通常為msg對象攜帶的對應(yīng)屬性參數(shù)。

1.4 輸出

msg.payload:輸出的數(shù)據(jù),需要注意的是只有當輸入的msg.payload不為0時才有輸出,0表示讀取屬性值“GPIO序號”的電平值為低電平,1表示讀取到的是高電平。

1.5 加載demo示例

在相關(guān)節(jié)點的幫助文檔旁邊有一個示例,點擊后則可以看到對應(yīng)的節(jié)點demo示例,選中查看的demo示例,并加載到項目中即可查看。

1.6 自定義demo1.6.1 繪制流圖添加timer,fscript,gpio,fscript節(jié)點到畫布中并連線如下圖。

1.6.2 節(jié)點配置timer節(jié)點周期性的觸發(fā)fscript節(jié)點,需要更改周期性的時長可雙擊timer節(jié)點,修改屬性值“定時周期”即可。而fscript節(jié)點作為gpio的上級節(jié)點,那么傳遞的則是gpio的輸入值,在此希望能周期性的讀取電平值,所以msg.payload的值不為0即可,gpio的上級節(jié)點fscript的內(nèi)容:

msg.payload = 666

雙擊gpio節(jié)點,選擇目標板對應(yīng)絲印的GPIO序號,在此選擇的模式是浮空輸入如下圖。

gpio節(jié)點的消費者fscript節(jié)點作為輸出,直接打印gpio節(jié)點的輸出值顯示電平值即可,gpio節(jié)點的消費者fscript節(jié)點內(nèi)容如下:

print("read gpio level value is "+msg.payload)

關(guān)于timer,fscript節(jié)點的介紹可參考AWFlow節(jié)點使用手冊:
https://awtk.zlg.cn/pro/docs/AWFlow/1.6.3 下載驗證

將此流圖下載到目標板后,連接調(diào)試串口后,打開串口助手,改變UTX5的電平值可得到如下顯示:

2. gpio_in節(jié)點

將GPIO配置為輸入模式,并輪詢讀取電平狀態(tài)且將其作為輸出值。與gpio節(jié)點功能類似,都是配置為輸入模式且可以將讀取到的電平值作為輸出,只不過gpio_in是不間斷循環(huán)的輸出?,并且gpio節(jié)點還加了一個是否開啟讀電平的輸入。

2.1 屬性

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

顯示名稱:用于畫布上顯示的名稱,僅做顯示;

GPIO序號:對需要操作的GPIO引腳序號進行選定,此引腳序號與目標板的絲印一一對應(yīng);

模式:設(shè)置GPIO序號引腳的輸入模式,float是浮空輸入,pull up是輸入上拉,pull down是輸入下拉;

輪詢:是否開啟以設(shè)定值去輪詢的讀取GPIO序號的電平狀態(tài),off則關(guān)閉用設(shè)定值去輪詢讀取電平狀態(tài)而使用默認的50ms去輪詢讀取,on則以設(shè)定值去輪詢讀取電平狀態(tài)值;

輪詢間隔(ms):以設(shè)定值去輪詢讀取電平狀態(tài),設(shè)置生效的前提是輪詢需為on。

2.2 輸出

    • msg.payload:屬性值“GPIO序號”的電平狀態(tài)值,0為低電平,1為高電平;

msg.topic:固定輸出gpio_in字符串。

pump類型節(jié)點無輸入,相關(guān)類型節(jié)點介紹可查看AWFlow節(jié)點開發(fā)指南進行更多的了解。

2.3 使用方法

2.3.1 繪制流圖

添加timer,fscript,log節(jié)點到畫布中并連接如下圖所示:

2.3.2 節(jié)點配置雙擊gpio_in節(jié)點,選擇目標板對應(yīng)絲印的GPIO序號,在此選擇的模式是浮空輸入,開啟以設(shè)定值2000ms去輪詢讀取gpio電平狀態(tài)值如下圖所示。

gpio_in節(jié)點的消費者節(jié)點fscript是對gpio_in的輸出參數(shù)進行輸出顯示,內(nèi)容如下:

msg.payload = "read gpio status is " + msg.payload + "n" + "msg.topic:"+msg.topic

用log節(jié)點對上一級節(jié)點的msg.payload輸出到調(diào)試窗口進行顯示。

2.3.3 下載驗證

將此流圖以下載運行的模式下載到目標板后,可在AWFlow Designer的調(diào)試窗口查看到如下信息:

3. gpio_out節(jié)點

配置為GPIO輸出,將輸入的msg.payload的值設(shè)置為GPIO的電平值。

3.1 屬性

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

顯示名稱:用于畫布上顯示的名稱,僅做顯示;

GPIO序號:對需要操作的GPIO引腳序號進行選定,此引腳序號與目標板的絲印一一對應(yīng);

模式:設(shè)置GPIO輸出模式,push pull為推挽輸出模式,open drain為開漏輸出模式;

GPIO初始狀態(tài):設(shè)置GPIO初始輸出的狀態(tài)值,0為低電平,1為高電平。

3.2 輸入

msg.payload:設(shè)置屬性GPIO序號的輸出電平值,0為低電平,1為高電平,2為電平翻轉(zhuǎn)。

sink類型節(jié)點無輸出。

3.3 使用方法

3.3.1 繪制流圖添加timer,fscript,gpio_out節(jié)點到畫布中,并連線如下圖所示。

3.3.2 節(jié)點配置timer節(jié)點周期性定時觸發(fā)fscript節(jié)點,這里的timer的屬性定時周期值配置為3000ms,而fscript節(jié)點作為gpio_out節(jié)點的上一級節(jié)點,主要內(nèi)容是設(shè)置gpio_out的輸入?yún)?shù),內(nèi)容如下:

if(((msg.payload/1000)%2)==0) {    msg.payload = 0    print("low leveln")}else {    msg.payload = 1    print("high leveln")}

雙擊gpio_out節(jié)點,選擇目標板對應(yīng)絲印的GPIO序號,在此選擇的模式是推挽輸出。

3.3.3 下載驗證

下載流圖到目標板后,可以用萬用表去查詢GPIO序號對應(yīng)的引腳電平值可知,電平是周期性的翻轉(zhuǎn)。

4. led節(jié)點

該節(jié)點主要有兩種模式,一種是設(shè)置led燈的狀態(tài),一種是設(shè)置快閃燈。

4.1 屬性

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

顯示名稱:用于畫布上顯示的名稱,僅做顯示;

led設(shè)備名稱:Led設(shè)備名稱,可根據(jù)不同的目標板對應(yīng)絲印進行設(shè)備選擇;

初始狀態(tài):對選中的led的設(shè)備設(shè)置初始狀態(tài)值,0為led燈的初始狀態(tài)為滅,1為led燈的初始狀態(tài)為亮。

4.2 輸入

    • msg.device_name:led設(shè)備名稱,將與屬性值“l(fā)ed設(shè)備名稱”進行對比,若不同則該節(jié)點功能無效;msg.payload:模式一,設(shè)置led的狀態(tài)值。0為關(guān)閉led燈,1為開啟led燈,2為翻轉(zhuǎn)led燈;msg.timer:模式二,快閃燈。該輸入?yún)?shù)為設(shè)置定時閃爍的時間,單位ms,若為0則關(guān)閉快閃,大于0則設(shè)置閃爍間隔時間;

msg.fast_blink:模式二,快閃燈。設(shè)置定時快閃的次數(shù),在定時閃爍周期中的快閃次數(shù),輸入?yún)?shù)msg.timer與msg.fast_blink需同步設(shè)置才能生效。

sink類型節(jié)點無輸出。

4.3 設(shè)置燈狀態(tài)示例

4.3.1 繪制流圖

添加timer,fscript,led節(jié)點到畫布中并連線如下圖所示:

4.3.2 節(jié)點配置

timer節(jié)點周期性的去設(shè)置led燈的狀態(tài)值,fscript節(jié)點作為led的上一級節(jié)點,其內(nèi)容主要是對led設(shè)備狀態(tài)的設(shè)置:

msg.payload = 2

雙擊led節(jié)點,在屬性“l(fā)ed設(shè)備名稱”的下拉框中選擇對應(yīng)絲印的LED設(shè)備如下:

4.3.3 下載驗證下載流圖后可看到RUN燈周期性的3s翻轉(zhuǎn)一次。

4.4 快閃燈示例

4.4.1 繪制流圖

添加gpio_in,fscript,led節(jié)點到畫布,并連線如下圖所示:

4.4.2 節(jié)點配置

雙擊gpio_in節(jié)點,本節(jié)點主要作用就是運行流圖后只觸發(fā)一次fscript節(jié)點,所以要開啟定時輪詢,且輪詢間隔需設(shè)置盡量大一點如下圖所示:

fscript節(jié)點作為led的上一級節(jié)點,主要內(nèi)容是led相關(guān)的輸入?yún)?shù),內(nèi)容如下:

if(msg.payload == 0) {    msg.timer = 2000    msg.device_name = "/dev/led_run"    msg.fast_blink = 2    print("fast ledn")}

雙擊led節(jié)點,在屬性“l(fā)ed設(shè)備名稱”的下拉框中選擇對應(yīng)絲印的LED設(shè)備如下:

4.4.3 下載驗證

下載流圖到目標板后,對gpio_in節(jié)點配置的引腳進行電平置低,5s內(nèi)切換到高電平后即可看到led燈2s閃爍2次的實驗現(xiàn)象。

5. button節(jié)點

5.1 屬性

    名稱:可用于索引查找本節(jié)點;顯示名稱:用于畫布上顯示的名稱,僅做顯示;對應(yīng)的GPIO編號:對需要操作的GPIO引腳序號進行選定,此引腳序號與目標板的絲印一一對應(yīng);觸發(fā)條件:按鈕按下時的觸發(fā)條件,fall表示按鈕按下的觸發(fā)條件為GPIO下降沿觸發(fā),up表示按鈕按下的觸發(fā)條件為GPIO上升沿觸發(fā)。

5.2 輸出msg.payload :按鈕按下狀態(tài)輸出為on,松開狀態(tài)輸出為off,在初始化完成以及按鈕狀態(tài)發(fā)生改變的時候會輸出當前的狀態(tài)。

pump類型節(jié)點沒有輸入。

5.3 使用方法

5.3.1 繪制流圖

添加button,fscript,led節(jié)點到畫布中并連線如下圖所示:

5.3.2 節(jié)點配置

雙擊button節(jié)點,對需要操作的引腳進行選擇如下:

fscript節(jié)點作為button的消費者節(jié)點,內(nèi)容是button的相關(guān)輸出參數(shù):

if(msg.payload == "on"){ ? ?msg.payload = 1}else if(msg.payload == "off") { ? ?msg.payload = 0}

雙擊led節(jié)點,選擇閃燈的led設(shè)備。

5.3.3 下載驗證

下載流圖后,對button配置的按鈕進行按下和松開的操作可以看到相應(yīng)led燈的效果。

6. adc節(jié)點

6.1 屬性

    名稱:可用于索引查找本節(jié)點;顯示名稱:用于畫布上顯示的名稱,僅做顯示;通道號:進行采樣的ADC通道號,可根據(jù)不同的目標板對應(yīng)絲印進行設(shè)備選擇;采集次數(shù):ADC 通道對ADC值的采集次數(shù);采樣率:ADC通道號采樣率(每秒ADC的采樣次數(shù))。

6.2 輸出

    • msg.payload:通道采樣的最終電壓值(mv);msg.vref:基準電壓;msg.bits:ADC通道位數(shù);

msg.rate:ADC通道采樣率。

pump類型節(jié)點沒有輸入。

6.3 使用方法

6.3.1 繪制流圖

添加adc,fscript,log節(jié)點到畫布中并連線。

6.3.2 節(jié)點配置

雙擊adc選擇對應(yīng)絲印的ADC設(shè)備如下:

fscript節(jié)點作為adc的消費者節(jié)點,其內(nèi)容主要是adc的相關(guān)輸出參數(shù):

msg.payload = "adc value is "+msg.payload

log節(jié)點對上一級fscript節(jié)點進行輸出顯示。6.3.3 下載流圖

下載流圖后,對adc配置的通道號進行不同電壓值的采樣結(jié)果如下:

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
KSZ8041TLI-S 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, PQFP48
$3.03 查看
KSZ9031RNXCC 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER

ECAD模型

下載ECAD模型
$2.81 查看
KSZ8895MQXI-TR 1 Microchip Technology Inc Ethernet Transceiver, PQFP128
暫無數(shù)據(jù) 查看
致遠電子

致遠電子

廣州致遠電子股份有限公司成立于2001年,注冊資金5000萬元,國家級高新技術(shù)認證企業(yè),廣州市高端工控測量儀器工程技術(shù)研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。

廣州致遠電子股份有限公司成立于2001年,注冊資金5000萬元,國家級高新技術(shù)認證企業(yè),廣州市高端工控測量儀器工程技術(shù)研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

ZLG官方賬號,一個匯聚500名工程師的研發(fā)測試分享平臺,為您提供電子世界領(lǐng)先的產(chǎn)品技術(shù)與行業(yè)解決方案.