68精品久久久久久欧美,最近中文字幕完整在线看一,久久亚洲男人天堂,最近中文字幕完整视频高清1

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> MM32/靈動微電子 >> MM32SPIN2x 電機專用MCU功能特色——自動換相屏蔽功能配置

MM32SPIN2x 電機專用MCU功能特色——自動換相屏蔽功能配置

作者: 來源: 發(fā)布時間:2018-12-27  瀏覽:8
在現(xiàn)今越來越強調環(huán)保節(jié)能的法規(guī)要求下,新一代的產品需要具備高效的性能,在永磁無刷電機驅動上亦是如此,除了高效率的電機外,電子組件及驅動算法也必須盡可能的高效。
 
為此靈動微電子推出了電機驅動及控制專用的MM32SPIN2x系列,最高工作頻率96MHz,單指令周期 32 位硬件乘法器,單指令周期 32 位硬件除法器,硬件開方 (32bit),包含 2個 12 位的 ADC、5 個比較器、4個運算放大器,擁有啟動快速、超高轉速、內建比較器等優(yōu)勢。
 
為了方便電機控制,MM32SPIN2x新增了PWM脈沖寬度調制模塊?梢钥刂聘呒壎〞r器TIM1輸出的PWM波形,生成六步方波驅動電機運轉。該模塊支持自動換相屏蔽(auto phase mask),電流補償(Current Compensation)和電流保護 (Current Protection)功能。
 
PWM控制可以實現(xiàn)如下功能:
• 自動換相屏蔽生成六步方波,開關極性與 TIM1 設置一致
• 電流補償,換相時可以開啟電流自動補償
• 電流保護,過流立刻切斷輸出


PWM控制模塊框圖




本文將教大家如何使用MM32SPIN2x的PWM控制模塊使用自動換相屏蔽功能。
 
由PWM控制模塊框圖可以看出,TIM1的ocx_esel輸出信號經過PWM控制模塊的MSKDAT極性選擇控制和MSKEN使能控制,從而控制OCx和OCxN輸出PWM波形。在使能PWM的自動換相屏蔽功能后,霍爾換相信號觸發(fā)時,該模塊會根據(jù)事先配置的PWM 輸出屏蔽立即使能MSKEN[5:0] 與 PWM 屏蔽時端口立即輸出MSKDAT[5:0] 控制 TIM1的 6 路 PWM 波形,依據(jù)需求輸出不同的波形驅動電機轉動。
 
自動換相屏蔽可以根據(jù)三相霍爾輸入信號控制 PWM 是否屏蔽。如果使能了自動換相屏蔽功能,下一步輸入信號的觸發(fā)源可以通過 PWM_ APMSKR 寄存器中的 APM_TRGSEL 選擇,可以在比較器觸發(fā)、GPIO口觸發(fā)和軟件觸發(fā)三個觸發(fā)源中選擇,并且在 APMDLR 中可以設置24位的延時裝載寄存器,在觸發(fā)輸入延時后切換屏蔽設置,并觸發(fā)中斷狀態(tài)標志。
 
六步 PWM 的下一步輸入信號的變化是根據(jù)當前輸入信號固定的,當前的三相霍爾輸入信號可以在PWM_APMSKR 寄存器的CTRGI 查詢,觸發(fā)信號變化在 APMDLR 設置的延時后會產生自動換相屏蔽觸發(fā)中斷標志 APMTF 。如果三相輸入信號與 ENTRGI 寄存器設置不同,還會產生觸發(fā)輸入錯誤標志 TERRF 。
 
在六步 PWM 驅動時,可以設置下一步是否屏蔽 (PWM 輸出屏蔽使能MSKEN 或 PWM 輸出屏蔽立即使能MSKEN_CURR),以及屏蔽后的PWM 極性 (PWM 輸出屏蔽時端口的值MSKDAT 或PWM 屏蔽時端口立即輸出MSKDAT_CURR)。 MSKEN 和 MSKDAT 寫入后不會立刻生效,會在下一次觸發(fā)后才屏蔽 TIM1 的輸出。如果需要立刻生效,在設置 PWM_CSR 寄存器的 MSKEN_CURR 和 MSKDAT_CURR 的同時也使能當前輸入狀態(tài)值CURR_EN ,下一次觸發(fā)后還是通過 MSKEN 和 MSKDAT 控制。
 
GPIO觸發(fā)自動換相屏蔽具體步驟如下:
• 選擇觸發(fā)輸入信號,設置PWM_APMSKR寄存器的APM_TRGSEL = 10(GPIO觸發(fā)自動換相屏蔽)。
• 選擇 GPIO 的引腳以及配置濾波器,設置PWM_CSR寄存器的 HALL_TRGSEL = 00(TIM2復用功能為2時的三個輸入引腳作為霍爾傳感器輸入)和IOFLT = 001(GPIO輸入濾波為4個時鐘周期)。
• 使能自動換相屏蔽觸發(fā)中斷和觸發(fā)輸入錯誤中斷,設置PWM_CSR寄存器的APMTIE = 1和TERRIE = 1。
• 設置下一步的期待觸發(fā)輸入組合,假設下一步霍爾輸入信號為5,設置PWM_APMSKR寄存器的ENTRGI= 101。
• 設置下一步的 PWM 輸出屏蔽使能, 假設下一步霍爾輸入信號為5, MSKEN = 0x1f以及屏蔽時的端口值 MSKDAT = 0x01。
• 當霍爾輸入信號變化時會觸發(fā)中斷,在中斷中,重復上兩步的設置。
 
程序中配置如下:
//使能PWM控制模塊時鐘
RCC_APB2PeriphClockCmd(RCC_APB2Periph_PWM,ENABLE);
// GPIO 輸入4個時鐘周期濾波,自動換相屏蔽觸發(fā)中斷使能,觸發(fā)輸入錯誤中斷使能
PWM ->CSR =  PWM_CSR_IOFLT_0 | PWM_CSR_APMTIE |PWM_CSR_TERRIE;
// GPIO觸發(fā)自動換相屏蔽功能,下一次期待觸發(fā)輸入狀態(tài)5
PWM ->APMSKR = PWM_APMSKR_APM_TRGSEL_1 |PWM_APMSKR_ENTRGI_2 | PWM_APMSKR_ENTRGI_0;
//設置自動換相屏蔽延時裝載寄存器
PWM ->APMDLR = 1;
中斷中根據(jù)當前霍爾狀態(tài)配置如下,不同的霍爾狀態(tài)對應不同的配置:
其中Hall為霍爾狀態(tài),PWM為PWM輸出狀態(tài),MASK為是否屏蔽,DAT為屏蔽后的輸出極性,ENTRGI為下一步期待的霍爾信號。寄存器詳細定義請參考MM32SPIN2x_p用戶手冊。
void PWM_IRQHandler()
{
uint8_t hall_state;
// if Trigger Error Flag = 1, hall_state =0
if((PWM ->CSR)&PWM_CSR_TERRIF)      hall_state = 0;
//clean IT Flag
PWM ->CSR &= ~(PWM_CSR_APMTIF |PWM_CSR_TERRIF);
//get Current Trigger Input
hall_state = (PWM ->APMSKR >>23)&7;
switch(hall_state)
{
case 5:
//hall:101 PWM :100P00      MASK :11 1011         DAT : 10 0000  ENTRGI : 100
PWM->APMSKR=(PWM->APMSKR&(~(PWM_APMSKR_MSKDAT|PWM_APMSKR_MSKEN|PWM_APMSKR_ENTRGI)))|(0x3b<<8)|0x20|(4<<20);
break;
case 4:
//hall:100 PWM :0001P0      MASK :11 1101         DAT : 00 0100  ENTRGI : 110
PWM->APMSKR=(PWM->APMSKR&(~(PWM_APMSKR_MSKDAT|PWM_APMSKR_MSKEN|PWM_APMSKR_ENTRGI)))|(0x3d<<8)|0x04|(6<<20);
break;
case 6:
//hall:110 PWM :0P0010      MASK :10 1111         DAT : 00 0010  ENTRGI : 010
PWM->APMSKR=(PWM->APMSKR&(~(PWM_APMSKR_MSKDAT|PWM_APMSKR_MSKEN|PWM_APMSKR_ENTRGI)))|(0x2f<<8)|0x02|(2<<20);
break;
case 2:
//hall:010 PWM :01P000      MASK :11 0111         DAT : 01 0000  ENTRGI : 011
PWM->APMSKR=(PWM->APMSKR&(~(PWM_APMSKR_MSKDAT|PWM_APMSKR_MSKEN|PWM_APMSKR_ENTRGI)))|(0x37<<8)|0x10|(3<<20);
break;
case 3:
//hall:011 PWM :00100P      MASK :11 1110         DAT : 00 1000  ENTRGI : 001
PWM->APMSKR=(PWM->APMSKR&(~(PWM_APMSKR_MSKDAT|PWM_APMSKR_MSKEN|PWM_APMSKR_ENTRGI)))|(0x3e<<8)|0x08|(1<<20);
break;
case 1:
//hall:001 PWM :P00001      MASK :01 1111         DAT : 00 0001  ENTRGI : 101
PWM->APMSKR=(PWM->APMSKR&(~(PWM_APMSKR_MSKDAT|PWM_APMSKR_MSKEN|PWM_APMSKR_ENTRGI)))|(0x1f<<8)|0x01|(5<<20);
break;
default :  
PWM->CSR =(PWM->APMSKR&(~(PWM_APMSKR_MSKDAT)))|PWM_CSR_MSKEN_CURR;
break;
}
}
 
在使用PWM控制模塊時需要先配置TIM1為PWM脈寬調制模式,配置TIM1_CH1、TIM1_CH1N、TIM1_CH2、TIM1_CH2N、TIM1_CH3、TIM1_CH3N對應引腳為復用推挽輸出模式并配置端口復用,打開主輸出使能。
 




使用自動換相屏蔽后TIM1輸出波形與霍爾狀態(tài)對應如下:


默認的情況下,PWM模塊處于關閉狀態(tài),用戶通過設置TIM1也可以實現(xiàn)上圖PWM波形輸出。與傳統(tǒng)控制TIM1中的寄存器來實現(xiàn)六步方波相比,使用PWM模塊控制自動換相屏蔽,當霍爾信號變化時能夠自動控制PWM進行換相屏蔽,并及時進入中斷進行錯誤處理或進行下一步配置。具有操作簡單、實時性高、安全性高等特點。

編輯:admin  最后修改時間:2018-12-27

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

五台县| 东宁县| 昌吉市| 自贡市| 波密县| 台中县| 林芝县| 泗阳县| 大埔县| 项城市| 林甸县| 渭南市| 康定县| 塔城市| 沐川县| 阿鲁科尔沁旗| 大邑县| 文化| 昭觉县| 涞水县| 乐业县| 密云县| 清新县| 通海县| 出国| 宜章县| 丹寨县| 镇雄县| 邓州市| 宜黄县| 营山县| 通渭县| 黄石市| 肥西县| 涿鹿县| 民丰县| 团风县| 嘉义县| 龙海市| 淳化县| 晋宁县|