Bonjour à tous,
Mon DIGIBUTLER fonctionne parfaitement et j'ai pu lui apporter les modifications souhaitées pour qu'il soit adapté en adresse fixe sur le plan d'adressage de mon réseau local. Par la même occasion je vous donne la procédure pour qu'il accepte le DHCP.
J'ai récupéré une partie des informations publiées sur le site anglais et j'y ai ajouté mes propres remarques.
CES INFORMATIONS SONT DISPONIBLES EGALEMENT SUR LE SITE D'ELEKTOR , CLIQUEZ SUR "Mises à jour, infos". Je ne les avais personnellement pas vues avant de rédiger ce message.
Toutes les platines du DIGIBUTLER contiennent une version ancienne du micrologiciel qui force l'unité à répondre à l'adresse IP statique 192.168.0.151 avec toutes les fonctionnalités décrites dans les articles du magazine, y compris accès au wap et pages de Web. Une adresse IP statique est utile voire essentielle lorsque sont exigées des demandes sécurisées de télécommande car l'utilisateur autorisé ne peut pas être informé des adresses IP affectées dynamiquement par DHCP après une réinitialisation du ROUTEUR (par ex. suite à une panne d'alimentation).
Pour disposer d’une liaison au DIGIBUTLER, votre ROUTEUR devrait supporter la plage d’adresses IP 192.168.0.nnn pour les matériels installés sur le réseau local. Si nécessaire, consultez la documentation disponible pour votre ROUTEUR. La plupart des ROUTEURS permettent la modification de la plage d'adresses IP du réseau local via leur utilitaire de configuration. Le ROUTEUR (ou le PC en cas de liaison directe du PC au DIGIBUTLER), doit supporter le débit de 100 Mbit/.
Le DIGIBUTLER étant un matériel de type « terminal », un câble Ethernet « droit » est exigé pour une connexion à un ROUTEUR alors qu’un câble Ethernet « croisé » est à utiliser pour une liaison directe à un port LAN d’un PC.
Dans les cas où:
a). l'utilisateur n'a aucune possibilité de définir 192.168.0.151 comme adresse IP d’un poste client sur le ROUTEUR;
b). l'utilisateur n'a aucune possibilité de définir 192.168.0.nnn comme plage d'adressage IP du réseau local client sur le ROUTEUR (ce qui permettrait au DIGIBUTLER d’utiliser l’adresse 192.168.0.151);
c). l'utilisateur souhaite employer les fonctionnalités de serveur DHCP du ROUTEUR pour adresser le DIGIBUTLER,
alors il convient d’utiliser les procédures et consulter les articles décrits ci-dessous (remerciements à John Stuart sur le forum anglais d'Elektor).
Pour information, le micrologiciel original du DIGIBUTLER a été développé en utilisant la version 6.3 de CodeWarrior pour les Architectures ColdFire (encore disponible en téléchargement libre sur la page Web du projet DIGIBUTLER), sur conseil de Freescale s'abstenir d'utiliser la version 7.0 à cause de problèmes avec le MCF52231. Entre temps CodeWarrior a évolué vers la version 7.1 et tout récemment 7.2.
Procédure détaillée
Vous trouverez ci-dessous les conseils sur la manière de modifier et compiler le code source du DIGIBUTLER pour lui permettre d'obtenir automatiquement une adresse IP par DHCP. L'utilisation du programmeur TBLCF pour flasher le nouveau micrologiciel dans le digibutler est aussi couvert. Un outil de programmation comme le TBLCF ou tout équivalent adapté au Coldfire est exigé.
Voici d’abord les fichiers dont vous aurez besoin:
1. CodeWarrior pour Coldfire architectures 7.1. disponible à : http://www.freescale.com/webapp/sps/site/overview.jsp?nodeId=01272600610BF1
2. L’archive 071102-11.zip est disponible sur le site d’ELEKTOR en téléchargement gratuit et également sur le CD-ROM fourni avec le kit dElektor 071102-71.
3. setup.xml, attaché avec ce message.
4. mcf5223_sysinit.txt (si nécessaire); attaché avec ce message.
La première étape est d’installer CodeWarrior 7.1.
Une fois que cela est fait vous devez extraire tous les fichiers de l'archive 071102-11.zip dans un répertoire puis ouvrez le répertoire appelé « Versions CW 7.0 »; à l'intérieur vous trouverez un autre zip appelé « SW_Main_Board_31_03_08.zip ». Extrayez ce zip pour avoir un répertoire appelé « SW_Main_Board », ce répertoire contient tous les fichiers du projet et le code source.
Le répertoire qui contient les fichiers du projet est « ..\SW_Main_Board\build\m5223evb ».
Dans le répertoire m5223evb il y a un fichier appelé elektor.mcp. soit vous glissez et déposez elektor.mcp dans CodeWarrior, soit, à l'intérieur de CodeWarrior, vous ouvrez elektor.mcp (via File/Open). Maintenant sur la gauche dans CodeWarrior vous devriez voir une liste de tous les fichiers source.
Pour valider le mode DHCP, vous devrez faire deux changements. Le premier est dans main.c (dans « fichiers du projet »). Ouvrez main.c par double clic sur son nom. Trouvez-y le code suivant :
#if 1
IP_ADDRESS(192,168,0,151);
DEF_GATEWAY(192,168,0,1);
SUBN_MASK(255,255,255,0);
#else // IP: 0.0.0.0 Gateway: 0.0.0.0 Mask: 255.255.255.0 - Now DHCP client works properly
IP_ADDRESS(10,171,88,10);
DEF_GATEWAY(10,171,88,254);
SUBN_MASK(255,255,255,0);
#endif
Effacer ce code et le remplacer par :
#if 0
IP_ADDRESS(192,168,0,151);
DEF_GATEWAY(192,168,0,1);
SUBN_MASK(255,255,255,0);
#else // IP: 0.0.0.0 Gateway: 0.0.0.0 Mask: 255.255.255.0 - Now DHCP client works properly
IP_ADDRESS(0,0,0,0);
DEF_GATEWAY(0,0,0,0);
SUBN_MASK(255,255,255,0);
#endif
Le prochain changement est dans ipport.h dans le répertoire \common\ColdfireLite\headers. Trouvez-y le code suivant :
// EMG - To enable DHCP, uncomment the line below
//#define DHCP_CLIENT 1 /* include DHCP client code */
Effacer ce code et le remplacer par :
// EMG - To enable DHCP, uncomment the line below
#define DHCP_CLIENT 1 /* include DHCP client code */
Si vous souhaitez simplement accorder l’adressage du DIGIBUTLER à votre propre plan d’adressage, vous devrez seulement remplacer les adresses « IP_ADDRESS », « DEF_GATEWAY » et « SUBN_MASK » en fonction de vos besoins. Ne pas inverser le test (conserver #if 1) et ne pas autoriser le DHCP (laisser la ligne en commentaire).
Maintenant compilez le code par Projet / Make ou en pressant F7. La compilation devrait se dérouler sans erreur. Vous êtes maintenant prêt à flasher le DIGIBUTLER avec ce nouveau micrologiciel.
Ouvrez le dossier "TBLCF" qui était en 071102-11.zip. Suivez précisément les directives fournies dans manual_v14.pdf pour installer les pilotes TBLCF et flasher le TBLCF. Une fois que vous avez terminé l’installation du TBLCF, dans CodeWarrior, passez au menu « Tools » et choisissez le « Flash Programmer ». Cliquez sur « Load Settings » et choisissez « setup.xml ». Maintenant CodeWarrior est prêt à flasher le DIGIBUTLER.
Avant de programmer s'assurer que vous avez paramétré correctement les « jumpers » sur la platine du DIGIBUTLER. Le strap devrait être positionné sur jumper 2 et devrait être sur 1-2 sur le jumper 1.
Connectez le TBLCF au port de programmation du DIGIBUTLER, puis connectez le TBLCF à votre ordinateur, enfin mettez le DIGIBUTLER sous tension. Cliquez sur « Erase / Blank Check » dans CodeWarrior. Cliquez sur « Erase » et attendez l’apparition du message de succès. Si l'effacement échoue, réessayez et s'il échoue à nouveau relancez CodeWarrior (en supposant bien entendu que le DIGIBUTLER et le TBLCF soient correctement montés et configurés).
Ensuite cliquez sur « Program / Verify » puis cliquez sur « Browse ». Allez au dossier « SW_Main_Board\obj » et sélectionnez « web_coordinator.S19 ». Maintenant cliquez sur « Program » et attendez le message de succès.
Maintenant le DIGIBUTLER est programmé. Vous pouvez le relier à votre réseau local (de préférence à un routeur via un « câble droit »).
Je vous conseille aussi d’utiliser le port série pour visualiser le démarrage rappel : 115200bps, 8 bits de données, pas de parité, 1 bit de stop, pas de contrôle de flux. Contrairement à la rumeur un adaptateur série/usb fonctionne très bien (à condition parfois de supprimer les tampons FIFO du port série via le panneau de configuration).
Si vous souhaitez, vous pouvez exécuter le logiciel sous « Debug » en cliquant sur « Project / Debug» ou en pressant F5. Si une case de dialogue apparaît, cliquez « Yes ». La fenêtre de débogage devrait maintenant s’ouvrir. Cliquez sur le bouton « Run » en haut à gauche de cette fenêtre (c'est le bouton avec une flèche et un insecte). Il est possible que vous deviez presser deux fois le bouton pour commencer le programme. Si vous ne voulez pas déboguer appuyez simplement sur le bouton « Reset » de la platine du DIGIBUTLER.
Si après programmation vous obtenez le message « @@@@ LINK IS DOWN @@@@ » sur le port série, c’est très probablement que vous avez oublié de relier le DIGIBUTLER au ROUTEUR ou que le câble réseau est déficient.
Sinon utilisez une solution de contournement du logiciel trouvé dans la pile du TCP/IP la plus récente. Reprogrammez le DIGIBUTLER comme détaillé ci-dessus. Dans CodeWarrior, ouvrez le fichier appelé mcf5223_sysinit.c qui est dans le répertoire « cpu ». Sélectionnez tout le code et effacez-le. Copiez le code de mcf5223_sysinit.txt (en pièce jointe) et collez-le dans mcf5223_sysinit.c. Compilez et flashez le code dans le DIGIBUTLER. Maintenant le problème devrait être résolu.
Notes:
1. Vous devez effacer toujours le MCU avant de programmer.
2. Vous pourriez devoir relancer CodeWarrior entre chaque programmation. Ce peut être juste un bogue d'installation.
3. Après avoir programmé la vitesse de transmission série sera 115200. Cela peut être changé dans le fichier m5223evb.h en changeant cette ligne:
#define UART_BAUD 115200 / * 19200*/
Remplacez 115200 par la vitesse de transmission que vous voulez.
Un peu long mais le résultat est là.
Amicalement, Yves.'
