Convertisseur RS232 TTL/3.3V <-> USB défectueux

L'autre fois, je fais l'acquisition d'une NeufBox4 et de son boitier TV. étant en vacance dans la campagne profonde, je n'ai pas mon habituel bordel avec moi, et notamment, pas mon convertisseur RS232 <-> TTL/3.3V à base de MAX223.

À quoi sert ce convertisseur ?

Les "systèmes embarqués" tels que la NeufBox renferment souvent un port série, qui sert d'interface de communication "primaire". En effet, vu qu'il n'y a pas l'habituel écran/clavier, c'est cette interface série qui permet de communiquer avec la board. Lorsqu'on se connecte à cette interface et qu'on allume la board, on voit typiquement le bootloader causer, puis l'OS démarrer (souvent Linux). L’intérêt d'avoir une console série est de pouvoir accéder au bootloader de la board, et potentiellement de pouvoir remplacer le système qu'il y a dedans par son propre Linux, etc.

Ce genre de convertisseur est nécessaire car les tensions utilisés originellement par les ports RS232 classiques sont -12V ("1") / +12V ("0"), alors que les systèmes embarqués d'aujourd'hui utilisent plutôt du TTL (5V/0V) ou même du 3.3V/0V. On ne peut donc pas connecter directement les TX/RX de la board à ceux d'un port série de PC classique sous peine de tout cramer :-)

Bref je décide d'en acheter un sur eBay, et pour une fois j'innove, j'en prends un qui sort directement en USB, comme ça, pas besoin d'un convertisseur RS232/USB en plus (oui, mon laptop n'a pas de port RS232 :-) ). J'ai acheté un petit module à base de PL2303, qui fait exactement ça. Je reçois le paquet de Chine en un temps record, et m'empresse de le tester. pl2303

Test du module

Premier test, je relie les bornes TX et RX ensembles pour faire un simple test de "loopback", tout ce j'envoie, je le reçois. Je recompile mon kernel en ajoutant le driver du PL2303, je le branche, et hop, j'obtiens un /dev/ttyUSB0. Jusque là, tout va bien. Je lance ensuite minicom je tape des trucs au clavier. Magie je vois ce que je tape. J'en conclue donc que le module fonctionne, hop, je laisse une évaluation au vendeur. D'ailleurs, des petites leds s’éclairent sur le module quand il reçoit des données sur RX ou TX, pratique !

Interface série sur la board

Je m'empresse ensuite de trouver la console série sur la NeufBox. Il y a deux emplacements potentiels sur le PCB. Un petit tour sur l’excellent wiki du site OpenBox4 pour voir que c'est celui à côté du port PCMCIA qui est le bon. Je sors le fer à souder, mets 4 pins dans les trous et branche le tout au module.

Les paramètres du port série semble être 115200 8N1 d'après le wiki d'openbox. Seulement, c'est là que ça se corse, j'ai bien la led RX qui clignote sur le module, mais je n'obtiens rien dans minicom...

Une Led de trop ?

Après quelques jours de poireautage intensif, je me mets à étudier de plus près le module et les connexions. J'arrive à la conclusion que la led RX est câblée comme ceci :

alim_led

Autre observation, elle s'allume très vivement lors d'un trafic sur RX, alors qu'elle reste très peu allumée lorsque je fais un test de loopback en reliant TX et RX ensemble. Bon, j'y connais rien en elec, mais j'ai fait la supposition qu'elle pompait tout simplement trop de courant sur le TX de la board (que l'on relit au RX du PL2303), qui doit pas en avoir beaucoup à donner... Je rebranche donc le fer à souder, et je vire cette led. Et magie, ça se met à fonctionner.

led_removed

Pour conclure

Je publie cette petite anecdote en espérant qu'elle puisse servir à d'autres qui auraient potentiellement achetés ce genre de modules, et qui auraient le même problème :-) Encore une fois, je n'y connais rien en élec, donc je dis peut-être une énormités dans ce billet. Quoi qu'il en soit, mon convertisseur fonctionne maintenant :-)

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : http://www.lmichel.fr/index.php?trackback/2

Fil des commentaires de ce billet