Pages: [1] 2   Go Down
Author Topic: [SPI]Utiliser des périphériques avec des tensions différentes.  (Read 1422 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 63
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
J'ai actuelement un arduino Mega2560, un module Ethernet ENC28J60 en 5v et un module RFID en 3.3v

Je dispose de plusieurs CD4050 pour faire du level-shifting.

cependant je ne sais pas comment je doit cablé car il y a une différence de tension entre le module Ethernet et RFID.

J'ai essayé les deux modules indépendament et il marche sans problème.
pour l'ethernet j'avais brancher dirrectement sur le 5v de l'arduino,
pour le module RFID j'avais utiliser les CD4050 pour convertir le 5v en 3.3 et un deuxieme pour le 3.3v du miso vers 5v pour l'arduino.

Comment dois-je faire ?
Est-ce  possible au moin ?

Je vous remercie.
« Last Edit: November 05, 2013, 04:03:09 pm by timiti29 » Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 63
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Up please !
Merci
Timiti29
Logged

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3642
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

En fait je comprends pas vraiment ton problème, du moment que tu respectes les tensions de chaque module y'a pas de problème. Donc mis à part ton RFID qui doit avoir chacun de ses pin SPI derrière une porte du CD4050, y'a rien à changer.

Je vois pas vraiment ton questionnement vu que tu dis avoir déjà testé séparement
Logged


France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Ton câblage de chaque module séparément marche ?
Si oui le problème n'en est pas un.

Tu branches exactement de la même façon que séparément en prenant juste soin de ne pas avoir la broche CS (chip select) au même endroit pour les deux modules.
C'est tout, c'est pas plus compliqué que ça smiley-wink
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Jr. Member
**
Karma: 0
Posts: 63
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
Je poste donc mon schemas :


Je n'est pas mis de 4050 pour la liaison MISO entre le RFID et l'arduino car je n'obtient pas de bonne valeurs et par consequant, sa ne marche pas (bizard d'ailleurs)

bref, mon code ne fonctionnant pas, je penssais à un problème hardware.
le but du programme est de lire une carte RFID et quand il y en a une, on envoie les infos via une requete POST sur un serveur apache qui via un script php ajoute une entrée dans une basse de données MySQL.

J'ai donc bien ma lecture du tag, l'arduino dispose bien d'une adresse IP, ... mais je n'ai aucune trame (via wireshark sur mon pc)

Je pose le code pour ceux qui sont intérésé en piece jointe

Pourquoi n'est-je aucune trame ?

Merci
Timiti29

* test1_Add_new.ino (25.89 KB - downloaded 12 times.)
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Rajoute une diode (1N4148 ou assimilé) entre le MISO de l'ethernet et la ligne MISO 3v3/arduino.
Actuellement quand ton module ethernet parle il balance du 5v dans la ligne MISO commune qui va directement au module 3v3.
Ça a pas du faire de dégât mais ce serait bien de rajouter cette diode.

Bon sinon ton problème vient à coup sur du code, mais je t'avouerai que je j'ai pas eu le courage de le lire en entier.
Juste un conseil :
Code:
#define disMFRC digitalWrite(chipSelectPin, HIGH);
// ...
disMFRC
// ...
C'est juste horrible à lire.

Code:
#define disMFRC() digitalWrite(chipSelectPin, HIGH)
// ...
disMFRC();
// ...
C'est tout de suite plus propre.

A mon avis tu as un problème de chipselect, actuellement c'est vraiment brouillon la façon dont tu sélectionne / désélectionne les modules.

Travail par bloc : tu sélectionnes X, tu fait ton truc avec X, tu désélectionnes X, le tout dans le même bloc.
Ton truc au début avec la partie ethernet qui vient ce mettre entre deux morceaux de lecteur mifare c'est typiquement le genre de truc qui va foutre la merde. Pour peu qu'en plus il y ait un timing précis à respecter pour l'initialisation c'est foutu.
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Jr. Member
**
Karma: 0
Posts: 63
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci pour les propositions d'améliorations,

j'ai fait ce schemas avec la diode :


Je ne sais pas si c'est sa que tu me proposais mais chez moi sa ne fonctionne pas, mon lecteur ne lit plus mon tag avec la diode.
J'ai utilisé une 1N4148 comme l'image :


Merci.
Timiti29
« Last Edit: November 05, 2013, 03:17:04 pm by timiti29 » Logged

Bretagne
Offline Offline
Edison Member
*
Karma: 16
Posts: 1395
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

sans vouloir faire mon chieur, mais tu voudrais pas modifier ton premier post dans le titre? utiliser au lieu de utilisé, ça me choque grave depuis quelque temps... smiley-wink

merci!
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 63
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Faute corigé, désolé de cette erreur.

Timiti29
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Il y a de l'idée mais moi je voyais pas le diode de ce côté mais sur le côté MISO ethernet.
Le but c'est de faire tomber le 5v à du ~3v3, une diode 1n4148 a une tension de jonction de ~0.6v en en mettant 3 en série tu arrives à quasiment 3v3 en partant de 5v.
Sinon il y a plus simple, une diode zener 3v3 entre MISO et GND mais je sait pas si tu en as.
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Rennes
Offline Offline
Sr. Member
****
Karma: 1
Posts: 313
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Pour un de mes futurs projets je pense utiliser ce système pour adapter les voltages:


Issu de cette note d'application: http://www.semiconductors.philips.com/acrobat/applicationnotes/an97055.pdf

Logged


IDF/SO
Offline Offline
Edison Member
*
Karma: 41
Posts: 2260
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Est ce quelqu'un a relevé le schéma des petits modules que l'on trouve sur ebay ?


* module_i2c_ebay.jpg (20.81 KB, 500x400 - viewed 28 times.)
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Est ce quelqu'un a relevé le schéma des petits modules que l'on trouve sur ebay ?
C'est un truc ultra classique :
http://dlnmh9ip6v2uc.cloudfront.net/datasheets/BreakoutBoards/Logic_Level_Converter.pdf
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

IDF/SO
Offline Offline
Edison Member
*
Karma: 41
Posts: 2260
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, c'est le schéma de la note d'application Philips.
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, c'est le schéma de la note d'application Philips.
Ben oui pourquoi chercher plus compliqué smiley-mr-green
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Pages: [1] 2   Go Up
Jump to: