Autor Tema: CCP1 en 16F819  (Leído 4249 veces)

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

Desconectado izerw

  • PIC10
  • *
  • Mensajes: 2
CCP1 en 16F819
« 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


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

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: CCP1 en 16F819
« Respuesta #1 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 ...

« Última modificación: 23 de Abril de 2007, 03:01:36 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: CCP1 en 16F819
« Respuesta #2 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.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado izerw

  • PIC10
  • *
  • Mensajes: 2
Re: CCP1 en 16F819
« Respuesta #3 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

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: CCP1 en 16F819
« Respuesta #4 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.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado meledu

  • PIC12
  • **
  • Mensajes: 83
Re: CCP1 en 16F819
« Respuesta #5 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.