Go Down

Topic: ATmega328PB (Read 102986 times) previous topic - next topic

testato

Interessante questa funzione dell'ID.
Può essere utile contro la contraffazione.

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

gpb01

#526
Mar 20, 2016, 01:39 pm Last Edit: Mar 20, 2016, 01:39 pm by gpb01
Può essere utile contro la contraffazione.
Mmmm ... insomma ... dovresti fare delle versioni personalizzate, UNA AD UNA, ciascuna con il seriale della MCU bruciato nel codice ... un bel lavoraccio per una produzione in serie ... ::)

Molto più utile invece in applicazioni di sicurezza in cui il seriale può essere parte della chiave di crittografia ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

testato

Se sti seriali sono in serie si può fare un controllo su tutto il batch acquistato.
 If sn 00x to y00

Ottima anche lo a tua idea
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

gpb01

#528
Mar 20, 2016, 02:44 pm Last Edit: Mar 20, 2016, 07:46 pm by gpb01
Forse vale la pena di realizzare una funzione dedicata.
Una cosa tipo questa ? ...

Code: [Select]
void get_mcuSerialNumber(byte* pSerial) {
  for (byte i = 0; i < 9; i++) *(pSerial + i) = _SFR_IO8(0xF0 + i);
}

Guglielmo
Search is Your friend ... or I am Your enemy !

gpb01

#529
Mar 20, 2016, 06:32 pm Last Edit: Mar 20, 2016, 06:32 pm by gpb01
... piuttosto non avevo fatto caso ad una cosa :smiley-confuse:  ... hanno messo la seconda seriale (Serial1) proprio sugli stessi pin del connettore ICSP (MISO0 e MOSI0) ... una bella rottura di scatole se si hanno delle periferiche seriali connesse e si vuole avere la possibilità di aggiornare il FW via ICSP   >:( >:( >:(

Guglielmo
Search is Your friend ... or I am Your enemy !

PaoloP

Lo chiamerei mcuSerialNumber. Serial e basta sa troppo di interfaccia Seriale e non di numero di serie.

In effetti il posizionamento delle doppie funzioni lascia a desiderare. Ma forse usano lo stesso hardware della SPI.

gpb01

#531
Mar 20, 2016, 07:46 pm Last Edit: Mar 20, 2016, 07:46 pm by gpb01
Lo chiamerei mcuSerialNumber. Serial e basta sa troppo di interfaccia Seriale e non di numero di serie.
Corretto ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

testato

Ci sono troppi asterischi per i miei gusti  :)
Come la richiami al fine di stamparlo su monitor seriale ?
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

gpb01

#533
Mar 21, 2016, 08:59 am Last Edit: Mar 21, 2016, 09:00 am by gpb01
Ci sono troppi asterischi per i miei gusti  :)
Come la richiami al fine di stamparlo su monitor seriale ?
:D :D :D :D ... per un paio di piccoli pointer ...

Code: [Select]
char serialNumber[9];
....
get_mcuSerialNumber(serialNumber);
for (byte i = 0; i < 9; i++) Serial.println(serialNumber[i], HEX);

Guglielmo
Search is Your friend ... or I am Your enemy !

PaoloP


PaoloP

Potreste dargli qualche dritta "in inglese" --> https://forum.arduino.cc/index.php?topic=360407.msg2673703#msg2673703
Anche per capire cosa ha combinato.

astrobeed

Anche per capire cosa ha combinato.
Sicuramente ha fatto qualche casino con i fuse.
Scientia potentia est

PaoloP

Si, ma su uno stand-alone, su una schedina Watterott o su Xplained?

astrobeed

Si, ma su uno stand-alone, su una schedina Watterott o su Xplained?
Non specifica nulla di quello che ha fatto, tocca chiedergli di spiegare con che hardware sta lavorando e come ha settato i fuse.
Scientia potentia est

testato

:D :D :D :D ... per un paio di piccoli pointer ...

Code: [Select]
char serialNumber[9];
....
get_mcuSerialNumber(serialNumber);
for (byte i = 0; i < 9; i++) Serial.println(serialNumber[i], HEX);

Guglielmo
Ok, ma non è Arduino like  :)

Lato core va bene scendere a basso livello, ma costringere poi lato user a dover sapere che servono 9 byte e poi doverli concatenare è complicato.

Io ingloberei tutto nella funzione e poi far ritornare solo l id già tutto intero.

In modo da chiamarlo con un semplice int mcuIDnumber();
E vedersi ritornato il dato
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Go Up