PIC 16LF876 alimentado a 3 Voltios

Hola:

Estoy realizando un montaje con un PIC, y como necesito alimentarlo con 3 Voltios, he elegido el 16LF876, funcionando a 4 MHz. Pero no consigo que funcione por debajo de 4 Voltios.

He buscado en google y si pones 16LF876, la segunda entrada es de alguien que le pasa lo mismo que a mi y la respuesta, es que deshabilite BODEN y POR (supongo que POR es Power On Reset o PWRT), pues bien eso he hecho, pero no consigo que funcione. También he buscado en microchip y no encuentro nada al respecto.

¿Alguien tiene idea de como solucionarlo?

Saludos y gracias

Reply to
Jeronimo
Loading thread data ...

Il se trouve que Jeronimo a formulé :

Perdona que te lo haga repetir pero.. ¿seguro que el bit de brownout está a 0?

Reply to
franois

Veras, los bits POR y BOR del registro PCON los tengo a cero, los bits de configuración del IC-Prog. no tengo marcado ninguno (palabra de configuración 3F3B en el programa en ensamblador), pero no hay forma, funciona perfectamente por encima de 4 Voltios de alimentación, pero no ha 3 Voltios.

Gracias por tu respuesta.

"franois" escribió en el mensaje news: snipped-for-privacy@terra.es...

Reply to
Jeronimo

El que tienes que poner a 0 es el bit 6 (BODEN) de la configuration word. Para asegurarte de que lo está, una vez grabado el PIC, dile a ICPROG que lo lea, a ver si te marca esa casilla en la ventana de configuración.

Si no lo está, ya será cuestión de averiguar por qué (yo apostaría por que ICPROG no esté leyendo bien la configuration word porque en MPLAB no la estés poniendo bien, pero comprueba primero eso, y si es así ya buscamos el fallo).

--

Saludos de Jose Manuel Garcia snipped-for-privacy@terra.es http://213.97.130.124

"Jeronimo" escribió en el mensaje news:WXvQi.300483$ snipped-for-privacy@telenews.teleline.es...

3

alguien

y

está

Reply to
Pepitof

Hola:

He hecho lo que tu has dicho y se ha solucionado, ya funciona a 3V, y a algo menos de tensión, con todas sus funciones intactas. A pesar de que lo tenia todo bien, el Ic-Prog no grababa bien la palabra de configuración, al grabarlo y leerlo me daba marcado el BODEN y el PWRT, he realizado otra grabación y al leerlo está vez, si sale bien la palabra de configuración y funciona bien, cosas raras de los voltios y los amperios y otras lindezas. Gracias.

Aprovecho para preguntar otra cosilla, que me está dando un poco de guerra. En un circuito que tengo, con un PIC 16F877 y una LCD de 2x16, para programarlo y no tener que sacarlo de la placa utilizo ICSP, según las indicaciones de microchip, pero me da errores al grabar algunas posiciones de memoria, tengo que desconectar la LCD y entonces ya no da esos errores y graba el programa bien, ¿ como lo puedo solucionar ?.

Saludos y gracias.

Reply to
Jeronimo

"Jeronimo" escribió en el mensaje news:v0HQi.336943$ snipped-for-privacy@telenews.teleline.es...

algo

tenia

A ver, por lo que dices, el culpable no es ICPROG, creo yo. El problema es que el .HEX que está creando MPLAB no está bien. Seguro que es un fallo en la configuración, y deberías arreglarlo para no volverte loco cada vez que cambies algo en la configuration word.

Yo te apuntaría una cosa a mirar en MPLAB, que no sé si tienes clara, pero que a mí me dio un poco la lata hasta que me di cuenta. En las versiones recientes de MPLAB, en el menú "Configure - Configuration bits" puedes cambiar bit a bit la configuration word, pero es importante que el valor que te da para la configuration word lo pongas luego también en el programa con la directiva "__CONFIG", porque si no luego hace cosas raras al generar el .HEX.

guerra.

y

Habría que ver el esquema. Me imagino que si el LCD interfiere con el ICSP será porque estás usando para el LCD alguna señal de las necesarias para el ICSP. Si el LCD intenta forzar alguna de las señales a un estado determinado, puedes tener problemas. Por ejemplo, alguna resistencia de pull-up del LCD, o una patilla del LCD que actúe como salida (señal de busy) podría causar el problema.

Con las patillas que usa el ICSP, hay que tener en cuenta algunas cosas:

1º. La patilla MCLR/VPP no deberías usarla para nada más. Ten en cuenta que el programador meterá ahí unos 13V, y si tienes algo conectado a esa señal que no soporte esa tensión, habrá problemas. 2º. La señales PGC (patilla RB6) y PGD (patilla RB7) supongo que las estarás usando de alguna forma que garantice un aislamiento suficiente como para que otros elementos del circuito no afecten durante la programación. Si las usas como señales del LCD, la cosa es tan simple como intercalar una resistencia (por ejemplo de 4k7) entre cada patilla y el LCD. Aún así, si el programador que estás usando es de esos que no llevan alimentación, podría fallar. 3º. Una señal que muchas veces no se tiene en cuenta es PGM (patilla RB3), que para programación a baja tensión puede estar a nivel alto, pero para programación normal (método usado por el 99% de los programadores) tiene que estar a nivel bajo. Además, como otras entradas del PIC, es de alta impedancia, así que incluso una resistencia de alto valor en el circuito la puede estar forzando a nivel alto.
--


Saludos de Jose Manuel Garcia
jose.mgg@terra.es
http://213.97.130.124
Reply to
Pepitof

Ante todo darte las gracias por el tiempo que estas ocupando en contestarme y lo que me estás enseñando.

Está mañana cuando he leído tu respuesta, he hecho lo que tu decías, pero sin hacer ninguna modificación. He leído el PIC y he visto que las casillas de BODEN y PWRT estaban marcadas, cuando no debería ser así, en la ultima grabación estaban desmarcadas. Sin modificar para nada el programa y sin compilación nueva, he vuelto a grabar el PIC. He leído el PIC y está vez ya no estaban marcadas las casillas indicadas He probado el circuito y su funcionamiento era correcto. Así que no se como se ha producido el error, el caso es que se ha producido. No suelo utilizar el MPLAB, utilizo el bloc de notas para escribir el programa y el MPASMWIN para compilar, para la palabra de configuración abro el IC-Prog, marco las casillas que necesito y la palabra que me indica la incluyo en el programa, esto de incluir la palabra de configuración la incluyo desde hace años después de leer una intervención tuya en la que explicabas como hacerlo y la necesidad de utilizarla, así que te estoy agradecido por lo didáctico que eres lo que aprendo contigo. El MPLAB lo utilizo si no me funciona el programa o quiero seguir algún registro, luego simulo con PROTEUS, si es que funciona porque a veces con LCDs no va muy fino. De todas formas los programitas que hago son muy simples y suelen, excepto por alguna chorradita como está, funcionar a la primera.

En cuanto al otro tema:

1º. La patilla MCLR/VPP, no la utilizo para nada solo está alimentada y con un diodo para evitar que la tensión de programación se me vaya para la alimentación, tal como indica microchip.

2º. Las patillas PGC y PGD, las tengo aisladas con sendas resistencias de

1K, las subiré de valor, por si el problema está ahí. Y son parte de los 8 bits que envío al LCD, los 3 de control los envío por el puerto C

3º. La patilla PGM, es parte de los bits que envío al LCD, utilizo el puerto B, en futura revisión del circuito cambiare el puerto, para ver si así se puede resolver el problema.

Una pregunta final. El circuito a programar deberá estar sin tensión ¿verdad?

Saludos

"Pepitof" escribió en el mensaje news: snipped-for-privacy@mid.individual.net...

Reply to
Jeronimo

Depende. El PIC necesita alimentación durante la programación. Entonces, tienes dos opciones, alimentarlo desde el programador, o desde la fuente del propio circuito. Cualquiera de los dos métodos es bueno, si el circuito está diseñado para usar ese método.

Por ejemplo, si decides alimentarlo desde el programador, tendrá que estar previsto que, en las condiciones normales del PIC tras un reset (puertos en alta impedancia y demás), el circuito no consuma más corriente que la que puede proporcionar el programador, que normalmente no será mucha. Esto a veces es poco práctico (por ejemplo, si la retroiluminación del LCD es fija, ya consumirá más de la cuenta).

Parece entonces más lógico usar la alimentación del circuito, en lugar de la del programador, pero esto plantea también algunos problemas en determinadas circunstancias, debido a que en ese caso el programador no puede activar y desactivar la alimentación, que en determinadas configuraciones es la única forma de resetear el PIC para hacerlo entrar en el modo de programación. El problema surge porque el PIC, una vez alimentado, estará ejecutando el programa que hay grabado en él, y según lo que haga dicho programa, el programador puede ser incapaz de resetear el PIC.

Una manifestación tipica de este tipo de problemas es que se graba bien el programa, pero no la configuración (sospechosamente parecido a lo que describías). Esto puede pasar porque el programador consigue poner el PIC en modo programación, y graba el programa, pero cuando intenta salir de dicho modo y volver a entrar (necesario para programar la configuración), el PIC ya está ejecutando el programa que has grabado.

Una solución que puede ser práctica, especialmente con los 16F87x, es preparar el circuito y el programa con cierto cuidado. Si sacrificas la patilla RB3 (que corresponde a la señal de programación PGM), puedes conectarla a VDD mediante una resistencia de pull-up de 10k, y hacer que tu programa, lo primero que haga sea comprobar que esa patilla está a nivel bajo (que es como la pondrá el programador), y si es así, que entre en un bucle eterno. Así te aseguras de que el PIC está en el estado típico tras un reset, que es lo que necesita el programador para hacer su tarea.

--


Saludos de Jose Manuel Garcia
jose.mgg@terra.es
http://213.97.130.124


"Jeronimo"  escribió en el mensaje
news:iDNQi.340550$X74.583278@telenews.teleline.es...
>
> Una pregunta final. El circuito a programar deberá estar sin tensión
> ¿verdad?
>
Reply to
Pepitof

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.