Comment puis-je déterminer si un microcontrôleur est endommagé?

8

J'ai quelques microcontrôleurs assis dans mon bac "pièces indésirables". Je pense que certains d'entre eux sont arrivés là-bas lorsque, après les avoir programmés, ils ont fait preuve d'un comportement étrange. Depuis, j'ai beaucoup appris, par exemple, comment avoir une mauvaise optimisation sur le compilateur peut provoquer un comportement aussi étrange. D'un autre côté, certains des microcontrôleurs peuvent avoir été endommagés en raison de tensions statiques, hors tolérance, etc. Ainsi, je pense que certains peuvent être en bon état de fonctionnement.

Avant de tout jeter, je me suis demandé: existe-t-il un moyen relativement simple ou facile de tester un microcontrôleur pour déterminer s'il est toujours bon?

Les micros en particulier sont les versions Atmel ATTiny13, ATTiny26 et ATTiny2313, à la fois DIP et SOIC.

JYelton
la source
2
Selon votre programmeur, je pense qu'il devrait pouvoir parler à la puce avant de programmer, pour vérifier son ID et autres. Avez-vous essayé une telle chose?
dext0rb
En utilisant USBTiny et AVRDude, oui, cela indiquera s'il ne peut pas établir de connexion avec la puce; dans ces cas, je les traite comme morts. Parfois, la programmation se termine, mais la puce se comporte bizarrement. Dans ces cas, il semble que la bonne façon de diagnostiquer soit comme le suggère @Passerby.
JYelton
@JYelton Veuillez consulter cet article pour obtenir des informations utiles sur la connexion d'Arduino pour programmer des micros. Vous pouvez utiliser la commande avrdude -e pour effacer l'appareil et voir si avrdude peut parler à votre appareil. Voici la page de manuel pour la référence de commande avrdude.
Chetan Bhargava
Vous pouvez également utiliser Arduino pour la programmation haute tension, qui peut (ou non) résoudre d'autres problèmes (de communication) avec les AVR. rickety.us/2010/03/arduino-avr-high-voltage-serial-programmer
jippie

Réponses:

10

Si je devais tester complètement chaque MCU pour sa fonctionnalité correcte, je construirais une carte de test pour chacune, avec un adaptateur ou une prise pour faciliter le changement facile du CI. Connectez chaque broche d'E / S à une sortie visuelle telle qu'une LED et programmez-la avec un simple firmware qui testera chaque broche à son tour. Une autre étape consisterait à tester la communication et d'autres fonctionnalités en fonction de la profondeur à laquelle vous souhaitez être.

Cependant, si vous voulez simplement vérifier rapidement que le MCU communique correctement avec le programmeur. J'utiliserais un programmeur tel que Pocket AVR Programmer , avec une carte de dérivation ou un adaptateur pour chaque MCU. Ensuite, en utilisant la ligne de commande, testez rapidement chaque MCU pour voir s'il répond.

Un exemple pour l'ATTiny2313 serait:

entrez la description de l'image ici http://www.ladyada.net/make/usbtinyisp/avrdude.html

davivid
la source
Un Arduino (si vous en avez un à portée de main ou si vous souhaitez en garder un à portée de main) peut également être utilisé pour les tester avec avrdude comme @davivid l'a mentionné. Vous pouvez les câbler rapidement sur une planche à pain.
Chetan Bhargava
4

Les programmer avec un code non optimisé, facile à déboguer / observer. S'il n'agit pas comme il le devrait, mais le fait sur une bonne puce connue, vous pouvez supposer que les puces sont endommagées.

Passant
la source