📄 bldcdrv.c
字号:
/*************************************************************************
* Freescale Inc.
* (c) Copyright 2005 Freescale, Inc.
* ALL RIGHTS RESERVED.
*************************************************************************/
/*************************************************************************
* FILE NAME : bldcdrv.c
*
* DESCRIPTION : Brushless DC Motor driver implementation
* Mask and PWM tables
*
* MODULES INCLUDED : types.h
arch.h
periph.h
pwm.h
bldcadczcconfig.h
bldcdrv.h
*************************************************************************/
#include "types.h"
#include "arch.h"
#include "periph.h"
#include "bldcadczcconfig.h"
#include "bldcdrv.h"
/************************************************************************/
/* Commutation table for sensorless control */
/* Independent PWM mode */
/* Bipolar Commutation, 6 independent PWMs */
/* 0 : A+ B- */
/* 1 : C+ B- */
/* 2 : C+ A- */
/* 3 : B+ A- */
/* 4 : B+ C- */
/* 5 : A+ C- */
/************************************************************************/
const mc_tPWMSignalMask BldcZC_Cmt_StepTableInd[] = {
(MC_PWM_SIGNAL_5 | MC_PWM_SIGNAL_4 | MC_PWM_SIGNAL_2 | MC_PWM_SIGNAL_1),
(MC_PWM_SIGNAL_5 | MC_PWM_SIGNAL_2 | MC_PWM_SIGNAL_1 | MC_PWM_SIGNAL_0),
(MC_PWM_SIGNAL_5 | MC_PWM_SIGNAL_3 | MC_PWM_SIGNAL_2 | MC_PWM_SIGNAL_0),
(MC_PWM_SIGNAL_5 | MC_PWM_SIGNAL_4 | MC_PWM_SIGNAL_3 | MC_PWM_SIGNAL_0),
(MC_PWM_SIGNAL_4 | MC_PWM_SIGNAL_3 | MC_PWM_SIGNAL_1 | MC_PWM_SIGNAL_0),
(MC_PWM_SIGNAL_4 | MC_PWM_SIGNAL_3 | MC_PWM_SIGNAL_2 | MC_PWM_SIGNAL_1) };
/************************************************************************/
/* Commutation table for sensorless control */
/* Complemetary PWM mode */
/* Bipolar Commutation, 3 complementary PWM pairs */
/* 0 : A+ B- */
/* 1 : C+ B- */
/* 2 : C+ A- */
/* 3 : B+ A- */
/* 4 : B+ C- */
/* 5 : A+ C- */
/************************************************************************/
const mc_tPWMSignalMask BldcZC_Cmt_StepTableComp[] = {
(MC_PWM_SIGNAL_5 | MC_PWM_SIGNAL_4),
(MC_PWM_SIGNAL_1 | MC_PWM_SIGNAL_0),
(MC_PWM_SIGNAL_3 | MC_PWM_SIGNAL_2),
(MC_PWM_SIGNAL_5 | MC_PWM_SIGNAL_4),
(MC_PWM_SIGNAL_1 | MC_PWM_SIGNAL_0),
(MC_PWM_SIGNAL_3 | MC_PWM_SIGNAL_2) };
const mc_tPWMSignalMask BldcZC_Cmt_SwapTableComp[] = {
PWM_CHANNEL_23,
PWM_CHANNEL_23,
PWM_CHANNEL_01,
PWM_CHANNEL_01,
PWM_CHANNEL_45,
PWM_CHANNEL_45 };
/*************************************************************************/
/** Zero Crossing tables for sensorless Zero Crossing **/
/*************************************************************************/
// Required for Zero Cross input mask
const UWord16 SetADC_ZCInp_Tab [ MAX_STEP_CMT+1 ] [ 2 ] =
{
{ ADCZC_PHASE_C_NEG_POS, ADCZC_PHASE_C_POS_NEG }, { ADCZC_PHASE_A_POS_NEG, ADCZC_PHASE_A_NEG_POS },\
{ ADCZC_PHASE_B_NEG_POS, ADCZC_PHASE_B_POS_NEG }, { ADCZC_PHASE_C_POS_NEG, ADCZC_PHASE_C_NEG_POS },\
{ ADCZC_PHASE_A_NEG_POS, ADCZC_PHASE_A_POS_NEG }, { ADCZC_PHASE_B_POS_NEG, ADCZC_PHASE_B_NEG_POS }
};
const Word16 ZC_Phase_Tab [] = { INDEX_ZC_PHASE_C, INDEX_ZC_PHASE_A, INDEX_ZC_PHASE_B, \
INDEX_ZC_PHASE_C, INDEX_ZC_PHASE_A, INDEX_ZC_PHASE_B };
const int Expect_ZCInpFlag_Tab [ MAX_STEP_CMT+1 ] [2] = \
{
{1,0},{0,1},\
{1,0},{0,1},\
{1,0},{0,1}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -