mercredi 17 octobre 2012

SSD KingSpec non détecté par une Soekris net6501

Cela faisait un petit moment que je désirais remplacer ma clé USB minable par un SSD mSATA dans ma box Soekris net6501. C'est donc chose faite, j'ai fait l'acquisition d'un SSD KingSpec KSM-mSATA.5-016MJ (photo). C'est un SSD modeste, 16Go, MLC, à prix raisonnable. Mais c'est beaucoup mieux que la clé USB dont je me servais jusque là comme disque système (un apt-get update durait environ 15 min).

Seulement voilà, un problème "bien connu" (au moins sur la mailing list soekris-tech) avec les SSD mSATA, c'est que pour beaucoup, ils ne respectent pas le standard mSATA. Or, la net6501, elle, le respecte à la lettre. La point qui pêche, c'est le fameux pin 51 sur les modules mSATA. D'après le standard, celui-ci est le pin de détection (Presence Detection) qui signale à l'hôte la présence d'un module mSATA. Celui-ci doit le connecter à la masse directement ou à l'aide d'une résistance de pull-down d'au maximum 200Ω.

Or, beaucoup de constructeurs semblent mettre une résistance trop élevée (c'était visiblement le cas des SSD Transcend TS8GMSA500, qui avaient une résistance de 2kΩ), ou laissent carrément ce pin en l'air comme sur mon KingSpec.

La solution pour moi est donc de connecter ce pin à la masse. Sur le KSM-mSATA.5-016MJ (et sur beaucoup d'autre SSD mSATA du même constructeur je pense), ce pin est relié au plot marqué "FB2" sur le PCB. Celui-ci connecte aussi les pins 49 (DA/DSS: Device Activity / Disable Staggered Spin-up) et 47 (Vendor specific). On a donc ces trois signaux qui sont connectés ensemble. Malheureusement, pas moyen de les déconnecter, à moins de charcuter méchamment le PCB, ce qui est peu recommandable :-)

J'ai donc fait l'hypothèse que ce n'était pas très grave si les pin 49 et 47 se retrouvaient eux aussi à la masse. Voici donc le résultat, j'ai connecté le plot "FB2" à une patte d'un gros condensateur CMS (certainement celui du filtrage du 3.3V), côté masse.

SSD aprés bidouille

Maintenant, mon SSD est correctement reconnu par la Soekris, et je peux l'utiliser normalement. Prenez garde si vous voulez refaire la manip, je ne sais pas si le fait de connecter les pins 47 et 45 à la masse peut avoir des conséquences fâcheuses. Pour l'instant chez moi, tout va bien :-)

Happy bidouille.

dimanche 7 août 2011

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 :-)

Un blog... ça se fait parait-il

Voilà, l'ouverture de mon blog à base de Dotclear. Celui-ci remplace mon site qui ne servait à rien. Je ne sais pas si ce blog servira plus :-)

Je pense que je parlerai principalement d'informatique (sans blague !), avec des anecdotes, des soucis plus ou moins résolus, des trucs rigolos ou pas, que j'ai fait ou que je ferai :-)

à bientôt donc (peut-être)...