yj hung

USB-HID on STM32H750(Host)-1

USB-HID的初步認識 Descriptor即描述符,是一個完整的數據結構,可以通過C語言等編程實現,並存儲在USB設備中,用於描述一個USB設備的所有屬性,USB主機是通過一系列命令來要求設備發送這些信息的。USB有5種標準描述符:設備描述符 、配置描述符、字符描述符、接口描述符、端點描述符  。 HID描述符是關聯於接口(而不是端點)的,所以設備不需要爲每個端點都提供一個HID描述符。 設備描述符 配置描述符 字符描述符 接口描述符 端點描述符 HID讀寫設備 參考 USB初學(一)—USB-HID的初步認識 USB-HID相關筆記 MOOC-STM32 USB Training

USB-HID on STM32H750(Host)-1 Read More »

TouchGFX Introduction(STM32H750)

TouchGFX TouchGFX Designer:TouchGFX中易於使用的GUI建構工具,讓您可以建立TouchGFX應用程式的視覺外觀。 TouchGFX Generator:STM32CubeMX外掛程式,讓使用者可以依據STM32硬體來設定並產生客製化的TouchGFX抽象層(AL)。 TouchGFX Engine:一套用以驅動UI應用程式的TouchGFX C++框架。 包含螢幕更新(screen updates)、使用者事件(user events)和時序(timing)…等等的處理。 先進的TouchGFX技術針對STM32微控制器作最佳化,可在最低的CPU負荷及記憶體用量下達到最佳的性能。 TouchGFX Key Features TouchGFX provides support for DPI (parallel RGB), DBI (FMC/SPI), and DSI display interfaces 1bpp, 2bpp, 4bpp, 16bpp and 24bpp color displays 系統架構 前置作業安裝與配置 因這次使用H750,flash部分會需要外掛,因此在起步配置上會相對較複雜,這邊直接切入記憶體配置部分詳細說明 透過CubeMX安裝TouchGFX 設定MPU(memory protection unit) Enable FreeRTOSCMSIS_V2 加入Queue傳遞Touch功能的指令 加入TouchGFXLibrary專案 設定TouchGFX參數 Start Address與Start2 Address各需要一個Frame buffer 480x272x2(RBG565) = 0x3FC00

TouchGFX Introduction(STM32H750) Read More »

STM32 Watchdog Introduction

前言 IWDG(Independent watchdog)獨立看門狗,可以用來檢測並解決由於軟體錯誤導致的故障,當計數器到達給定的超時值時,會觸發一箇中斷或產生系統復位獨立看門狗的時鐘是它專用的低速時鐘(LSI),所以它能保持工作及時主時鐘出現問題。視窗看門狗的時鐘是有APB1時鐘分頻得到得到,通過可配置的時間視窗來檢測應用程式非正常的過遲或過早的操作。 視窗看門狗(Window watchdog)通常被用來監測,由外部干擾或不可預見的邏輯條件造成的應用程式背離正常的執行序列而產生的軟體故障。除非遞減計數器的值在 T6 位變成 0 前被重新整理,看門狗電路在達到預置的時間週期時,會產生一個 MCU 復位。如果在遞減計數器達到視窗暫存器值之前重新整理控制暫存器中的 7 位遞減計數器值,也會產生 MCU 復位。這意味著必須在限定的時間視窗內重新整理計數器 獨立看門狗功能描述 Note:(IWDG_KR)寫入0XCCCC,獨立看門狗就會啟動,計數器開始下降從復位值0XFFF。當計數器值到達0,會產生一個復位訊號(獨立看門狗復位)無論何時向關鍵字暫存器寫入0XAAAA,IWDG_RLR的數值會過載進計數器,避免看門狗復位 暫存器訪問保護 IWDG_PR 和 IWDG_RLR 暫存器具有寫訪問保護。若要修改暫存器,必須首先對 IWDG_KR暫存器寫入程式碼 0x5555。而寫入其他值則會破壞該序列,從而使暫存器訪問保護再次生效。這意味著重灌載操作(即寫入 0xAAAA)也會啟動防寫功能。狀態暫存器指示預分頻值和遞減計數器是否正在被更新 除錯模式 當微控制器進入除錯模式時( Cortex™-M3 核心停止), IWDG 計數器會根據 DBG 模組中的 DBG_IWDG_STOP 配置位選擇繼續正常工作或者停止工作。下圖是LSI在不同分頻情況下IWDG超時週期的最小值和最大值。 視窗看門狗功能描述 如果視窗看門狗啟動(WWDG_CR暫存器的WDGA位置1),7位向下計數器從0X40向0x3F滾動(T6已經清零),會導致一個復位。如果軟體過載計數器,當計數器值大於視窗所儲存的值時,就會產生復位 應用程式必須在正常操作期間寫WWDG_CR暫存器去組織MCU復位。這個操作必須發生在計數器值小於視窗暫存器值。視窗暫存器值儲存在WWDG_CR暫存器,必須在0XFF和0XC0之間。 Note:(看門狗中斷高階特性)如果在產生實際復位之前必須執行特定的安全操作或資料記錄,則可使用提前喚醒中斷(EWI)。通過設定 WWDG_CFR 暫存器中的 EWI 位使能 EWI 中斷。當遞減計數器的值為0x40 時,將生成 EWI 中斷。在復位器件之前,可以使用相應的中斷服務程式 (ISR) 來觸發特定操作(例如通訊或資料記錄)。在某些應用中,可以使用 EWI 中斷來管理軟體系統檢查和/或系統恢復/功能退化,而不會生成 WWDG 復位。在這種情況下,相應的中斷服務程式 (ISR)

STM32 Watchdog Introduction Read More »

STM32 DMA Introduction On STM32WB

DMA的基本介紹 DMA,全名Direct Memory Access,即直接暫存器訪問。DMA傳輸將數據從一個地址空間複製到另一個地址空間,提供在外存器之間或者暫存器和暫存器之間的高速數據傳輸。無須CPU的介入,透過DMA數據可以快速地移動 DMA mapping 因WB系列是L4系列+Core-M0+因此這邊直接參考L4的Mappong圖表,且由圖表可以知道那些通道支援什麼類型資料存取 DMA事務 DMA傳輸事務包含一系列的给定數目的數據傳輸序列。傳輸的數目可以透過軟體設定,8位,16位或32位。每一次DMA傳輸包含3个操作 透過 DMA_SxPAR 或 DMA_SxM0AR 暫存器,外部數據暫存器或存儲器單元中加載數據。 透過 DMA_SxPAR 或 DMA_SxM0AR 暫存器,將加載的數據存儲到外部數據暫存器或存儲器內 DMA_SxNDTR 計數器在數據存儲结束後遞減,該計數器中包含仍需执行的事務數 DMA Function介紹 表格為F10X系列在WB系列可以參考Description of STM32WB HAL and low-layer drivers (P181 DMA Firmware driver API description)在部分function上有更動 DMA使用 1、查询方式查询方式可以不使能DMA中斷,透過DMA_GetFlagStatus函数判斷旗標位來辨别是否傳輸完成或過半以及出错,然後關閉DMA通道,用DMA_SetCurrDataCounter函数重設缓存大小,完成相應操作後清除旗標位再使能DAM通道。2、中斷方式DMA中斷一般用於定長數據傳輸,以傳輸完成中斷為例。(1)當產生DMA傳輸完成中斷後,清除中斷旗標位、傳輸完成旗標位;(2)關閉DMA通道;(3)處理數據(4)重新設定DMA通道的DMA缓存的大小(可以省去);(5)開啟DMA通道3、不定長度數據傳輸以串口為例,不定長度數據傳輸的時候,可以透過串口空閒中斷来判斷傳輸是否完成(傳輸缓存大小要大於傳輸的數據大小),數據長度可以透過DMA_GetCurrDataCounter函数来計算,然後關閉DMA通道,重設DMA缓存的大小,再開啟DMA通道。4、雙緩衝方式設定2個緩衝區,設定一個緩衝區flag(用來區分當前是處在哪個緩衝區),每完成一次傳輸就透過重新配置DMA_MemoryBaseAddr的緩衝區地址,下次傳輸數據就會保存到新的緩衝區中,可以透過自定暫存區flag来判斷和切換(。 參考 【STM32】 DMA原理,步骤超细详解,一文看懂DMA RM0473 Reference manual RM0434 Reference manual STM32 DMA详解 STM32 | DMA配置和使用如此简单(超详细) Description of STM32WB

STM32 DMA Introduction On STM32WB Read More »

LDM_Module_RPS800(TOF Measuring)

Features and Applications FEATURES TOF Measuring LowConsumption Sensor. *1 Measuring rage up to 9m *2 Adjustable High Speed measuring up to 2000HZ. Digital output with UART. Highly Customizable modulefit for most duties. APPLICATIONS Robot Eyes DistanceMeasuring Positioning and monitor of objects Security Applications Movement Detections Level and elevator Measuring Drone Dodge Actions Control Electrical and

LDM_Module_RPS800(TOF Measuring) Read More »

Add Position Controll on MC SDK 5.x

前言 在 MC SDK 5.x 中有兩個環路控制,分别是电流環和速度環(力矩環),有些應用需要使用到位置環,比如無人機的雲平台馬達控制,地鐵閘門等等應用,本文將闡述如何在現有 ST 馬達涵式庫基础上增加簡易的位置環,使其能夠擁有3環控制方式使其更加穩定 理論基礎 如果在有減速齒輪馬達上,需要加入速度環以更快速的到達到給定位置,也就是三環控制:位置環+速度還+電流環,框架同如下: 實作步驟 在MCSDK上增加DAC模塊。如果MCU上没有DAC模塊,可以使用TIMER+RC濾波電路模擬輸出DAC;下圖為使用DAC配置,需要配置Userdefined DAC1/2。 增加以下變量或函數用於位置環控制 位置環 PID 結構體 PID_Handle_t PIDAngleHandle_M1 位置控制的結構體 Position_Handle_t 位置角度誤差 Position_GetErrorAngle 位置環速度参考輸出計算 Position_CalcSpeedReferrence 位置環力矩参考輸出计算 Position_CalcTorqueReferrence 参考 mc_position.h 以及 mc_position.c mc_task.c 文件修改 增加 DAC 輸出程序 增加位置控制程序 在 mc_task.c 的中頻任务函数 TSK_MediumFrequencyTaskM1 中增加位置環差值數據計算,根據差值計算,當差值在閥值之上的話進行速度控制,否則進行力矩控制 修改参考電流計算 馬達累積圈數計算 測試 參考 【ST 实战经验】MC SDK 5.x 中增加位置环 MC SDK 5.x 介绍

Add Position Controll on MC SDK 5.x Read More »

STM32 firmware library package

前言 有時必須给别人自己的code應用,但是又不想直接给C源碼,這時候就可以把某些機密 .c 文件編譯成 .lib 文件给别人用,但如何使用cubeIDE把project編譯成lib?這邊就會教學如何使用cubeIDE編輯lib和如何應用lib(因部分lib引用會出現不可預期錯誤) STM32CubeIDE   如何能生成 Lib? 這邊會有2種方把可以生成Lib Project setup:在創建檔案時就先設定 在專案屬性上設定 這邊先來看到第一個設定,可以直接在生成專案選擇靜態lib 第二種是在專案屬性上更改設定 默認生成的是以lib开头,並以.a為名的文件。可以把圖中的a改成lib,並最下面的lib删除,這樣生成的檔案,就是的TEST_STM32F103CBT6.lib的形式 STM32Cube IDE使用lib、a文件方法 在使用STM32Cube IDE,如果需要使用别人寫好的.lib或者.a,直接將文件的路徑包含進去並不能正常使用,在編譯會報錯誤“ undefined reference to `XXXXX’” 就可以照下面幾步驟正常引用 lib加入到目錄,路徑不能有中文; 配置文件路徑 將静態lib添加到C Linker中; 注意!不要在下圖所示位置加入lib路徑: 在官方文件中其實有有提到如何引用(P87~P89) 參考 stm32CubeIDE 如何生成Lib STM32Cube IDE使用lib、a库文件方法 STM32CubeIDE user guide

STM32 firmware library package Read More »

STM32 MCU Product Line Introduction

STM32 MCUs and MPUs portfolio ST MCU產品眾多,可以看到圖一有18種之多,切割5種主流功能區塊,這邊主要針對MPU外做深入介紹(MPU 還是microchip為主流,這邊就不多介紹) High-performance MCU STM32 Mainstream MCU STM32 Ultra-low-power MCU STM32 Wireless MCU HW/SW Development Tools 在硬體與軟體方面ST都有推出方便開發的工具 STM32CubeMX:為建構底層架構軟體,建構出底層code可以支援以下編輯器(圖二) STM32CubeIDE:官方軟體編輯器(圖三) STM32CubeProgram:燒入軟體與查看Flash數值(圖四) 硬體部分如下可以看到有基本的Nucleo Board或含顯示板Discovery kits或全面性開發版Evaluation Board可以供選擇 High-performance MCU 在高規格MCU中會主推STM32H7系列,因這類產品主要是用在顯示面板中或高階馬達控制為主要,而H7是目前有特別針對這部分特別優化的產品 STM32 Portfolio for Graphics 可以看到STM32H7是支援Dispaly傳輸協定最多元且Frequency最高的規格,並且ST併購開發軟體公司推出TouchGFX可以更方便開發觸碰顯示面板(支援圖五個類別ST MCU) STM32 Mainstream MCU 主流行MCU目前其實已經收斂為主要2區塊G0系列與G4系列,其主要原因是G系列把電源對縮減成僅一組,如此能更多GPIO腳位被利用,並且G4整合更多輸出優化可定位BLDC馬達控制專屬系列 STM32 Ultra-low-power MCU ST有針對手提是裝置推出省電板MCU,因手提式裝置所需要的是更長的使用時間,但功能卻要能維持與其他款MCU差不多,這邊L4或U5系列會是你最佳選擇 在休眠模式部分Ultra-low-power也提供不同需模式下求達到最低耗電量 STM32 Wireless MCU 針對無線傳輸部分MCU是ST算是非常特別的一塊MCU這邊切分成2塊WB與WL系列,應用主要是在需要無線模組的部分,MCU只要搭配對應的天線等等就可以做無線通訊是一款能夠節省空間的MCU STM32WB 在WB上主要是雙核心,M0+控制無限通訊M4為主要控制,在於加密部分安全性更加提升 STM32WL

STM32 MCU Product Line Introduction Read More »

Transaction Planning(Not just Stop-Loss)

前言 什麼是交易計劃(Trading Plan)呢?交易計劃指的是在做金融交易前,針對自己的個性、風險承受度、買賣方式所制定的一個規則,它能幫助我們交易時,盡量避免受到市場波動影響交易,也能讓我們避免巨大的虧損,甚至能培養我們的紀律。看到這邊你會覺得咦?是不會停損就是有交易規劃了?錯!大錯特錯!!只有停損這樣只是讓你不會瞬間虧光而已下面會一步一步講解與帶你了解交易計畫 第一步–認識自己~找尋適合交易策略 你是激進投資者?還是保守投資者?還是能承受帳面巨大虧損?還是每天1千塊波動就心裡難受?學投資第一步是要能選擇讓你能睡好的交易規劃,而交易規劃中使用甚麼策略又跟你個性有相關,如果你是一個非常保守的投資者卻使用非常激進策略,你會在交易過程中拿不住你的交易單。因此先了解你自己再開始做交易,如果你只是看到別人瞬間爆賺很心癢就開始交易,請!!!馬上停止你的操作,你的操作不會帶你賺錢只會帶你賠錢!!!! 了解自己的個性:評估自己可以承受多少風險(風險承受度和年紀成反比),短線讓你睡不著?長線你無法持續?….等,你應該要為自己量身打造交易計劃。 一天能花多少時間:首先是你能夠花多少時間學習,其次是你能夠花多少時間交易,這會牽涉到你選擇投資的標的及方式。 假如你很沒耐心且能承受瞬間波動的虧損,那或許你適合極短線交易假如你無法承受大波動那部份新興股票你千萬不要參與 第二步—尋找適合自己的戰場 美股/外匯保證金/權證/台股/虛擬貨幣/債卷目前有許許多多交易市場可以供你選擇,光股票市場就有分成興新市場與成熟市場,低波動高波動等等每種市場的型態與規模還有市場動向都不太一樣,你如果是一個保守投資者,然後去選擇興新市場中高波動股票,那你每天睡覺都難以安穩入睡這邊簡單區分適合的人投資的市場 美股:這是目前市場上認定的最大規模成熟市場,因為起始資金不用太大就可以開始交易是目前公認是和多元投資者市場 台股:因為台灣人還是會以最方便的模式交易,但這個市場是新興市場部分還是容易受到內線等交易影響 外匯保證金:是目前規模最大的交易市場,但非常不適合長期投資(因有隔夜利息等等)最長交易時間與最大市場因此也很多極短線或短線交易的熱愛 虛擬貨幣:這個市場是最多API和大槓桿的交易市場較適合激進交易者 債卷市場:是目前公認最安全的交易市場(但公司債等等的風險不一定會比股票小,最安全是以國家債卷為主) 第三步—正視自己心裡素質 你一開始以為你是激進交易者,但你在規畫完交易後卻3不5時打開持倉觀看,或再持倉時完全握不住,除了你冒的風險遠大於你的心理所能承受的,另一種是你完全不是這樣交易者請正視自己的內心,不要隨著人流走你賠的是你的血汗錢,他賺的跟你一點關西都沒有,他的成功不一定會在你身上可以套用 第四部—規劃交易計畫 此圖是從老余交易夜的影片中擷取出來,你可以看到一個完整的交易規劃都會做好一系列前置作業,進場/出場點/止損點/加碼點都在你下單前都計畫好了還包含了當時的心理素質,你用什麼策略完全不會影響你會不會賺錢,真正會影響的是你的心理素質,這邊我可以跟你說單靠一線有紀律的操作你一年下來不會爆倉外還可能賺錢。交易規劃非常重要他絕對不是一個止損這麼簡單 第五步—正確心態執行計畫 每次交易都一定有虧損機會,100%賺錢的絕對沒有是詐騙,但有虧損不代表難賺錢,只要長期賺的比賠得多這樣你就能長期在市場上賺錢。在交易上每次先了解風險後,有完整交易計畫後不要猶豫,執行計畫,因為正確的交易流程都有做到的話你是不可能會大虧,而且在市場淬鍊下你會賺的比賠得多,你也會對你的交易有信心,就算出手後是虧錢的,但你會知道這次虧但後面一定會賺回來。只要能在市場上留下來,就能有賺錢機會出現 參考 投資入門學什麼?從交易計劃開始 【只有停損點就叫交易計劃? 還早哩~ 來學甚麼叫做完整的交易計劃】 -20190613 老余交易夜 投資交易計畫 的重要性超乎你的想像!

Transaction Planning(Not just Stop-Loss) Read More »

NanoEdge AI Apply on ST MCU

前言 ST針對AI的應用推出了2款高度整合軟體協助使用者快速導入,其中一款是NanoEdge AI另一款是CubeAI,今天主要會介紹NanoEdge AI從操作到最後生成檔案移植進入MCU,NanoEdge AI好處是介面簡單且把最繁瑣的訓練放在電腦上,MCU僅使用最後生成檔案。 取得授權 針對NanoEdge AI這邊有提供幾個月免費試用,可以先透過網址申請或直接購買操作方式如下再把申請好的license填入NanoEdge AI軟體中 Your license key If you don’t know your license key, log in to the Cryptlex licensing platform to retrieve it.If you have lost your login credentials, reset your password using the email address used to download NanoEdge AI Studio. Licensing API: Cartesiam API for library compilation: 54.147.158.222 40.113.111.93

NanoEdge AI Apply on ST MCU Read More »

Shopping Cart