TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Rakamail en 25 de Diciembre de 2007, 20:15:57
-
En el PIC16F88 habilitar las pullup es sencillo mediante OPTION_REG, 7. Pero el deshabilitarlas no es tan sencillo como en el PIC16F84, ¿no?
-
No entiendo tu duda. Para habilitarlas pones el bit RBPU a 0 y para deshabilitarlas lo pones a 1. ¿Cuál es el problema?
-
Imagino que el problema es que se habilitan o deshabilitan TODAS al mismo tiempo, y lo interesante sería tener un registro de 8 bits donde poder habilitar o deshabilitar las Pull-Ups una a una independientemente. Si necesito tener una Pull-Up en RB0, por ejemplo, no tengo por qué tener las restantes RB1:7 habilitadas, puede ser que hasta me venga mal esta combinación y me tenga que ver forzado a colocar solo una Pull-Up externa con tal de tenerla solo en ese pin (me ha pasado).
-
El PIC16F690 tiene la caracteristica que RedPic menciona , utiliza el registro WPUA o WPUB para habilitar y deshabilitar Pull Ups independientes, y el bit _RABPU del OPTION_REG para poder usar el registro WPUA y el WPUB, este Pic tiene 20 pines en total pudiendo configurarse con 17 I/O y un pin solo de entrada. en este
El PIC16F688 (14 pines) tambien tiene esa caracteristica, me parece que es una caracteristica que microchip esta aumentando ultimamente. En estos dos microcontroladores tambien se tiene un registro para habilitar independientemente la interrupcion on change,
-
Tengo que probar una cosa, o la probáis cualquiera de ustedes y después lo comenta por este mismo hilo, la posibilidad de activar las Pull-Ups y después jugar con el TRIS de un pin conmutando entrada y salida de ese pin.
He leído en algún sitio que al cambiar el sentido del pin se deshabilitaba la Pull-Up y había que volver a habilitarla. Y me gustaría saber si se deshabilita sólo la Pull-Up del pin que estamos tocando o se deshabilitan todas. :shock:
Podría ser una solución chapucera pero funcionante si solo se deshabilita la de ese pin. :mrgreen:
-
Es como dices RedPic , por ejemplo en el PIC16F84A habilitas la Pull Ups a todo el puerto B , pero estas solo "aparecen" si el pin esta configurado como entrada si el pin esta configurado como salida las resistencia de Pull Up en ese pin no aparecen, esto lo comprobe al manejar un teclado matricial.
-
Tenía un procedimiento que machacaba el option_reg sin querer, y por eso el error. Con el osciloscopio pude perseguir el problema.
Me entro la neura porque iba ya un par de temas con el PIC16F88 que me habían desmoralizado. Primero, hay un pin con varias funciones que no puede ser entrada, sino únicamente salida, y darte cuenta de eso con la pcb montada jode un poco. El proteus modeliza mal ese pin. Segundo, al ver que no funcionaba lo de las pullup, fui a la datasheet y ví que estaban asociadas a una puerta lógica "con mogollon de pines" y me asusté. Al final he conseguido minimizar los problemas y tengo el prototipo a punto de pasar a la 1.0.
Por cierto, muy interesante lo que habéis comentado en este hilo. Gracias a todos.
-
Disculpa Rakamail pero me dejaste con la duda, cual es el pin del PIC16F88 que solo puede ser salida?, sabia de uno que solo puede ser entrada pero de este otro ni habia oido
Saludos
-
El único pin que conozco del 16F88 que solo puede ser entrada digital es RA5, todos los demás creo que pueden ser entradas o salidas digitales. :shock:
-
Según la data es así como dice Diego.
-
Tal cual. RA5 es la "oveja negra" en todos los PICs de 18 pines que conozco.
Seguramente tiene que ver con el circuito interno del RESET, verdad?
Saludos.
-
Eso es, lo dije al revés. Y sí, es el del MCLR. Por cierto que el Proteus no lo tiene en cuenta y lo puedes simular como salida, lo cual en mi caso ha sido una faena.