Autor Tema: Pull-Up o Pull-Down  (Leído 3624 veces)

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

Desconectado Moyin

  • PIC16
  • ***
  • Mensajes: 102
Pull-Up o Pull-Down
« en: 25 de Octubre de 2006, 04:18:48 »
Amigos nuevamente a las preguntas, en PICS que es lo más recomendable conectar los puertos de salida a resistencias en pull-up o pull-down, esto claro cuando no se dispone por alguna razón del puertoB que es el que se configura para esta funcion y por algun motivo ya está ocupado.
Sonrie Cristo te ama

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Pull-Up o Pull-Down
« Respuesta #1 en: 25 de Octubre de 2006, 04:24:58 »
Dependerá de lo que quieras manejar con esos puertos. Habitualmente los PIC son capaces de entregar más corriente cuando bajan a 0V que cuando se colocan a Vdd, por lo que si tu necesidad es exigente en miliamperios te recomendaría una Pull-up

Desconectado Menta

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 607
Re: Pull-Up o Pull-Down
« Respuesta #2 en: 25 de Noviembre de 2006, 12:07:16 »
Hola a todos!

Tengo una consulta sobre el pull-up del puerto b. según veo en el datasheet se trata de un fet conectado a vcc interno del pic. Ahora bien, este fet debería hacer las veces de una resistencia externa a positivo.

Cómo puedo yo saber que impedancia tiene esa "resistencia"? (la del fet)
Si conecto una resistencia externa de 1k a masa (pull-down) estando activado el pull-up Qué pasaría? el pic vería un 0 o vería un 1. depende del valor de la resistencia externa?

Todas estas son cosas que se me ocurren porque en realidad mi programa al ejecutar un sleep() [teniendo previamente activadas las interrupciones globales y de INT_RB]  inmediatamente ejecuta la rutina de interrupción sin que yo toque los pines rb 4 a7 y sale del sleep...   Puedo usar interrupciones INT_RB teniendo el Pull-up activado?

Muchas gracias
     

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Pull-Up o Pull-Down
« Respuesta #3 en: 25 de Noviembre de 2006, 18:14:09 »
Hola.
Claro que puedes utilizar las interr teniendo las WEAK pull ups activadas. Esto se usa mucho con teclados matriciales de 4x4 conectados a RB4-RB7.

No tengo idea de la resistencia que necesitarias para poner a cero un pin con weak pull up activada. Como se trata de una WEAK pull up, creeria que con una resistencia bastante grande tambien lograrias poner el pin en bajo.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Menta

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 607
Re: Pull-Up o Pull-Down
« Respuesta #4 en: 25 de Noviembre de 2006, 20:52:00 »
En efecto, es como vos decís. Recién lo acaba de comprobar. No me andaba por otra cosa... forcé un registro y listo.
También creía que podía modificar los flancos de esas interrupciones, pero no; esas responden al cambio de estado, tanto hi_to_low como a low_to_hi. La que sí es configurable es INT_EXT por RB0. Estaba confundido con eso.

Con respecto a la resistencia, probé en el proteus (no sé que tan confiable será) pero mientras más chica la resistencia más baja la tensión del pin. Con una resistencia de 15 ohms en el pin hay 2.143 voltios. Por lo que se puede decir que con una corriente de 143 mA. el pull-up tiene una impedancia de (5 - 2.143)/0.143 = 19.98 ohm
Hice un barrido de 20 mediciones y me da siempre 20 ohms (super lineales)
De hecho si conecto el pin derecho a masa pasan 250 mA (5/0.250=20)
por lo que concluyo que activar el pull-up en el puerto b es exactamante igual a poner una resitencia de 20 ohms a positivo, aunque internamente sea un fet.
Aclaro que esto es en PROTEUS, que no lo manejé mucho para saber si es confiable o no?

Ahora que pienso, el puerto no puede entregar más de 150mA estando a masa, así que proteus no confío mucho en vos

 :? No sé para qué puede servir saber esto, pero bueno. Saberlo nunca está de más y me gusta compartirlo con ustedes....

Un saludo grande.

« Última modificación: 25 de Noviembre de 2006, 21:18:51 por Menta »
     

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Pull-Up o Pull-Down
« Respuesta #5 en: 25 de Noviembre de 2006, 23:01:19 »
Hola Menta.
Hay un problema muy común al usar la interrupcion de puertob(RB4-RB7).
Efectivamente la interr por RB4-RB7 ocurre cuando cambia al menos el estado de 1 de estos pines(siempre y cuando sea entrada). Para poder compararlo, el uC guarda un LATCH del PORTB, es decir que guarda cierto valor del puertob para que luego pueda ser comparado con el estado actual del mismo y ver si debe ocurrir la interr o no.

Por lo tanto, muchas veces la interr funciona bien la primera vez(imaginemos un pulsador conectados a RB4) pero luego ya no responde.

Si tu problema es este, te recomiendo que fuerces el refresco del LATCH del puerto B. Simplemente debes leer el puertoB, y el pic se encargara del resto.

Ejemplo:

   ;activo interr puertob B
   INTCON, GIE ; activo interr globales
   MOVF PORTB,W
   SLEEP
   NOP
   NOP
   ;...

Saludos.

"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.


 

anything