STM32 control

MERIDIAN Thermal Imager Sensor(STM32)

前言 Meridian提供先進的CMOS熱影像解決方案,使能夠量產接收紅外線波長8~14μm的熱影像感測器,主要應用於消費與商用產品.與一般Image最大不同點在於價格低,與所需要的算力MCU即可處理大大降低應用成本其中MI0802熱影像感測模組:包括thermal sensor, Lens鏡頭, 64 KB Flash記憶體, PCBA 10-pin FPC連接器。 How do Thermal Imager sensor work? 熱影像感測器原理,物體的熱幅射經由Lens鏡頭蒐集能量,通過選定的光譜頻帶Filter,到達pixel detector轉換紅外線IR成電子訊號,透過放大器與訊號處理將電子訊號轉換成溫度影像,每一個像素pixel代表一個溫度值並且可以即時彩色顯示影像。 MI48Dx Thermal Image Processor MI48Dx 熱影像處理器是用來搭配MI0802熱影像感測模組.主要功能是處理每一個pixel的校正calibration,執行壞點修正bad pixel correction (BPC), 轉換raw data資料為溫度並抑制pixel雜訊。簡單說就是一顆小MCU,先幫你處理好前面的校準clock ,因其走的規格非常規intil 8080 可以自己對街MCU但透過MI48轉接會相對方便快速 Hardwave接線 可以看下圖總共有12pin 需要連接,留意這邊 8 ,11 ,12 pin都要接就算沒用到耶要接GND in ADDR (pin 11 of the 12 pins header) in order to use slave address of […]

MERIDIAN Thermal Imager Sensor(STM32) Read More »

ST TOF Sesonr-VL53L5(Turnkey gesture)

簡介 VL53L5CX系統由硬件模塊和運行在主機上的ULD軟件(VL53L5CX ULD)組成。 硬件模塊包含飛行時間 (ToF) 傳感器。 ST 提供軟件驅動程序,在本文檔中稱為“驅動程序”。 本文檔描述了主機可以訪問的驅動程序的功能。 這些函數控制傳感器並獲取測距數據,進一步使用ST Turnkey gesture來做到手勢辨識。 ToF 傳感器系統 1.1驅動架構和內容 VL53L5CX ULD 包由四個文件夾組成。 驅動程序位於文件夾/VL53L5CX_ULD_API 中。VL53L5CX主要適用於陣列式量測距離sensor,解析度式8*8或4*4可以選擇,由多點距離資訊可以演變出不同應用,在此介紹為手勢辨識應用(須先把VL53L5的驅動包先掛載起來) X-CUBE-TOF1 這邊也可以選用ST擴充包把code附加在STM32CubeMX上,可以照VL53L5CX configuration steps P11後照順序執行即可 線路參考 這邊要注意PWE_EN和INT與I2C_RST這幾PIN是需要接上的,因在初始化時會針對這個測試沒接上會出現錯誤 應用 SW Setting 這邊其實只需要下載F401範例其他部分直接incude即可使用 如圖這邊主要GesturesMZ這個資料夾主要是AI手是辨識主要檔案,可以由Example看input輸入項,使用ST的Nonaedge AI做擴充即可完成更多手勢辨識 參考

ST TOF Sesonr-VL53L5(Turnkey gesture) Read More »

ST Motor Control Adjust Method-1

前言 在使用ST FOC電機庫時,當使用Hall信號作為位置信號時,需要輸入同步電角度數據,這個數據根據當前使用電機的特性進行輸入,會在每次Hall信號變化時同步電角度,如果角度偏差較大時會影響控制效果,可能帶來效率或者電機的震盪,初始測試還是有必要的,本文詳細說明測試注意事項以及測試方法。 測試準備 如果電機沒有虛擬中點接出,需要連接三個相同阻值電阻到電機的三相接線上,電阻另外一端連接到一起作為虛擬中點; 將Hall信號接入5V電,並且在H1上接入上拉電阻;接入示波器,轉動電機,測試反向電動勢信號以及Hall信號; 波形測試及計算結果 測試一個電週期的時間,這個週期對應360度; 測試電機A相反向電動勢最高點到H1的時間,圖中粉色為電機A相反向電動勢,紅色數字端口D0為H1信號; 該電機同步電角度: 同步角度添加到代碼 如果使用Workbench的話,添加到電機參數中,如圖: 如果直接寫入程序中,則將數據寫入PMSM motor parameters.h文件參數中 參考

ST Motor Control Adjust Method-1 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 »

I2C Slave mode on STM32 Introduction

前言 I2C有2種不同模式可以操作使用master 與 slave模式,大部分在操控sensor MCU都是以master模式去做操控,部分EEPROM會需要搭配MCU作為slave操作,但當slave HAL會需要已知長度才能正常work,這邊會特別介紹LL模式修正不特定長度 STM32CubeMX Setting Stm32cubeMX上的設定Master與Slave基本上沒有太大差異,唯一要注意的是slave address不能為0x00 至於為甚麼Slave address為什麼不能為0目前猜測可能為下ST I2C slave addr 是用AND GATE,來跟OAR1作比對相同就成立中斷,而設定成0X00會造成永遠不中斷 STM32CubeIDE(HAL) 這邊(HAL)slave會用到函數如下 這邊用HAL_I2C_Slave_Receive做簡單示範一般會搭配中斷做撰寫 另外針對中段部分會使用到callback(HAL_I2C_SlaveTxCpltCallback()/HAL_I2C_SlaveRxCpltCallback()) STM32CubeMX(LL) Setting 這邊因為要編輯底層所以不選用HAL在設定上有以下2個地方的不同 把I2C修改成LL編輯 把.c/.h檔案分離出來方便單獨編輯 STM32CubeIDE(LL) 首先要開啟中斷並在中斷stm32g0xx_it.c後面_it.c內找到void I2C1_IRQHandler(void)編輯中斷要執行的事情,基本上會用到的是中斷flag判讀等等範例如下 注意事項 在執行中斷程式時要注意必須把I2C中斷打開與使用前建議會讓他重新開起reset確保訊號正常,其範例如下 參考 How to create an I2C slave device using the STM32Cube Library I2C: Inter-Integrated Circuit 【STM32CUBEMX】 I2C Slave 实现 STM32 I2C multi-device connection

I2C Slave mode on STM32 Introduction Read More »

AMS_AS5600(Position sensor)

前言 A position sensor is a sensor that facilitates measurement of mechanical position. The AS5600 is an easy to program magnetic rotary position sensor with a high-resolution 12-bit analog or PWM output. The AS5600 is also equipped with a smart low power mode feature to automatically reduce the power consumption. Design Note AS5600有部分硬體設置重點,第一點是磁鐵選用,磁體尺寸盡可能是圓形因為他是感受磁場垂直變化(尺寸規範如下)且這邊注意磁鐵是使用對稱 第二點在裝置上也不能偏移太多,下圖是偏移對磁場變化影響圖與實際規範範圍圖,可以看到雖然是有容許裝置範圍但不可無限制偏移 Coding Sample 這邊選用I2C來做為範例可以先參考下圖Register map I2C傳輸 這邊只需要注意它的部分傳輸是分2筆,每筆DATA 8Bit因此在讀完整Data時與一般SPI不同是分2個register讀取

AMS_AS5600(Position sensor) Read More »

Motor Control Workbench 程式架構-2

前言 上篇描述了STM32 Motor Control Workbench所生成的主程式架構,這邊會接續說明3個依附在主架構下的核心任務流程與架構,主要分成3個部分安全任務、中頻任務、高頻任務。其中安全任務主要是針對溫度、電壓、電流去做保護,中頻任務是在執行速度環與狀態執行,最後高頻任務是在FOC演算法執行 安全任務 中頻任務 高頻任務 API使用 介紹完主要程式流程後接下來是去使用上層API使馬達轉動下表示已建立好API 主要是在程式When回圈內去設定以下2個涵式馬達就可以運轉起來 範例參考 需要實現以下速度控制代碼參考如下 參考 STM32電機控制–API函式應用 ST SDK5.0電機正反轉及轉速控制 【基于NUCLEO-F746ZG电机开发应用】8.程序框架-三大核心任务简介

Motor Control Workbench 程式架構-2 Read More »

Motor Control Workbench 程式架構

前言 這邊網路資源也算蠻多的一些相關知識可以參考FOC控制原理與电机应用开发实战指南-基于STM32中的影片知識,這邊會探討在ST的Workbench 在設定完成後所生成的code,主要在程式架構與重要程式碼說明,在了解架構後,就能夠自己加入所需要應用調整,後續會逐步介紹API應用與不同控制的改動 程式架構 下圖可以看到主要的整個程式運轉主架構,其中有2個中斷(Systick中斷與ADC中斷)可以由圖看出是程式的主核心,Systick中斷執行安全任務與中頻任務(速度環),而ADC中斷則執行高頻任務 Systick中斷 系统定时器是一个24bit的向下遞減的計數器,計數器每計數一次的時間為1/SYSCLK。當中內存數值寄存器的數值遞減到0的時候,系统定時器就產生一次中斷。這邊參考已默認1ms的定時中斷為範例來看參考代碼 中斷函數 MC_RunMotorControlTasks函數內容 ADC中斷 ADC中斷主要在Timer觸發後執行FOC座標轉變、SVPWM執行、電壓電流溫度採樣與PWM調整占比輸出(可以參考下圖)ADC初始化部分可以參考文件【基于NUCLEO-F746ZG电机开发应用】7.程序框架-两个重要中断,與一般初始化大致相同就不贅述只有在中斷部分有加入函示庫 ADC中斷 參考 【基于NUCLEO-F746ZG电机开发应用】7.程序框架-两个重要中断 【基于NUCLEO-F746ZG电机开发应用】6.程序框架 STM32 电机教程 18 – MC Workbench生成工程代码的电机调试

Motor Control Workbench 程式架構 Read More »

Motor Profiler and MotorControl Workbench

前言 ST這邊推出Motor Profiler 與 MotorControl Workbench方便可以把底層程式給建構完全,以及基本的API提供應用,在使用上與入門算蠻便捷容易上手的,且相對優點式的code是全面開放可以看到每個API的撰寫方式,此章節會著重在Motor Profiler and Workbench的操作使用上 The ST Motor Profiler software tool provides the following features: A PC software application to auto-measure electromechanical parameters of PMSM motors ; Embedded One Touch Tuning algorithm: a new algorithm that uses a single parameter to set up the speed controller according to the type of

Motor Profiler and MotorControl Workbench Read More »

AMS Position Sensor AS5047P introduction

簡介Position Sensor A position sensor is a sensor that facilitates measurement of mechanical position. A position sensor may indicate absolute position (location) or relative position (displacement), in terms of linear travel, rotational angle, or three-dimensional space. Postition sensor的樣式很多元下表展示 比較表 可以看到目前量測位置的Sensor有以上這6種為主流,目前市面上常使用的的分別為Indutive、Hall_Effect、Magnetic Encoder這3類,其中Indutive的門檻較高主要是需要參考PCB的線圈繞現有一定規範可以看下圖,可以看到不同的線圈繞線方式對於波形會有不同且一般廠商不會PCB繞線Suporrt設計與驗證,因此Hall_Effect、Magnetic Encoder為大宗其中因為價格因素又以Hall_Effect更為廣泛 AMS Magnetic Encoder工作原理圖 這邊介紹Magnetic Encoder是以AMS的為主軸介紹,可以看到下方比較表AMS比Allegro有更短的響應時間,雖然在解析度上輸,但響應時間在馬達控制上會更為重要。再來是AMS產品使用的是垂直磁場變化與一邊水平磁場不同有更好的抗周邊磁場能力 SPI Setting on STM32 and Coding Sample 這邊選比較需要解釋的SPI,看Datasheet裡可以看到每筆16bit的前2Bit是有額外定義,主要Data是由後面的14Bit來資料傳輸,但使用SPI傳輸完整還是16bit傳輸 這邊可以看到Datasheet裡分別有Read和Write傳輸這邊可以看到在讀取發送訊息後是下一筆Data的時間差才會收到DATA下面放上讀取範例 SPI讀取資料 SPI應用Position sensor 參考

AMS Position Sensor AS5047P introduction Read More »

Shopping Cart