套件概述
本文檔的目標(biāo)是提供關(guān)于使用STM32CubeMX驅(qū)動(dòng)低壓步進(jìn)電機(jī)驅(qū)動(dòng)器STSPIN220的詳盡信息和操作指南。通過本文檔,將深入了解如何利用STM32CubeMX來配置電機(jī)驅(qū)動(dòng)器,以及如何實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的精確控制和運(yùn)動(dòng)。
最近在弄ST的課程,需要樣片的可以加群申請(qǐng):615061293 。
樣品申請(qǐng)
https://www.wjx.top/vm/PpC1kRR.aspx
視頻教學(xué)
https://www.bilibili.com/video/BV1Ju4y1R7mA/
完整代碼下載
https://download.csdn.net/download/qq_24312945/88184732
STSPIN220描述
STSPIN220是一款專為步進(jìn)電機(jī)設(shè)計(jì)的高度集成型芯片,其獨(dú)特的特性和功能使其在小型VFQFPN 3 x 3 x 1.0 mm封裝中融合了控制邏輯和低RDS(on)功率級(jí),為電機(jī)控制領(lǐng)域提供了出色的解決方案。
集成的控制邏輯和低RDS(on)功率級(jí): STSPIN220集成了高效的控制邏輯和低RDS(on)功率級(jí),這意味著它能夠以高效的方式驅(qū)動(dòng)步進(jìn)電機(jī),從而實(shí)現(xiàn)更低的能耗和更高的性能。
微步進(jìn)分辨率和PWM電流控制: 該芯片內(nèi)置的控制器充分利用了固定關(guān)斷時(shí)間和高達(dá)1/256步進(jìn)的微步進(jìn)分辨率,以實(shí)現(xiàn)精準(zhǔn)的PWM電流控制。這意味著可以實(shí)現(xiàn)更加精細(xì)的步進(jìn)電機(jī)運(yùn)動(dòng)控制,從而滿足不同應(yīng)用的需求。
電池供電和零功耗模式: STSPIN220的設(shè)計(jì)兼顧了電池供電場景,可以強(qiáng)制進(jìn)入零功耗狀態(tài),從而在電池供電情況下延長電池的使用壽命。這在移動(dòng)設(shè)備和便攜式應(yīng)用中尤為有用。
全套保護(hù)機(jī)制: 該芯片提供了全面的保護(hù)機(jī)制,包括過電流保護(hù)、過溫保護(hù)和短路保護(hù)等。這些保護(hù)機(jī)制能夠確保步進(jìn)電機(jī)在各種異常情況下保持穩(wěn)定和安全運(yùn)行,有效保護(hù)系統(tǒng)的可靠性。
綜上所述,STSPIN220作為一款專為步進(jìn)電機(jī)設(shè)計(jì)的芯片,在小型封裝中融合了多種先進(jìn)功能。它通過集成的控制邏輯、微步進(jìn)分辨率和全套保護(hù)機(jī)制,為步進(jìn)電機(jī)應(yīng)用提供了高效、精確和安全的驅(qū)動(dòng)解決方案,適用于各種應(yīng)用領(lǐng)域,從工業(yè)自動(dòng)化到便攜式設(shè)備。無論是節(jié)能、精密控制還是延長電池壽命,STSPIN220都能夠?yàn)轫?xiàng)目帶來可靠的性能和出色的效果。
STSPIN220所有功能
STSPIN220作為一款專為步進(jìn)電機(jī)而設(shè)計(jì)的芯片,具備多項(xiàng)卓越特性,為電機(jī)控制領(lǐng)域提供了高度可靠的解決方案:
寬范圍工作電壓: STSPIN220支持廣泛的工作電壓范圍,從1.8V至10V,這意味著它適用于各種不同電源供應(yīng)場景,從低電壓到標(biāo)準(zhǔn)電壓范圍。
高輸出電流能力: 最大輸出電流1.3 Arms使STSPIN220能夠驅(qū)動(dòng)具有較高電流需求的步進(jìn)電機(jī),確保電機(jī)能夠以足夠的力量進(jìn)行運(yùn)動(dòng)。
低RDS(ON)值: 芯片的高低側(cè)電流傳感器及MOSFET具有低RDS(ON)值,僅為0.4Ω(典型值)。這將減少功耗和熱量損耗,提升電機(jī)的效率和性能。
精細(xì)的微步進(jìn)控制: STSPIN220能夠?qū)崿F(xiàn)每次步進(jìn)高達(dá)1/256的微步進(jìn),這使得步進(jìn)電機(jī)的運(yùn)動(dòng)變得更加平滑和精準(zhǔn),適用于需要高精度控制的應(yīng)用。
電流控制通過可編程關(guān)斷時(shí)間: 芯片利用可編程關(guān)斷時(shí)間來實(shí)現(xiàn)電流控制,這可以根據(jù)應(yīng)用需求調(diào)整電機(jī)的電流,以獲得最佳性能。
全套保護(hù)機(jī)制: STSPIN220提供全面的保護(hù)機(jī)制,包括非耗散性過電流保護(hù)、短路保護(hù)和熱關(guān)斷。這些保護(hù)機(jī)制確保在異常情況下電機(jī)驅(qū)動(dòng)器和步進(jìn)電機(jī)都能夠安全運(yùn)行。
極低待機(jī)耗電量: 該芯片的待機(jī)模式耗電量不足80 nA,這使得它非常適合在需要節(jié)能和延長電池壽命的應(yīng)用中使用。
綜上所述,STSPIN220以其廣泛的工作電壓范圍、高輸出電流能力、微步進(jìn)控制、電流控制方式、保護(hù)機(jī)制以及低待機(jī)耗電量,為步進(jìn)電機(jī)驅(qū)動(dòng)提供了一種先進(jìn)的解決方案。無論是在性能、效率還是電源管理方面,STSPIN220都為步進(jìn)電機(jī)應(yīng)用帶來了出色的表現(xiàn)和可靠性。
基礎(chǔ)配置
對(duì)于小電流電機(jī),R10改為10K以下,這里設(shè)置為5.1k
REF
REF為參考電壓,最大范圍是-0.3-1V
電流配置
下圖有配置公式。
可以看到R_SNS為0.68R,若設(shè)置200mA,那么V_REF=0.68R*200MA=136mV,和上面說的V_REF=136mV相符。
細(xì)分配置
STSPIN最高提供了256細(xì)分的操作,具體配置如下所示。
IO配置
查看原理圖,主要有6個(gè)IO需要配置。
分別是STBY、EN、MODE1、MODE2、MODE3、MODE4。
IO說明如下所示。
其中ENFAULT為使能管腳,需要配置為開漏輸出。
使能高電平時(shí)候STSPIN220正常工作。
下圖為設(shè)置細(xì)分示意圖。STBY是STSPIN220驅(qū)動(dòng)器中的一種狀態(tài),表示待機(jī)狀態(tài)(Standby)。在待機(jī)狀態(tài)下,驅(qū)動(dòng)器可能會(huì)降低功耗,停止執(zhí)行步進(jìn)操作,以便在不需要進(jìn)行步進(jìn)電機(jī)運(yùn)動(dòng)時(shí)節(jié)省能源。當(dāng)驅(qū)動(dòng)器從待機(jī)狀態(tài)退出時(shí),會(huì)獲取MODE輸入的值。需要注意的是MODE1和MODE2都為低電平時(shí)候強(qiáng)制為全步模式。
啟動(dòng)時(shí)序圖如下所示,具體有如下幾個(gè)步驟。
- 上電:首先,將驅(qū)動(dòng)器供電,即將VS供電電壓連接到驅(qū)動(dòng)器。但是保持STBY和EN/FAULT輸入都處于低電平狀態(tài)。
- 設(shè)置MODEx輸入:根據(jù)目標(biāo)步進(jìn)分辨率(可以參考Table 1),設(shè)置MODEx輸入引腳的狀態(tài)。這些引腳決定了步進(jìn)電機(jī)的微步運(yùn)動(dòng)模式。
- 等待:等待至少1微秒(t MODEsu 最小時(shí)間)。這個(gè)等待時(shí)間是確保MODEx輸入被穩(wěn)定設(shè)置的時(shí)間。
- 將STBY引腳置高:將STBY引腳設(shè)置為高電平。這將導(dǎo)致之前設(shè)置的MODEx配置在設(shè)備內(nèi)部被鎖存。
- 等待:再等待至少100微秒(t MODEho 最小時(shí)間)。這個(gè)等待時(shí)間是確保MODEx配置被正確鎖存的時(shí)間。
- 啟用電源級(jí):釋放EN/FAULT輸入,使電源級(jí)開始工作。這意味著驅(qū)動(dòng)器已經(jīng)準(zhǔn)備好執(zhí)行步進(jìn)操作。
通過按照這個(gè)推薦的上電順序和設(shè)置過程,您可以確保在驅(qū)動(dòng)器開始工作之前,各個(gè)輸入的狀態(tài)都穩(wěn)定,并且微步模式配置正確地被鎖存,從而實(shí)現(xiàn)步進(jìn)電機(jī)的精確控制。這個(gè)過程有助于減少潛在的啟動(dòng)問題和不穩(wěn)定性。
具體配置如下所示。
STSPIN220使能、低功耗、方向初始化如下所示。
//使能操作 1使能0失能
void STSPIN220_enable(uint8_t enable)
{
if(enable)
HAL_GPIO_WritePin(en_GPIO_Port, en_Pin, 1);
else
HAL_GPIO_WritePin(en_GPIO_Port, en_Pin, 0);
}
//方向設(shè)置 0反1正
void STSPIN220_setDirection(uint8_t direction)
{
if(direction)
HAL_GPIO_WritePin(mode4_GPIO_Port, mode4_Pin, 1);
else
HAL_GPIO_WritePin(mode4_GPIO_Port, mode4_Pin, 0);
}
//低功耗模式 1使能0失能
void STSPIN220_Stby(uint8_t stby)
{
if(stby)
HAL_GPIO_WritePin(stby_GPIO_Port, stby_Pin, 0);
else
HAL_GPIO_WritePin(stby_GPIO_Port, stby_Pin, 1);
}
定時(shí)器配置
STM32CUBEMX中,選擇定時(shí)器1,并將其配置為PWM輸出模式。確保選擇了正確的定時(shí)器通道(通道4)。
配置定時(shí)器1的時(shí)鐘源和預(yù)分頻因子。根據(jù)應(yīng)用的要求和系統(tǒng)時(shí)鐘頻率,選擇適當(dāng)?shù)臅r(shí)鐘源和預(yù)分頻因子,以獲得所需的脈沖頻率。將定時(shí)器1的時(shí)鐘源和預(yù)分頻因子配置為適合您的應(yīng)用的值。
PWM頻率計(jì)算如下所示。
在上述配置中,將定時(shí)器1的預(yù)分頻系數(shù)設(shè)置為48-1,自動(dòng)重載值設(shè)置為1000-1。根據(jù)這些配置,PWM的頻率可以計(jì)算為48,000,000 / ((48-1+1) * (1000-1+1)) = 1000Hz,即1kHz。
在定時(shí)器中,通道的 "pulse"(脈沖)是指定時(shí)器輸出的信號(hào)的一種特性。每個(gè)定時(shí)器通道都可用于生成脈沖信號(hào),而 "pulse" 通常指的是單個(gè)脈沖的持續(xù)時(shí)間。在這種設(shè)置中,我們將脈沖的占空比配置為50%,因此設(shè)置為500-1。
初始化mode
由于需要對(duì)mode進(jìn)行初始化,主要操作為4個(gè)IO口,所以需要先對(duì)mode3管腳進(jìn)行IO初始化為普通IO,后續(xù)切換為TIM模式。
/* USER CODE BEGIN 4 */
void MX_GPIO_Init_mode3(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOA_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(mode3_GPIO_Port, mode3_Pin, GPIO_PIN_RESET);
/*Configure GPIO pins : PAPin PAPin PAPin PAPin
PAPin */
GPIO_InitStruct.Pin = mode3_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
/* USER CODE END 4 */
注意需要聲明一下函數(shù)。
/* USER CODE BEGIN 0 */
void MX_GPIO_Init_mode3(void);
/* USER CODE END 0 */
同時(shí)定時(shí)器初始化需要關(guān)閉。
在初始化完畢mode3之后需要進(jìn)行en和stby設(shè)置,具體如下所示。
/* USER CODE BEGIN 2 */
MX_GPIO_Init_mode3();
HAL_Delay(100);
STSPIN220_SetStepMode(0);//mode1-mode4都關(guān)閉
STSPIN220_enable(0);//使能操作 1使能0失能
STSPIN220_Stby(1);//低功耗模式 1開啟低功耗0關(guān)閉低功耗
HAL_Delay(100);
STSPIN220_SetStepMode(2);//細(xì)分操作
STSPIN220_Stby(0);//低功耗模式 1開啟低功耗0關(guān)閉低功耗,加載mode
HAL_Delay(100);//等待電平穩(wěn)定
STSPIN220_setDirection(1);//0反1正
HAL_Delay(100);//等待電平穩(wěn)定
STSPIN220_enable(1);//使能操作 1使能0失能
HAL_Delay(100);
MX_TIM1_Init();
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_4);
/* USER CODE END 2 */
審核編輯:湯梓紅
-
驅(qū)動(dòng)器
+關(guān)注
關(guān)注
54文章
8672瀏覽量
149689 -
步進(jìn)電機(jī)
+關(guān)注
關(guān)注
152文章
3165瀏覽量
149539 -
stm32cubemx
+關(guān)注
關(guān)注
5文章
286瀏覽量
16152
發(fā)布評(píng)論請(qǐng)先 登錄
基于STM32CUBEMX驅(qū)動(dòng)低壓步進(jìn)器電機(jī)驅(qū)動(dòng)器STSPIN220(1)----套件概述

基于STM32CUBEMX驅(qū)動(dòng)低壓步進(jìn)器電機(jī)驅(qū)動(dòng)器STSPIN220(3)----定時(shí)器中斷產(chǎn)生指定數(shù)量脈沖

意法半導(dǎo)體推出STSPIN模塊 為其它開發(fā)板增加高性能電機(jī)驅(qū)動(dòng)器
意法半導(dǎo)體發(fā)布面向高電壓應(yīng)用的新STSPIN32 BLDC電機(jī)驅(qū)動(dòng)器
請(qǐng)問stspin220的保持電流是否可以調(diào)節(jié)?
基于STM32微控制器和STSPIN L6474步進(jìn)電機(jī)驅(qū)動(dòng)器設(shè)計(jì)
意法半導(dǎo)體發(fā)布新款STSPIN電機(jī)驅(qū)動(dòng)器,可簡化中低功率電機(jī)驅(qū)動(dòng)設(shè)計(jì),提高電機(jī)控制的靈活性
STSPIN220芯片的雙極步進(jìn)電機(jī)的輸出端是否需要反激二極管呢?
有沒有辦法讓STSPIN220與小型電機(jī)一起工作?
STSPIN820馬達(dá)驅(qū)動(dòng)器設(shè)計(jì)方案

電機(jī)控制和工廠自動(dòng)化的門面:STSPIN、MCSDK、收發(fā)器和預(yù)測性維護(hù)
關(guān)于STMicroelectronics 低電壓 STSPIN 電機(jī)驅(qū)動(dòng)器性能分析和應(yīng)用

基于定時(shí)器中斷的ULN2003驅(qū)動(dòng)器/步進(jìn)電機(jī)驅(qū)動(dòng)程序

意法半導(dǎo)體推出STSPIN32G0系列電機(jī)驅(qū)動(dòng)器
工業(yè)自動(dòng)化與家電新選擇:ST推出STSPIN32G0電機(jī)驅(qū)動(dòng)器系列

評(píng)論