Autor Tema: Habilitación del RB3 para I/O en PIC16F877  (Leído 2788 veces)

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

adolfor20

  • Visitante
Habilitación del RB3 para I/O en PIC16F877
« en: 04 de Noviembre de 2004, 13:43:00 »
Hola. Les agradecería si alguien me pudiera indicar como habilitar la pata 3 del Puerto B para I/O en un PIC16F877. Lo he programado con: __CONFIG _LVP_OFF como indica el datasheet, pero no logro deshabilitar el "Low Voltage Programing". Hay que hacer algo más? Gracias.

Desconectado T0ni0

  • PIC16
  • ***
  • Mensajes: 196
RE: Habilitación del RB3 para I/O en PIC16F877
« Respuesta #1 en: 05 de Noviembre de 2004, 02:12:00 »
Es correcto lo que haces, pero como lo compruebas? lo tienes como entrada o como salida? has activado el Pull UP? ya diras algo ok?
- T0ni0 -
30RCF112

adolfor20

  • Visitante
RE: Habilitación del RB3 para I/O en PIC16F877
« Respuesta #2 en: 05 de Noviembre de 2004, 08:32:00 »
Gracias por tu interés. Tengo configurado todo el puerto B como salida. Y lo quiero usar para encender leds y ver el resultado de las operaciones que haga el programa. Actualmente todos los leds menos el del RB3 funcionan bien. La conexión es la siguiente: Pata - Led - resistencia - Masa.

Desconectado T0ni0

  • PIC16
  • ***
  • Mensajes: 196
RE: Habilitación del RB3 para I/O en PIC16F877
« Respuesta #3 en: 05 de Noviembre de 2004, 08:44:00 »
Asegurate que has puesto:

   
;BANK1   !!!!
   BSF STATUS,RP0
   BCF STATUS,RP1

       MOVLW 0X00
       MOVWF TRISB

   BCF STATUS,RP0
   BCF STATUS,RP1
;BANK0!!!

BCF OPTION_REG,7

Cofiguración puerto B salida con pull ups

Ya te contaras
RebotadoRebotadoRebotado
- T0ni0 -
30RCF112

Desconectado JacoPastorius2004

  • PIC10
  • *
  • Mensajes: 42
RE: Habilitación del RB3 para I/O en PIC16F877
« Respuesta #4 en: 05 de Noviembre de 2004, 11:33:00 »
Hola!

Si vas a trabajar solo con los leds en el puerto B, no es necesario que hablilites los pull ups internos del puerto B. Para eso estan las resistencias limitadoras con valor entre 470ohms y 1K.

Te conviene trabajar colocando el anodo de los leds a VCC y el catodo conectado a los pines via las resistencias limitadoras.
VCC--------|>|-------///////------------| pin del PIC
                led            470ohm

De este modo la que alimenta a los leds es la fuente y no el PIC, lo que si tenes que trabajar con logica invertida (para encender el led tenes que poner el pin a nivel bajo).

PD: el puerto sigue siendo salida, por mas que la corriente fluya hacia el PIC.





adolfor20

  • Visitante
RE: Habilitación del RB3 para I/O en PIC16F877
« Respuesta #5 en: 05 de Noviembre de 2004, 12:13:00 »
Gracias a ambos por sus respuestas!
Lo de seleccionar el Banco 1 para configurar el TRISB lo había hecho. Lo de las Pull Ups no lo había puesto porque en el datasheet decía lo siguiente:
"The weak pull-up is automatically turned off when the port pin is configured as an output"
Cuando llegue a casa voy a probar de invertir el Led y usar lógica invertida. Ahora que lo pienso, tenés razón, el Led como lo tengo ahora está impidiendo el paso de corriente al pin y este queda como si estuviera al aire (sin nivel bajo ni alto).
Muchas gracias, mañana les cuento.

Desconectado JacoPastorius2004

  • PIC10
  • *
  • Mensajes: 42
RE: Habilitación del RB3 para I/O en PIC16F877
« Respuesta #6 en: 05 de Noviembre de 2004, 14:49:00 »
Hola!

A ver, creo que hay alguna confusion: Asi como los tenes a los leds tambien deberian de andar. Dandolos vuelta y usando logica invertida no va andar si no los pones conectados a VCC, ahora vos los tenes conectados a GND.
Fijate:

asi los tenes vos:
GND--------|<|-----------///////-----------| pin del PIC(configurado como salida) |

Para encender los 8 leds tenes que hacer asi:
movlw 0xff
movwf PORTB

Para apagarlos:
movlw 0x00
movwf PORTB


yo te aconsejo:
VCC--------|>|-----------///////-----------| pin del PIC(configurado como salida) |
Para encender los 8 leds tenes que hacer asi:
movlw 0x00         esta es la logica invertida(poner a cero los pines para encender
movwf PORTB      el o los leds

Para apagarlos:
movlw 0xff          coloco un nivel alto para apagar los leds
movwf PORTB

La razon: es para que no cargues al PIC haciendo que alimente a los leds!

anteriormente debes configurar el PORTB como salida como lo puso Tonio (menos la parte de los Pullups)

Espero te quede mas claro el tema.

PD: si configuras el PUERTO B como salida, siempre tienen algun nivel logico los pines (1=VCC o 0=GND), nunca estan flotando como decis, salvo que sea un pin con colector abierto (como el PA4 del 16F84, que si necesita que le coloques una resistencia externa conectada a VCC como pullup).






Desconectado FirmSoft

  • PIC16
  • ***
  • Mensajes: 118
RE: Habilitación del RB3 para I/O en PIC16F877
« Respuesta #7 en: 05 de Noviembre de 2004, 20:01:00 »
   Perdonen que me meta... queria preguntarles, si me permiten, lo siguiente... PARA QUE SON LAS RESISTENCIAS PULLUP DE LOS PICS... perdonen esta preguntonta, es que no me queda claro por mas que lea lo que lea loco ... actua como proteccion???... porque casi nunca es necesario activarlas??... Gracias y perdones!. Saludos Rebotado

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: Habilitación del RB3 para I/O en PIC16F877
« Respuesta #8 en: 05 de Noviembre de 2004, 20:16:00 »
Las resistencias Pull Up son resistencias conectadas internamente entre los pines de PIC y la Vcc, estas resistencias son bastante debiles (250 µA), y tienen como funcion principal prefijar un estado logico alto en el pin, todas se activan a la vez en el puerto y solo funcionan cuando el pin esta funcionando como entrada al chip.

Desconectado FirmSoft

  • PIC16
  • ***
  • Mensajes: 118
RE: Habilitación del RB3 para I/O en PIC16F877
« Respuesta #9 en: 05 de Noviembre de 2004, 23:26:00 »
   Ah.. eso quiere decir que no se activan por codigo, sino que se activan  automaticamente al habilitar los pines como entradas... Bien!, Gracias por la respuesta, una duda menos! Rebotado

Desconectado T0ni0

  • PIC16
  • ***
  • Mensajes: 196
RE: Habilitación del RB3 para I/O en PIC16F877
« Respuesta #10 en: 06 de Noviembre de 2004, 01:49:00 »
Escrito originalmente por T0ni0

   
;BANK1   !!!!
   BSF STATUS,RP0
   BCF STATUS,RP1

       MOVLW 0X00
       MOVWF TRISB

   BCF STATUS,RP0
   BCF STATUS,RP1
;BANK0!!!

BCF OPTION_REG,7

Cofiguración puerto B salida con pull ups




Así se activan las pull up, ah!! y teneis razón para salida no sirven de nada, no se que le debe pasar al chico por que de las dos maneras tendría que funcionar. Si la salida es para LED la mayaría de los PIC ya bienen preparados para que puedan alimentarlos, incluso las placas de evaluación lo conectan el pin a resistencia y luego LED a masa del portb y no hay problema.
- T0ni0 -
30RCF112

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: Habilitación del RB3 para I/O en PIC16F877
« Respuesta #11 en: 06 de Noviembre de 2004, 11:21:00 »
No, las resistencias Pull Up DEBEN habilitarse mediante un bit especial, en el caso del PIC16F84 se encuentra en option<7> (/RBPU), se habilita con 0 (en este caso).

El poner el puerto como entrada NO necesariamente habilita las Pull Ups, si deseas usarlas debes asegurarte de activarlas mediante software.

Desconectado gabotronic

  • PIC12
  • **
  • Mensajes: 57
RE: Habilitación del RB3 para I/O en PIC16F877
« Respuesta #12 en: 08 de Noviembre de 2004, 09:54:00 »
Nose si será esto lo que necesitas, pero en el Icprog desabilitas el cuadro de LVT (en bits de configuracion) y yata, el pin te queda como I/O.

Saludos.

adolfor20

  • Visitante
RE: Habilitación del RB3 para I/O en PIC16F877
« Respuesta #13 en: 08 de Noviembre de 2004, 12:43:00 »
Gracias por sus mensajes! Les paso un mensaje que me envió Daniel Alvarez de la lista "Microcontroladores PIC" de "todopic.com.ar":

"lo que pasa es que tu quemador de pics esta habilitando el lvp, te aconsejo que cambies de software como el icprog, el cual es muy facil de configurar desde su ventana, y no tienes que escribir la palabra de configuracion en el codigo ensamblador."

El único problema es que yo tengo un quemador que no es de marca y funciona con el puerto paralelo. Pero en este momento estaba modificando un programa cargador para poder cargar los programas directo al micro, utilizando un programa propio en la PC, un cable serial, y la UART del micro. Por lo que cuando logre hacerlo andar, voy a probar de cargar la palabra de configuración desde el propio micro. Espero que entonces funcione el RB3.
Saludos !


 

anything