⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bldcdrv.c

📁 菲斯卡尔无传感器无刷控制方案。具体说明文档和程序都在压缩包内。
💻 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 + -