본문 바로가기

[Microchip]/dsPIC33-SM

[dsPIC MotorDriver] PWM테스트

[dsPIC MotorDriver] PWM테스트

dspic33_mcpwm.pdf






dspic의 PWM출력 핀은 GPIO와 공통으로 사용할 수 있도록 되어 있으므로 PWM기능으로 설정할 필요가 있다. PWMCON1레지스터의 PMODx, PENxH, PENxL 비트를 설정하면 된다.
PWM1CON1

 

PMODx : PWM 출력모드 설정
 1 = 개별모드
 0 = Complementray
PENxH : PWMxH I/O 동작설정
 1 = PWM핀으로 사용
 0 = I/O용으로 사용
PENxL : PWMxL I/O설정
 1 = PWM핀으로 사용
 0 = I/O용으로 사용

OVCON
OVCON  레지스터는 각각의 PWM출력핀을 임의로 제어할 수 있는 오브라이드 기능을 설정하기 위한 레지스터이다.
1일때 PWM active상태.

 

dsPIC33-SM EVM의 PWM 핀맵

RB14->PWM1H1
RB15->PWM1L1

RB12->PWM1H2
RB13->PWM1L2

 

  


dspic PWM출력 설정 소스코드

void InitMCPWM(void)
{
 PTPER = FCY/FPWM - 1; //40Mhz/10K 10Khz
 
 //enable PWMs, PWM1,2,3 : Independent 모드로 사용
 PWMCON1 = PWM1L_PEN|PWM1H_PEN|PWM1_MOD_IND|PWM2_MOD_IND|PWM3_MOD_IND;
 OVDCON = PWM1L_EN|PWM1H_EN;

 SEVTCMP = PTPER;
 PWMCON2 = 0x0F00; // 16회 마다 Special Event Triger 발생 --> ADC 수행
 PTCON = 0x8000;  // start PWM . PWM Time Base: free running 모드
 return;
}

//PWM 출력
#define SetPwm1(Value)    PDC1 = (Value)


반응형