À 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

WRT54G-JP1
RéglisseMAX233
FilValeurPinValeur
1,2Vcc16Vcc
3tts/1 TXD2T1in
4tts/0 TXD1T2in
5tts/1 RXD3R1in
6tts/0 RXD20R2out
7,8Non connectés  
9,10Ground  
tts/0
DB9-F (DCE)MAX233
FilValeurPinValeur
1DCD
2RD18T2in
3TD19R2in
4DTR  
5Ground  
6DSR  
7RTS  
8CTS  
9Ground  
MAX233
pinpin
1016
1115
1217

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

Références