Proyecto - Recuperar valor configuración OSCCAL en PIC´s

Todos los Microcontroladores y sus diferentes "familias". Todo este espacio es tuyo para mostrar tu código, consultar con los que más conocen del tema y para disfrutar de estos increíbles y poderosos componentes electrónicos.

Moderador: HJ

Re: Proyecto - Recuperar valor configuración OSCCAL en PIC´s

Notapor HJ » Lun Mar 10, 2014 8:35 am

Hola Javier, estoy teniendo problemas para realizar este montaje, no dispongo de ningún 12F629, pero si de varios 12F675, grabé el mismo HEX en un 675, pero por algún motivo no funciona correctamente, en realidad pereciera que si, ya que los parpadeos de los LED son como en el vídeo, pero nunca graba al micro SLAVE y tarda varios minutos para que se apague el LED verde, nunca hace el proceso final de grabación...
El micro SLAVE tampoco generaba frecuencia alguna, así que intenté leerlo después que se apagara el LED ROJO, y el mismo está borrado...

Te comento que le conecté el analizador lógico al circuito y los pulsos de grabación están sobre el micro a grabar, lo mismo que la Vpp... pero el SLAVE no se graba... probé con varios micros y con todos igual...

Me queda la alternativa de que el firmware que hiciste para el 629 no sea compatible con el 675...

Saludos
HJ
"Cuando llegue la inspiración, que me encuentre trabajando"
Picasso, Pablo
Avatar de Usuario
HJ
 
Mensajes: 477
Registrado: Jue Mar 21, 2013 3:16 pm
Ubicación: Tanti - Córdoba - Argentina

Re: Proyecto - Recuperar valor configuración OSCCAL en PIC´s

Notapor Switchxxi » Lun Mar 10, 2014 5:46 pm

Hola, HJ.

Lo mas probable es que la configuracion del conversor ADC del 675 haya dejado en analogo algun pin ya que difiere un poco con respecto a la configuracion del 629, pero me suena raro.

Te adjunto el codigo:
OSCCAL.zip
(3.88 KiB) 178 veces


Creo que es ese, al menos es el unico que encuentro. Se que lo habia modificado un par de veces pero estoy casi seguro de que este es el definitivo.

Solo restaria cambiar la palabra de configuracion por la correspondiente al PIC12F675. De todas formas vere si hay algo que difiera entre los dos micros.

Ten presente que no queda ningun codigo en el micro a recuperar, una vez terminado el proceso borra todo y lo unico que guarda es el valor del oscilador en la ultima posicion, asi que lo lees estara vacio, salvo por la calibracion.

(PD: Habria que agregar una excepcion a la extension .ASM y/o .TXT ya que tuve que comprimirlo para poder subir el codigo).


EDITO: Aca lo compile como para que ande con el 12f675, lo unico que hice fue agregarle la sentencia "clrf ANSEL" que imagino sera lo que esta complicando las cosas.
OSCCAL-675.zip
(958 Bytes) 180 veces

Imagino que con eso deberia funcionar porque otra cosa rara no le encuentro.

Saludos.
- Javier -
En mis circuitos, el humo no se cobra, va de regalo.
            Imagen
Avatar de Usuario
Switchxxi
 
Mensajes: 215
Registrado: Sab Mar 23, 2013 4:10 pm
Ubicación: Bs. As - Argentina

Re: Proyecto - Recuperar valor configuración OSCCAL en PIC´s

Notapor HJ » Lun Mar 10, 2014 8:01 pm

Muchísimas gracias Javier, era eso, ahora anda correctamente.

Es mas este equipo puede recuperar aquellos PIC12F675 que el PICkit2 no puede... es espectacular.

Hay un problema con los 12F675 (y según una nota técnica con los 12F629 y 12F676 - ver acá) que si se protege la memoria de programa y luego se regraba el PIC con un PICkit2, se pierde el valor de calibración y por experiencia propia el mismo PICkit2 no permite recuperarlo con la herramienta que trae (al menos el clon)...

Pero bueno, gracias a Javier y su circuito he podido recuperar dichos micros.

Si bien el valor difiere con uno que borré previo "guardar" el valor de calibración de fábrica, debe de ser porque lo tengo armado con cables a la placa ya que son micros SMD y utilicé el conector ICSP mas un cable para la frecuencia y de allí puede haber un pequeño ruido o algo por el estilo.
El valor antes de borrarlo era 0x3444 (es decir 0x44) y ahora 0x3448 (es decir 0x48)...

Pero con los otros que tenía totalmente borrados y sin ninguna referencia, ahora ya tengo algo bastante aproximado, voy a ver de hacer una placa para los SMD en cuanto tenga algo de tiempo disponible.

Gracias Javier nuevamente.

P.D: Estos micros son todo un tema... el ICD3 8original de microchip) aparece un mensaje indicando que el MPLAB ICD3 no soporta grabar estos micros si se selecciona tanto el oscilador interno como el MCLR interno... es decir el ICD3 no me permitió grabar el programa que subió Javier...

Dibujo.JPG
Dibujo.JPG (17.26 KiB) Visto 2362 veces
"Cuando llegue la inspiración, que me encuentre trabajando"
Picasso, Pablo
Avatar de Usuario
HJ
 
Mensajes: 477
Registrado: Jue Mar 21, 2013 3:16 pm
Ubicación: Tanti - Córdoba - Argentina

Re: Proyecto - Recuperar valor configuración OSCCAL en PIC´s

Notapor Switchxxi » Lun Mar 10, 2014 8:58 pm

Tiene logica que no pueda grabar los micros con esa configuracion si el ICD3 usa ICSP ya que difiere en cuanto a hacer entrar en modo programacion a los micros. Como el mio es de alto voltage (MCLR = 13v) no le va a costar recuperar al micro. En cambio al usar ICSP basicamente por lo que veo esta diciendo: "Si se bloquea no me hago cargo".

En cuanto al tema del valor de la configuracion recuperado, si has revisado mi codigo, lo que hace es basicamente inicializar el TMR0 (con incremento en cada pulso que saque el micro esclavo) y esperar 400us luego compara el valor del TMR0 con la cantidad de pulsos que entrarian en esos 400us +-1% por eso se compara el TMR0 con 3 valores (-1%, exacto, +1%).
Si realizas el circuito en un impreso y vez que los valores siempre difieren en igual cantidad (+2 en tu caso), solo hay que cambiar los valores para ajustarlos.
Y digo +2 porque el oscilador incrementa la frecuencia de dos en dos, osea que con un valor de 44 o 45 la frecuencia no varia, recien en 46 aumentara la frecuencia al siguiente valor.
(Ahora que lo pienso no me acuerdo si tuve eso en cuenta en mi programa, deberia revisarlo).

Tambien influye la fuente de alimentacion junto con el capacitor cerca de los pines de alimentacion como bien has comprobado y yo tambien (Que me llevaba la frecuencia 1 punto fuera).

Por el tema de los cables, en mi prototipo tenia dos protoboards y cables de unos 10cm llevando y trayendo las señales entre los micros. No me habia dado problemas y el valor recuperado siempre fue el que venia grabado incluso cuando arme el circuito impreso todo sin cambiar y/o calibrar el programa.

Saludos.
En mis circuitos, el humo no se cobra, va de regalo.
            Imagen
Avatar de Usuario
Switchxxi
 
Mensajes: 215
Registrado: Sab Mar 23, 2013 4:10 pm
Ubicación: Bs. As - Argentina

Re: Proyecto - Recuperar valor configuración OSCCAL en PIC´s

Notapor HJ » Lun Mar 10, 2014 9:47 pm

Switchxxi escribió:Tiene logica que no pueda grabar los micros con esa configuracion si el ICD3 usa ICSP ya que difiere en cuanto a hacer entrar en modo programacion a los micros. Como el mio es de alto voltage (MCLR = 13v) no le va a costar recuperar al micro. En cambio al usar ICSP basicamente por lo que veo esta diciendo: "Si se bloquea no me hago cargo".

Exacto


Switchxxi escribió:En cuanto al tema del valor de la configuracion recuperado, si has revisado mi codigo, lo que hace es basicamente inicializar el TMR0 (con incremento en cada pulso que saque el micro esclavo) y esperar 400us luego compara el valor del TMR0 con la cantidad de pulsos que entrarian en esos 400us +-1% por eso se compara el TMR0 con 3 valores (-1%, exacto, +1%).

La verdad me dio pereza pasar el HEX a ASM.

Switchxxi escribió:Si realizas el circuito en un impreso y vez que los valores siempre difieren en igual cantidad (+2 en tu caso), solo hay que cambiar los valores para ajustarlos.
Y digo +2 porque el oscilador incrementa la frecuencia de dos en dos, osea que con un valor de 44 o 45 la frecuencia no varia, recien en 46 aumentara la frecuencia al siguiente valor.
(Ahora que lo pienso no me acuerdo si tuve eso en cuenta en mi programa, deberia revisarlo).

comprendo.

Switchxxi escribió:Tambien influye la fuente de alimentacion junto con el capacitor cerca de los pines de alimentacion como bien has comprobado y yo tambien (Que me llevaba la frecuencia 1 punto fuera).

Estoy alimentado con una batería de 12V - 7Ah y en la placa del SLAVE tiene un .1uF pegado a la alimentación.

Switchxxi escribió:Por el tema de los cables, en mi prototipo tenia dos protoboards y cables de unos 10cm llevando y trayendo las señales entre los micros. No me habia dado problemas y el valor recuperado siempre fue el que venia grabado incluso cuando arme el circuito impreso todo sin cambiar y/o calibrar el programa.

Lo tengo armado en protoboard y con cables a la placa donde están soldados los 16F675 SMD con un conector ICSP pro donde me conecto mas el cable de la frecuencia, soldado a un Test Point de la placa que corresponde con el pin 3 del micro.


Probé 4 vírgenes y el corrimiento es ese.
Recuperé 6 de los que había eliminado el valor al grabar el micro protegido con le PICkit2

Me queda uno que no puedo recuperarlo... cuando se apaga el led verde, no ha recuperado el valor y mantiene el siguiente programa en su interior, que debe de ser el que escribes para generar la frecuencia.

Dibujo.JPG

(Si querés, esto lo elimino luego de que lo veas)

Hay que tener en cuenta que este se encuentra soldado en una placa con todo armado al igual que los otros recuperados. De echo al querer actualizar el firmware fue cuando se presento todo el problema.

Nuevamente muchas gracias Javier.

Saludos
HJ
"Cuando llegue la inspiración, que me encuentre trabajando"
Picasso, Pablo
Avatar de Usuario
HJ
 
Mensajes: 477
Registrado: Jue Mar 21, 2013 3:16 pm
Ubicación: Tanti - Córdoba - Argentina

Re: Proyecto - Recuperar valor configuración OSCCAL en PIC´s

Notapor Switchxxi » Lun Mar 10, 2014 11:01 pm

No hace falta borrar el codigo que subiste ya que el codigo fuente completo lo subi antes ajaja.

Por lo que veo no esta grabando bien las 2 primeras instrucciones:

0x3FFF deberia ser 0x1683 -------> bsf STATUS, rp0
0x0110 deberia ser 0x0190 -------> clrf OSCCAL

El resto parece bien... Sin esas intrucciones el micro no se configura correctamente y por eso hace cualquier cosa. (Otro bug ya que al no recuperar el valor no borra el programa que grabo).

Proba borrar el micro y leerlo. Si las dos primeras posiciones siguen en 0x3FFF y 0x0110 quiere decir que se daño la memoria de programa. (Esto ya lo tenia en cuenta pero nunca lo implemente: comprobar que el programa se grabo correctamente).

Ahora solo queda retocar el valor para calibrar el micro y eliminar el corrimiento, lo bueno es que al ser siempre igual se puede retocar manualmente en cada micro, al menos por ahora para salir del paso, aunque lo ideal es que lo recupere automaticamente XD.

Ahi retoque el programa, medio tirado de los pelos lo que hice pero deberia andar. Lo que hace es restarle 4 al valor de calibracion que va a grabar :lol:

OSCCAL-4.zip
(955 Bytes) 181 veces


El programa necesita mucho pulido pero lo habia echo mas que nada porque tenia curiosidad de como se graban los micros. Quizas algun dia de estos me siente y pula las cosas que aparecieron aca :)

Por lo pronto me alegra que te haya sido de utilidad y gracias a vos por ser el betatester :lol:

Saludos.
En mis circuitos, el humo no se cobra, va de regalo.
            Imagen
Avatar de Usuario
Switchxxi
 
Mensajes: 215
Registrado: Sab Mar 23, 2013 4:10 pm
Ubicación: Bs. As - Argentina

Re: Proyecto - Recuperar valor configuración OSCCAL en PIC´s

Notapor HJ » Lun Mar 10, 2014 11:14 pm

Hola Javier, como vengo molestando con esto...
Switchxxi escribió:Proba borrar el micro y leerlo. Si las dos primeras posiciones siguen en 0x3FFF y 0x0110 quiere decir que se daño la memoria de programa. (Esto ya lo tenia en cuenta pero nunca lo implemente: comprobar que el programa se grabo correctamente).

De echo el micro se borra perfectamente y si le grabo cualquier otra cosa también se graba correctamente.
Mañana voy a ver de conectar el osciloscopio a las alimentaciones.
Y de hacer una coptura con el analizador lógico al mismo tiempo.

Switchxxi escribió:Ahora solo queda retocar el valor para calibrar el micro y eliminar el corrimiento, lo bueno es que al ser siempre igual se puede retocar manualmente en cada micro, al menos por ahora para salir del paso, aunque lo ideal es que lo recupere automaticamente XD.

Ahi retoque el programa, medio tirado de los pelos lo que hice pero deberia andar. Lo que hace es restarle 4 al valor de calibracion que va a grabar :lol:

OSCCAL-4.zip


De hecho ya los retoqué a mano... jeje
Gracias igualmente.

Switchxxi escribió:El programa necesita mucho pulido pero lo habia echo mas que nada porque tenia curiosidad de como se graban los micros. Quizas algun dia de estos me siente y pula las cosas que aparecieron aca :)

Estaría bueno, pero seguro te pasa como a mí, que lo que falta es tiempo...

Otros a tener en cuenta para una futura versión serían los pequeños (10F2xx), que pueden perder el valor de calibración, pero esos los he podido recuperar con el PICkit2, al menos los dos que borré para probar la función del PICkit2.

Switchxxi escribió:Por lo pronto me alegra que te haya sido de utilidad y gracias a vos por ser el betatester :lol:
.

La verdad que de muchísima utilidad, y gracias nuevamente a vos.

Saludos
HJ
"Cuando llegue la inspiración, que me encuentre trabajando"
Picasso, Pablo
Avatar de Usuario
HJ
 
Mensajes: 477
Registrado: Jue Mar 21, 2013 3:16 pm
Ubicación: Tanti - Córdoba - Argentina

Re: Proyecto - Recuperar valor configuración OSCCAL en PIC´s

Notapor HJ » Mar Mar 11, 2014 12:07 am

Switchxxi escribió:No hace falta borrar el codigo que subiste ya que el codigo fuente completo lo subi antes ajaja.

Ahora recién veo que dejaste también el ASM... no me había dado cuenta, vi la edición con el HEX para el 675 y fui a bajar esa directamente...

Gracias, ya lo voy ha ver en detalle, así también aprendo como grabar un micro.
"Cuando llegue la inspiración, que me encuentre trabajando"
Picasso, Pablo
Avatar de Usuario
HJ
 
Mensajes: 477
Registrado: Jue Mar 21, 2013 3:16 pm
Ubicación: Tanti - Córdoba - Argentina

Re: Proyecto - Recuperar valor configuración OSCCAL en PIC´s

Notapor Switchxxi » Jue Mar 20, 2014 8:34 pm

Buenas...

Ahi corregi dos errores:

Ahora funciona con los 629 y con los 675, ademas de que si no encuentra el valor borra el programa que graba en el esclavo.

Ahora estoy peleandome con la comprobacion. Aun no puedo hacerla funcionar igual solo habre estado 2 horas con todo.
A ver si encuentro ganas este fin de semana y me pongo a terminarlo.

Quizas tire todo y empiece de cero, aun no lo se... Ahora no me gusta mucho el programa grabado en el esclavo ya que el oscilador se incrementa cada 4 valores, (no usa los primeros 2 bit de la palabra de configuracion) por lo que solo hay 64 valores de oscilacion. Se me habia cruzado hacerlo incrementar cada 4 pero despues me eche atras, de la forma que esta ahora comprueba el valor 4 veces :lol: , quizas cambie de idea, asi se agiliza la busqueda. Tambien se me cruzo empezar por el valor medio del oscilador y comprobar si es mayor o menor la oscilacion:

Digamos que es de 0 a 64... entonces empiezo con 32 y veo si la oscilacion es menor o mayor a la buscada.
Si es menor cambiar a 16 y comprobar de nuevo, si es mayor cambiar a 48 y comprobar... etc

De esa forma la comprobacion tarda poco y deberia obtener el valor mas rapido, incluso si lo compruebo varias veces para asegurarse.

HJ escribió: Otros a tener en cuenta para una futura versión serían los pequeños (10F2xx), que pueden perder el valor de calibración, pero esos los he podido recuperar con el PICkit2, al menos los dos que borré para probar la función del PICkit2.


Hasta donde habia visto los 10f2xx guarda el valor de calibracion en dos lados, osea que son un poco mas "seguros" aunque a mas de uno se le escapa la liebre :lol:
Lo malo es que no tengo de esos micros. Algun dia que valla a la casa de electronica vere si consigo un par para jugar.

Saludos.
- Javier -


http://www.mediafire.com/view/cu32nt17c5e9n7q/OSCCAL_0.2.HEX
En mis circuitos, el humo no se cobra, va de regalo.
            Imagen
Avatar de Usuario
Switchxxi
 
Mensajes: 215
Registrado: Sab Mar 23, 2013 4:10 pm
Ubicación: Bs. As - Argentina

Re: Proyecto - Recuperar valor configuración OSCCAL en PIC´s

Notapor Switchxxi » Sab Mar 22, 2014 8:13 pm

Versión ¿ Final ?, al menos por ahora creo que si. http://www.mediafire.com/view/wj5go0840 ... L_v0.4.HEX
(Notas de lo que se corrigió/agrego en el primer post).

Sigo recuperando los micros con el valor correcto sin tener que retocar el valor del OSCCAL que recupera. Incluso alimente el circuito con una batería para estar seguro, ademas de comprobar el micro, ya con el valor recuperado y un pequeño programa, para verificar la frecuencia y todo me da bien.

HJ, (u otro que haya usado el circuito) ¿ podrías/n comprobar que frecuencia sale por el pin 3 del micro una vez que se recupera el valor usando el siguiente programa: ?

HJ, ¿ el micro que usaste como maestro, poseía el valor de calibración correcto ?

http://www.mediafire.com/view/e0klwbd68ob1dd8/Check.HEX

Lo único que hace es configurar el micro para que saque por el PIN 3 la frecuencia de reloj (dividida por 4) y se queda en un loop infinito.
Debería medirse 1Mhz, yo en las pruebas mido 1,006Mhz aprox.

Si no seguiré viendo donde puede encontrarse el error, que de seguro se me esta escapando algo y no me doy cuenta.

Saludos.
- Javier -
En mis circuitos, el humo no se cobra, va de regalo.
            Imagen
Avatar de Usuario
Switchxxi
 
Mensajes: 215
Registrado: Sab Mar 23, 2013 4:10 pm
Ubicación: Bs. As - Argentina

AnteriorSiguiente

Volver a Microcontroladores

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

cron