Go Down

Topic: Comment griller son SPI/ICSP header? (Read 962 times) previous topic - next topic

alexistessier

Apr 19, 2015, 08:20 pm Last Edit: Apr 19, 2015, 08:24 pm by alexistessier
Bonjour,

Mon problème : j'ai un projet qui utilise deux devices SPI (BLE nrf8001 et un SDCard breakout). Je les relie tout les deux au miso/mosi/sck du Header ICSP (+ un chip select pour chacun).

Jusqu'à récemment cela fonctionnait. Maintenant non, et même individuellement les modules SPI ne fonctionnent plus. En revanche, en les testant avec une autre carte UNO, ils fonctionnent. Je suppose donc que le SPI de ma UNO est cassé...

Qu'est-ce qui a pu provoquer cela ?

Je soupçonne un faux contact (du à une mauvaise soudure de ma part) entre les pin SCK et MOSI du Header ICSP... Un faux contact de ce genre peut-il suffire à griller complètement mon SPI ?

C'est ce qui me semble le plus probable mais je préfère demander validation (car si ce n'est pas le cas, ça veut dire que mon problème est autre...)

Maintenant, j'ai aussi trois autres pistes (qui peuvent peut-être avoir un rapport, bien que je ne pense pas...):

D'après la documentation sur le SPI d'arduino, les ports miso/mosi/sck se retrouvent aussi aux pins 11/12/13... mais du coup, si on se sert du header ICSP, les 11/12/13 peuvent-elle être utilisées pour d'autre INPUT/OUTPUT (en l'occurrence j'avais un bouton relié à la pin 13) ?

Aussi, mon branchement utilise aussi une alim externe pour allumer pas mal de led. Cette alim (5V10A) alimente les leds d'une part et la carte UNO en passant par le port USB. Cette partie fonctionne (les leds s'allument et le UNO aussi...) donc à priori je ne pense pas qu'il y ait de rapport, mais sait-on jamais... est-il possible que cela ait pu endommager le SPI de ma UNO d'une quelconque manière ?

Enfin j'ai aussi une interrogation sur l'utilisation d'une pull-down résistance sur le CS des devices SPI. Dans mes premiers tests, j'étais tombé sur un tuto (pour contrôler des potentiomètres digitaux) où il conseillait d'en mettre. Du coup j'en met depuis. Mais dans quelle mesure c'est utile (c'était peut être spécifique au potar digitaux en question)? et surtout est ce que ça a put endommager le SPI ?

Voila, voila, c'est beaucoup de questions et je mise plus sur le faux contact pour expliquer mon soucis, mais peut-être que certaines choses m'échappent (ce pourquoi j'ai détaillé un peu les autres aspects de mon projet).

Merci d'avance =)

Cordialement,

Alexis Tessier


fdufnews

D'après la documentation sur le SPI d'arduino, les ports miso/mosi/sck se retrouvent aussi aux pins 11/12/13... mais du coup, si on se sert du header ICSP, les 11/12/13 peuvent-elle être utilisées pour d'autre INPUT/OUTPUT (en l'occurrence j'avais un bouton relié à la pin 13) ?
Il faut choisir, c'est soit SPI soit entrées/sorties sinon cela crée des conflits.

alexistessier

Merci.

Des conflits du genre qui peuvent complètement "casser" le SPI sur la carte ?

trimarco232

Bonjour,
l'AVR est coriace, mais des courts-circuits prolongés finissent par endommager les IO
donc si le faux-contact que tu évoques est en fait un court-circuit, c'est possible que l'AVR soit à remplacer

68tjs

Tu peux toujours tester pin par pin.
1) pin en entrée tu lui connecte 5V ou 0V et tu vérifie si la lecture est bonne.
Tu peux vérifier le niveau réel  sur la pin avec un voltmètre ou une entrée analogique.
2) pin en sortie il faut vérifier les deux transistors de sortie
Si tu fait un digitalWrite 1L tu doit obtenir 5 V en sortie, si tu as nettement moins ou même 0 volt c'est que le transistor du bas de la paire de sortie est mort.
Idem avec un digitalWrite 0L : si tu n'a pas  0 volts mais nettement plus c'est que le transistor du haut de la paire de sortie est mort.

Si cela à l'air d'aller bien tu recommance en faisant débiter les sortie en les chargeant avec des résistances entre 500 ohms et  1k pour leur faire débiter une courant inférieur ou égal à 10 ma



Go Up