Ir al contenido

PWM y modulo CCP

El modulo CCP (Capture / Compare / PWM) tiene tres modos; el mas usado en el curso es PWM — control de velocidad de motores, dimmer de LEDs y servo. La base de tiempo es Timer2 + PR2, no Timer0.

Esta pagina cierra Tema 9 CCP (PWM): formulas del PDF, registros y ejemplo 5 kHz al 50 % con cristal 20 MHz. Aplicacion en Practica 4 y Practica 6 — Motor paso a paso.

Diagrama de senal PWM mostrando periodo y ciclo util
El ciclo util (duty) es el tiempo en alto dentro del periodo T_PWM. — Tema 9 Modulo CCP — UNEXPO · Ing. Mecatronica · Microcontroladores
Tabla de modos del modulo CCP: captura, comparacion y PWM
CCP1/CCP2: captura y comparacion usan Timer1; PWM usa Timer2 con PR2 y CCPRxL. — Clase Tema 9 — Modulo CCP (PWM) · UNEXPO
Estructura del modulo CCP con registros CCPRxH, CCPRxL y CCPxCON
CCPRxH:CCPRxL y CCPxCON. En PWM el recurso de tiempo es Timer2. — Clase Tema 9 — Modulo CCP (PWM) · UNEXPO

PWM (Pulse Width Modulation) repite una onda digital: el pin pasa de alto a bajo con periodo fijo T_PWM. Cambias el duty cycle — porcentaje del periodo en alto — para simular potencia analogica en motor o LED.

ParametroSimboloQue controla
PeriodoT_PWMFrecuencia F_PWM = 1/T_PWM
Duty cycleX %Tiempo en alto / T_PWM
Resolucionbits efectivosCuántos pasos de duty puedes programar
ModoTimer baseUso
CapturaTimer1Medir ancho de pulso / frecuencia
ComparacionTimer1Generar flanco a instante preciso
PWMTimer2 + PR2Motor, LED, servo — foco del curso

Captura/comparacion se ven en Timer 1; PWM es independiente con Timer2.

RegistroFuncion
PR2Periodo — TMR2 cuenta 0 → PR2 → reset
T2CONPrescaler Timer2, TMR2ON
CCPR1L + CCP1CON<5:4>Duty cycle (10 bits en PIC18)
CCP1CONModo CCP — PWM = CCP1M3:0 = 11000x0C

Con CCP1CON = 0x0C y Timer2 activo, RC2 conmuta solo — no hace falta BSF LATC, 2 en bucle. Configura BCF TRISC, 2 (salida) una vez al inicio.

Periodo PWM:

T_PWM = 4 × (PR2 + 1) × Tosc × Prescaler_Timer2

Duty cycle (valor a cargar):

CCPR1L : CCP1CON<5:4> = (T_PWM × X%) / (Tosc × Prescaler)

Resolucion (bits efectivos):

log2( Fosc / (F_PWM × Prescaler) )

Con Fosc = 20 MHz, prescaler Timer2 = 1:4, F_PWM = 5 kHz:

PR2 = 1 / (5 kHz × 4 × Tosc × 4) − 1 = 249
Duty 50 % → CCPR1L = 124
  1. BCF TRISC, 2 — RC2/CCP1 como salida
  2. Cargar PR2 segun frecuencia deseada
  3. Configurar T2CON (prescaler, TMR2ON = 1)
  4. Cargar CCPR1L y bits DC1B1:DC1B0 en CCP1CON si aplica
  5. CCP1CON = 0x0C — modo PWM

Ejemplo completo — 5 kHz, 50 % duty @ 20 MHz

Sección titulada «Ejemplo completo — 5 kHz, 50 % duty @ 20 MHz»
config_pwm_5khz_50:
BCF TRISC, 2 ; RC2 salida (CCP1)
MOVLW D'249'
MOVWF PR2 ; periodo ~5 kHz, PS=1:4
MOVLW D'124'
MOVWF CCPR1L ; duty ~50 %
MOVLW B'00001101' ; TMR2ON, prescaler 1:4
MOVWF T2CON
MOVLW 0x0C ; CCP1 modo PWM
MOVWF CCP1CON
RETURN

Para cambiar velocidad de motor: modifica CCPR1L (duty) sin recalcular PR2 si mantienes la misma frecuencia PWM.

ModuloPinPractica
CCP1RC2Practica 4 PWM, Practica 6 motor
CCP2RC1Segunda salida PWM si el diseno lo requiere

Ambos en modo PWM comparten Timer2 y PR2 — misma frecuencia, distinto duty en CCPR1L / CCPR2L.

ErrorConsecuencia
PWM sin Timer2ONRC2 quieto
Olvidar TRISCPin no conduce
CCP1CON en capturaNo hay onda PWM
PR2 mal calculadoFrecuencia distinta a la esperada
Mezclar Timer1 y PWMCaptura usa T1; PWM usa T2

Practica · Laboratorio

Practica 4 — PWM

Calcula PR2 y CCPR1L, configura Timer2 y CCP1, conecta carga en RC2. Tutorial: Practica 4.

Practica · Laboratorio

Practica 6 — Motor paso a paso

Usa PWM o secuencia de bobinas para controlar el motor. Requiere CCP/Timer2 bien configurado. Tutorial: Practica 6.

¿Que timer usa el PWM del CCP?

Timer2 con registro de periodo PR2.

¿Que valor tipico pone CCP1 en modo PWM?

CCP1CON = 0x0C (bits modo 1100).

¿En que pin sale CCP1?

RC2.

Para 50 % duty con PR2 = 249, CCPR1L ≈ ?

124 (mitad del periodo en cuentas de duty).

Ejercicio · Parcial

Calcula PR2 para F_PWM=5kHz, Fosc=20MHz, pre-escalador 1:4

PR2 = 1/(5kHz) / (4 × 1/20MHz × 4) − 1 = 249 segun el ejemplo del curso de Microcontroladores (UNEXPO).

Examen interactivo

PWM y modulo CCP

Basado en: Clase Tema 9. Modulo CCP (PWM).pdf

0 de 0 respondidas

El PWM del PIC18F4550 usa principalmente...
El pin tipico de salida PWM1 en PIC18F4550 es...
PR2 en modo PWM define principalmente...
CCP1CON = 0x0C configura CCP1 en...
Para generar PWM debes tener activo...
Captura del CCP usa como referencia...
Con PR2=249 y duty 50%, CCPR1L tipico es...
CCP2 en PIC18F4550 sale tipicamente por...