Autor Tema: Numeros de Serie, WinPic800 y CCS C ... Cóctel en Serie.  (Leído 4534 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Numeros de Serie, WinPic800 y CCS C ... Cóctel en Serie.
« en: 21 de Marzo de 2007, 18:15:44 »
Tengo la necesidad de fabricar una serie de circuitos electrónicos con su correspondiente Número de Serie Único.

Esta numeración ha de ser accesible desde el propio programa cargado en el PIC.

El Firmware ha sido (está siendo) desarrollado en CCS C, aunque el acceso a dicho numero pueder ser realizado en ASM , si es necesario, empotrándolo en el código en C.

Viendo, mirando, buscando y rebuscando he visto que en la pantalla de Fuses de WiPIC800 del gran Sisco aparece un campo llamado ID, 64 bits divididos en cuatro campos de 16 bits cada uno de ellos.

He estado mirando el Datasheet de mi 18F2550/18F4550 y solo he encontrado referencia a un Device Id pero que hace referencia al modelo, tipo, revisión del PIC de que se trata y es de sólo lectura.

No he encontrado dónde puede ser programado y/o leído dicho ID manualmente.

Un campo de este tipo, programable en cada PIC sería idóneo para grabarle el número de serie único, y despacharlo a petición desde el firmware.

Si, y solo si, fuera o fuese esto posible sería también una buena idea, ¡¡¡ Atención Sisco !!!, poder ir incrementando dicho número a partir de uno inicial escrito en dicha pantalla de fuses, de forma que uno de estos cuatro campos fuese incrementándose en cada nueva grabación realizada con WinPic800, serializando así los PIC's utilizados.

¿Puede alguno de ustedes, amables foreros, arrojar un poco de luz sobre este tema?

Beri Zenqius in advance.



Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re: Numeros de Serie, WinPic800 y CCS C ... Cóctel en Serie.
« Respuesta #1 en: 21 de Marzo de 2007, 23:04:15 »
Hola redpic,

Citar
He estado mirando el Datasheet de mi 18F2550/18F4550 y solo he encontrado referencia a un Device Id pero que hace referencia al modelo, tipo, revisión del PIC de que se trata y es de sólo lectura.

Las Device Id son 4 bytes(en la familia 18) que están guardados en la parte "reservada" de la memoria de cada Pic y sirven para identificar el modelo y la revisión de tal modelo. Lo que tú estás buscando es información acerca de las "id locations" ¿no?. Copiaría esta información pero creo que te será más facil si la lees por ti mismo: no tienes más que buscar por "id" en la ayuda de MPASM y clickear en la opción "__idlocs - Set Processor ID Locations ".

Ahí te explican las directivas de preprocesardor necesarias para que al compilar, tus "id locations" queden guardadas en tu archivo .hex. Si no recuerdo mal, esto también se podía hacer en CCS; en cambio yo no he encontrado información acerca de como hacerlo en C18, al menos en el manual no pone nada.

Ten en cuenta que en principio deberías cambiar el número de tu id manualmente y recompilar tu codigo tantas veces como archivos .hex con distintas id necesites.

Otra opción es que "ataques" directamente a los archivos .hex. Me explico, podrías hacer un programa, por ejemplo en C, que habra el archivo .hex original y guarde la información necesaria del id y despues guarde el mismo archivo con un sufijo... de forma cíclica, la id como tú comentabas. Ejemplo:

Se abre miprog.hex y se guarda...

miprog0000.hex con id 0x0000
miprog0001.hex con id 0x0001
miprog0002.hex con id 0x0002
miprog0003.hex con id 0x0003
.
.
.
miprogFFFF.hex con id 0xFFFF

Bueno si sisco se presta a optimizar WinPic800 para que haga esto, no te haría falta... Por tanto no "te doy más la tabarra"... si ves que necesitas hacer algo como lo que te comento(pues tienes un gran número de archivos fuente a los que dar identificación), no tienes más que comentarlo y te explico los datos necesarios dentro del .hex y el lugar donde situarlos(no es muy dificil)...

Saludos!

Lo siento pero no leí esto:

Citar
Esta numeración ha de ser accesible desde el propio programa cargado en el PIC.

Puedes encontrar información acerca de como leer, escribir y modificar la FLASH y la EEPROM de los PIC18 en el apartado: "Flash Program Memory" de los datasheet. No tengo muy claro si se puede actuar sobre las posiciones de memoria que alojan la id(creo que no pone nada en los datasheets), pero todo es probarlo... estas posiciones son: 0x200000:0x200007.

Saludos de nuevo!
« Última modificación: 21 de Marzo de 2007, 23:40:26 por manwenwe »
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Numeros de Serie, WinPic800 y CCS C ... Cóctel en Serie.
« Respuesta #2 en: 22 de Marzo de 2007, 02:58:14 »
Muchas gracias amigo manwenwe.  :mrgreen:

Voy a atacar el tema intentando escribir en esa dirección, 0x200000:0x200007, así podría autoprogramar el Id mediante un comando enviado vía canal serie (RS232 o similar).


Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re: Numeros de Serie, WinPic800 y CCS C ... Cóctel en Serie.
« Respuesta #3 en: 22 de Marzo de 2007, 11:55:16 »
Hola RedPic, no hace falta nada de RS232... de lo que te hablo es de self-programming: el pic se reprograma a si mismo. Si encuentras alguna forma eficiente de "marcar" los Pics espero que la comentes: yo alguna vez también pensé que sería buena idea hacerlo, pero no he llegado a tener ninguna idea buena.

Saludos!

Ummm despues de leer otra vez, creo que no te comprendí de nuevo: si te refieres a cargar algun algoritmo en tus Pics para que reciban por RS232 una id y se autoprogramen esta id.... me parece una idea excelente!

Animo!
« Última modificación: 22 de Marzo de 2007, 11:57:44 por manwenwe »
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado marmatar

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1220
    • MSTools
Re: Numeros de Serie, WinPic800 y CCS C ... Cóctel en Serie.
« Respuesta #4 en: 22 de Marzo de 2007, 14:42:11 »
Hola RedPIC...
Te comento que Sisco utiliza ese sistema para numerar los PICs del GTP-USB Plus... por eso , cada uno tiene un código único que permite identificar la tanda de producción y permite asociarlo al propietario para facilitar el soporte.
Yo te recomendaría que te pongas en contacto con Sisco para que te explique el prosedimiento para cambiar el código con cada grabación.

Saludos...
marmatar
Lo posible ya está hecho, entonces hagamos lo imposible - Platón

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Numeros de Serie, WinPic800 y CCS C ... Cóctel en Serie.
« Respuesta #5 en: 22 de Marzo de 2007, 15:54:19 »
Ummm despues de leer otra vez, creo que no te comprendí de nuevo: si te refieres a cargar algun algoritmo en tus Pics para que reciban por RS232 una id y se autoprogramen esta id.... me parece una idea excelente!

Exacto, esa es la idea.

PC -> PIC YOUR_NEW_ID_IS=12345 PIC->PC Ok.
PC -> PIC WHAT_IS_YOUR_ID PIC->PC MY_ID_IS=12345

« Última modificación: 22 de Marzo de 2007, 16:07:13 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Numeros de Serie, WinPic800 y CCS C ... Cóctel en Serie.
« Respuesta #6 en: 22 de Marzo de 2007, 15:57:32 »
Te comento que Sisco utiliza ese sistema para numerar los PICs del GTP-USB Plus... por eso , cada uno tiene un código único que permite identificar la tanda de producción y permite asociarlo al propietario para facilitar el soporte.

Exacto Marmatar, eso es lo que necesito.

¡¡¡ Siscooooooo !!! ¿Como se usa la WinPic800 para serializar los PICs?  :D
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Sispic

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
Re: Numeros de Serie, WinPic800 y CCS C ... Cóctel en Serie.
« Respuesta #7 en: 22 de Marzo de 2007, 16:50:00 »
De hecho , puedes usar cualquier posicion de la flash para poner el valor . inxcluso en ascii , y o usar la eeprom.
microchip nos otorga la posicion 0x200000 a 200007.

le puedes poner la fecha , hora y con una resolucion de segundos al programarse por ejemplo , asi no habra ninguno igual y no tendras que molestarte en incrementar numeritos .

para programarlos en serie podria ser :
Le gravas el sistema operativo minimo a tus vichos con los config etc. y luego los actualizas con el downloader poniendole  el ID .

pero recuerda que esta posicion no la puedes proteger contra lectura ni escritura .

En que verengenal estaras liado ahora  :shock:



Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Numeros de Serie, WinPic800 y CCS C ... Cóctel en Serie.
« Respuesta #9 en: 01 de Abril de 2007, 05:37:19 »
¡¡¡ Ahíválaostia!!!  :D :D :D
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania