Microcontroladores PIC => Programadores => Mensaje iniciado por: ojkarin en 15 de Marzo de 2010, 08:34:38
Título: Programador ET-CAB10PIN V2 y pic16f877
Publicado por: ojkarin en 15 de Marzo de 2010, 08:34:38
Saludos a todos. He programado un 16f877 con la placa CP-PIC877 http://www.futurlec.com/PICDevBoard.shtml y el programador ET-CAB10PIN V2 http://verhoeven272.nl/cgi-bin/FS?fruttenboel%2FETT&Fruttenboel+on+ETT&Top&progger&Content en ET-PSPI, usando el winpic800 y la configuración “ETT-LOW VPP ICSP”. El problema es que al desconectar el programador y usar la placa sólo con la alimentación de red, los datos de la eeprom interna del pic se mantienen sólo si le hago un reset a la placa, pero si desconecto la alimentación y luego la conecto, esos datos desaparecen, y no se a que puede ser debido. También ocurre que la el pin RB3 no me deja usarlo como pin de I\O, ya que cada vez que lo intento usar se me resetea el pic, aunque los demás pines del puerto B me deja usarlos sin problemas. Si usara ese pin como reset ¿dañaría el pic? Adjunto los esquemáticos. Saludos y gracias.
Título: Re: Programador ET-CAB10PIN V2 y pic16f877
Publicado por: pablomanieri en 15 de Marzo de 2010, 09:30:59
Si configuras el pin rb3 como salida lo más probable es que estés provocando un cortocircuito con el transistor del 7407, ya que este tiene una resistencia de pull-down en su entrada, poniendo el transistor de salida en saturación (0 lógico), y si le envías un alto por el pin RB3, haces circular mucha corriente, supongo que eso es lo que te está dando problemas.
Lo del tema de la EEPROM se me hace raro, podrías colocar el código, para ver si no es un problema de como estás guardando los datos?
Título: Re: Programador ET-CAB10PIN V2 y pic16f877
Publicado por: ojkarin en 15 de Marzo de 2010, 09:47:42
Gracias por lo de RB3, aunque lo usaba como entrada, pero use otro pin que no me diera problemas. Lo de la eeprom si que es raro porque sólo me ocurre si el programador está desconectado. Sí el programador esta conectado y quito la alimentación, si que me mantiene los datos. De todas maneras te paso el código donde leo y escribo la eeprom.
Código: FreeBasic
If cont1 > 255Then
pos_eeprom0 = 255
pos_eeprom1 = cont1 - 255
Endif
If cont1 <= 255Then
pos_eeprom0 = cont1
pos_eeprom1 = 0
Endif
Write0, pos_eeprom0
Write1, pos_eeprom1
Read0, pos_eeprom0
Read1, pos_eeprom1
cont1 = pos_eeprom0 + pos_eeprom1
cont1 es una variable de tipo word, de ahí que use dos posiciones para guardarla. La variable cont1 esta continuamente variando y siempre entra en la rutina de escritura de la eeprom. Uso el PicSimulatorIde para escribir el código en Basic. Saludos
Título: Re: Programador ET-CAB10PIN V2 y pic16f877
Publicado por: pablomanieri en 15 de Marzo de 2010, 10:18:35
con respecto al pin RB3 en el datasheet se encuentra la respuesta a tu problema.
Note 1: The High Voltage Programming mode is always available, regardless of the state of the LVP bit, by applying VIHH to the MCLR pin. 2: While in Low Voltage ICSP mode, the RB3 pin can no longer be used as a general purpose I/O pin. 3: When using low voltage ICSP programming (LVP) and the pull-ups on PORTB are enabled, bit 3 in the TRISB register must be cleared to disable the pull-up on RB3 and ensure the proper operation of the device. 4: RB3 should not be allowed to float if LVP is enabled. An external pull-down device should be used to default the device to normal operating mode. If RB3 floats high, the PIC16F87X device will enter Programming mode. 5: LVP mode is enabled by default on all devices shipped from Microchip. It can be disabled by clearing the LVP bit in the CONFIG register. 6: Disabling LVP will provide maximum compatibility to other PIC16CXXX devices.
Con respecto a la memoria, no te puedo ayudar. Lo que si te puedo decir es que tienen un número limitado de escrituras, luego de la cual dejan de dar valores correctos. y si tu variable la guardas continuamente, vas a dañar la eeprom del pic y luego va a dejar de funcionar.
Título: Re: Programador ET-CAB10PIN V2 y pic16f877
Publicado por: ojkarin en 15 de Marzo de 2010, 13:24:42
Ok, gracias por tomarte la molestia de mirar el datasheet, procuraré que no vuelva a ocurrir. La eeprom creo que aun no la he dañado pero ya he visto en el datasheet la limitación, o eso creo. Gracias, un saludo.
Título: Re: Programador ET-CAB10PIN V2 y pic16f877
Publicado por: pablomanieri en 15 de Marzo de 2010, 15:01:02
La eeprom la utilizo más que nada para guardar datos de configuraciones que el usuario cambia en tiempo de ejecución, y que son datos que no cambian rápidamente. Te aconsejaría que implementes algún circuito que detecte cuando se queda sin alimentación el pic, y que le coloques un sistema con un capacitor de backup para que te de tiempo a guardarlos en la eeprom antes de que este backup se agote, así solo los guardas cuando es necesario y no continuamente.
Título: Re: Programador ET-CAB10PIN V2 y pic16f877
Publicado por: ojkarin en 16 de Marzo de 2010, 05:47:20
Ya estoy mirando por ahí cómo serían alguno de esos circuitos. Gracias por la ayuda, ciao.