setup_adc_ports( AN0_TO_AN2 || VSS_VDD );// configuración del CAD
setup_adc( ADC_CLOCK_DIV_64 );
Gracias!
Título: Re: Pullups LOCAS arggg
Publicado por: umalrovi en 11 de Junio de 2008, 06:40:36
Acabo de ver que la función port_b_pullups(0b00000010) activa las resistencias de pullups del puerto b no como yo necesitaba (solamente la RB1):
Código: C++
.................... port_b_pullups(FAlSE);
2088: BSF FF1.7
.................... port_b_pullups(0b00000010);
208A: BCF FF1.7
Alguién se le ocurre como solucionarlo??
Saludos
Título: Re: Pullups LOCAS arggg
Publicado por: LABmouse en 11 de Junio de 2008, 09:38:27
Colocasela mejor externa, te eliminas el problema de raíz y no es que sea muy caro..Yo nunca confío en las internas, una vez las intente usar y también me fallaron.
Título: Re: Pullups LOCAS arggg
Publicado por: umalrovi en 11 de Junio de 2008, 09:56:15
Muchas gracias picmouse por responder, lo más seguro hága eso.
Pero me resulta raro que nadie se halla enfrentado a este problema o es que a lo mejor tiene su cosa.
Saludos
Título: Re: Pullups LOCAS arggg
Publicado por: RedPic en 11 de Junio de 2008, 10:18:59
Ahora mismo esto yo también liado con este mismo tema en Las Pull-Ups locas atacan de nuevo. (http://www.todopic.com.ar/foros/index.php?topic=22083.msg173740#msg173740)(1)
La conclusión a la que he llegado es la siguiente:
* Las pull-ups internas se activa TODAS con port_b_pullups(true); * Las pull-ups internas se desactivan UNA a UNA cuando les da la gana: Por ejemplo al poner un tris del pin correspondiente como salida.
Por eso tu port_b_pullups(0b00000010); es siempre igual a port_b_pullups(true); de igual forma que port_b_pullups(0b00000000); sería igual a port_b_pullups(false);
Cualquier cosa que pongas distinto de 0 en el port_b_pullups(); te lo va a tomar como port_b_pullups(true);
Ten en cuenta que las pull-ups se activan con un solo bit. RBPU: PORTB Pull-up Enable bit Pero se desactivan dependiendo de qué función tenga después cada Pin.
Ahora hay que bucear en el Datasheet para ver cuando se desactivan las distintas pull-ups internas y ver de usar tris(es) ó ad(eses) ó ccp(eses) para dejar activas solo las que necesitemos.
Por ahí van los tiros de este tema. :mrgreen:
(1) Casi hemos usado el mismo título. :D
Título: Re: Pullups LOCAS arggg
Publicado por: umalrovi en 11 de Junio de 2008, 10:39:13
Muchas gracias por tu contestación Diego!!!
Yo voy a ver si puedo activarlas una a una como dices, buff me estoy armando un CACAO!!!
saludos
P.D. Si sacas algo en claro nuevo avísanos!
Título: Re: Pullups LOCAS arggg
Publicado por: umalrovi en 11 de Junio de 2008, 13:02:43
Hasta los webs!!!
Dejo las resistencias de pull-up internas del pic18f4550 no he podido activar unicamente la resistencia de pullup de la RB1. ASí que voy hacer lo que ha comentado picmouse, poner una resistencia de 10k externa y conectada a Vcc.
Si sacáis algún adelanto ya sabéis,
saludos
Título: Re: Pullups LOCAS arggg
Publicado por: Juancar en 16 de Marzo de 2009, 13:36:56
Podemos asumir que, como norma general, es preferible deshabilitar las pull up internas y usar resistencias externas? Supongo que habrá aplicaciones en las que no se pueda o no se deba, pero si generalmente son fuente de problemas sería preferible prescindir de ellas no?
Un saludo.
Título: Re: Pullups LOCAS arggg
Publicado por: pibe en 16 de Marzo de 2009, 14:40:53
Mira, yo cada vez que escucho pullup lo asocio con una palabra rumana "pula" , que significa "poll*" . Así que saca conclusiones :mrgreen:
Título: Re: Pullups LOCAS arggg
Publicado por: miltonmc en 16 de Marzo de 2009, 15:37:31
saludos a todos yo también tengo un lio con pullups locas. estoy usando un 16f886 y el el puerto b tengo unos switch y cuando uso la instrucción port_b_pullups(true); solo se activa el rb0 y los demas quedan en nivel bajo es asi que lo simulo en proteus y también en el circuito pcb y se comportan igual y perdi mucho tiempo buscando el error o un fallo del ccs mejor las pongo externa de 10k gracias
Título: Re: Pullups LOCAS arggg
Publicado por: sander en 16 de Marzo de 2009, 16:40:24
pues yo no he tenido problemas con la Pullups, por lo menos no cuando coloco un pulsador o un teclado, pero ojo yo programo mas en asm, asi que de posibles errores en compiladores C poco se, pero quiero decir un par de cosas a favor de las Pullups.
En el PIC18F4550 y en muchos otros PICs las resistencias de Pullups se activan todas , no puedes escoger cual esta activa y cual no, ese es el problema que tiene umalrovi
Hay otros PICs como el PIC16F886, que tienen un registro (WPUB) que permite seleccionar cual Pullup habilitamos y cual no, miltonmc talvez el CCS no configura adecuadamente ese registro.
Saludos
Título: Re: Pullups LOCAS arggg
Publicado por: RedPic en 16 de Marzo de 2009, 18:48:10
La mayor experiencia que tengo es con los 18F4550, llevo montados 600 de ellos, y puedo deciros que se me han dado todos los casos posibles, pero lo mas usual es que en un 10 ó 15% de ellos no se activen las pull-ups de RB3 ó RB4 ... o que según va funcionando se desactive una o otra pull-up quedando el resto activado.
Y no es cosa del CCS ya que la transcripción que éste hace de:
port_b_pullups(true);
es absolutamente directa:
BSF FF1.7
o sea pone a 1 el bit 7 del registro INTCON2 que se encuentra en FF1h.
En fin, os cuento mi experiencia, y mi decisión de olvidarme de las pull-ups internas y ponerlas todas externas.
Título: Re: Pullups LOCAS arggg
Publicado por: miltonmc en 16 de Marzo de 2009, 23:11:24
saludos a todos hoy encontré como ponerlas a funcional cambie esta linea port_b_pullups(true); por esta otra port_B_pullups(0b11111111); y con esta puedo definir en el pic 16f686 los pines que pongo en pullups solo cambiando un 0 por un 1 ahi esta la incógnita de porque con port_b_pullups(true); solo el pin rb0 se ponía en up y los otros no gracias
Título: Re: Pullups LOCAS arggg
Publicado por: sander en 17 de Marzo de 2009, 00:43:22
Título: Re: Pullups LOCAS arggg
Publicado por: AKENAFAB en 17 de Marzo de 2009, 05:06:28
Como les mencionan arriba no en todos los pics se peuden seleccionar individualmente las Pullups , en unos se habilitan todas y solo se desactiva si es salida.
EN otro Se sellecionan individualmente.
Por citar un ejemplo.
EN el clasico pic16F628 se habilitan todas las pullups , y solo se deshabilita en aquel pin configurado como salida.EN este caso el bit RBPU del Registro Option.
En el enanin pic12F629/675/683 se habilitan individualmente las Pullups. en el REgistro WPu.AQui controlamos los bits wpu0-wpu5 en el registro WPU.
Con el pic18f4550 se habilitan todas al poner a 0 el bit7 RBPU del registro INTCONT2.
Each of the PORTB pins has a weak internal pull-up. A single control bit can turn on all the pull-ups. This is performed by clearing bit, RBPU (INTCON2<7>). The weak pull-up is automatically turned off when the port pin is configured as an output. The pull-ups are disabled on a Power-on Reset.
Con el pic 16f886 que mencionan se habilitan individualmente.
He notado que se trabajan individualmente cuando en el puerto se tienen entradas analogicas no es que sea de ley pero -+ se nota eso.
He usado pull ups en varias aplicaciones multiplexando los mimos pines y no he tenido problemas.
Tanto en asm como con el CCS C programando.
Saludos.
Título: Re: Pullups LOCAS arggg
Publicado por: dogflu66 en 17 de Marzo de 2009, 06:05:41
Yo por minimizar el consumo las coloco siempre externas, solo por tema de espacio las he utilizado en el 12F675 y me funcionan bien. Seria interesante recopilar los PIC en las que se probaron que funcionan y en los que no para poder tener una guía para futuros usos. Podría ser interesante hacer una referencia a la cantidad de PIC probados, en un lado el numero que funcionaron y en otro lado el mismo PIC que no funciono. De esta forma se pueden ir actualizando según van posteando los usuarios.