Pages: [1]   Go Down
Author Topic: 1 sortie MISO / MOSI avec plusieurs peripheriques ?  (Read 1606 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 1
Posts: 29
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir,

je souhaite afficher de la température et enregistrer en meme temps sur une carte SD.

Or, le LCD ET le lecteur de carte utilisent les sorties MISO/MOSI de l'arduino, comment faire pour que les deux utilisent les memes pin ?
Logged

France
Offline Offline
God Member
*****
Karma: 4
Posts: 971
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

les divers 'périphériques' SPI sont tous câblés sur la même groupe MISO MOSI SCLK, la sélection de l'un d'entre eux (un seul à la fois, chacun son tour) se fait par une broche de sélection individuelle.

C'est par exemple le cas du shield Ethernet ou l'embase SD et la puce W5100 sont sur le bus SPI. On active pin10 quand on s'adresse à la puce Ethernet ou pin 4 quand on s'adresse à la carte SD
« Last Edit: December 11, 2012, 01:48:55 pm by al1fch » Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 29
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

les divers 'périphériques' SPI sont tous câblés sur la même paire MISO MOSI, la sélection de l'un d'entre eux (un seul à la fois, chacun son tour) se fait par une broche de sélection individuelle.

C'est par exemple le cas du shield Ethernet ou l'embase SD et la puce W5100 sont sur le bus SPI. On active pin10 quand on s'adresse à la puce Ethernet ou pin 4 quand on s'adresse à la carte SD


Et ou se trouve cette broche ?
Logged

France
Offline Offline
God Member
*****
Karma: 4
Posts: 971
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

côté Arduino : là ou tu veux,  sur toute sortie numérique disponible, il suffit de l'indiquer dans le soft.
il faut donc gérer l'état de cette pin (en général la mettre à 0 = état actif, puis s'adresser au périphérique concerné  et enfin la remettre à 1 pour désactiver ce périphérique et s'adresser à un autre sur le bus)

côté périphériques : chacun a une broche d'entrée sélection imposée (appelée CS ou SS)
Sur une carte SD c'est la broche 1
« Last Edit: December 11, 2012, 02:06:13 pm by al1fch » Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 29
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

côté Arduino : là ou tu veux,  sur toute sortie numérique disponible, il suffit de l'indiquer dans le soft.
il faut donc gérer l'état de cette pin (en général la mettre à 0 = état actif, puis s'adresser au périphérique concerné  et enfin la remettre à 1 pour désactiver ce périphérique et s'adresser à un autre sur le bus)

côté périphériques : chacun a une broche d'entrée sélection imposée (appelée CS ou SS)
Sur une carte SD c'est la broche 1


Ok, donc rien de physique à effectuer sur l'arduino.

Juste dans le soft :

1. recup de valeurs de température
2. ouverture de la pin du LCD
3. affichage sur LCD
4. fermeture de la pin du LCD

5. ouverture de la pin de la carte sd
6. ecriture de la valeur sur la carte
7. fermeture de la pin de la carte.

8 retour au debut.
Logged

France
Offline Offline
God Member
*****
Karma: 4
Posts: 971
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Ok, donc rien de physique à effectuer sur l'arduino.
juste à cabler les deux CS sur les pins Arduino choisies et en suite manipuler les pins (haut/bas) pour produire les ouvertures/fermetures LCD ou carte SD
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 29
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Ok, donc rien de physique à effectuer sur l'arduino.
juste à cabler les deux CS sur les pins Arduino choisies et en suite manipuler les pins (haut/bas) pour produire les ouvertures/fermetures LCD ou carte SD

Sue la plaque d'essai, j'enfiche les ports miso/mosi sur la meme colonne pour la carte sd et l'ecran lcd ?
Logged

France
Offline Offline
God Member
*****
Karma: 4
Posts: 971
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oui : les MOSI reliées, les MISO reliées , les SCLK reliées

Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 29
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bon, testé ce matin, et l'affichage affiche des lignes de caracteres.

qu'appelle t'on gesrer les PIN ? ouverture, fermeture ? une ligne dans le programme ?

Un exemple à me donner ?

Merci
Logged

France
Offline Offline
God Member
*****
Karma: 4
Posts: 971
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bingo !!
je découvre à l'instant ton message du forum 'Display' sur le même sujet.
http://arduino.cc/forum/index.php/topic,137071.0.html
Si la question initiale avait été posée comme celà je n'aurai pas fait tout ce baratin sur l'association de périphériques SPI multiples !!!!  smiley-red

J'aurai répondu : cabler l'entrée CS de la carte SD à une sortie Arduino réservée exclusivement à cette fonction.
(la carte SD ne s'intéresse à MISO et MOSI et SCLK que quand on la sélectionne, le reste du temps elle est comme 'isolée' du bus SPI)
De la même manière il faudrait que E (Enable) du LCD vienne d'une pin Arduino non partagée avec un autre composant.

Le conflit constaté provient très probablement d'un choix de câblage à revoir. (double usage de la pin 4 ?)
Je reprend le câblage LCD de ton programme 'Température sur LCD' :
Code:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
Il ne devrait plus y avoir de conflit si le CS de la carte SD est piloté par la pin 10 disponible(et non la pin 4 qui sert déjà):
Code:
const int chipSelect = 10;  

« Last Edit: December 12, 2012, 07:34:23 am by al1fch » Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 29
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

j'ai changé la pin 4 du lcd, basculée sur la pin 6, l'ecran fonctionne.

Par contre, j'alimente ma carte sd et l'alime part de la carte sd vers la plaque d'essai. Alimenter la carte sd à partir de la plaque d'essai ne marche pas...

Etrange.  Voila la carte que j'utilise : http://dx.com/p/sd-card-reading-writing-module-for-arduino-deep-blue-142121
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 29
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

j'ai changé la pin 4 du lcd, basculée sur la pin 6, l'ecran fonctionne.

Par contre, j'alimente ma carte sd et l'alime part de la carte sd vers la plaque d'essai. Alimenter la carte sd à partir de la plaque d'essai ne marche pas...

Etrange.  Voila la carte que j'utilise : http://dx.com/p/sd-card-reading-writing-module-for-arduino-deep-blue-142121

Finalement, j'ai changé le cabalge du LCD, acces à la carte ok et affichage ok... le LCD ne doit donc pas avoir besoin de miso/mosi...

Prochaine etape, ecriture des données sur la carte...
Logged

Pages: [1]   Go Up
Jump to: