Changer d'adresse

Postby ymasquel » Tue Sep 23, 2008 12:00 am

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.'
Attachments
setup.1.xml
(1.6 KiB) Downloaded 93 times
mcf5223-5f5fsysinit.txt
(13.95 KiB) Downloaded 94 times
Amicalement,
Yves.
ymasquel
Site Admin
 
Posts: 3362
Joined: Thu Jan 02, 2014 10:44 am
Location: Oise (60)

Postby jdg » Fri Nov 07, 2008 12:00 am

Bonjour,

J'ai suivi le processus à la lettre et bloque sur la compilation du programme avec CodeWarior 6.3.
Lors du linkage l'erreur suivante apparait:
Link Error : Undefined : "_start"
Project: elektor.mcp, Target: Freescale_Home_Automation

Avez vous déjà rencontré cette erreur ?
(j'utilise les fichiers décrits dans le mode opératoire ci dessous)

Cordialement
jdg
 
Posts: 4
Joined: Mon Jan 20, 2014 7:53 am

Postby jdg » Sat Nov 22, 2008 12:00 am

Bonjour,

Tout fonctionne!
Exit "Codewarrior 6.3"
Exit switch "Dlink"

Le nouveau programme compilé avec IP fixe en 7.1.1 + routeur Netgear = tout est ok !

Cordialement
jdg
 
Posts: 4
Joined: Mon Jan 20, 2014 7:53 am

Postby viovio » Tue Feb 08, 2011 12:00 am

Bonjour,

Depuis quelques jours, je me bats avec Digibutler. Ma configuration : Digibutler + TBLCF.

La première étape avait bien fonctionné : Chargement du logiciel fournit avec le projet Elektor. J'avais alors le site web, ... et tout semblait fonctionner comme attendu.

J'ai alors souhaité modifier le soft pour afficher l'état du port A sur la var 16 de la page web. Je me heurte à des problèmes de compilations chargements que je ne parviens pas à démêler.

J'utilisais CodeWarrior 7.1, et je suis passé à 7.2 car il semblait avoir des soucis. Désormais, j'efface la flash et la reprogramme correctement d'après CodeWarrior. Je n'ai plus d'affichage sur le terminal. La seule fois où j'avais des informations sur le terminal, l'IP statique ne se chargeait pas.

Auriez-vous quelques idées pour me débloquer?

Merci de vos réponses.
viovio
 
Posts: 8
Joined: Mon Jan 20, 2014 7:53 am

Postby ymasquel » Wed Feb 09, 2011 12:00 am

Bonjour "viovio",

Tester, contrôler la trace fournie sur la sortie série et nous indiquer à chaque étape le résultat serait une bonne chose.

Changer de version de compilateur devrait se faire hors de toute modification du programme pour éviter de mélanger l'origine des anomalies.

D'abord essayer de repasser dans l'état initial qui t'avait donné les résultats corrects ? Bien entendu en partant des fichiers que tu avais chargé dans leur état initial (les recharger serait même plus sûr).

Première modification => changer pour une IP statique (en fonction des paramètres réseau de ton propre réseau local les 3 premiers nombres sont imposés par la configuration de ton routeur (intégré à la "box" si c'est ton installation) en supposant que ton masque de réseau soit 255.255.255.0 et doivent être identiques à celles que chaque machine t'affiche sur un "IPCONFIG" sous windoze ou 'IFCONFIG" sous Unix/Linux qu'on obtient en ouvrant une fenêtre "terminal". Le quatrième nombre doit être choisi hors de la plage d'adresses réservées au DHCP pour éviter les doublons.

Enfin, après l'assurance que cette opération est correcte, passer aux modifications fonctionnelles en contrôlant toujours sur la trace obtenue sur la sortie série.

Amicalement, Yves.
Amicalement,
Yves.
ymasquel
Site Admin
 
Posts: 3362
Joined: Thu Jan 02, 2014 10:44 am
Location: Oise (60)

Postby viovio » Sun Feb 13, 2011 12:00 am

Merci, Yves, pour ces conseils avisés. Je vais en effet revenir en arrière du point de vue environnement de programmation, puis repartir en pas à pas.
Salutations
Viovio
viovio
 
Posts: 8
Joined: Mon Jan 20, 2014 7:53 am


Return to DigiButler (04&05-2008)

Who is online

Users browsing this forum: No registered users and 1 guest

cron