W5500 problèmes de réception après le premier message reçu

Bonjour à tous,

J’essaie de faire marcher un module W5500 avec un arduino uno sans succès.

Je teste l’exemple UDPSendReceiveString seulement en réception, voici le code :

#include <SPI.h>         // needed for Arduino versions later than 0018
#include <Ethernet2.h>
#include <EthernetUdp2.h>         // UDP library from: bjoern@cs.stanford.edu 12/30/2008


// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 1, 251);

unsigned int localPort = 8888;      // local port to listen on

// buffers for receiving and sending data
char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,
char  ReplyBuffer[] = "acknowledged";       // a string to send back

// An EthernetUDP instance to let us send and receive packets over UDP
EthernetUDP Udp;

void setup() {
  // start the Ethernet and UDP:
  Ethernet.begin(mac, ip);
  Udp.begin(localPort);

  Serial.begin(9600);
  Serial.print("Address server :");
  Serial.println(Ethernet.localIP());

}

void loop() {
  // if there's data available, read a packet
  int packetSize = Udp.parsePacket();
  if (packetSize)
  {
    Serial.print("Received packet of size ");
    Serial.println(packetSize);
    Serial.print("From ");
    IPAddress remote = Udp.remoteIP();
    for (int i = 0; i < 4; i++)
    {
      Serial.print(remote[i], DEC);
      if (i < 3)
      {
        Serial.print(".");
      }
    }
    Serial.print(", port ");
    Serial.println(Udp.remotePort());

    // read the packet into packetBufffer
    Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE);
    Serial.println("Contents:");
    Serial.println(packetBuffer);
  }
}

Le premier message est bien reçu par le serveur mais après qu’il a été reçu le code plante sur la ligne :

  int packetSize = Udp.parsePacket();

Dans le moniteur, l’adresse IP, le port et la taille du packet ne correspondent pas du tout à l’émetteur mais je reçois bien le premier message.

L’adresse IP du serveur que j’affiche dans le setup et elle aussi fausse. Chose étrange, si la valeur du 2ème octet n’est pas supérieur à 127 la valeur retournée par Ethernet.localIP() est correct. (C’est comme si il y avait une erreur de type de variable).

En cherchant sur les forums, l’erreur semblait venir de la librairie. Mais j’utilise bien la librairie Ethernet 2. En affichant tous les messages du compilateur je vois bien que c’est Ethernet 2 qui est utilisée.

J’ai testé sur plusieurs PC et un Mac, problème identique.
J’ai essayé un autre module W5500, sans succès.

Merci de votre aide,

Adrien

hello
à quoi ça sert que notre ami JML se décarcasse ?

VOIR ICI

Salut
Je ne vois pas le rapport entre son tuto et mon problème ?