MCU application

STM32 USB_Device(DFU_Standalone)

前言 目前,ST的USB驅動有兩套,一套是早期的獨立版USB驅動,官方培訓文件中稱為Legacy library;一套為針對其Cube系列的驅動,根據晶片不同可能有區別,具體見對應晶片的Cube驅動包,官方培訓文件中稱為Cube library。 USB結構 下圖為USB應用整體系統架構 USB device library USB驅動的整個驅動庫的架構如下圖: USB device library process USB device library 使用方法 第二步: 在usb_bsp.c/h文件中,實現 USB 需要使用的底層硬件資源。具體函數見上文及附件源碼文件的註釋。第三步: 在文件usbd_desc.c/h文件中,實現USB Device的各種描述符。具體函數見上文及附件源碼文件的註釋。第四步: 根據需要修改usbd_usr.c/h文件。第五步: 根據源代碼進行各種配置 第六步: 實現USB Device所使用的類的源文件。例如本文使用了USB Device 的CDC類,所以上圖中出現了usbd_cdc_vcp.c/h文件。第七步: 在自己芯片對應的stm32f4xx_it.c文件中添加USB中斷處理函數。第八步: 在main.c文件中,定義USB_OTG_CORE_HANDLE USB_OTG_dev全局變量,然後調用如下函數初始化USB Device 即可 參考

STM32 USB_Device(DFU_Standalone) Read More »

VL53L0X TOF Sensor Introduction

一、介紹 1、原理 採用940nm垂直腔面發射激光器(Vertical-Cavity Surface-Emitting Laser,簡稱VCSEL)發射出激光,激光碰到障礙物後反射回來被VL53L0X接收到,測量激光在空氣中的傳播時間,進而得到距離。VCSEL相關知識 2、參數 超小體積:4.4 x 2.4 x 1.0mm 最大測距:2m 發射的激光對眼鏡安全,且完全不可見。 工作電壓:2.6 to 3.5 V 通信方式:IIC,400KHz,設備地址0x52,最低位是讀寫標誌位。0表示寫,1表示讀 二、HW接線 這邊接上I2C線路必須要上pull up 電阻規範比照I2C user manual 三、HW Cover規範 這邊Cover的安裝等規定,會有AIR GAP與COVER對於940nm穿透度的限制ST官方針對這個部分提供AN4907 Application note 做詳細說明 理想的蓋玻片有如下特點: (1)塑料或玻璃材料無結構缺陷 (2)無可導致指紋光散射或污跡敏感的表面缺陷 (3)在近紅外(940nm±10nm)和低霧度條件下,透過率>90% (4)不降低指紋免疫性的外塗層(抗指紋或抗反射塗層) (5)單一材料。使用雙重材料可能會改變性能。   理想的結構設計(蓋玻片蓋在VL53L0X上的結構)有如下特點: 氣隙小(<0.5 mm) 蓋玻片薄 蓋玻片與VL53L0X表明的傾角低於2度 嚴格的公差。 四、校準流程 (1)Data init          調用VL53L0X_DataInit()函數一次,設備上電後調用一次。把VL53L0X_State從VL53L0X_STATE_POWERDOWN改爲 VL53L0X_STATE_WAIT_STATICINIT。VL53L0X_State是初始化狀態機,看此變量的值可以就可以知道當前的初始化進度。 (2)Static Init

VL53L0X TOF Sensor Introduction Read More »

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 »

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 »

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 »

STM32 FreeRTOS Introduction-1

FreeRTOS 架構 官方網站:http://www.freertos.org/FreeRTOS 是一個相對其他作業系統而言較小的作業系統。最小化的 FreeRTOS 核心僅包括 3 個 .c 文件(tasks.c、queue.c、list.c)和少數標頭檔,總共不到 9000 行程式碼,還包括了註解和空行。一個典型的編譯後 binary(二進位碼)小於 10 KB。FreeRTOS 的程式碼可以分為三個主要區塊:任務、通訊和硬體界面。 任務 (Task): FreeRTOS 的核心程式碼約有一半是用來處理多數作業系統首要關注的問題:任務,任務是擁有優先權的用戶所定義的 C 函數。task.c 和 task.h 負責所有關於建立、排程和維護任務的繁重工作。 通訊 (Communication): 任務很重要,不過任務間可以互相通訊則更為重要!它帶出了 FreeRTOS 的第二項議題:通訊。FreeRTOS 核心程式碼大約有 40% 是用來處理通訊的。queue.c 和 queue.h 負責處理 FreeRTOS 的通訊,任務和中斷(interrupt)使用佇列(佇列,queue)互相發送數據,並且使用 semaphore 和 mutex 來派發 critical section 的使用信號。 硬體界面:有近 9000 行的程式碼組成基本的 FreeRTOS,這部份是與硬體無關的(hardware-independent),同一份程式碼在不同硬體平台上的 FreeRTOS 都可以運行。大約有 6% 的 FreeRTOS 核心代碼,在與硬體無關的

STM32 FreeRTOS Introduction-1 Read More »

Shopping Cart