Autor Tema: Cada PIC con un ID unico?  (Leído 15581 veces)

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

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1836
    • IDEAA
Re:Cada PIC con un ID unico?
« Respuesta #30 en: 15 de Febrero de 2016, 17:14:25 »
Si, esto es muy antiguo, pero me acorde por casualidad del tema y queria comentar la solucion por la que opte y que funciona muy bien.
Como decia en un post anterior, uso el Timer1 para generar un ID aleatorio. Ademas se genera automaticamente la primera vez que se enciende el dispositivo y solo tengo que incluir un par de lineas el inicio del programa. Se ejecutara la primera vez y nunca mas.

Desde el momento en que se alimenta el PIC, el Timer1 (y todos sus timers) empiezan a incrementar, a la velocidad que tenga configurado. No importa si hay una interrupcion activada, el timer corre igualmente. Cuando se desborda vuelve a comenzar desde 0.

Si nuestro dispositivo tiene un interruptor de encendido y un pulsador, la primera vez que se presione el pulsador se lee el valor del Timer1 y se almacena en la EEPROM. YA TENEMOS ID!

El problema es cuando no tenemos interruptor de encendido, y el circuito funciona mientras tengamos el boton presionado, como es el caso de un mando a distancia. En este caso el proceder previamente descrito no funcionaria. Pero si funcionaria grabar el valor del Timer1 en el momento que se suelta el pulsador. Aunque en el momento que se suelta el pulsador nos quedamos sin alimentacion, nuestro PIC ya no podra grabar en la EEPROM, por lo que habria que poner un condensador que nos de unos milisegundos mas de "vida" para permitirle al PIC detectar que se solto el pulsador, leer el timer y grabar en EEPROM. Quizas en el momento que se detecta que se suelta el pulsador se puede poner al PIC a correr a la velocidad mas baja de su oscilador interno para que consuma menos.

El sistema con un interruptor funciona, y funciona de maravilla. El otro no lo he probado, pero deberia ir igual de bien.

Esto lo cuento por que recuerdo hace mucho un post de como generar un numero realmente aleatorio, y se hablaba de un pin ADC al aire, captando interferencias, y otras soluciones similares.
Esta solucion del Timer me parece muy directa y realmente aleatoria, siempre que intervenga el usuario presionando un boton (aunque podria ser algun otro tipo de interaccion).

Si le sirve a alguien bien, y sino, pues me sirve a mi para escribir algo en el foro que llevo desaparecido mucho tiempo  :mrgreen:

Salu2
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re:Cada PIC con un ID unico?
« Respuesta #31 en: 15 de Febrero de 2016, 17:56:11 »
Las EEPROM UID son bastante baratas. Aún así entiendo que haya gente que prefiera utilizar otras técnicas. Eso solucionaría si Microchip empezase a fabricar chips con UID como tienen casi todos los de la competencia (si algún modelo ya lo lleva por favor corregidme).

Saludos!
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re:Cada PIC con un ID unico?
« Respuesta #32 en: 15 de Febrero de 2016, 18:12:13 »
según tengo entendido el ID es número que viene con el pic y es de solo lectura,

en el caso de los 18Fxx5x se encuentra a partir de la dirección 3FFFFEh y se accede en tiempo de programación.

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Cada PIC con un ID unico?
« Respuesta #33 en: 15 de Febrero de 2016, 18:29:58 »
según tengo entendido el ID es número que viene con el pic y es de solo lectura,

en el caso de los 18Fxx5x se encuentra a partir de la dirección 3FFFFEh y se accede en tiempo de programación.

Es distinto ID el que hablan.
El ID que vos decis es para identificar que parte es... me refiero a que PIC es..
Mientras que el ID que ellos hablan es un ID que viene unico para cada micro. Algunos creo que permiten que se grabe el ID de cada uno. De esa forma identificar cada micro en particular y no su familia.

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re:Cada PIC con un ID unico?
« Respuesta #34 en: 15 de Febrero de 2016, 18:43:51 »
según tengo entendido el ID es número que viene con el pic y es de solo lectura,

en el caso de los 18Fxx5x se encuentra a partir de la dirección 3FFFFEh y se accede en tiempo de programación.

Es distinto ID el que hablan.
El ID que vos decis es para identificar que parte es... me refiero a que PIC es..
Mientras que el ID que ellos hablan es un ID que viene unico para cada micro. Algunos creo que permiten que se grabe el ID de cada uno. De esa forma identificar cada micro en particular y no su familia.

OK :)
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1836
    • IDEAA
Re:Cada PIC con un ID unico?
« Respuesta #35 en: 16 de Febrero de 2016, 11:06:01 »
Usar un chip externo me parece exagerado. No por el precio, sino por que es un componente mas cuando con lo que tienes hay suficiente.
No sabia que la competencia tuviese esto ya ontegrado. Me parece muy util y bastante logico. A ver cuando microchip se pone al dia con esto.
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Cada PIC con un ID unico?
« Respuesta #36 en: 16 de Febrero de 2016, 13:37:20 »
Usar un chip externo me parece exagerado. No por el precio, sino por que es un componente mas cuando con lo que tienes hay suficiente.
No sabia que la competencia tuviese esto ya integrado. Me parece muy util y bastante logico. A ver cuando microchip se pone al dia con esto.

Por ejemplo en el Cortex-M4F que poseo de TI, tiene 4 registros para esto:

Register 182: Unique ID 0 (UNIQUEID0), offset 0xF20
Register 183: Unique ID 1 (UNIQUEID1), offset 0xF24
Register 184: Unique ID 2 (UNIQUEID2), offset 0xF28
Register 185: Unique ID 3 (UNIQUEID3), offset 0xF2C
These registers contain a unique 128-bit identifier that cannot be modified by the user. This value
is unique to each individual die but is not a random value. This unique device identifier can be used
to initiate secure boot processes or as a serial number for USB or other end applications.

Si no mal recuerdo ST tambien posee con sus ARM lo que no recuerdo si es modificable o no.. Es decir que uno pueda grabar el propio.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re:Cada PIC con un ID unico?
« Respuesta #37 en: 16 de Febrero de 2016, 13:37:57 »
Siempre podés hacerte un programita que modifique en el .hex los valores donde guardes tu ID (sea FLASH, EEPROM, etc).
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
« Última modificación: 16 de Febrero de 2016, 16:20:43 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Cada PIC con un ID unico?
« Respuesta #39 en: 16 de Febrero de 2016, 16:38:20 »
No es por que microchip no lo tenga, el problema es que no se lo incorpora a sus microcontroladores.


 

anything