a片在线观看免费看视频_欧美婬片在线a_同性男男无遮挡无码视频_久久99狠狠色精品一区_《性妲己》电影在线观看_久久久99婷婷久久久久久_亚洲精品久久久久58_激情在线成人福利小电影_色婷婷久久综合五月激情网

0 賣盤信息
BOM詢價
您現在的位置: 首頁 > 技術方案 >工業控制 > 基于STM32H750實現電機控制節點維護設備設計方案

基于STM32H750實現電機控制節點維護設備設計方案

來源:
2023-12-22
類別:工業控制
eye 21
文章創建人 拍明芯城

在詳述實現過程之前,我們先看一下 ST 專家點評。

ST專家點評

從這個評測貼中我們可以看到這位同學給我們展示了如何使用STM32H750+TouchGFX開發平臺快速開發一個使用STM32H7對電機進行控制的應用。從UI設計的角度來看:UI的設計非常好,這位工程師對UI設計方面也是非常有心得的,由于UI設計的非常好,再加上TouchGFX Designer的布局和交互,設計出來的界面非常美觀。在UI設計方面,使用很多TouchGFX Designer自帶的控件進行UI設計,基礎控件:如圖片/文本/進度條控件進行基礎布局,使用滑動容器控件和靜態圖表控件用與實現子頁面滑動/圖表等功能;并通過TouchGFX 模擬器進行仿真測試,很方便的開發出一款界面美觀交互友好的嵌入式GUI產品。

從數據處理的角度看:UI設計好后,通過MVP機制對UI和后端數據處理進行分離對電機進行控制,前后端分離,方便未來增加和擴展更多功能。

從整體設計來看:設計的UI非常美觀,接近智能手機/手表的用戶體驗,功能實現比較完整. 是一個很好的的UI設計作品。

1.png

一、項目介紹

參加STM32論壇的STM32H750B-DK評測活動,利用提供的開發板做一個前期驗證項目。驗證項目是做一個手持的電機運動節點維護設備,方便攜帶到現場對電機進行維護,這里暫且稱為PAD。(實物演示視頻見本文上方作品展示)PAD通過UART與電機控制節點連接通訊(如下圖所示),當檢測到設備接入,PAD獲取其設備信息狀態,包括固件版本、PCB版本、運行日志等。通過PAD還可以控制電機做一些簡單的運動測試,配置電機的運動參數,如加速度、速度、電流等。由于時間有限,目前僅實現上述功能。


image.png


二、開發板STM32H750B-DK

開發板資源豐富,本項目比較關注的資源情況:

Arm? Cortex?-M7 內核(帶雙精度浮點單元),400MHz主頻

4.3英寸RGB LCD,電容屏

外擴2 x 512Mbit Flash

擴128 Mbit SDRAM

UART接口

持Chrom-ART圖形加速

三、設計工具

STM32CubeMX

STM32CubeIDE 1.9.0

TouchGFX Designer V4.20

項目中用到的TouchGFX資源

(1)控件(Widget)

Box

Button

Image

Slider

Static Graph

Swipe Container

Text Area

Texture Mapper

(2)實現UI動效使用到的TouchGFX內置的交互動作(Interactions Action)

Call new virtual function

Change screen

Move Widget

Fade Widget

Wait for

四、界面設計

不會UI設計的電子工程師不是好廚師,所以這一次親自操刀設計,整體設計風格采用我喜歡的“毛玻璃效果”。TouchGFX Designer的模擬器非常實用,大大提高了調試效率,以下圖片均來自模擬器的截圖。實際上,模擬器的顯示效果與直接目視比較接近,視頻拍出來的效果比實際差了不少,屏幕顏色不對,還有條紋。。。截圖只能看靜態效果,動態效果請大家觀看文章上方視頻演示。目前實現了5個界面:開機、連接、功能選擇、信息顯示、電機控制。

4.1 開機動畫

4.2 連接界面

4.3 功能選擇界面

4.4信息顯示界面

4.5電機控制界面

五、硬件交互

使用TouchGFX的MVP框架實現GUI與硬件的雙向交互。MVP的全稱為Model-View-Presenter,Model提供數據,View負責顯示,Controller/Presenter負責邏輯的處理。在本項目中主要是檢測用戶在觸摸屏上的操作,轉換成相應的UART命令發送至外部電機控制板;當外部電機控制板的狀態發生變化時,也會主動發送數據到開發板,此時GUI負責刷新界面顯示的相關內容。MVP框架應該是TouchGFX中不易掌握的部分,UI怎么和硬件交互?這個是根本,每個項目都會涉及到。這里以本項目中的UART為例說明一下,如何通過操作屏幕上的按鈕來控制UART發送數據。

以上述界面截圖中的STOP按鈕為例。在TouchGFX Designer中,我們給Screen1添加STOP按鈕,命名為con_stop(很多資料中介紹了這些基本操作,這里不再累述),我們要實現通過電擊此按鈕向UART發送數據。在界面右側的Interactions中添加con_stop按鈕的點擊事件。如圖上所示,觸發條件為按鈕點擊(序號1);觸發源選擇為con_stop按鈕(序號2);觸發執行的動作為調用一個虛函數,虛函數的名稱我們設定為con_stop_clicked(序號3)。然后按下F4執行Generate Code生成代碼。TouchGFX Designer會自動生成這個函數的定義,在STM32cubeIDE中查看Screen1VeiwBase.hpp文件,可以看到此虛函數的聲明:

virtual void con_stop_clicked() { }

(1)手動在Screen1View.hpp文件中給Screen1View類添加此虛函數:

virtual void con_stop_clicked();

手動在Screen1View.cpp中添加此虛函數的實現部分:

voidScreen1lView::con_stop_clicked()

{

presenter->con_stop_clicked();

}

上面這個函數調用了presenter中的con_stop_clicked()函數(函數名可以自己定),實際上這個函數我們還沒有實現,接下來給presenter添加這個函數。

(2)手動在Screen1Persenter.hpp中,給Screen1Persenter類中添加函數con_stop_clicked:

virtual void con_stop_clicked();

手動在Screen1Persenter.cpp中添加這個函的實現:

voidScreen1Presenter::con_stop_clicked()

{

model->con_stop_clicked();

}

(3)上面這個函數調用了model中的函數con_stop_clicked(這個函數名也可以自己定),好吧實際上這個函數我們也還沒實現,接下來繼續。

手動在model.hpp文件中給Model類添加這個函數:

void con_stop_clicked();

手動在model.cpp中添加上面函數的實現部分。

voidModel::con_stop_clicked()

{

uart_send_cmd_stop();

}

uart_send_cmd_stop()函數上就是發送UART數據的部分了,通常情況下是在uart.c中實現的,內容類似下面這個。

HAL_UART_Transmit( huart1, (const uint8_t*) str, len, 1000);

在model.cpp中我們把uart_send_cmd_stop()這個函數作為外部函數引入:

extern"C"

{

externvoiduart_send_cmd_stop();

}

#endif

實際上這里偷懶了。項目中使用了FreeRTOS,有一個Uart_Task任務,負責UART的數據收發處理。在多任務的情況下,多個任務涉及同一個硬件應該確保互斥訪問。所以這里應該使用信號量,改變信號量的狀態來通知Uart_Task任務實際發送數據到UART。

一波操作下來, View ---> Presenter ---> Model ---> UART,千山萬水有點麻煩,不過MVP的優點還是很多的,想要了解更多大家可以問問百度。

六、總結

之前一直用LVGL,做過一些項目,也算是比較熟悉了。最近半年才開始使用 TouchGFX。一番體驗下來不得不說,在 STM32上做 GUI 應用 TouchGFX 確實很有優勢,畢竟是 ST 親兒子,先天優勢,生態全、控件多,實現各種炫酷效果不在話下。最方便的是幾乎不需要怎么優化,不用操心什么 DMA2D、LDTC……,底層ST都幫你搞好了,跑起來效果就已經非常流暢。ST 新出的 NeoChrom GPU 看介紹更牛X,有機會到要試試到底有多牛。

TM32H750超值系列微控制器包含Arm? Cortex?-M7內核(具有雙精度浮點單元),工作頻率高達480 MHz。內嵌的128 KB閃存使意法半導體能夠為開發人員提供一種經濟劃算的解決方案。

性能

在480 MHz的CPU頻率下,從Flash執行程序時,STM32H742系列能夠提供2424 CoreMark /1027 DMIPS的性能,利用其L1緩存并實現了零等待執行。

內嵌的128 KB閃存,面向用戶可信根服務、關鍵實時程序執行和外部存儲器的簡單配置

L1緩存(16 KB的I-緩存 +16 KB的D-緩存)提高外部存儲器的執行性能。

安全性

STM32H750集成了:

加密/哈希硬件加速

STM32H757還支持安全固件安裝(SFI)嵌入式安全服務,可在執行初始程序時執行安全驗證并保護軟件IP。

安全啟動和安全固件升級(SBSFU)

高能效

多電源域架構可實現將不同的電源域配置為低功耗模式,進而優化功耗效率。

USB調節器提供嵌入式物理接口層(PHY)。

在內核運行模式(關閉外設)下,功耗典型值為275 μA/MHz @VDD = 3.3 V和25 °C

圖形

LCD-TFT控制器接口支持雙層圖形

Chrom-ART Accelerator?提高了圖形內容創建速度,并為其他應用節省了MCU內核處理帶寬

JPEG硬件加速器,可進行快速JPEG編碼和解碼,從而減輕CPU編解碼負荷。

片內外設

多達35個通信接口包括FD-CAN、USB 2.0高速/全速、以太網MAC、攝像頭接口。

可利用帶有32位并行接口(支持SRAM、PSRAM、NOR、NAND和SDRAM存儲器)或雙模Quad-SPI串行閃存接口的靈活存儲控制器輕松擴展外部存儲器。

模擬外設:12位DAC,快速16位ADC

16位高精度定時器上的多個16位和32位定時器運行頻率高達480 MHz。

STM32H750超值系列提供128 KB的Flash存儲器,具有以下結構的1 MB SRAM:192 KB的TCM RAM(包括64 KB的ITCM RAM和128 KB的DTCM RAM,用于時間關鍵型程序和數據),高達512 KB的用戶SRAM,以及備份域中4 KB的SRAM,可將數據保持在最低功耗模式,提供LQFP100、LQFP144、LQFP176、UFBGA176和TFBGA240封裝。

ST意法半導體公司的STM32H750微控制器是他們現有的STM32H7產品的價值線。通過限制產品中嵌入式Flash的數量,這條價值線提供了一個突破性的價格水平,在STM32H7系列中沒有提供到目前為止。STM32H7值線仍然提供了足夠的嵌入式Flash來安全地存儲引導代碼或實時代碼和數據。

STM32H750設備基于高性能Arm Cortex-M7 32位RISC核心,工作頻率高達400 MHz。Cortex-M7核心具有一個浮點單元(FPU),支持Arm雙精度和單精度數據處理指令和數據類型。STM32H750設備支持全套DSP指令和內存保護單元(MPU),以提高應用程序的安全性。

所有的設備提供三個adc,兩個dac,兩個超低功耗比較器,一個低功耗RTC,一個高分辨率定時器,12個通用16位定時器,兩個用于電機控制的PWM定時器,五個低功耗定時器,一個真正的隨機數發生器(RNG),和一個密碼加速單元。該器件支持外部sigma-delta調制器(DFSDM)的四個數字濾波器。它們還具有標準和先進的通信接口。

STM32H750xB器件工作在-40°C至+85°C的溫度范圍內,電源為1.62 V至3.6 V。通過使用外部電源管理器并將PDR_ON引腳連接到VSS,供電電壓可以降至1.62 V。否則,電源電壓必須保持在1.71 V以上,嵌入式電源電壓檢測器啟用。除了LQFP100以外,所有包上都有USB專用電源輸入,以允許更大的電源選擇。一套全面的節能模式允許低功耗應用程序的設計。

STM32H750xB器件提供三種封裝,范圍從100針到240針/球。外設集包括所選設備的更改。

STM32H750特性

32位Arm Cortex-M7內核

128千字節的閃存

安全

ROP, PC-ROP,主動篡改,安全固件升級支持,安全訪問模式

通用輸入/輸出

多達168個I/O端口具有中斷能力

復位和電源管理

低功率消耗

時鐘管理

互連矩陣

4個DMA控制器卸載CPU

多達35個通信外設

11模擬外設

圖形

LCD-TFT控制器高達XGA分辨率

Chrom-ART圖形硬件加速器(DMA2D),以減少CPU負載

硬件JPEG編解碼器

多達22個計時器和看門狗

加密加速

調試模式

96位的惟一ID

所有包都是ECOPACK2兼容的

STM32H750應用領域

電機驅動和應用控制

醫療設備

工業應用

報警系統,視頻對講機,暖通空調

家用音響設備

移動應用、物聯網

PLC)

逆變器

斷路器

打印機和掃描儀

可穿戴設備:smartwatches

來源:STM32論壇網友moticsoft 版權歸原作者所有

直接轉載來源:STM32公眾號


責任編輯:David

【免責聲明】

1、本文內容、數據、圖表等來源于網絡引用或其他公開資料,版權歸屬原作者、原發表出處。若版權所有方對本文的引用持有異議,請聯系拍明芯城(marketing@iczoom.com),本方將及時處理。

2、本文的引用僅供讀者交流學習使用,不涉及商業目的。

3、本文內容僅代表作者觀點,拍明芯城不對內容的準確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨立判斷做出的,請讀者明確相關結果。

4、如需轉載本方擁有版權的文章,請聯系拍明芯城(marketing@iczoom.com)注明“轉載原因”。未經允許私自轉載拍明芯城將保留追究其法律責任的權利。

拍明芯城擁有對此聲明的最終解釋權。

相關資訊

拍明芯城微信圖標

各大手機應用商城搜索“拍明芯城”

下載客戶端,隨時隨地買賣元器件!

拍明芯城公眾號
拍明芯城抖音
拍明芯城b站
拍明芯城頭條
拍明芯城微博
拍明芯城視頻號
拍明
廣告
恒捷廣告
廣告
深亞廣告
廣告
原廠直供
廣告