TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: cesarillo en 01 de Marzo de 2012, 07:46:55

Título: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: cesarillo en 01 de Marzo de 2012, 07:46:55

Hola al foro.
En nuestra Universidad tenemos varias máquinas que llevan un PIC con una misma programación. Se nos ha estropeado una de ellas y el fabricante no repara porque son antiguas. Hay que sustituir un módulo completo y cuesta 1000 euros.
El fallo está en un PIC16C73B.
He cogido el PIC de otra máquina que sí funciona y leer su contenido mediante el TOP PROGRAMMER 2004 y aparentemente lo lee.
He grabado el contenido en otro PIC nuevo, pero no funciona.

¿Qué puede pasar? ¿Quizá esté protegido? ¿Qué puedo hacer para saberlo?

Gracias por vuestra ayuda.
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: solapower en 01 de Marzo de 2012, 09:01:33
Si puedes leerlo ,y quiero decir  ver  valores diferentes en su memoria, es que no està protegido.
El porqué al copiarlo no te funciona, eso ya es más difícil, como dices que teneis varias máquinas
sería coger el de otra máquina i comparar los dos archivos y ver si son iguales, si no lo son puede
ser porque tengan alguna configuración especial para cada máquina.
Seguramenta hay mas posibilidades.

Suerte
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: NoSepComo en 01 de Marzo de 2012, 09:04:40
Puede que cada máquina de algún valor de identificación que use el programa para funcionar o algo similar, al ver los archivos es que se han grabado, asique no se me ocurre otra explicación.
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: cesarillo en 01 de Marzo de 2012, 09:35:47
En primer lugar, muchísimas gracias por vuestra rápida respuesta. Aunque estudié electrónica, mis conocimientos son antes de que existieran los PICs ! Así que soy un verdadero pardillo en estos temas.

Todas las máquinas son iguales, de hecho puedo coger el PIC que funciona y sustituirlo en el zócalo de cualquier placa de cualquiera de las máquinas, y funciona correctamente todo.

Efectivamente el programa lee cosas y muestra una tabla como ésta.
(http://i.imgur.com/3ZXp5.jpg)

El programador utilizado es el TOP2004.

Creéis que lo que está leyendo es la programación y que no está protegido?

Perdonar, seguramente estoy preguntado cosas simples, pero estoy algo perdido.

Un saludo
cesarillo
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: todopic en 01 de Marzo de 2012, 09:40:54
Hola, los micros con la letra C, son OTP, es decir, solo se pueden grabar una sola vez

Si al colocarlo en el grabador, lo pudiste leer, te tiene que aparecer un codigo exadecimal

Al grabar tu pic nuevo, estarias duplicando tal cual, y tendria que funcionar...  ¿estas seguro que lo puedes leer?
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: todopic en 01 de Marzo de 2012, 09:44:39
upsss, es que habia leido esta mañana tu consulta, y no tenias ninguna respuesta... y al contestar... lleguè tarde je je
por lo que veo, está correcto, y lees bien al micro...   ¿estas seguro que el micro nuevo... es nuevo?
por que no lo lees y comparas sus codigos?, porque insisto, es OTP y solo se puede cargar o grabar codigo una sola vez...
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: solapower en 01 de Marzo de 2012, 09:58:43
Deduzco de tu respuesta que has probado uno de esos Pic's que funcionan en la máquina que no funciona.
Has mirado la configuración de los fuses en los pic que hayas podido leer y ver que en todos coincide, por
si es que hay que hacerlo a la hora de grabar el Pic.
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: diguito_69 en 01 de Marzo de 2012, 10:03:59
Hola, ¿El pic nuevo es igual al que tenía, o le pusiste otro similar?. Saludos.
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: cesarillo en 01 de Marzo de 2012, 14:42:19
Hola, ¿El pic nuevo es igual al que tenía, o le pusiste otro similar?. Saludos.

Hola. Gracias por responder. El PIC nuevo es idéntico, en modelo y marca al PIC origen. Y El PIC origen funciona y puedo ponerlo en cualquier máquina y funciona todo bien.
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: cesarillo en 01 de Marzo de 2012, 14:52:01
Deduzco de tu respuesta que has probado uno de esos Pic's que funcionan en la máquina que no funciona.
Has mirado la configuración de los fuses en los pic que hayas podido leer y ver que en todos coincide, por
si es que hay que hacerlo a la hora de grabar el Pic.

Hola. Lo que hago es un READ, lectura del PIC origen (que he probado y funciona en todas las máquinas).
Sobre la configuración del PIC, ahí me pierdo. Hablas sobre la configuración de los fuses.
¿Es que si leo un PIC y luego cojo otro y lo grabo no es suficiente?

A la hora de grabar, me da varias opciones, que son éstas:
(http://i.imgur.com/DjuQD.jpg)

Los parámetros de "config" y de "osc mode" más o menos los entiendo, pero no sé si eso afecta a la hora de programar el nuevo PIC...

De verdad, gracias por vuestra ayuda.


Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: cesarillo en 01 de Marzo de 2012, 14:54:21
Hola, los micros con la letra C, son OTP, es decir, solo se pueden grabar una sola vez

Si al colocarlo en el grabador, lo pudiste leer, te tiene que aparecer un codigo exadecimal

Al grabar tu pic nuevo, estarias duplicando tal cual, y tendria que funcionar...  ¿estas seguro que lo puedes leer?

Hola. Sí, en principio lo puedo leer y lo que el programa lee es lo que aparece en la imagen que os puse. Si está protegido no leería nada, no? O puede pasar que lea una sóla parte o lea mal?
Estoy perdido. Gracias muchas.


Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: cesarillo en 01 de Marzo de 2012, 15:02:46
upsss, es que habia leido esta mañana tu consulta, y no tenias ninguna respuesta... y al contestar... lleguè tarde je je
por lo que veo, está correcto, y lees bien al micro...   ¿estas seguro que el micro nuevo... es nuevo?
por que no lo lees y comparas sus codigos?, porque insisto, es OTP y solo se puede cargar o grabar codigo una sola vez...

Hola. Sí, el PIC es nuevo completamente.
Como ves, hago un "VERIFY", comparación entre el programa obtenido del PIC origen y el chip PIC insertado en el programador. Da OK.

(http://i.imgur.com/8r1UJ.jpg)

Algo tengo que hacer mal...
Gracias.

Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: MerLiNz en 01 de Marzo de 2012, 17:01:43
Creo que si no se pudiese leer te daria 0x00 siempre no?? Algo de eso lei por algun sitio pero no se si se aplican a todos los pics.

De todas formas si lo has leido muchas veces y en todas te da la misma lectura por cojones no debe estar protegido ya que no reproduciria siempre la misma lectura, seria aleatoria. Puedes pasalor a ASM y ver si concuerdan las instrucciones y no es nada aleatorio, por cierto el codigo es muy pequeño. No sera problema de algo distinto al pic?
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: cesarillo en 02 de Marzo de 2012, 07:03:23
Creo que si no se pudiese leer te daria 0x00 siempre no?? Algo de eso lei por algun sitio pero no se si se aplican a todos los pics.

De todas formas si lo has leido muchas veces y en todas te da la misma lectura por cojones no debe estar protegido ya que no reproduciria siempre la misma lectura, seria aleatoria. Puedes pasalor a ASM y ver si concuerdan las instrucciones y no es nada aleatorio, por cierto el codigo es muy pequeño. No sera problema de algo distinto al pic?

¿Es posible que el programador no lea bien? Mirar, esta es la lectura del mismo PIC, nuevo, en blanco. ¿Es eso lo que debería obtener al leer un pic en blanco?
Gracias por todo.

(http://i.imgur.com/ebsTO.jpg)
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: solapower en 02 de Marzo de 2012, 08:08:59
Efectivamente esa es la lectura de un Pic virgen.
Porque no haces una cosa y es explicar que tipo de máquina es , que debería hacer  en funcionamiento normal y como llegaste a diagnosticar que era el Pic el causante del malfuncionamiento o no funcionamiento.

Tal vez así se te pueda orientar con más conocimiento.

Suerte
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: irukza en 02 de Marzo de 2012, 08:38:09
Hola

Si al colocar el PIC de otra máquina en la que dejó de funcionar, ésta funciona nuevamente, no queda otra que el problema sea al leer o al grabar. Los fuses son importantes, no deberías cambiarlos. Se me ocurre que tal vez el grabador se esté tomando atribuciones y cambie los fuses a alguna configuración por defecto y eso te traiga problemas. No se si la verificación de programas controla el estado de los fuses...
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: diguito_69 en 02 de Marzo de 2012, 10:46:57
Hola, podrías subir el .hex para ver si el programa no te esta cambiando los fuses?

Saludos.
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: cesarillo en 02 de Marzo de 2012, 16:18:19
Hola. Que buena vuestra ayuda. El lunes en la oficina, subiré el archivo hex.
¿Qué son los fuses? ¿Os referís a las distintas configuraciones como "modo oscilador" y "WTD", "PWRTE" y "BODEN" que aparecen en la captura de la pantalla del programa?
No he tocado nada de esas opciones. Las he dejado tal cual las pone el programa.

¿Debería haber leído antes el CONFIG del PIC origen y ver qué modos de configuración usa? Porque si es así, no lo hice... El programa, como veis en la captura tiene un botón que pone "READ CFG" que no he usado. Imagino que será para leer la configuración del PIC.

Si es que no tengo ni idea!
Pero lo mejor de todo esto es que me está gustando este tema y ya me estoy leyendo algún libro básico y voy a ver si aprendo. Es muy bonito este tema, mis conocimientos en electrónica son de finales de los 80.

Gracias.


Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: cesarillo en 02 de Marzo de 2012, 16:23:24
Hola, podrías subir el .hex para ver si el programa no te esta cambiando los fuses?

Saludos.

Hola diguito. El lunes subiré el archivo .hex
Sobre la captura de pantalla del archivo, con esos códigos que imagino serán en hexadecimal, tengo una pregunta simple: ¿lo que se se ve ahí es coherente? Es decir, ¿le faltan líneas? ¿tiene aspecto de ser un programa?
Gracias

Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: cesarillo en 02 de Marzo de 2012, 16:31:35
Efectivamente esa es la lectura de un Pic virgen.
Porque no haces una cosa y es explicar que tipo de máquina es , que debería hacer  en funcionamiento normal y como llegaste a diagnosticar que era el Pic el causante del malfuncionamiento o no funcionamiento.

Tal vez así se te pueda orientar con más conocimiento.

Suerte

Hola solapower.
Me alegra que esa sea la lectura de un PIC virgen, porque ya tenía duda de si el programador capturaba bien los datos o no.

El diagnóstico de que el PIC está mal, es de la única forma que sé por ahora: poner en el zócalo un PIC de otra máquina que funciona. Y entonces todo funciona.

La máquina tiene dos PIC idénticos:
- Uno para la medida de temperatura, 2 dígitos LCD.
- El otro, que es el que se ha roto, se usa para regulador de velocidad de un motor en 5 pasos. Tiene un botón de (+) para subir la velocidad y otro de (-) para bajarla, otro de marcha y otro de paro. Y luego una serie de leds. Es un diseño muy simple.

Gracias

Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: diguito_69 en 02 de Marzo de 2012, 17:02:56

Hola diguito. El lunes subiré el archivo .hex
Sobre la captura de pantalla del archivo, con esos códigos que imagino serán en hexadecimal, tengo una pregunta simple: ¿lo que se se ve ahí es coherente? Es decir, ¿le faltan líneas? ¿tiene aspecto de ser un programa?
Gracias



Hola, las primeras 4 lineas del código de la imagen, en asm quedan así

Código: [Seleccionar]
org 0x0000
    goto 0x188
    movlw 0xf
    movwf 0x27
    decfsz 0x27, f
    goto 0x3
    return
    bcf 0x3, 0x5
    bsf 0x6, 0x2
    call 0x518
    call 0x177
    btfss 0x25, 0
    call 0x17a
    nop
    nop
    btfss 0x24, 0
    goto 0x12
    bcf 0x6, 0x1
    goto 0x14
    bsf 0x6, 0x1
    nop
    btfsc 0x5, 0x2
    bsf 0x29, 0
    goto 0x33
    clrw
    bcf 0x29, 0
    incf 0x28, f
    movlw 0xfc
    addwf 0x28, w
    btfss 0x3, 0
    goto 0x20
    call 0x63
    goto 0x37

Parece ser un programa, dudo que si fueran valores aleatorios desensamblara sin ningún error, pero habría que probar con el .hex completo. Además ver si los fuses (configuración) que muestra el programa son los del hex o son predeterminados del programa.

Saludos.
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: cesarillo en 03 de Marzo de 2012, 08:07:56

Hola diguito. El lunes subiré el archivo .hex
Sobre la captura de pantalla del archivo, con esos códigos que imagino serán en hexadecimal, tengo una pregunta simple: ¿lo que se se ve ahí es coherente? Es decir, ¿le faltan líneas? ¿tiene aspecto de ser un programa?
Gracias



Hola, las primeras 4 lineas del código de la imagen, en asm quedan así

Parece ser un programa, dudo que si fueran valores aleatorios desensamblara sin ningún error, pero habría que probar con el .hex completo. Además ver si los fuses (configuración) que muestra el programa son los del hex o son predeterminados del programa.

Saludos.

Has copiado las líneas del código a mano, qué valor! El lunes lo enviaré a ver qué opináis.
Muchas gracias por todo.
Un saludo

Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: cesarillo en 05 de Marzo de 2012, 07:38:59
Hola. Aquí envío el archivo hex. ¿Es que dentro de ese archivo está también recogida la configuración de los fuses?
A ver qué opinais.
Gracias

Archivo HEX (http://www.filefactory.com/file/c368299/n/IC4_PIC16C73B.hex)


Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: bmfranky en 05 de Marzo de 2012, 10:23:57
Hola, la mejor forma de salir de dudas con los fuses, es que leas los del pic original y los del grabado y los compares, lee los con la opción del cfg y los posteas.
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: diguito_69 en 05 de Marzo de 2012, 11:32:12
Hola. Aquí envío el archivo hex. ¿Es que dentro de ese archivo está también recogida la configuración de los fuses?
A ver qué opinais.
Gracias

Archivo HEX (http://www.filefactory.com/file/c368299/n/IC4_PIC16C73B.hex)




En este .hex no están los fuses, te adjunto el .asm que desensamble con piklab sin problemas, por lo que creo que el programa lo lee bien, seguro el problema esta en los fuses.

Tendrías que apretar en el botón "Read CFG", para que lea los fuses.

Saludos.
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: todopic en 05 de Marzo de 2012, 11:56:09
para los fuses, habría que mirar si el cristal es de 4 o 20 mhz, y colocar el wdt en off...
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: cesarillo en 05 de Marzo de 2012, 15:47:41

Solucionado! Funciona!
Al final era que no leía la configuración y por lo tanto el modo oscilador estaba en RC, cuando lo que necesita es modo XT, ya que lleva un cristal externo de 4Mhz.

Bueno, pues he aprendido muchísimo y lo más importante, me he quedado enganchado al tema de los PICs y todo gracias a vosotros.

Cuando haga mi primer proyectillo, lo pondré por aquí.

Así que muchas gracias por todo y saludos desde La Mancha, España.

Un saludo.

Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: AcoranTf en 05 de Marzo de 2012, 17:28:51
LLegue tarde, pero me alegro que lo hayas solucionado. Yo solo queria comentarte que yo tambien tengo un TOP2004 y no me funciona bien con los PIC, con el resto de dispositivos si, pero los PIC no se porque nunca los ha trabajado correctamente. Si alguna vez vuelves a tener problemas con los PIC y ese programador, te aconsejo que te hagas con un PicKit II o III.

Saludos.
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: diguito_69 en 05 de Marzo de 2012, 23:50:18
Que bueno que lo hayas solucionado y aprendido mucho.

Saludos.
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: cesarillo en 06 de Marzo de 2012, 10:15:10
LLegue tarde, pero me alegro que lo hayas solucionado. Yo solo queria comentarte que yo tambien tengo un TOP2004 y no me funciona bien con los PIC, con el resto de dispositivos si, pero los PIC no se porque nunca los ha trabajado correctamente. Si alguna vez vuelves a tener problemas con los PIC y ese programador, te aconsejo que te hagas con un PicKit II o III.

Saludos.


A mí no me ha dado problema, pero es cierto que los hay mucho mejores. Si alguna vez me falla, probaré con los que dices. Gracias
Título: Re: Por favor, como saber si PIC16C73B esta protegido?
Publicado por: cesarillo en 06 de Marzo de 2012, 10:15:48
Que bueno que lo hayas solucionado y aprendido mucho.

Saludos.

Sí, mucho!
Gracias. Hasta pronto