IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Utiliser la pin 4 avec le shield Ethernet quand on utilise pas la carte SD


Sujet :

Arduino

  1. #1
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 934
    Points : 1 274
    Points
    1 274
    Par défaut Utiliser la pin 4 avec le shield Ethernet quand on utilise pas la carte SD
    Bonjour,

    En théorie, avec le Shield Ethernet, quand on utilise pas la carte SD, on peut utiliser la pin n°4 pour autre chose

    (la pin n°4 sert de CS pour la communication SPI de la carte SD)

    En pratique, ça perturbe le fonctionnement du chip Ethernet.

    Je l'ai testé, l'utilisation de la pin 4 fait brutalement interrompre la communication SPI et ça plante logiquement l'envoi et la reception des packets (le W5500 ne plante pas, mais les données envoyées ou reçues sont incorrectes)

    Hypothèses :
    - problème matériel (ou firmware) sur le shield Ethernet
    - problème logiciel dans la bibliothèque Ethernet

    Qu'en pensez vous ?

    Avez vous été confronté à ça ?

    A bientôt
    Quand deux personnes échangent un euro, chacun repart avec un euro.
    Quand deux personnes échangent une idée, chacun repart avec deux idées.

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bonsoir Remy

    Le problème dépend de la version du shied. Je te laisse tirer les conclusions.

    La documentation Schéma PDF de l'Ethernet Shield 2 sur le site Arduino ne permet pas d'expliquer le problème, mais il est aussi indiqué dans la discussion en anglais qu'il y a des docs qui se contredisent. Il faudrait avoir le vrai schéma de ton shied pour comprendre. A mon avis il y a une partie active sur la ligne de retour et qui s'active avec le CS... Il n'y a plus qu'a virer le composant en question, et c'est très probablement irrémédiable.

    C'est de la pure spéculation, vu le manque d'information et/ou de motivation pour la trouver.

    Delias

  3. #3
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Salut
    De ce que je vois du schéma de ce shield https://www.gotronic.fr/art-ethernet...024-23299.htm# si on insert la carte SD le broche 4 du Arduino n'est plus utilisable même si on ne s'en sert pas.

    C'est un problème, ou plutôt des problèmes, sur le hardware. Le résumé juste en dessous

    Nom : path894.png
Affichages : 170
Taille : 278,2 Ko



    Voici les détails :

    Cette partie là est ok !
    En jaune on voit le signal IO10*/SS (slave select) issu du Arduino qui vient piloter la broche /CS (chip select) du W5500. La condition de démarrage, quand le Arduino démarre et que toutes ses broches sont en entrées, est assurée par la résistance de pull-up, entourée en bleu, qui force le W5500 à rester inactif et sa sortie MISO passe en haute impédance.


    Nom : Capture43.PNG
Affichages : 176
Taille : 103,7 Ko




    Le problème principal est ici :
    En jaune on voit le signal D4/SD_SC issu du Arduino est qui arrive dans un buffer inutile, il en sort renommé SEN3 et qui va à la carte SD. On remarque aussi que le MISO de la carte SD est le même MISO que le W5500 donc si D4/SD_SC passe à l'état bas et que la carte SD est connectée, on se retrouve avec une collision entre les MISO si le module Ethernet est entrain de causer.


    Nom : Capture44.PNG
Affichages : 184
Taille : 83,2 Ko
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  4. #4
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 934
    Points : 1 274
    Points
    1 274
    Par défaut
    Bonjour,

    Alors merci pour vos réponses bien argumentée
    ...et créatives sur le plan graphique

    Cela prouve le bon niveau de notre forum

    Le problème que je rencontre se produit alors que non seulement je n'utilise pas le lecteur SD mais qu'en plus le support de carte SD est vide

    C'est incompréhensible...

    Seule explication : le schéma n'est pas à jour ou incomplet, un composant supplémentaire agit sur le W5500 quand on change l'état de la broche 4
    Ou alors, une fonction cachée dans la bibliothèque explique ce comportement (ça ne serait pas étonnant qu'une "sécurité" logicielle soit mise quelque part)

    A bientôt
    Quand deux personnes échangent un euro, chacun repart avec un euro.
    Quand deux personnes échangent une idée, chacun repart avec deux idées.

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bonjour Rémy

    Tu nous remercies pour les réponses mais tu n'as pas compris la mienne.

    Sur certains Shield cela fonctionne, sur d'autres cela ne fonctionne pas. Le problème n'est donc pas logiciel.
    D4 n'a aucune raison d'être reliée à la puce Ethernet, ce n'est pas là.

    Sur le schéma il est indiqué que 3 puces SN74LVC1G125 sont utilisées dans le sens Arduino -> Carte SD. Elles servent d'abaisseurs de tension 5V -> 3V3.
    Il suffit qu'ils en aient mis une dans le sens Carte SD -> Arduino pour provoquer ton problème.
    Selon les cartes SD, alimentées en 3V3, le 1 logique peut être un peu trop bas pour être correctement lu par l'entrée 5V de l'Arduino. La solution c'est de mettre une telle porte dont le trois état est commandé par D4 pour améliorer le signal de la carte SD. Sauf que cela met également le bazar sur la ligne MISO en cas d'utilisations autres de D4 et empêchant alors le retour d'information de la puce W5500. C'est d'ailleurs ce qui est décrit dans le sujet en lien, la puce continue à fonctionner (côté Ethernet) c'est juste l'Arduino qui ne récupère plus aucune information.

    Delias

  6. #6
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Citation Envoyé par electroremy Voir le message
    Ou alors, une fonction cachée dans la bibliothèque explique ce comportement (ça ne serait pas étonnant qu'une "sécurité" logicielle soit mise quelque part)
    En effet, il est tout à fait possible que ce problème hard ait été identifié depuis le début => risque de collision (ou plutôt court circuit à dire vrai) dès que la carte SD est insérée et que les développeurs de la bibliothèque aient prévu une sécurité logicielle.

    A mon avis ce problème hardware a été corrigé en soft.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  7. #7
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Citation Envoyé par Delias Voir le message
    Sur certains Shield cela fonctionne, sur d'autres cela ne fonctionne pas. Le problème n'est donc pas logiciel.
    D4 n'a aucune raison d'être reliée à la puce Ethernet, ce n'est pas là.

    Sur le schéma il est indiqué que 3 puces SN74LVC1G125 sont utilisées dans le sens Arduino -> Carte SD. Elles servent d'abaisseurs de tension 5V -> 3V3.
    Il suffit qu'ils en aient mis une dans le sens Carte SD -> Arduino pour provoquer ton problème.
    Selon les cartes SD, alimentées en 3V3, le 1 logique peut être un peu trop bas pour être correctement lu par l'entrée 5V de l'Arduino. La solution c'est de mettre une telle porte dont le trois état est commandé par D4 pour améliorer le signal de la carte SD. Sauf que cela met également le bazar sur la ligne MISO en cas d'utilisations autres de D4 et empêchant alors le retour d'information de la puce W5500. C'est d'ailleurs ce qui est décrit dans le sujet en lien, la puce continue à fonctionner (côté Ethernet) c'est juste l'Arduino qui ne récupère plus aucune information.
    Tout à fait, ça peut également être ça et oui peut être que je n'ai pas lu le bon schéma.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    @Vincent

    Tu as lu le bon schéma, celui du site Arduino. Mais dans la discussion en anglais ils disent avoir vu des schémas et layouts de PCB différents. (Les fichiers Eagle ???)
    Après je n'ai pas été cherché plus loin, je n'ai pas Eagle.

    On voit bien que deux ingénieurs en matériel ont des suppositions différentes simplement par manque d'information...

    Delias

  9. #9
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 934
    Points : 1 274
    Points
    1 274
    Par défaut
    Bonjour,

    J'apporte deux précisions :
    - j'utilise le Shield Ethernet II Arduino officiel (pas un clone chinois), connecté sur un vrai Arduino UNO officiel
    - je tentais de me servir de la pin 4 en sortie numérique, pour alimenter une LED 5mm jaune, via une résistance de 330 Ohms ; la LED est connectée à la masse donc pour qu'elle s'allume il faut que la pin soit à l'état haut.

    A bientôt
    Quand deux personnes échangent un euro, chacun repart avec un euro.
    Quand deux personnes échangent une idée, chacun repart avec deux idées.

  10. #10
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 934
    Points : 1 274
    Points
    1 274
    Par défaut
    Le schéma du Shield Ethernet 2 officiel que j'utilise correspond bien à celui publié en réponse

    https://www.arduino.cc/en/uploads/Ma...ld2-V2-sch.pdf

    Je sèche complètement... à moins que ce schéma ne soit pas à jour ???

    A bientôt
    Quand deux personnes échangent un euro, chacun repart avec un euro.
    Quand deux personnes échangent une idée, chacun repart avec deux idées.

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/02/2021, 19h57
  2. Problème de connexion avec le shield Ethernet V2
    Par atlantis50 dans le forum Arduino
    Réponses: 36
    Dernier message: 08/02/2021, 14h23
  3. Shield Ethernet avec carte Arduino
    Par Geoo620 dans le forum Arduino
    Réponses: 2
    Dernier message: 26/04/2016, 10h32
  4. Réponses: 5
    Dernier message: 19/12/2008, 18h54
  5. creér un exècutable avec Install shield
    Par draiah dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/12/2006, 16h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo