📄 mtcparam.h
字号:
/**************** (c) 2004 STMicroelectronics ********************************
PROJECT : 3-phase AC induction motor drive Software Library
COMPILER : COSMIC / METROWERKS
MODULE : MTCParam.h
VERSION : 1.0.0
CREATION DATE : March 2004
AUTHOR : V. Onde / Microcontroller Division Applications
Consumer & Micro Group
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
DESCRIPTION : Contains the Induction Motor control library parameters
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
MODIFICATIONS :
*******************************************************************************
THE SOFTWARE INCLUDED IN THIS FILE IS FOR GUIDANCE ONLY. ST MICROELECTRONICS
SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES
WITH RESPECT TO ANY CLAIMS ARISING FROM USE OF THIS SOFTWARE.
******************************************************************************/
#ifndef MTC_PRM
#define MTC_PRM
#include "config.h"
/////////////////////// MTC Peripheral Input clock ////////////////////////////
#define MTC_CLOCK ((u32)16000000) /* Resolution: 1Hz */
///////////////////////////// Motor Pole pairs ////////////////////////////////
#define POLE_PAIR_NUM ((u8)1) /* Number of motor's poles pair */
//////////////////////////////// Speed Sensor /////////////////////////////////
#define TACHO_PULSE_PER_REV ((u8)8) /* Number of pulses per revolution given by tachogenerator */
#define ROTOR_SPEED_FACTOR ((u32) ( POLE_PAIR_NUM * ( MTC_CLOCK * 10 ) / TACHO_PULSE_PER_REV ) )
#define SPEED_OVERFLOW ((u16) ( ROTOR_SPEED_FACTOR / 0xFFFF ))
#define SPEED_FIFO_SIZE ((u8)4)
///////////////////////////// PWM Frequency ///////////////////////////////////
#define CENTER_ALIGNED ((u8)2) // Definitions of PWM patterns type
#define EDGE_ALIGNED ((u8)1)
#define PATTERN_TYPE CENTER_ALIGNED
#ifdef PWM_10BIT
#define PWM_MCP0 ((u16)639)
u8 OFFSET @0x0a; // Trick to access OFFSET constant in assembly with immediate adressing mode
#else
#ifdef PWM_9BIT
#define PWM_MCP0 ((u16)511)
u8 OFFSET @0x08; // Trick to access OFFSET constant in assembly with immediate adressing mode
#endif
#endif
// Prescaler ratio defines PWM frequency in a rough way:
// 0 -> 15.66kHz, 12.5 kHz (depending on CMP0 value)
// 1 -> 7.8kHz
// 3 -> 3.9kHz
// 7 -> 1.95kHz
#define PWM_PRSC ((u8)0)
#define PWM_FREQ ((u16) ( MTC_CLOCK / (u32)(PATTERN_TYPE * PWM_MCP0 * (PWM_PRSC+1)) ) ) /* Resolution: 1Hz */
#define STATOR_FREQ_RESOL ((u16) (((u32) PWM_FREQ * 10 ) / 256) ) /* To convert freq Cmd into appropriate unit */
///////////////////////// Sinewave frequency Range //////////////////////////////
#define HIGHEST_FREQ ((u16)3400) /* Sinewave Max Frequency (max theorical: 65535) */
#define LOWEST_FREQ ((u16)30) /* Sinewave Min Frequency */
////////////////////////////// Deadtime Value /////////////////////////////////
#define DEADTIME ((u8)4)
////////////////////// Other Settings not modified by GUI /////////////////////
#define PHASE_SHIFT ((s8)85) // (85/256) * 360 = 120 degrees
#define L6386_POLARITY ((u8)0x3F) // PWM outputs: positive logic level for L6386D drivers
#define MAX_RATIO ((u8)7) // Max MTIM prescaler ratio defining the lowest expected speed feedback
#ifdef PWM_9BIT
const u8 SINE3RDHARM[256] = {
0, 5, 11, 16, 21, 27, 32, 37, 42, 47, 52, 57,
61, 66, 70, 75, 79, 83, 86, 90, 93, 97, 100,103,
105,108,110,113,115,116,118,120,121,122,123,124,
125,126,126,126,127,127,127,127,127,127,127,126,
126,126,126,125,125,125,124,124,124,123,123,123,
123,122,122,122,122,122,122,122,123,123,123,123,
124,124,124,125,125,125,126,126,126,126,127,127,
127,127,127,127,127,126,126,126,125,124,123,122,
121,120,118,116,115,113,110,108,105,103,100,97,
93, 90, 86, 83, 79, 75, 70, 66, 61, 57, 52, 47,
42, 37, 32, 27, 21, 16, 11, 5,
0, 5, 11, 16, 21, 27, 32, 37, 42, 47, 52, 57,
61, 66, 70, 75, 79, 83, 86, 90, 93, 97, 100,103,
105,108,110,113,115,116,118,120,121,122,123,124,
125,126,126,126,127,127,127,127,127,127,127,126,
126,126,126,125,125,125,124,124,124,123,123,123,
123,122,122,122,122,122,122,122,123,123,123,123,
124,124,124,125,125,125,126,126,126,126,127,127,
127,127,127,127,127,126,126,126,125,124,123,122,
121,120,118,116,115,113,110,108,105,103,100,97,
93, 90, 86, 83, 79, 75, 70, 66, 61, 57, 52, 47,
42, 37, 32, 27, 21, 16, 11, 5
};
#else
#ifdef PWM_10BIT
const u8 SINE3RDHARM[256] = {
0, 3, 7, 10, 13, 17, 20, 23, 26, 29, 32, 35,
38, 41, 44, 46, 49, 51, 54, 56, 58, 60, 62, 64,
66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 77,
78, 78, 78, 79, 79, 79, 79, 79, 79, 79, 79, 79,
78, 78, 78, 78, 78, 77, 77, 77, 77, 77, 77, 76,
76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 77, 77,
77, 77, 77, 77, 78, 78, 78, 78, 78, 79, 79, 79,
79, 79, 79, 79, 79, 79, 78, 78, 78, 77, 77, 76,
75, 74, 73, 72, 71, 70, 69, 67, 66, 64, 62, 60,
58, 56, 54, 51, 49, 46, 44, 41, 38, 35, 32, 29,
26, 23, 20, 17, 13, 10, 7, 3,
0, 3, 7, 10, 13, 17, 20, 23, 26, 29, 32, 35,
38, 41, 44, 46, 49, 51, 54, 56, 58, 60, 62, 64,
66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 77,
78, 78, 78, 79, 79, 79, 79, 79, 79, 79, 79, 79,
78, 78, 78, 78, 78, 77, 77, 77, 77, 77, 77, 76,
76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 77, 77,
77, 77, 77, 77, 78, 78, 78, 78, 78, 79, 79, 79,
79, 79, 79, 79, 79, 79, 78, 78, 78, 77, 77, 76,
75, 74, 73, 72, 71, 70, 69, 67, 66, 64, 62, 60,
58, 56, 54, 51, 49, 46, 44, 41, 38, 35, 32, 29,
26, 23, 20, 17, 13, 10, 7, 3
};
#endif /* PWM_10BIT */
#endif /* PWM_9BIT */
#endif /* MTC_PRM */
/*** (c) 2004 STMicroelectronics ****************** END OF FILE **************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -