Go Down

Topic: [Résolu] ENC28J60 sur Arduino Mega 1280... (Read 5043 times) previous topic - next topic

Darel

Sep 17, 2011, 05:57 pm Last Edit: Sep 17, 2011, 08:47 pm by Darel Reason: 1
Bonsoir tout le monde !

Après quelques mois un peu mouvementés, je retrouve enfin du temps pour faire mumuse avec mon Arduino :) !
Je viens de m'attaquer à éssayer de faire fonctionner ma carte Ethernet avec cette Mega 1280...

Une ENC28J60 acheté sur Ebay, "made in China", et bien sûr livrée sans doc !
Voilà une photo :


Suite à plusieurs sujet vue sur le forum, j'ai téléchargé et installé cette librairie pour faire fonctionner ma carte : http://jeelabs.net/projects/cafe/wiki/EtherCard

Mon câblage est fait comme suit :
VCC - 3v3
GND - GND
RESET - RESET
CS - 53
SCK - 52
SI - 51
SO - 50

J'ai testé les différent exemples fournit, la compilation et l'upload se passent bien.
Après rien, aucun message dans la console Série pour indiquer un échec ou autre comme il devrait pourtant faire au vu des code.

Quelqu'un a réussit à la faire marcher ?
Utiliser une autre librairie ? Laquelle ?
Mauvais câblage ?
Un idée autre ?

Merci d'avance :) !

osaka

http://shieldlist.org/nuelectronics/ethernet

Je connais pas bien ce shield et même l'électronique mais peut être à cause de reset(arduino) et reset(ENC28J60) (ici pin 2 ?) non ?
Je me trompe sans doute ?

Darel

Certainement un problème de câblage...
J'ai changé des defines dans enc28j60.cpp pour les adapter au pins de l'Arduino Mega.

Mais il doit y avoir quelque chose encore... Il y a un truc avec les devices SPI, "Chip Select" je crois...
Je continu de chercher...

Merci osaka ;) !

al1fch

#3
Sep 17, 2011, 06:33 pm Last Edit: Sep 17, 2011, 06:40 pm by al1fch Reason: 1
Bonjour
Je n'ai rencontré aucun probleme avec cette librairie à ce jour qui pour moi est la plus aboutie des librairies pour l'enc28J60.
Par contre je n'ai jamais eu l'occasion de l'utiliser avec autre chose que des cartes diverses à Mega328.  Il y a forcément des modifications à faire (je vais jeter un coup d'oeil) pour tenir compte de l'emplacement des signaux suivants :
CS - 53.... le problême est sans doute là (la lib prévoit les pin 8 ou 10)
SCK - 52
SI - 51
SO - 50
(je ne câble pas le reset)

osaka

#4
Sep 17, 2011, 06:39 pm Last Edit: Sep 17, 2011, 06:42 pm by osaka Reason: 1
Je me demandais a quoi servait la pin2, j'ai trouvé.

dans le code arduino

Code: [Select]

es.ES_enc28j60clkout(2);


dans enc28j60.c ligne 153
Code: [Select]

void enc28j60clkout(uint8_t clk)
{
        //setup clkout: 2 is 12.5MHz:
enc28j60Write(ECOCON, clk & 0x7);
}



Darel

Ok, je viens de trouver le même câblage ici :
http://www.kiranjose.com/blog/2011/09/connect-to-internet-with-arduino-mega-2560-and-enc28j60-breakout-board_crossover_ethernet_cable/

J'ai re-installé de manière propre la lib, histoire que si j'ai fais des bétises...
Mais toujours rien de plus...

al1fch : Tu as modifié des chose dans la lib pour la faire marcher avec ta Mega ?
osaka : C'est important ça (clkout) ?

osaka

#6
Sep 17, 2011, 06:45 pm Last Edit: Sep 17, 2011, 07:02 pm by osaka Reason: 1

osaka : C'est important ça (clkout) ?


Je sais pas je n'y connais presque rien niveau hardware mais ici je vois qu'il est branché.
http://shieldlist.org/nuelectronics/ethernet

Enfin d'un côté peut être rien à voir // change clkout from 6.25MHz to 12.5MHz

Sinon http://arduino.cc/forum/index.php?topic=54179.0  ?

al1fch

#7
Sep 17, 2011, 07:02 pm Last Edit: Sep 17, 2011, 07:25 pm by al1fch Reason: 1
J'utilise cette librairie avec un Mega328  sur plaque d'essais ou une carte Uno sans aucun probleme avec la carte Ethercard http://jeelabs.com/products/ether-card
A la ligne 239 du fichier enc28j60.cpp je choisis la pin 8 ou la pin 10 comme sortie vers le ChipSelect du enc28j60. C'est tout. Je laisse tranquille le reset et ne le relie pas a une sortie du mega328 (ce n'est peut être pas un bon exemple !)

Cette librairie a été conçue pour la carte Ethercard commandée par la  carte 'Jeenode' à Mega328 du même auteur  Il y a peut être des modifications plus importantes à faire pour l'utiliser avec un Mega1280 ou 2560 et non un mega328. Je pense que le second lien donné par osaka dans le message ci-dessus indique la direction à suivre. ça se situerait aux lignes 243 à 246 de enc28j60.cpp de cette librairie. mais quoi mettre en ligne 239 ?
En cas d'insuccès le mieux serait de poser la question sur le forum de jcw.
http://forum.jeelabs.net/forum/general-discussion    jcw est très réactif  :smiley-mr-green:

La sortie clkout du enc28J60, avec un choix de plusieurs fréquences, n'est à ma connaissance jamais exploitée dans le monde Arduino.
Un signal d'horloge est disponible, on s'en sert si on veut. C'est tout.
Je pense que le chiffre 2 que tu as repéré, 'osaka, ne correspond pas à un numéro de pin arduino mais à une des options du diviseur de fréquence qui opére sur le 25MHz du enc28j60. D'après le schéma de la carte Ethershield ( Nueelectronics) la sortie clkout a un point test mais n'est pas reliée à un connecteur
.

osaka


Je pense que le chiffre 2 que tu as repéré, 'osaka, ne correspond pas à un numéro de pin arduino mais à une des options du diviseur de fréquence qui opére sur le 25MHz du enc28j60. D'après le schéma de la carte Ethershield ( Nueelectronics) la sortie clkout a un point test mais n'est pas reliée à un connecteur[/i].


Je devrais en resté à l'aide seulement niveau programmation  :* et vive le shield officiel lol  :smiley-mr-green:

Darel

Je viens de poster sur le forum de l'auteur (JWC) :
http://forum.jeelabs.net/node/493

On va voir ce que ça donne...
En tout cas merci à vous tous d'essayer de m'aider :) !

al1fch

#10
Sep 17, 2011, 07:38 pm Last Edit: Sep 17, 2011, 07:40 pm by al1fch Reason: 1
Je propose (ce n'est pas totalement désintéressé et le probleme pourrait bien me concerner prochainement !!) :

ligne 239 de enc28j60.cpp :
Code: [Select]
#define SELECT_BIT  0   // 0 = B0 = pin 8, 2 = B2 = pin 10
#define FULL_SPEED  1   // use full-speed SPI for bulk transfers

void ENC28J60::initSPI () {
   const byte SPI_SS   = 8; // ou 10 idem ligne 239
   const byte SPI_MOSI = 51;
   const byte SPI_MISO = 50;
   const byte SPI_SCK  = 52;


MISO, MOSI et SCK sont imposés par le micro, pas de choix possible.
SS  qui sert a piloter le CS du 28j60 peut par contre sortir de n'importe ou.
En choisissant les pin 8 ou 10 tu restes dans les cordes de la librairie Ethercard.

Darel

#11
Sep 17, 2011, 07:50 pm Last Edit: Sep 17, 2011, 08:03 pm by Darel Reason: 1
Non, rien de plus... :(

Par exemple avec le test DHCP de la bibliothéque, ça m'affiche ça :
Code: [Select]
[testDHCP]
MAC: 74:69:69:2D:30:31

Puis plus rien.

Darel

Incompréhenssible :smiley-eek-blue: !

J'ai tout viré et tout remis histoire de repartir sur des bases propres...
J'ai juste changé ça :
Code: [Select]
const byte SPI_SS   = 53;
const byte SPI_MOSI = 51;
const byte SPI_MISO = 50;
const byte SPI_SCK  = 52;

Je n'ai même pas touché au reste.

J'ai aussi tout défait mon montage et repris de zéro...
Et là, magie, malgré que le DHCP ce n'est pas ça (marche 1 fois sur 10), ça marche en statique :D !

Sois je mettais planté dans mon montage, mais vu le nombre de fois que j'ai vérifié ce p***** de montage, je ne pense pas.
Certainement un faux contact quelque part.

En tout cas merci à tous !
Je me coucherais moins bête ce soir ;) !

Go Up