Un afficheur LCD USB sous Linux avec un chien de garde et des boutons
ArticleCategory: [Choose a category, do not translate
this]
Hardware
AuthorImage:[Here we need a little image from you]
TranslationInfo:[Author + translation history. mailto: or
http://homepage]
original in en Guido
Socher
en to fr John Perr
AboutTheAuthor:[A small biography about the author]
Guido aime Linux parce que c'est un paradis pour ceux qui veulent
d�velopper leur propre logiciel ou mat�riel.
Abstract:[Here you write a little summary]
Cet article est le r�sultat de retours tr�s positifs re�us suite
aux autres articles traitant d'�lectronique que j'ai �crits.
Vous, lecteurs de LinuxFocus, �tes vraiment un public fantastique!
Certains d'entre vous voulaient savoir comment interfacer le bus USB.
Voici donc une solution �l�gante. Nous utilisons l'afficheur LCD de l'
article de Mai 2002
que nous ferons fonctionner avec le bus USB. L'ensemble est aliment� � partir
du bus USB ce qui rend inutile toute alimentation suppl�mentaire.
Pour cet article, vous avez besoin d'au moins une installation partielle
de l'environnement de d�veloppement AVR pour Linux. Son installation
est d�crite dans l'article: Programmer le
micro-contr�leur AVR avec GCC.
ArticleIllustration:[This is the title picture for your
article]
ArticleBody:[The article body]
Introduction
L'USB est pratique parce que c'est une interface moderne et qu'il
offre la possibilit� d'alimenter les �quipements directement
depuis le bus. Les connecteurs sont petits et un petit c�ble
peut transporter une grand volume de donn�es. Voila pour les
avantages de l'USB. L'inconv�nient r�side dans la difficult�
de r�alisation mat�rielle � cause des hautes fr�quences et du
protocole plut�t complexe. Jetez simplement un oeil aux sp�cifications
(
http://www.usb.org/developers/,
Regarder les sp�cifications 1.1) et vous serez impressionn�s.
Elles font 327 pages et sont difficiles � comprendre. Cela explique
pourquoi il existe autant d'implantations d�fectueuses des �quipements
USB. Une introduction plus abordable se trouve sur http://www.beyondlogic.org/
mais la sp�cification est toujours aussi complexe.
Que faire? Comment interfacer notre micro-contr�leur au bus USB?
Une entreprise �cossaise, FTDI a une solution (http://www.ftdichip.com). Ils
proposent le circuit FT232BM qui implante le bus USB d'un cot�
et une interface s�rie RS232 de l'autre. En d'autres termes, il suffit de
remplacer le MAX232 qui servait auparavant � l'adaptation de niveau
sur les lignes RS232 par le circuit FT232BM et le tour est jou�.
Le pilote
Le FT232BM est une v�ritable solution multi plate-forme. Les
pilotes sont disponibles pour plusieurs syst�mes d'exploitation.
Le module du noyau s'appelle ftdi_sio et il est "open source".
Il fait partie du noyau Linux standard. Le FT232BM offre plus qu'une simple
interface USB-RS232 et le module du noyau Linux est toujours en d�veloppement
afin d'en int�grer toutes les fonctions. La partie USB vers RS232 est
toutefois pr�te et j'ai pu, par exemple, utiliser un noyau standard
Redhat 7.3 (2.4.18) sans le recompiler ni le modifier. Il suffit de
le brancher.
ftdi_sio est d�velopp� sur http://ftdi-usb-sio.sourceforge.net/.
Avec ma Redhat 7.3, tous les modules se chargent automatiquement quand
je branche le connecteur USB. Si cela ne marche pas avec
votre distribution, v�rifiez que vous avez les modules suivants(pour USB-UHCI):
/sbin/lsmod usb-uhci
/sbin/lsmod usbcore
/sbin/lsmod usbserial
/sbin/lsmod ftdi_sio
Le fichier device qui communique avec le mat�riel est
/dev/ttyUSB0
Les d�veloppeurs de ftdi_sio recommendent au moins un Kernel 2.4.20 mais
vous pouvez constater qu'un 2.4.18 fonctionne aussi (au moins pour
les fonctions dont nous avons besoin ici).
Le sch�ma
Le circuit est simple. Le FT232BM est ins�r� entre les lignes
Rx/Tx du micro-contr�leur et le connecteur USB.
Un quartz de 6 Mhz et quelques autres composants d�crits
dans la note d'application de FTDI sont requis. Le pot de ferrite
(sur le sch�ma � droite) est une petite bobine qui filtre
les hautes fr�quences (l'USB est cadenc� � 48Mhz). Vous pouvez aussi
enrouler 10 tours de fil fin autour d'une r�sistance de 1K et l'utiliser
comme bobine.
Il est n�cessaire de surveiller la consommation de l'alimentation. Elle doit
�tre inf�rieure � 100mA pour ce type de montage aliment� par
le bus USB et le mode "suspend" de l'USB doit �tre support�.
Dans ce dernier cas, quand la broche "sleep" du FT232BM
passe au niveau bas, la consommation doit �tre inf�rieure � 0,5mA.
Cette derni�re exigence est tr�s contraignante. L'AVR dispose
d'un mode "idle" dans lequel il consomme moins de 2mA et d'un mode
"power down" o� cette consommation descend � 20uA. Etant donn�
qu'il est plus facile de r�veiller le micro-contr�leur � partir
du mode "idle", j'ai d�cid� de d�roger un peu � la sp�cification
USB. L'�clairage optionnel arri�re de l'afficheur sera �teint et
l'ensemble du circuit consommera ainsi 3mA. C'est plus que 0,5mA
mais le circuit h�te USB n'est pas capable de mesurer assez pr�cis�ment
un courant pour le d�tecter. Ca devrait fonctionner.
Ceci �tant dit, je dois avouer que je n'ai pas d'ordinateur qui
supporte le mode "suspend". Je n'ai donc pas pu tester ce mode.
Si vous avez un ordinateur qui le supporte, probablement
un portable moderne, alors je vous invite � faire l'essai
et � m'informer du r�sultat.
Le reste du montage est presque identique � celui pr�sent� dans
l'article de mai 2002.
Je n'entrerai donc pas plus dans les d�tails.
Vous pouvez cliquer sur l'image pour l'agrandir. Les fichiers eagle
sont inclus dans le paquet qui contient le logiciel. Il est
t�l�chargeable � partir d'un lien � la fin de cet article.
La platine est con�ue en simple face et seule la couche bleue doit �tre
grav�e. Les lignes rouges sont des ponts de c�blage.
Le connecteur USB de Type-B mont� sur ce circuit a le brochage suivant:
Travailler avec des composants CMS
Les composants CMS ont de bonnes caract�ristiques m�caniques et �lectriques
mais sont un v�ritable cauchemar pour les �lectroniciens amateurs.
Vous devez vraiment �tre dou� pour la soudure et au moins la partie d�di�e au
composant CMS doit �tre dessin�e tr�s proprement. Autrement dit,
ce circuit n'est pas destin� aux d�butants. Regardez la liste des
alternatives ci-dessous si vous n'�tes pas certain de pouvoir
dessiner le circuit ni souder le circuit int�gr�.
Soudez le circuit CMS sur la platine en premier.
Pour cette op�ration, il faut d�poser un peu de soudure sur les pistes
qui re�oivent le circuit puis d�poser un fin film de p�te �
souder sp�ciale CMS (certains l'appelle soudure de miel car
elle ressemble � du miel). Il existe aussi une soci�t�
Allemande appel�e "Kontakt Chemie" qui fabrique un vernis en
bombe du nom de "Lötlack".Il est possible d'utiliser le
"Lötlack" en lieu et place de cette soudure "miel" si vous
pr�f�rez.
Nettoyez votre fer � souder. Il ne doit pas rester de soudure sur la
panne. Positionnez ensuite le FT232BM tr�s exactement. Appuyez doucement
sur chaque patte de la puce avec votre fer � souder sans ajouter
de soudure.
Ce proc�d� fonctionne parfaitement. La taille du fer � souder importe peu.
Utilisez un fer ordinaire et assurez-vous de la propret� de la panne avant
de toucher les pattes de la puce. Je d�conseille l'utilisation
de grille-pain ou toute autre m�thode barbare qui risquerait fortement
d'endommager la puce.
Les essais
Je sugg�re de proc�der en deux �tapes. Connectez d'abord le circuit
sans ins�rer le micro-contr�leur AVR dans son support. Linux devrait
reconna�tre la puce FTDI et ainsi la faire appara�tre dans
/proc/bus/usb/devices:
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2
Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=
1
P: Vendor=0403 ProdID=6001 Rev= 2.00
S: Manufacturer=FTDI
S: Product=USB <-> Serial
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr= 90mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff
Driver=serial
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
Ins�rez ensuite le micro-contr�leur AVR et chargez un programme de test
qui fera clignoter la led. D�compressez le paquetage logiciel linuxusblcd
(voir � la fin de cet article) et tapez :
make testload0
Le c�ble de programmation et le connecteur USB doivent tous les
deux �tre branch�s.
Si le test est positif, vous pouvez �tre certains que le micro-contr�leur fonctionne.
Apr�s cela, vous pouvez charger le logiciel complet
dans le micro-contr�leur:
make load
Vous pouvez utiliser "ttydevinit /dev/ttyUSB0" pour initialiser
la connection USB s�rie ainsi que "cat > /dev/ttyUSB0" pour
dialoguer avec le circuit.
ttydevinit /dev/ttyUSB0
cat > /dev/ttyUSB0
D=hello world
Ceci �crira "hello world" sur l'afficheur. Voir l'article de mai 2002
pour les d�tails. Le code de l'article de mai 2002
contient aussi un programme nomm� llp.pl qui peut servir � dialoguer
interactivement avec votre ordinateur en utilisant les deux
boutons sur l'afficheur LCD. Il est r�utilisable ici.
... et voici l'afficheur en fonctionnement (les boutons n'�taient
pas branch�s au moment de la photo,le FT232BM est cot� cuivre):
Autres solutions
Bien que le circuit pr�sent� ici soit simple, il n'est pas
destin� aux d�butants � cause des difficult�s que posent
la soudure de la puce CMS. Une solution commerciale toute pr�te
peut alors �tre envisag�e. L'inconv�nient tient au fait que
vous ne disposerez pas normalement du chien de garde, des leds
et des boutons. Les prix sont raisonnables pour ces montages tout pr�ts.
L'ensemble des composants utilis�s dans cet article co�te environ
30 Euros et les afficheurs commerciaux sont dans le m�me ordre de prix.
Malheureusement, la plupart des afficheurs commerciaux utilisent
leur propre identificateur m�me s'ils utilisent la puce FTDI. Cela veut dire que
le module du noyau ne les reconna�tra pas car le pilote USB
est bas� sur ces nombres. Vous aurez � modifier les sources
du noyau et � le recompiler. De futures versions du noyau pourraient
fonctionner si le code a �t� modifi� par quelqu'un d'autre.
R�f�rences