Go Down

Topic: numéro de serie atmega328 (Read 3625 times) previous topic - next topic

KiliYaBB

Bonjour,
Je me pose une question :

y a til un nuémro de serie propre a chaque boitier atmega (328 en loccurence) ?

Un "code" chiffré qui serait unique, inchangeable, dans chaque boitier ?

AU quel cas, comment le récupérer ?

Ou si ca n'existe pas, comment créer un "numero de serie" une fois pour toute, inchangeable et incopiable d'un boitier a un autre ?

Merci pour votre aide !

fdufnews

Quote
y a til un nuémro de serie propre a chaque boitier atmega (328 en loccurence) ?

Non

Quote
Ou si ca n'existe pas, comment créer un "numero de serie" une fois pour toute, inchangeable et incopiable d'un boitier a un autre ?

En fait, je crois qu'il n'y a pas vraiment de solution qui réponde à toutes tes exigences. L'atMega n'a pas été conçu pour répondre à ce type de besoin. Tu peux protéger le code en flash mais alors tu ne sais plus le relire.

Si tu veux identifier de manière unique une réalisation tu peux éventuellement y ajouter un composant comme celui-ci http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2903 le prix est ridiculement faible. La mise en oeuvre n'est pas très compliqué et il y a des exemples sur le playground http://www.arduino.cc/playground/Learning/OneWire. Ces mémoires contiennent un code unique (garantie par le constructeur). Tout dépend de ton besoin de protection et de l'investissement (temps, coût) que tu est prêt à consentir pour en assurer la protection

KiliYaBB

Ok merci fdufnews pour tes réponses toujours aussi claires et précises !

j'ai plus de pins dispo du coup je vais pas pouvoir utliser ce composant mais je vais cogité !  8-)

churchill

Salut,

Tu peux aussi, selon tes besoins et si cela te suffit, inscrire dans l'Eprom de l'Atmega un code que tu auras généré pour l'occasion et que tu changeras à chaque chargement du programme sur une carte différente.

Churchill

ekaki

Ou coller à la cyano' sur le composant une barrette avec un numéro de série (?).

En fait, comme le dit fdufnews, tout dépend du niveau de protection et des moyens financiers. Par exemple pour de la petite série il est possible de demander à un fabriquant une version OEM avec un numéro de série gravé sur le composant.

Jean-François

Il y a une possibilité de faire une variable avec ton n° de série et de bloquer la reprogrammation en réglant les fuses, mais ensuite tu ne pourras pas refaire de mise à jour.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

fdufnews

Quote
Tu peux aussi, selon tes besoins et si cela te suffit, inscrire dans l'Eprom de l'Atmega un code que tu auras généré pour l'occasion

Il n'y a là aucun niveau de protection possible on peut le copier comme on veut.
Quote
Par exemple pour de la petite série il est possible de demander à un fabriquant une version OEM avec un numéro de série gravé sur le composant.

Il faut déjà en commander un beau paquet pour que cette solution soit rentable. D'autant qu'on peut le faire assez facilement à la Dremel et au stylo graveur.
Si on va par là, il suffit de protéger le code en positionnant les fusibles comme il faut pour empêcher la copie. Et graver un numéro de série sur la carte (ou le processeur) au stylo graveur.

Tu as une grosse série à faire??

churchill

Quote
Quote
Quote:
Tu peux aussi, selon tes besoins et si cela te suffit, inscrire dans l'Eprom de l'Atmega un code que tu auras généré pour l'occasion

Il n'y a là aucun niveau de protection possible on peut le copier comme on veut.


C'est clair ! Mais comme je ne connais pas le besoin, cela aurait pu tout aussi bien être pour un usage interne où le besoin de protection n'existe pas, par exemple pour différencier plusieurs cartes d'acquisition, ou plusieurs cartes effectuant quasiment la même tâche...

Churchill

KiliYaBB

"il suffit de protéger le code en positionnant les fusibles comme il faut pour empêcher la copie"

c'est a dire ? je ne comprends pas...

Merci !

churchill

L'atmega a des fusibles pour le configurer. En positionnant certains d'entre eux aux bonnes valeurs, tu peux empêcher que le code soit relu de l'extérieur... mais alors plus de programmation possible après.

Tu peux aller jeter un coup d'?il sur :
http://www.atmicroprog.com/cours/atmega/fuses.php

A manier avec beaucoup de précaution !

Franssoa

fl0w

sérieux, on ne peut pas empêcher la lecture sans bloquer la programmation à tout jamais ???? :-/

joker

Churchill: +1  ;)
C'est ce que j'ai fait pour une application où l'Arduino est contrôlé par une application externe. Dans l'EEPROM j'ai enregistré un n° de série, le code de l'application et son code de version.
En fonction du niveau de protection souhaité, tu peux éparpiller ces codes dans les 512 bytes de mémoire EEPROM, utiliser un encodage pour éviter une lecture directe trop intuitive.
Sinon, la soluce Maxim/Dallas semble (je ne l'ai pas testée mais je l'ai étudiée un moment donné) assez simple et robuste.
HTH

fdufnews

Quote
sérieux, on ne peut pas empêcher la lecture sans bloquer la programmation à tout jamais ????
Non, la seule chose que l'on peut encore faire c'est effacer complètement le composant. Toute la mémoire est alors vierge comme à la sortie d'usine.

fl0w

ah ok, il n'est donc pas définitivement figé, ça me rassure :)

demss

#14
Apr 02, 2010, 11:44 pm Last Edit: Apr 02, 2010, 11:53 pm by userid3456789 Reason: 1
Bonjour,

Je veux protéger le code de mon ATmega328 sur mon Arduino Duemilanove.

J'ai utilisé PonyProg2000 Version  2.07c, mais je suis incapable de faire quoi que ce soit.

Voici ce que j'ai fait
1) j'ai brancher mon Arduino à l'ordinateur avec le cable USB.
2) Dans PonyProg je suis allé dans le menu Setup->Interface Setup... et j'ai sélectionné Serial et SI Prog API et j'ai choisi le bon port COM.
3) Ensuite j'ai sélectionné dans le menu Device->AVR micro->ATmega32.
4) Après j'ai choisi l'option Command->Security and Configuration Bits... pour modifier les valeurs des fusibles de protection.

5) ensuite il y a une fenêtre qui est affiché et dans la fenêtre c'est écrit Reading Security Bits et le pourcentage reste à 0% pendant environ 5 minutes et après il y a une autre fenêtre qui est afficher et c'est écrit ce message d'erreur "Device missing or unknown device -24".

Je doit faire quoi pour modifier les valeurs des fusibles de protection avec PonyProg?

Merci

Go Up