TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: izerw en 23 de Abril de 2007, 02:43:46

Título: CCP1 en 16F819
Publicado por: izerw en 23 de Abril de 2007, 02:43:46
Hola, bueno este es mi primer post.. y antes de realizar este post he buscado por todo el foro.. y no he encontrado nada al respecto..

Bueno resulta q estoy usando el canal de HPWM de un PIC 16F819, para eso uso el tipico codigo para declarar el CCP1

DEFINE CCP1_REG PORTB
DEFINE CCP1_BIT 3


Pero el problema es q por mas q declaro q el HPWM va ser en B3, me lo saca en B2...

Yo me base en este diagrama (del datasheet) y por lo q entiendo es q tanto B2 como B3 puede usarse el CCP1
(http://img149.imageshack.us/img149/2633/dibujoby4.png)

Se q seria facil decirme q cambie simplemente a B2, pero el problema es q ya hasta realice la placa (PCB) de este proyecto.. y me gustaria saber si hay alguna solucion, en vez de cortar y puentear la placa..

Uso MicroCode Studio con PBP 2.44 y programo con el Pickit2 de Microchip

Espero su amable respuesta... Salu2
Título: Re: CCP1 en 16F819
Publicado por: RedPic en 23 de Abril de 2007, 02:57:51
En el 16F819 CCP1 puede estar asignado a B2 ó a B3 (no a B2 y a B3). Para decidir en cuál de ambos vas a utilizarlo debes usar el fuse correspondiente

Esos fuses en CCS C son:

CCPB2   CCP1 input/output multiplexed with RB2 ó
CCPB3   CCP1 input/output multiplexed with RB3

No se cómo se escribirá este fuse en concreto en PBP pero  ...

@ DEVICE PIC16F819,INTRC_OSC_NOCLKOUT,... ¿CCP1_B3? o algo así.

Busca por ahí algo parecido a eso, busca ...

Título: Re: CCP1 en 16F819
Publicado por: Mario en 23 de Abril de 2007, 03:18:20
Si no sabes cómo hacerlo en software, hazlo en la programación (quema) del µicro.

Para activar el multiplexado debes escribir un 0 en el bit 12 de la palabra de configuración, esto se hace mediante las __config que vienen en los include del µicro.

La otra foma mas sencilla es que a la hora de programar (supongo usas MPLAB), en el menú de "configure" selecciones "configuration bits".  Ahí está la opción para que cambies de RB2 a RB3 y viceversa.
Título: Re: CCP1 en 16F819
Publicado por: izerw en 23 de Abril de 2007, 03:32:14
Buscando los dichosos Fuses encontre esta pagina: http://www.picbasic.co.uk/forum/archive/index.php/t-2690.html
Ahi encontre como cambiar entre B2 y B3

Solo tenia q poner:

@ DEVICE  CCPMX_On

Y si lo desactivo me manda el CCP1 a B2..

Sobre la forma de hacerlo como dice Mario..  me imagino q es lo mismo.. en ese registro se puede activar o desactivar el CCPMX (segun lo q lei en el datasheet)

CCPMX: CCP1 Pin Selection bit
1 = CCP1 function on RB2
0 = CCP1 function on RB3


Por cierto.. muchas gracias por responder... y bastante rapido..

Salu2 y nos vemos
Título: Re: CCP1 en 16F819
Publicado por: Mario en 23 de Abril de 2007, 06:01:47
Que bueno que lo encontraste.

Yo ya no uso los @DEFINE porque si quieres utilizar la serie 18, el programa para ensamblar (PM creo que se llama) ya no te sirve y tienes que utilizar el mpasmwin para ensamblar. Si colocas @DEFINE no te acepta nada.
Título: Re: CCP1 en 16F819
Publicado por: meledu en 05 de Noviembre de 2010, 10:41:01
Amigos una duda, he encontrado un circuito en el cual se controla un motor , el terminal negativo de este va conectado a tierra y el ;positivo va a un par de transistores de potencia en configuracion push-pull (uno es pnp y el otro es npn) estos van a travez de un transistor cada uno a los pin es rb 2 y br3 del 16f819 entonces me da la impresion de que la salida de pwm es multiplexada , enviando el pulso alto por rb3 y el pulso bajo por rb2, como si alternara entre una salida y otra, nose sie sto sea posible pero no encuentro otra explicacion de porque se estan usando los 2 pines.