Subversion Repositories NaviCtrl

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
196 killagreg 1
/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
1 ingob 2
* File Name          : 91x_mc.h
3
* Author             : MCD Application Team
196 killagreg 4
* Version            : V2.1
5
* Date               : 12/22/2008
6
* Description        : This file contains all the functions prototypes for the
7
*                      MC firmware library.
1 ingob 8
********************************************************************************
196 killagreg 9
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH
10
* CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS
11
* A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT
12
* OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
13
* OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
14
* CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
1 ingob 15
*******************************************************************************/
196 killagreg 16
 
1 ingob 17
/* Define to prevent recursive inclusion -------------------------------------*/
18
#ifndef __91x_MC_H
19
#define __91x_MC_H
20
 
21
/* Includes ------------------------------------------------------------------*/
22
#include "91x_map.h"
23
 
24
/* Exported types ------------------------------------------------------------*/
25
typedef struct
26
{
27
  u16 MC_OperatingMode;
28
  u16 MC_TachoMode;
29
  u16 MC_TachoEvent_Mode;
30
  u8  MC_Prescaler;
31
  u8  MC_ForcedPWMState;
32
  u16 MC_TachoPrescaler;
33
  u16 MC_PWMMode;
34
  u16 MC_Complementary;
35
  u16 MC_Emergency;
36
  u16 MC_Period;
37
  u16 MC_TachoPeriod;
38
  u16 MC_Channel;
39
  u16 MC_PulseU;
40
  u16 MC_PulseV;
41
  u16 MC_PulseW;
42
  u16 MC_PolarityUL;
43
  u16 MC_PolarityUH;
44
  u16 MC_PolarityVL;
45
  u16 MC_PolarityVH;
46
  u16 MC_PolarityWL;
47
  u16 MC_PolarityWH;
48
  u16 MC_TachoPolarity;
49
  u16 MC_DeadTime;
50
  u8  MC_RepetitionCounter;
51
} MC_InitTypeDef;
52
 
53
typedef enum { DOWN = 0, UP  = !DOWN} CountingStatus;
54
 
55
/* Exported constants --------------------------------------------------------*/
56
 
196 killagreg 57
/* MC enable/disable complementary feature */
58
#define MC_Complementary_Enable   0x0001          /*MC Complementary Mode Enable*/
59
#define MC_Complementary_Disable  0x0002          /*MC Complementary Mode Disable*/
1 ingob 60
 
196 killagreg 61
/* MC operating modes */
62
#define MC_HardwareOperating_Mode 0x0001          /* Hardware operating Mode*/
63
#define MC_SoftwareOperating_Mode 0x0002          /* Software operating Mode*/
1 ingob 64
 
196 killagreg 65
/* MC PWM modes */
66
#define MC_PWMClassical_Mode    0x0001            /*Classical PWM Mode*/
67
#define MC_PWMZeroCentered_Mode 0x0002            /*Zero Centered PWM Mode*/
1 ingob 68
 
69
 
196 killagreg 70
/* MC enable/disable emergency */
71
#define MC_Emergency_Enable  0x0001              /*MC Emergency Enable*/
72
#define MC_Emergency_Disable 0x0002              /*MC Emergency Disable*/
1 ingob 73
 
74
 
196 killagreg 75
/* MC forced PWM state */
76
#define MC_Polarity_Inverted     0x0001         /*PWM signal polarity inverted*/
77
#define MC_Polarity_NonInverted  0x0002         /*PWM signal polarity non-inverted*/
1 ingob 78
 
79
 
196 killagreg 80
/* MC tacho modes */
81
#define MC_TachoOneShot_Mode     0x0001         /*One Shot Tacho Mode*/
82
#define MC_TachoContinuous_Mode  0x0002         /*Continuous Tacho Mode*/
1 ingob 83
 
196 killagreg 84
 
85
/* MC tacho polarity */
86
#define MC_TachoEventEdge_None           0x0000         /* Edge None */
87
#define MC_TachoEventEdge_Falling        0x0001         /* Falling Edge  */
88
#define MC_TachoEventEdge_Rising         0x0002         /* Rising Edge  */
89
#define MC_TachoEventEdge_RisingFalling  0x0003         /* Rising and falling Edge  */
1 ingob 90
 
196 killagreg 91
/* MC channels */
92
#define MC_Channel_U           0x0001          /* Channel U */
93
#define MC_Channel_V           0x0002          /* Channel V */
94
#define MC_Channel_W           0x0003          /* Channel W */
95
#define MC_Channel_ALL         0x0004         /* All Channels */
96
 
97
/* MC tacho event mode */
98
#define MC_TachoEvent_Hardware_Mode  0x0001     /*Hardware operating Mode*/
99
#define MC_TachoEvent_Software_Mode  0x0002     /*Software operating Mode*/
100
 
101
/* MC interrupts */
102
#define MC_IT_CMPW  0x0001              /* Compare W interrupt */
103
#define MC_IT_CMPV  0x0002              /* Compare V interrupt */
104
#define MC_IT_CMPU  0x0004              /* Compare U interrupt */
105
#define MC_IT_ZPC   0x0008              /* Zero of PWM counter interrupt */
106
#define MC_IT_ADT   0x0010              /* Automatic data transfer interrupt */
107
#define MC_IT_OTC   0x0020              /* Overflow of tacho counter interrupt */
108
#define MC_IT_CPT   0x0040              /* Capture of tacho counter interrupt */
109
#define MC_IT_CM0   0x0080              /* Compare 0 interrupt */
110
 
111
/* MC flags */
112
#define MC_FLAG_CMPW  0x0001            /* Compare W pending bit */
113
#define MC_FLAG_CMPV  0x0002            /* Compare V pending bit */
114
#define MC_FLAG_CMPU  0x0004            /* Compare U pending bit */
115
#define MC_FLAG_ZPC   0x0008            /* Zero of PWM counter pending bit */
116
#define MC_FLAG_ADT   0x0010            /* Automatic data transfer pending bit */
117
#define MC_FLAG_OTC   0x0020            /* Overflow of tacho counter pending bit */
118
#define MC_FLAG_CPT   0x0040            /* Capture of tacho counter pending bit */
119
#define MC_FLAG_CM0   0x0080            /* Compare 0 pending bit */
120
#define MC_FLAG_EST   0x0100            /* Emergency stop pending bit */
121
 
122
/* MC lock levels */
123
#define MC_LockLevel0   0x0001          /* Level0 */
124
#define MC_LockLevel1   0x0002          /* Level1 */
125
#define MC_LockLevel2   0x0004          /* Level2 */
126
#define MC_LockLevel3   0x0008          /* Level3 */
127
#define MC_LockLevel4   0x0010          /* Level4 */
128
 
129
/* MC counters */
130
#define  MC_DT_Counter   0x0010    /*Dead time counter*/
131
#define  MC_PWM_Counter  0x0020    /*PWM counter*/
132
 
133
 
134
/* MC double update mode feature */
135
#define  MC_DUM          0x0001    /*Double update mode */
136
 
137
 
138
/* MC Trigger events to ADC conversion */
139
#define  MC_ZPC          0x0004         /*Zero of PWM counter trigger event*/
140
#define  MC_CM0          0x0008         /*Compare 0 of PWM trigger event*/
141
#define  MC_ADT          0x000C         /*Automatic Data Transfer trigger event */
142
 
143
 
144
 
145
 
1 ingob 146
/* Exported macro ------------------------------------------------------------*/
147
/* Exported functions --------------------------------------------------------*/
148
void MC_Init(MC_InitTypeDef* MC_InitStruct);
149
void MC_DeInit(void);
150
void MC_StructInit(MC_InitTypeDef* MC_InitStruct);
151
void MC_Cmd(FunctionalState NewState);
152
void MC_CtrlPWMOutputs(FunctionalState Newstate);
153
void MC_ITConfig(u16 MC_IT, FunctionalState NewState);
154
void MC_SetPrescaler(u8 Prescaler);
155
void MC_SetPeriod(u16 MC_Period);
156
void MC_SetPulseU(u16 MC_PulseU);
157
void MC_SetPulseV(u16 MC_PulseV);
158
void MC_SetPulseW(u16 MC_PulseW);
159
void MC_SetTachoCompare(u8 MC_Compare);
160
void MC_PWMModeConfig(u16 MC_PWMMode);
161
void MC_SetDeadTime(u16 MC_DeadTime);
162
void MC_EmergencyCmd(FunctionalState NewState);
163
void MC_EmergencyClear(void);
164
u16 MC_GetPeriod(void);
165
u16 MC_GetPulseU(void);
166
u16 MC_GetPulseV(void);
167
u16 MC_GetPulseW(void);
168
u16 MC_GetTachoCapture(void);
169
void MC_ClearOnTachoCapture(FunctionalState NewState);
170
void MC_ForceDataTransfer(u8 MC_ForcedData);
171
void MC_SoftwarePreloadConfig(void);
172
void MC_SoftwareTachoCapture(void);
173
CountingStatus MC_GetCountingStatus(void);
174
FlagStatus MC_GetFlagStatus(u16 MC_FLAG);
175
void MC_ClearFlag(u16 MC_FLAG);
176
ITStatus MC_GetITStatus(u16 MC_IT);
177
void MC_ClearITPendingBit(u16 MC_IT);
178
void MC_ClearPWMCounter(void);
179
void MC_ClearTachoCounter(void);
196 killagreg 180
void MC_Lock(u16 MC_LockLevel);
181
void MC_CounterModeConfig(u16 MC_Counter);
182
void MC_DoubleUpdateMode(FunctionalState NewState);
183
void MC_ADCTrigger(u16 IMC_Event, FunctionalState NewState);
184
void MC_EnhancedStop(FunctionalState NewState);
185
void MC_EmergencyStopPolarity(FunctionalState NewState);
186
void MC_DebugOutputProtection(FunctionalState NewState);
1 ingob 187
 
188
#endif /* __91x_MC_H */
189
 
196 killagreg 190
/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
1 ingob 191