Autor Tema: AYUDA CON PWM PIC16F877  (Leído 21308 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado diego_castano00

  • PIC10
  • *
  • Mensajes: 30
AYUDA CON PWM PIC16F877
« en: 26 de Noviembre de 2005, 10:34:00 »
RebotadoHOLA

ESTOY TRABAJANDO EN UN PROYECTO Y ESTOY REALMENTE DESCONCERTADO CON  EL FUNCIONAMIENTO DE LOS MODULOS CCP PARA EL CONTROL DE PWM Y EL TMR2
ALGUIEN TIENE ALGUNA RUTINITA SENCILLA EN LO POSIBLE EXPLICADA, QUE FUNCIONE PARA GENERAR ALGUNA SEÑAL PWM (CON XT DE 4Mhz),

YO TENGO INFORMACION AL RESPECTO PERO ESTOY !PERDIDO EN EL TEMA!
AHHH TRABAJO CON EL PIC SIMULATOR IDE 5.11
REGALO EL CRACK AL QUE ME PUEDA AYUDAR CONCRETAMENTE

GRACIAS

Desconectado carlyvalente

  • PIC16
  • ***
  • Mensajes: 108
RE: AYUDA CON PWM PIC16F877
« Respuesta #1 en: 26 de Noviembre de 2005, 10:43:00 »
Este programa en asembler es para el 876, pero si cambias las normativas a 877 creo que casi no debes cambiar mas nada, por las dudas controla que el tris esté correcto con respecto al tuyo.
Es un programa para generar 40khz, pero si cambias el periodo y duty cambias la frecuencia.

LIST p=16f876a ;list directive to define processor
#include <p16f876a.inc> ;processor specific definitions

;Observa que los parámetros de configuración son los que te sirven a tu proyecto
__config _CP_OFF & _XT_OSC & _WDT_OFF & _PWRTE_ON & _LVP_OFF & _BODEN_OFF


;Parámetros para eliminar los mensajes de warning cuando lo ensamblas
ERRORLEVEL -302 ;suppress "not in bank 0" message
ERRORLEVEL -203 ;suppress message
ERRORLEVEL -305 ;suppress message
ERRORLEVEL -205 ;suppress message

#define PWM PORTC,2 ; pin salida audio RC2/CCP1, pin 13 del micro
; lo suyo sería ingresar esta señal a un transformador pequeño de relación
; 8-200 para aumentar la potencia de salida hacia el transductor
; aunque no es necesario definir el pin de salida lo hago con motivo informativo


;Constantes para la onda de salida. Con estos valores obtienes 40khz medidos con osciloscopio.
; Si necesitas otra frecuencia no tienes mas que subir o bajar ambos valores. Ten en cuenta
; que el duty deberá ser siempre la mitad del valor del período para obtener una onda cuadrada
; Si subes los valores obtendrás una frecuencia más baja.

periodo equ .48 ; PWM periodo, lo que ocupa un flanco de subida y uno de bajada (un 1 y un 0)
duty equ .25 ; PWM duty del ciclo, el tiempo que está en 1

ORG 0x00
goto init ;ir al inicio del programa
ORG 0x05


;Inicializar micro

init clrf PORTA ;clear port A
clrf PORTB ;clear port B
clrf PORTC ;clear port C
bsf STATUS,RP0
bcf STATUS,RP1 ;bank 1
movlw 0x06
movwf ADCON1 ;set puerto analógico como digital
movlw b"11111111" ; He puesto todos los pins
movwf TRISA ; de todos los puertos como entradas (1)
movlw b"11111111" ; salvo el pin RC2 que está como salida (0)
movwf TRISB
movlw b"11111011"
movwf TRISC
bcf STATUS,RP0 ;switch bank 0




bsf STATUS,RP0 ;switch bank 1
movlw periodo ; cargamos el valor del período en PR2
movwf PR2
bcf STATUS,RP0 ;switch bank 0
movlw duty ; cargamos valor del duty en CCPR1L
movwf CCPR1L


Principal

; Ya está listo para emitir. Sólo debes poner estas 3 lineas para activar la salida
pwmon bsf T2CON,2 ;TMR2 activado
movlw 0x0c ;cargamos setup módulo
movwf CCP1CON ;PWM

; Esta linea para que quede emitiendo. Puedes reemplazarla por una pausa, una activación por botón, etc etc.
loop nop
goto loop

; Estas lineas para desactivar la salida
pwmoff clrf CCP1CON
bcf T2CON,2 ;Desactivamos TMR2
bcf PWM ;esta línea en caso que al finalizar la emisión el pin quede a 1.

;Y ya está.
; Se podría hacer por pin común on/off con pausas para generar la onda,
;sin usar el módulo PWM pero es una pena tener ese módulo y no usarlo.
; Además ya queda como ejemplo para usos futuros de los foristas

end

Desconectado vszener

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2395
RE: AYUDA CON PWM PIC16F877
« Respuesta #2 en: 26 de Noviembre de 2005, 11:07:00 »
Ke tal!!!bueno,si trabajas en C con el compilador CCS en el subforo de C, concretamente en el post d ejemplitos en c, hay dos programas(nº 45 y 46) que utilizan el PWM, aqui el enlace a dicho post:
http://miarroba.com/foros/ver.php?foroid=46840&temaid=4061462
Y aqui un post donde se habla del tema PWM y dan enlace a unas diapositivas:
http://miarroba.com/foros/ver.php?foroid=46840&temaid=4368075

Suerte!!!Giño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: AYUDA CON PWM PIC16F877
« Respuesta #3 en: 26 de Noviembre de 2005, 11:51:00 »
Escrito originalmente por diego_castano00
RebotadoHOLA

ESTOY TRABAJANDO EN UN PROYECTO Y ESTOY REALMENTE DESCONCERTADO CON  EL FUNCIONAMIENTO DE LOS MODULOS CCP PARA EL CONTROL DE PWM Y EL TMR2
ALGUIEN TIENE ALGUNA RUTINITA SENCILLA EN LO POSIBLE EXPLICADA, QUE FUNCIONE PARA GENERAR ALGUNA SEÑAL PWM (CON XT DE 4Mhz),

YO TENGO INFORMACION AL RESPECTO PERO ESTOY !PERDIDO EN EL TEMA!
AHHH TRABAJO CON EL PIC SIMULATOR IDE 5.11
REGALO EL CRACK AL QUE ME PUEDA AYUDAR CONCRETAMENTE

GRACIAS


No has dicho nada si te sirvió la ayuda.
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado diego_castano00

  • PIC10
  • *
  • Mensajes: 30
RE: AYUDA CON PWM PIC16F877
« Respuesta #4 en: 31 de Enero de 2006, 16:44:00 »
Hola

queee pena por la demora en  la respuesta pero es que me quede sin acceso a la Internet por exceso de pago (tu sabe como es la cosa), ahh te comento que realmente simule el pedazo de software que colocaste como respuesta pero no he podido entenderlo, y en la simulacion no pasa nada, estoy mas perdido de lo que estaba, sera que estoy omitiendo algo, dame una ayudita

enviame al correo (e-mail)
diego_castano00@yahoo.com
un mensaje identificandote con algo de ayuda con la señal pwm (si es posible en assembler por lo que no manejo lenguaje c muy bien y no tengo las herramientas para su conversion en el momento)

ahh se me olvidaba alli mismo te envio el crack del que te hablaba antes

perdonen la demora

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: AYUDA CON PWM PIC16F877
« Respuesta #5 en: 31 de Enero de 2006, 19:52:00 »
Hola diego_castano00, por que no posteas tu firmware de esa forma podríamos ayudarte de una forma mas precisa, ya que podríamos ver que es lo que estas haciendo mal.

Suerte

Atte. CARLOS

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado poi5on

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 127
RE: AYUDA CON PWM PIC16F877
« Respuesta #6 en: 01 de Febrero de 2006, 09:09:00 »
Hola amigo
Con esta pequeña rutina pones a funcionar el PWM del PIC
Codigo:
   list   p=16f877
   include   "p16f877.inc"
;------------------------------------
   bsf   status,5
   clrf   trisc
   bcf   status,5
   movlw   016h
   movwf   t2con
   bsf   status,rp0
   movlw   0ffh
   movwf   pr2
   bcf   status,5
   movlw   03fh
   movwf   ccp1con
   movlw   0fh
   movwf   ccpr1l
   
fin   nop
   goto   fin
   
   end


con los registros ccpr1l y ccp1con configuras el ciclo de trabajo, y con el pr2 determinas la frecuencia de la señal. De todas maneras en el datasheet del PIC tienes mejor explicados los valores de los registros.

Saludos

Desconectado diego_castano00

  • PIC10
  • *
  • Mensajes: 30
RE: AYUDA CON PWM PIC16F877
« Respuesta #7 en: 06 de Febrero de 2006, 16:55:00 »
La rutina que me pasaste "la pequeña" no me funciona yo trabajo con la simulacion en PIC SIMULATOR IDE no se si sera que debo usar un osciloscopio real para poder verla o solo me basta con simular la salida con algun indicador cualesquiera que sea "sigo perdido en el tema"

gracias por alguna respuesta

Desconectado poi5on

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 127
RE: AYUDA CON PWM PIC16F877
« Respuesta #8 en: 06 de Febrero de 2006, 18:15:00 »
Hola amigo;
Yo tambien simule el programa y en el PIC Simulator y si me funciona, solo tienes que darle los valores adecuados a los registro para que los puedas ver en la simulación

Saludos

Desconectado diego_castano00

  • PIC10
  • *
  • Mensajes: 30
RE: AYUDA CON PWM PIC16F877
« Respuesta #9 en: 07 de Febrero de 2006, 19:01:00 »
Perdona mi ignorancia pero a cuales de todos los registros haces referencia al ccp, (Help me ) de este tema PWM conozco muy poco si de pronto podrias mostrarme el que te funcion en el PIC SIMULATOR IDE

Gracias

vacano por las respuestasRollEyes

Desconectado diego_castano00

  • PIC10
  • *
  • Mensajes: 30
RE: AYUDA CON PWM PIC16F877
« Respuesta #10 en: 07 de Febrero de 2006, 19:08:00 »
ahhhhhhh ciego habals de ccpcon Pr2 y el otro, la rutina que pusiste es la que trabaja, perdona por la pregunta pero cuando la agrege al MPLAB me salio como error que status no estaba definido,ni ccpcon ni pr2 ni los otros, de estos registros la razon es que no los ,logro comprender he leido y releido mirado varias rutinas y analizado pero sigo desorientado con este tema en particular

chaooHelado

Desconectado poi5on

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 127
RE: AYUDA CON PWM PIC16F877
« Respuesta #11 en: 07 de Febrero de 2006, 19:15:00 »
Hola amigo, si colocas 04h en el t2con, y el osciloscopio en portc,2 podras ver la simulacion del PWM, como t dije si lees el datasheet te dice los bits para que cambies el ciclo de trabajo

Saludos

Desconectado diego_castano00

  • PIC10
  • *
  • Mensajes: 30
RE: AYUDA CON PWM PIC16F877
« Respuesta #12 en: 16 de Febrero de 2006, 21:05:00 »
HOLA

Seguí intentando la rutina que me diste la pequeña pero no se no me funciona que sera que pasa, tengo o he pasado algo por alto,

por que sera ya son 3 dias en esto sin parar y sigue fallando
de pronto hay alguna rutina diferente

Gracias

Desconectado poi5on

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 127
RE: AYUDA CON PWM PIC16F877
« Respuesta #13 en: 17 de Febrero de 2006, 09:43:00 »
Hola amigo

Porque no posteas tu codigo a ver que pasa?

Saludos

Desconectado diego_castano00

  • PIC10
  • *
  • Mensajes: 30
RE: AYUDA CON PWM PIC16F877
« Respuesta #14 en: 18 de Febrero de 2006, 20:57:00 »
Hola

estoy trabajando con el mismo codigo que colocaste en el foro (el pequeño)
y no trabaja con el simulador

he hablado con alguna amistades y desconocen del tema, otra razon es que apenas entinedo algunos conceptos sobre la señal PWM y esta ha sido mi ultima opcion (el foro),

Gracias por la colaboracion