Go Down

Topic: Mega2560 et  plusieurs SPI (Read 1 time) previous topic - next topic

andromeda

Nov 12, 2010, 05:07 am Last Edit: Nov 12, 2010, 05:08 am by andromeda Reason: 1
Bonjour,

J'utilise les pins 50 51 52 et 53 (SPI) pour me servir d'un module sd card, mais je voudrais aussi utilisé un autres module a base de MAX7221 qui utilise aussi le SPI en meme temps

Comment je peux faire ?

Existe t-il un circuit permettant d'avoir plusieurs SPI ?

Ou sinon est ce que je peux aussi utilise les 6 pin au dessus de la carte (ICSP) comme SPI ?

je ne devrais pas les utilise en meme temps car il partagent les memes pin de l'arduino.

Merci de votre aide.

andromeda


Teiva

Il y a un seul SPI sur le micro, connecté à 50... et sur ICSP.

On connecte plusieurs périphériques SPI sur le même bus en pilotant un CS (Chip Select) par périphérique.
Si le périphérique n'as pas son CS actif, il met ses lignes en haute impédance.



A+ Teiva


www.Zartronic.fr : Votre source Arduino en France


www.Zartronic.fr : Arduino & Robotique

andromeda

#3
Nov 14, 2010, 12:44 am Last Edit: Nov 14, 2010, 12:44 am by andromeda Reason: 1
donc si je veux piloter deux modules avec spi je peux brancher l'autre module sur l'icsp qui est libre et sa broche cs sur une pin de l'arduino, quand je veux utiliser le deuxieme module je met a l'etat bas le cs du premier module et  a l'etat haut le pin cs du deuxieme module qui utlise spi aussi et vice et versa ?

a moins de creer un circuit avec plusieurs connecteur spi connecter sur les broche 50 51 52 53 de l'arduino et je gere apres les cs sur les different pin cs qui sont sur l'arduino par exemple ?

Teiva

Oui dans la théorie c'est ainsi, tu peux brancher sur l'un ou l'autre des connecteurs c'est les mêmes signaux.

Par exemple la carte Ethernet Shield V2 utilise le SPI pour le contrôleur Ethernet et pour la carte SD.

Il faut que tes librairies soft commutent bien le CS qui va bien, ça en pratique c'est moins évident, à vérifier de prêt dans le code.


A+ Teiva


www.Zartronic.fr : Votre source Arduino en France


www.Zartronic.fr : Arduino & Robotique

andromeda

Oui mais on es toujours bloqué avec deux connecteurs SPI, si j'ai 7 capteurs en SPI je fais comment ?

il doit bien exister des circuits avec SPI multiplexer dans le commerce ?
ou un autre moyen.

Merci.

ant.b

Il y a un seul port SPI:
On y accède via les i/o 50 à 53 et via le connecteur ISCP.
cf le schéma: http://arduino.cc/en/uploads/Main/arduino-mega2560-schematic.pdf
Si tu as plusieurs capteurs SPI, tu mets en parallèle les lignes MISO, MOSI et SCK et tu alloues à chaque CS une pin dédiée.

Teiva

ant.b a exactement indiqué la connexion.
Il n'y a pas de multiplexeur SPI a ma connaissance, il suffit de prendre du fil et un fer à souder  :)
Ou un shield de prototypage et poser des connecteurs dessus, puis souder tout ça.


A+ Teiva


www.Zartronic.fr : Votre source Arduino en France


www.Zartronic.fr : Arduino & Robotique

B@tto

Oui je confirme, SPI c'est un peu la même logique que l'i2c mais sans les adresses : tu connectes autant de périphériques que tu veux sur les deux lignes et tu choisis à qui tu adresses ton message en passant son chip select en HIGH. Page 27 de cette doc tu as un exemple : http://docs-europe.origin.electrocomponents.com/webdocs/05ad/0900766b805ad384.pdf
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

andromeda

Merci de vos eclaircissement.
avec des barrettes secable ca doit etre faisable a faire sur une petite platine de test.

Go Up