À propos
Un port série est très pratique pour se connecter sur des périphériques ne possèdant pas d'interface graphique. C'est souvent le cas pour des routers. Parfois un port série est fournit et est accessible directement via un connecteur (comme pour les router CISCO ou des serveurs "rack mount" dédiés sans carte graphique).
Dans de nombreux autres cas, le port série existe à l'intérieur du périphérique (router), mais n'est pas toujours utilisable sans quelques petits ajouts ou modifications. C'est le cas du WRT54G de Linksys et du WGT634U de Netgear.
Ils existent de nombreuses raisons d'avoir un router possèdant un port série. Dans le cas du WRT54G, on peut facilité le développement en accédant au gestionnaire de chargement (boot loader) ([lien] pour plus de détails); le gestionnaire de chargement permet ajoute de nombreuses options lors du chargement et il permet de voir les messages au chargement du noyau (kernel).
Avertissement
En ouvrant le boitier de votre WRT54G vous allez perdre la garantie du manufacturier. De plus, les modifications sur la cartes-mère du router peuvent endommager celui-ci si elles ne sont pas correctement faites. Les modifications sont mineures, mais demande tout de même un minimum de compréhension en électronique et en soudure.
Introduction
Le port série supporte le standard RS-232 (voir références pour plus de détails). Dans le cas du WRT54G, une interface logique existe sur la carte-mère entre le processeur (BCM4702) et un connecteur (manquant) sur le devant du PCB (printed circuit board). Pour pouvoir accéder au port série, il faut souder le connecteur qui est manquant. Ensuite, il faudra créer avec un composant électronique une interface entre le circuit logique (TTL) et la liaison RS-232 jusqu'au port série du terminal (ordinateur dans ce cas ci).
Différents composants (chips) peuvent créer l'interface entre les deux systèmes. Le circuit présenté ici utilise un MAX233 parce qu'il possède des condensateurs intégrés qui permettent de simplifier le circuit.
Matériel
Le circuit étant assez simple, il existe de nombreux composants pouvant être utilisés. Le circuit décrit ici a été fait avec une plaquette de montage (preforated circuit board) et non un PCB. Pour les plus compétents en électronique et ayant les connaissances/ressources pour faire leur propre PCB, allez-y !
Le composant principale est un MAX233 (socket DIP) Dual RS-232 transmetteur/récepteur. Plusieurs autres composants RS-232 existent et peuvent très bien remplacer le MAX233 (MAX232, ICL3232, ST3232).
- Un condensateur 0.1 uF pour stabiliser la source de voltage.
- Un connecteur DB9 femelle et un couvercle pour connecteur.
- Une plaquette de montage (ou un PCB).
- Réglisse 10 fils.
- Du fil (si vous êtes mal pris, du fil réseau peut faire l'affaire)
- Fer à souder et étain.
Où trouver le matériel en magasin
Si vous êtes dans la région de Montréal vous pouvez trouver la majorité du matériel dans ces magasins :
- Addison Électronique dans l'est de l'île.
- Maddison inc. à Laval.
- Mastervox Électronique à Longueuil.
- Ou par internet chez Digikey.
Où trouver le matériel
Ce n'est pas toujours évident de trouver tout le matériel en un même endroit. Un bon moyen est souvent d'utiliser ce qu'on a déjà. Pour le fil en réglisse, j'ai utilisé le celui d'un port série DB-25 sur un ancien ordinateur. En réalité, le fil n'a que 9 fils, mais fait très bien l'affaire puisque les 10 fils ne sont pas tous utilisés/connectés. En plus, l'autre connecteur (DB-15) peut être utilisé pour faire un fil JTAG. Pour les autres fils nécessaires, il est possible d'utiliser du fil réseau. Ce n'est pas le meilleur choix pour de l'électronique, mais ça dépanne.
Cicruit
À Faire + Photos
Assemblage
À Faire
Info et photos sur WRT54G JP1 V2.0 et V2.2
| Réglisse | MAX233 | |||
|---|---|---|---|---|
| Fil | Valeur | Pin | Valeur | |
| 1,2 | Vcc | 16 | Vcc | |
| 3 | tts/1 TXD | 2 | T1in | |
| 4 | tts/0 TXD | 1 | T2in | |
| 5 | tts/1 RXD | 3 | R1in | |
| 6 | tts/0 RXD | 20 | R2out | |
| 7,8 | Non connectés | |||
| 9,10 | Ground | |||
| DB9-F (DCE) | MAX233 | ||
|---|---|---|---|
| Fil | Valeur | Pin | Valeur |
| 1 | DCD | ||
| 2 | RD | 18 | T2in |
| 3 | TD | 19 | R2in |
| 4 | DTR | ||
| 5 | Ground | ||
| 6 | DSR | ||
| 7 | RTS | ||
| 8 | CTS | ||
| 9 | Ground | ||
| pin | pin |
|---|---|
| 10 | 16 |
| 11 | 15 |
| 12 | 17 |
Validations
Ces validations peuvent être faites visuellement. Et pour être certain que vos soudures font biens le contacte ou qu'il n'y a pas de fil coupé, utilser un multimètre permettant de tester la continuité (La fonction qui fait "bip" quand les fils se touches).
- Vérifier que la "pin" 5 du connecteur DB9-F est au "ground".
- Vérifier que la "pin" 6 et 9 du MAX233 sont au "ground".
- Vérifier que le condensateur est dans le bon sens. La patte positive (+) du coté Vcc et l'autre patte au "ground".
Tests et utilisation
Connecter le circuit au port série de votre ordinateur (/dev/ttyS0 ou /dev/ttyS1) avec un cable (pas un cable null modem). Pour voir si votre port série est correctement configuré tapper :
dmesg | grep -i tty ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
Minicom
Minicom est un programme de communication série simple d'utilisation. Les informations qui suivent et les images expliquent les configurations à mettre pour communiquer avec le WRT54G via son port série.
Lancement de minicom
$ /usr/bin/minicom -so minicom: WARNING: configuration file not found, using defaults
Normalement les valeurs de configuration par défaut de minicom sont fonctionnelles. Dans le cas contraire, l'option -s indique à minicom d'ouvrir le menu de configuration au chargement de l'application. Cet argument sera inutile lorsque toutes les options seront correctement configurés.

L'option -o indique à minicom de ne pas initialiser le port. Pour ne pas avoir à toujours ajouter cette options à la ligne de commande, il est possible de l'ajouter dans la variable d'environnement qu'utilise minicom.
$ export MINICOM='-o'
Une fois dans le menu, il faut sélectionner (lettre "A") le bon port série (ttyS0 ou ttyS1) ou changer le fil pour l'autre port si l'ordinateur en possède deux. Si votre circuit est fontionnel, minicom affichera que le port série en "online" lorsque vous connecter le fil.
Dans le cas d'un adaptateur USB à série, le "device" devrait s'appeler ttyUSB0. C'est mon cas avec un CP-US-03
Ensuite, aller dans "Serial port setup" et appuyer sur les lettres "F" et "H" pour mettre "Hardware Flow Control" à la valeur "No" et "Software Flow Control" à la valeur "Yes".

Il faut aussi configurer la vitesse du port série en appuyant sur la lettre "E" pour. La vitesse à mettre est 115200 Bps (lettre "I").

Finalement, il faut revenir au menu du début et appuyer sur "Esc" pour vérifier si le lien série est fonctionnel (vérifier que le router est sous-tension). Si oui, il ne reste plus qu'à sauver la configuration CTRL+A o pour retourner au menu et sélectionner Save setup as dfl. Pour quitter minicom, il faut faire CTRL+A q.
WRT54G
Au démarrage du router les messages du gestionnaire de chargement et de GNU/Linux devrait apparaîtrent dans la fenêtre de minicom (voir image plus bas).
Pour ne pas que le kernel soit chargé et rester dans CFE (gestionnaire de chargement) il faut rapidement faire la combinaison CRTL+C au clavier. Le délai est très court (environ 1 seconde) entre la mise sous tension et la combinaison de touches.

Plusieurs options sont offertes dans CFE et aident grandement le développement du router. Voici l'affichage de la commande "help".

Plus de détails sur ces commandes et leur utilisation à venir prochainement.
Débuggage et trucs
À faire

