dsPIC33E - PWM 테스트 (HIGH-SPEED PWM MODULE)
dsPIC33EPXXXMC20X/50X 시리즈는 모터제어를 위해 3채널(6 PWM)의 HIGH-SPEED PWM MODULE 이 있다.
70Mhz에서 7.14 ns의 듀티폭을 제어할 수 있다.
dsPIC33E PWM 핀맵
26-PWM1L/T5CK/RB15
25-PWM1H/T3CK/RB14
24-PWM2L/CTPLS/RB13
23-PWM2H/RB12
22-PWM3L/RB11
21-PWM3H/RB10
dsPIC33E PWM 블록도
dsPIC33E PWM 초기화 코드
void InitMCPWM(void)
{
PTCON = 0x0000;
PTPER = 16000; //1000
PHASE1 = 0;
PDC1 = 16000;
DTR1 = 0;
ALTDTR1 = 0;
PWMKEY = 0xABCD;
PWMKEY = 0x4321;
IOCON1 = 0xCC00;
PWMCON1 = 0x0000;
PWMKEY = 0xABCD;
PWMKEY = 0x4321;
FCLCON1 = 0x0003;
PTCON2 = 0x0003; //clock prescaler
PTCON = 0x8000;
}
dsPIC33EP PWM 테스트 동영상
dsPIC33EP32 의 PWM을 이용하여 가변저항의 전압값에 따라 3색 컬러 LED의 밝기를 출력하는 테스트
dsPIC33E - PWM 테스트 예제 코드
int main(void)
{
unsigned int gPwm1Value = MAX_PWM_VALUE;
float adc = 0.0;
//Init System
SystemInit();
DebugInit(BAUD_115200);
DebugPrint("PWM Test\r\n");
//Init LED
Led1Init();
Led1Off();
AdcInit();
InitMCPWM();
while(1)
{
gAdcData[0] = AdcRead(0);
adc = (float)gAdcData[0]*(float)(MAX_PWM_VALUE/MAX_ADC_VALUE);
SetPwm1(adc);
}
}