Vous êtes sur la page 1sur 132

ule !

juillet /août 2017 | nº 466

le form www.elektormagazine.fr

el
nouv

DÉCOUVRIR CRÉER PARTAGER

nWatch
un système de développement
au poignet
CN/A audio pour RPi
lecteur audio sur réseau
avec Volumio

des circuits vraiment ou comment fabriquer


imprimés
imprimante de carte/four à
votre montre intelligente
refusion Voltera V-One
gradateur à deux bornes • conception de circuit imprimé

te édition : • atténuateur HF commutable • ESP32 (mutation de


Dans cet
du labo l’ESP8266) • BBC micro:bit pour électroniciens (2) •
7 projets
j e t s d e lecteur l’électronique dans l’espace • simulateur de murmure
8 pro de la mer • Rétronique : oscilloscopes Tektronix 556
t o o t h , H F,
Blue et 565 • tirer 5 V d’une cellule alcaline épuisée • R.
V B , F P G A, DSP,
LED R . . .
Lacoste : absorption diélectrique des condensateurs •
y t h o n
MicroP lampemètre façon Tektronix 570 • questions d’éthique •
carte DSP à FPGA pour MicroPython et PyBoard • composants en astronautique •
SDR à bande étroite MC sur SUPRA 2.0 • commande de feux tricolores • ukulé-LED
émetteur-récepteur • APN : générateur de mire • feux de position
complètement programmable multifonctions • renifleur avec module radio RFM12

(B) 16,50 € • (CH) 29,00 FS • (CAN) 20.99 $ca • (And) 15,50 €


ISSN 0181-7450 DOM surface 16,50 € • DOM avion 16,90 € • N Cal/S 2000 cfp
Les microcontrôleurs PIC18F ”K40” intègrent un
convertisseur A/N intelligent avec des fonctions
de filtrage et d’analyse de signal
Les microcontrôleurs PIC® 8 bits sont idéaux pour le tactile et le traitement de signal

Les périphériques indépendants du cœur, ou périphériques CIP (pour Core Independant


Peripherals) disponibles sur la famille PIC18F « K40 » de microcontrôleurs PIC® 8 bits
permettent le filtrage et l’analyse de signal pour les applications tactiles avancées et le
traitement de signal.

Parmi les périphériques CIP analogiques intelligents, on compte un convertisseur


A/N avec capacités de calcul (ADC2) permettant des fonctions de moyenne, filtrage,
sur-échantillonnage et comparaison automatique de seuils. Les microcontrôleurs
intègrent également des CIP de sécurisation et des PWM matériels avec de nombreuses
interfaces de communication ainsi que de grandes capacités de mémoire Flash et
EEPROM sur puce. Ces caractéristiques, associées à une tension de fonctionnement de
5 V, permettent à la famille PIC18F « K40 » d’améliorer la flexibilité d’un système tout en
minimisant son coût.

www.microchip.com/EUPIC18FK40

Le nom et le logo de Microchip, le logo Microchip, MPLAB et PIC sont des marques déposées de Microchip Technology Incorporated aux États-Unis et dans d’autres pays. Toutes les autres marques commerciales ci-dessus
mentionnées sont respectivement la propriété des sociétés concernées. © 2017 Microchip Technology Inc. Tous droits réservés. DS30010138A. MEC2125Fre05/17
40ème année,
n° 466 – juillet/août 2017

ISSN 0181-7450
Dépôt légal : juin 2017
CPPAP 1113 U 83713
Directeur de la publication : Donatus Akkermans

Elektor est édité par :


PUBLITRONIC SARL
c/o Regus Roissy CDG
1, rue de la Haye
Êtes-vous prêt ?
BP 12910
FR - 95731 Roissy CDG Cedex -- Voulez-vous parler à un humain ?
-- Non, ça va, merci.
@ : service@elektor.fr -- Avez-vous été sarcastique et/ou grossier ?
Tél. : (+33) 01.49.19.26.19 -- Pas du tout. C’est une infraction que d’être grossier envers un agent.
du lundi au vendredi de 10h à 13h
C’est compris.

Fax : (+33) 01.49.19.22.37 Cette conversation est extraite du film de science-fiction Elysium de Neill
Blomkamp, sorti en 2013.
www.elektor.fr | www.elektormagazine.fr
Je me suis souvenue de cette scène en parcourant il y a quelques jours un salon de
Banque ABN AMRO : Paris
robotique. Pratiquement un stand sur deux proposait un « robot semi-humanoïde
IBAN : FR76 1873 9000 0100 2007 9702 603
BIC : ABNAFRPP d’aide à la personne ». Leurs créateurs vantaient les mérites de leur progéniture :
faciliter la vie quotidienne des personnes âgées, accueillir les clients d’un hôtel, vous
Publicité : renseigner dans un lieu public, vous guider dans un musée, vous conseiller dans le
Margriet Debeij choix de vêtements dans un magasin...
Tél. : 02 41/955 09 174
Fax : 02 41/955 09 013 Un robot dans une cabine d’essayage ? Et quoi encore ?
Gsm : (+49) 170 550 539 6 J’ai reculé lorsque l’un de ces engins s’est adressé à moi (très poliment) !
margriet.debeij@eimworld.com
Et vous, êtes-vous prêt à confier la garde de vos enfants à un humanoïde ? Ainsi
DROITS D’AUTEUR : que celle de vos vieux parents ?
© 2017 Elektor International Media B.V.
Voilà de quoi méditer pendant la pause estivale.
Toute reproduction ou représentation intégrale ou
partielle, par quelque procédé que ce soit, des pages
publiées dans la présente publication, faite sans Bonnes vacances à toutes et tous !
l’autorisation de l’éditeur est illicite et constitue une
contrefaçon. Seules sont autorisées, d’une part, les Mariline Thiebaut-Brodier
reproductions strictement réservées à l’usage privé du
copiste et non destinées à une utilisation collective, et,
d’autre part, les analyses et courtes citations justifiées
par le caractère scientifique ou d’information de l’oeuvre
dans laquelle elles sont incorporées (Loi du 11 mars 1957
-art. 40 et 41 et Code Pénal art. 425).
Certains circuits, dispositifs, composants, etc. décrits
dans cette revue peuvent bénéficier de droits propres
aux brevets; la Société éditrice n’accepte aucune
responsabilité du fait de l’absence de mention à ce sujet.
Conformément à l’art. 30 de la Loi sur les Brevets, les Notre équipe
circuits et schémas publiés dans Elektor ne peuvent être Rédactrice en chef : Mariline Thiebaut-Brodier (redaction@elektor.fr)
réalisés que dans des buts privés ou scientifiques et
Rédaction internationale : Thijs Beckers, Jan Buiting, Jens Nickel
non commerciaux. L’utilisation des schémas n’implique
aucune responsabilité de la part de la Société éditrice. Laboratoire : Ton Giesberts, Luc Lemmens,
La Société éditrice n’est pas tenue de renvoyer des Clemens Valens (responsable), Jan Visser
articles qui lui parviennent sans demande de sa part
Coordination : Hedwig Hennekens
et qu’elle n’accepte pas pour publication. Si la Société
éditrice accepte pour publication un article qui lui est Ont coopéré à ce numéro : Patrick Bechler, Yves Georges, Robert Grignard,
envoyé, elle est en droit de l’amender et/ou de le faire Denis Lafourcade, Guy Matt, Jean-Louis Mehren,
amender à ses frais; la Société éditrice est de même en Denis Meyer, Helmut Müller, Kévin Petit, Xavier Pfaff,
droit de traduire et/ou de faire traduire un article et de
Guy Raedersdorf, Alexandre Roy
l’utiliser pour ses autres éditions et activités, contre la
rémunération en usage chez elle. Service de la clientèle : Cindy Tijssen

Graphistes : Giel Dols, Mart Schroijen, Patrick Wielders


Imprimé aux Pays-Bas
par Senefelder Misset – Doetinchem Elektor en ligne : Daniëlle Mertens
Distribué en France par M.L.P.
et en Belgique par A.M.P.

www.elektormagazine.fr juillet/août 3
ce mois-ci
40e année – nº 466
juillet/août 2017

5 bientôt dans Elektor


13 Elektor : guide de connexion(s)

33 agenda juillet 2017
59 vol tous azimuts
piloté par Clemens Valens

22
68 projet 2.0
corrections, mises à jour et courrier des
lecteurs

79 optocoupleurs
drôle de composant n°31

70
85 Q & R (presque) tout ce que vous avez
toujours voulu savoir sur...
les composants en astronautique carte DSP à FPGA pour
100 Rétronique
oscilloscopes Tektronix 556 et 565
SDR à bande étroite
à deux faisceaux émetteur-récepteur
126 questions d’éthique complètement programmable
qui invitez-vous chez vous ?
Voici une carte de traitement du signal numérique basée sur un FPGA
128 l’e-choppe d’Elektor qui comporte tout le nécessaire pour réaliser le travail en bande de base
des modes traditionnels à bande rétrécie, comme SSB, radiotélégraphie
130 Zenerdoku (CW) et modulation d’amplitude (AM). Elle apporte une solution à de
casse-tête pour elektorniciens nombreuses difficultés et limitations rencontrées avec les plateformes
SDR simples.

en coulisse

6 concevoir un circuit imprimé ?


pas si facile !
de l’art de placer des pistes

29 trucs et astuces
Appareil-photo numérique en guise de
générateur de mire

38 le bus I²C
2e partie : le bus en action

44
44 des circuits vraiment imprimés
imprimante de carte/four à refusion Voltera
V-One
sur la scène : les projets
88 mutation de l’ESP8266
découvrons l’ESP32 avec l’EDI d’Arduino
14 gradateur à deux bornes
94 l’électronique dans l’espace commande de LED, lampes et chauffages
la recherche spatiale pour tous
18 atténuateur HF commutable
99 bruits de labo niveaux de signal précis par atténuation
« le menu, s’il vous plaît ! » réglable

108 hors-circuits de R. Lacoste 22 CN/A audio pour RPi


des condensateurs qui se rechargent tout seuls ! lecteur audio sur réseau avec Volumio

4 juillet/août 2017 www.elektormagazine.fr


CN/A audio
magazine

62 tirez 5 V d’une cellule alcaline épuisée

pour Raspberry Pi
essorez-la à fond

63 ce bon vieux lampemètre Tektronix 570


on s’en refait un ?

lecteur audio sur


70 carte DSP à FPGA pour SDR à bande
étroite
émetteur-récepteur complètement

réseau avec Volumio programmable

80 MicroPython et PyBoard
de la LED qui clignote … au serveur web qui
fait clignoter une LED

104 renifleur avec un module radio RFM12

88
mutation
espionnez l’éther

112 MC sur SUPRA 2.0


de l’ESP8266 tout petit signal, mais grande qualité

116 commande de feux tricolores


découvrons l’ESP32 avec l’EDI d’Arduino
pour le modélisme ferroviaire
Le prix minime de l’ESP8266
d’Espressif a fait grosse impression chez les
118 ukulé-LED
développeurs : deux ou trois euros chez des LED adressables en série pour
AliExpress. Avec sa version évoluée, l’ESP32, apprendre à jouer du ukulélé
Espressif prépare ses systèmes sur puce 122 feux de position multifonctions
(SoC) WLAN à l’avenir : en plus d’un
pour tout modèle réduit volant
processeur à double cœur, ce nouveau
SoC est équipé d’un module Bluetooth,
d’une plus grande mémoire de travail
et d’extensions des E/S. Commençons
par la programmation de l’ESP32
avec l’EDI d’Arduino. La prochaine
fois, nous verrons les outils de
développement ESP-IDF.

bientôt sur ces pages


Extrait du sommaire du prochain numéro :
imprimante de • Balance de cuisine avec Arduino
carte/four à refusion
• Carte radio pour la carte DSP à FPGA
Voltera V-One
• Enregistreur de données pour chauffage
30 BBC micro:bit pour électroniciens (2)
• Générateurs de fonction
enregistreur de données et oscilloscope
• Interface IdO
35 simulateur de murmure de la mer • Lampe à effet Peltier
un doux bruit pour vous aider à vous • Programmation d’iPhone pour les électroniciens
endormir
• Raspberry Pi Zero W en pratique
48 nWatch, un système de développement Etc.
au poignet
ou comment fabriquer votre montre Sous réserve de modification.
intelligente Le numéro de septembre-octobre 2017 paraîtra le 16 août 2017.

www.elektormagazine.fr juillet/août 5
concevoir un circuit imprimé ?
pas si facile !
de l’art de placer des pistes
Même si une approche aussi naïve peut marcher pour des mon- Intégration dans le système
tages simples, de faible puissance et à basse fréquence, c’est La première étape – généralement ignorée – implique d’étu-
une erreur. Les montages simples ont aussi besoin de bons CI. dier comment intégrer la carte dans le système. Quelle forme
Non seulement les bons CI font que le montage fonctionne et lui donner ? Où placer les trous de fixation ? Combien ? Et les
est fiable, mais ils limitent aussi au maximum les problèmes câbles et fils de et vers la carte ? D’où viennent-ils, où vont-
de CEM, ils ont des points de test pour l’assemblage et la ils ? Y a-t-il une hauteur limite ? D’éventuels problèmes de
réparation et ils sont faciles à intégrer dans le montage final. chaleur ? Comment interagit l’utilisateur avec la carte ? Y a-t-il
Parce qu’une carte de CI est un composant à part entière du des câbles à brancher ? À l’avant, à l’arrière, sur un côté ?
système, elle doit être de même qualité que les autres com- Codeur rotatif ou boutons-poussoirs ? Afficheur ? LED ? Des
posants. La conception d’un CI n’est pas destinée à plaire à problèmes potentiels avec le matériau du boîtier ? Oh oui – un
son concepteur ; elle doit plaire à son utilisateur final, quel autre aspect secondaire – l’alimentation électrique ?
qu’il soit (fig. 1). Même si le système se limite à votre montage fixé dans un
Dans ce qui suit, j’utilise des acronymes et du jargon. boîtier, avant de concevoir le CI, choisissez un boîtier adéquat
Référez-vous au Glossaire plus loin dans cet article pour mieux et adaptez la taille et la forme du CI à celui-ci.
comprendre le texte. De plus, malgré sa longueur, cet article À moins d’exceller dans le travail du métal, du bois et du plas-
est loin d’être complet. La conception de CI est tout simple- tique, ou de disposer de machines à commande numérique et
ment un sujet trop vaste pour être traité intégralement ici. de découpe laser, limitez au maximum la partie mécanique.

6 juillet/août 2017 www.elektormagazine.fr


Clemens Valens (labo d’Elektor)

Pour beaucoup, concevoir un circuit imprimé (CI) n’est qu’un détail ou une tâche
secondaire. Une fois le montage soigneusement testé, ils l’implantent sans trop
réfléchir sur une carte pour le rendre plus facile à déplacer et ne pas avoir de fils qui
se débranchent ou de composants qui tombent. Comme ils ont tort…

Fabrication de la carte
Autre question importante : comment est fabriquée la carte ?
Gravure à la maison ? Êtes-vous à l’aise avec ça ? Sinon, évi-
tez les vias et restez en simple face. Les cartes double-face
exigent un parfait alignement des films du dessus et du des-
sous, et les vias métallisés peuvent demander un gros travail,
surtout s’ils sont nombreux. Ceci dit, beaucoup obtiennent de
très bons résultats à la maison avec des cartes double-face ;
c’est surtout une affaire de savoir-faire et d’expérience.
Vous devriez éviter les plans de masse et autres aplats cuivrés,
car vous n’avez pas de masque de soudure pour éviter les ponts
de soudure. Trouver et couper des courts-circuits presque invi-
sibles n’est pas non plus un travail agréable. Pourquoi ne pas
élargir les pistes pour éviter qu’elles ne soient rongées par le Figure 1. Votre carte peut être réalisée dans une usine comme celle-
liquide de gravure ? Pour éviter les ponts de cuivre, ne mettez pas ci, quelque part très loin de votre point de vue. Donc, pour avoir les
les pistes trop proches les unes des autres. Mettez des pastilles meilleures chances de succès, concevez-la de façon à ce qu’elle puisse
plus grandes si vous n’êtes pas trop bon en perçage (fig. 2). être faite avec le moins d’explications possible.

www.elektormagazine.fr juillet/août 7
de groupage qui combinent votre projet avec ceux d’autres
clients sur une carte de grande dimension sont largement
présents sur l’internet. Comme les prix et délais de livraison
varient beaucoup, comparez plusieurs fournisseurs. Les prix
dépendent surtout de la surface de la carte, de sa classe, du
nombre de couches et du délai de fabrication, et l’ajout d’op-
tions augmentera le prix. Certains services permettent de sup-
primer des options, d’autres non et vous pouvez finir avec des
caractéristiques inutiles pour vous. Les services de groupage
délocalisés semblent attractifs, mais les délais de livraison ne
sont pas toujours respectés et les colis peuvent se perdre.
Certains services proposent un prix par carte incluant le port,
d’autres facturent la préparation et/ou les coûts d’outillage.
Figure 2. Un panneau gravé à domicile avec beaucoup de trous restant à Généralement il n’y a aucune raison de dessiner un CI aussi
percer et de découpes à faire. Est-ce que cela vaut réellement la peine de petit que possible. Il sera moins cher à produire, mais la carte
faire ça vous-même ? sera plus difficile à router, plus compliquée à intégrer et encore
plus à réparer.
Un mot sur le fraisage : quelquefois un fraisage non circu-
Une fraiseuse à CI a des exigences similaires, mais à moins laire est nécessaire pour ajuster une pièce ou pour accéder
que vous ne soyez un très bon graveur, elle a une meilleure à quelque chose. Malheureusement il faudra encore un autre
précision. La densité des pistes peut être supérieure, mais pas outil de fraisage, ce qui augmentera sans doute le prix de la
trop non plus. Si le fraisage est trop profond, des pistes peuvent carte. Certains fabricants n’ajoutent pas de coûts si le foret
disparaître. À l’inverse, si le fraisage n’est pas assez profond, de fraisage est le même que celui utilisé pour le contour de la
des courts-circuits peuvent se créer. Si la carte n’est pas plate, carte. Le fraisage peut ne pas être aussi détaillé et précis que
les deux problèmes peuvent survenir simultanément. N’oubliez souhaité, alors avant de fraiser des formes, vérifiez auprès du
pas non plus que contrairement à la gravure, le fraisage laisse fabricant ce qui est possible ou pas.
le cuivre inutilisé sur la carte. Ceci rend le soudage plus difficile
(là encore, pas de masque de soudure), mais peut aussi créer Placement des composants
des situations dangereuses avec des montages connectés à Les composants ne peuvent pas être mis n’importe où ou n’im-
des hautes tensions (réseau CA) parce que les distances entre porte comment, même quand le circuit vous permet ce luxe
pistes ne sont plus respectées. Ceci peut aussi poser problème virtuel. Pour faciliter le montage, la vérification et la réparation,
pour les montages avec des entrées à haute impédance. On les composants doivent être disposés en lignes et colonnes, et
peut fraiser le cuivre inutilisé, mais cela allonge le temps de orientés uniformément. Cela paraît inutile si vous assemblez
fabrication de la carte. vous-même, mais cela vous facilitera la vie, de même qu’aux
Vous pouvez fraiser manuellement une carte avec un outil de professionnels de l’assemblage/réparation des cartes.
type Dremel ou avec des embouts de fraisage adaptés comme Pour des raisons électriques, les composants doivent – en géné-
ces forets arrondis qu’utilise votre dentiste. Comme lui/elle, ral – être placés aussi proche que possible les uns des autres.
entraînement et habileté sont nécessaires pour obtenir des Bien sûr, il y a bien d’autres critères à prendre en compte ici,
résultats sans effort. comme les chemins de retour de courant, éviter la diaphonie et
Ensuite il y a, bien sûr, la voie professionnelle. Les services autres couplages inductifs ou capacitifs non désirés, etc. Bref,

Petit glossaire de la conception de CI


Aplat (cuivre) : voir Plan du CI comme les pistes, les aplats et les numériques de perçage et routage
Auto-routeur : Saint Graal des développeurs de composants Frein thermique : connexion pastille-cuivre
logiciel de conception de CI Court-circuit : connexion involontaire entre (plan ou piste) évitant que la chaleur de
Borne : voir Broche deux ou plusieurs broches la soudure ne soit absorbée par le cuivre
Bottom : couche inférieure de la pile de la DRC : Design Rule Check, vérification que les environnant
carte, nommée aussi côté soudure éléments du CI respectent un jeu de règles Gerber : format de données vectoriel ASCII
Broche : point de connexion d’un composant de conception comme une largeur de piste pour des images en deux dimensions et
comme une pastille, une broche, un contact, minimale, un diamètre de perçage minimal, deux couleurs
etc. un espacement minimal entre pastilles, etc. IAR : Inner Annular Ring, anneau annulaire
Chevelu : une représentation visuelle de tous les Elément de CI : objet imprimé sur une couche, interne
réseaux non connectés y compris le contour de la carte Masque de soudure : masque avec des
CI : Circuit Imprimé ERC : Electrical Rule Check, vérification que les ouvertures où la soudure est permise. Non
Classe : résolution ou densité d’un CI ; plus la réseaux sont connectés, ne se recouvrent seulement un masque de soudure évite
classe est élevée, plus les éléments du CI et pas, sont sans courts-circuits dus aux aplats les courts-circuits, mais il empêche aussi
les espacements peuvent être petits de cuivre, etc. la soudure de glisser de la pastille ce qui
CMS : Composant à Montage en Surface, Espacement : distance entre deux ou plusieurs pourrait conduire à de mauvais joints
utilisant la technologie TMS éléments du CI de soudure ou au désalignement d’un
Couche : surface supportant des éléments Excellon : format de données pour les machines composant CMS.

8 juillet/août 2017 www.elektormagazine.fr


préparez avec soin le placement des composants ! Un ampli-
ficateur de puissance n’a clairement pas les mêmes exigences
qu’un instrument de mesure de haute précision.
Toutefois, la technique de soudage utilisée peut encore imposer
un autre jeu de contraintes. L’environnement peut aussi avoir
un impact sur le placement des composants. Si l’humidité et/
ou la poussière polluent la carte, il faut un espace plus grand
autour des pistes et composants pour éviter les courts-circuits
et les fuites. Tout ceci est étroitement lié aux normes et stan-
dards auxquels votre carte doit répondre. Même si cela peut
ne pas sembler un problème pour la plupart des cartes FLTM,
il y a de bonnes raisons pour que ces standards existent, et les
étudier peut réellement vous apprendre une chose ou deux.
Placez les composants traversants sur le dessus, nommé aussi Figure 3. Pour bien découpler les circuits intégrés avec de nombreux
côté composants. Placez tous les CMS du même côté, dessus contacts, les condensateurs de découplage peuvent être mis de l’autre
ou dessous ; évitez d’en mettre des deux côtés, car cela rend côté de la carte. Notez la façon intuitive de placer les annotations des
la fabrication plus chère. C’est une bonne pratique d’éviter composants en dehors de la zone à densité élevée.
les CMS des deux côtés, même pour une seule carte ou de
petites séries (fig. 3). ments de piste. Parfois une grille de 1 mil peut être néces-
Les cartes avec des CMS doivent avoir au moins trois mires saire pour placer précisément un élément tout en respectant
comme points de référence pour les machines bras-transfert. les règles de conception (DRC). Mils, mm, peu importe l’unité
Les gros circuits intégrés avec beaucoup de contacts à pas fin choisie, mais il faut vous y tenir.
peuvent aussi nécessiter des mires pour garantir un aligne-
ment correct. Les cartes FLTM peuvent, bien sûr, se passer de Les pastilles
mires, mais pourquoi ne pas prendre une habitude de profes- Les contacts des composants et les bornes sont soudés à des
sionnel ? Cela ne coûte rien. pastilles sur le CI. Pour beaucoup de composants, les pastilles
Orientez dans la même direction tous les composants pola- assurent non seulement la connexion électrique, mais aussi
risés comme les condensateurs et les diodes (à moins que leur tenue mécanique. Il est donc important que la pastille soit
l’intégrité du signal ou une autre bonne raison empêche de assez grande pour ça. En particulier les composants hauts ou
le faire). C’est du temps gagné pendant l’assemblage de la lourds avec peu de bornes (par ex. les gros condensateurs)
carte, l’inspection et la recherche de panne. Indiquez toujours nécessitent de grandes pastilles pour éviter d’être arrachés
la polarité sur la sérigraphie. accidentellement. Le cuivre est collé sur la carte et, en parti-
Attention aux empreintes en miroir. culier lorsqu’il est chauffé (par le soudage ou le courant), il y
a un risque de délaminage.
Restez sur la grille Les composants CMS ont d’habitude des pastilles oblongues. La
Travaillez sur une grille autant que possible. J’aime placer les soudure sans plomb ne s’écoule pas aussi bien que la soudure
composants et faire le routage initial sur une grille de 50 mils. 60/40 traditionnelle, en particulier dans les coins, c’est pour-
Quand les choses deviennent trop denses, je bascule sur une quoi on a commencé à utiliser des pastilles à coins arrondis.
grille de 25 mils. Quand une carte dense est presque finie, je Les pastilles CMS doivent être assez grandes pour supporter
passe sur une grille de 5 mils pour y serrer les derniers seg- suffisamment de pâte à souder pour la soudure correcte d’une

Métallisé : recouvert avec un matériau Plan : grande surface de cuivre ; nommé plan TMS : Technologie de Montage en Surface, pour
conducteur d’alimentation si connecté à la masse ou à la les composants dont les contacts ne sont pas
Mil : un millième de pouce tension d’alimentation insérés dans des trous
Millimètre : un millième de mètre Pochoir : masque pour appliquer la pâte à Top : couche supérieure de la pile de la carte,
Mire : marque spéciale sur un film, masque, souder sur un CI nommée aussi côté composant
carte, panneau, etc., pour aider l’alignement Push and shove : router une piste en poussant Trace : voir Piste
avec des caméras, pochoirs, machines, entre et écartant les éléments environnants du CI TTT : Technologie à Trou Traversant pour les
eux, etc. pour créer suffisamment d’espace pour la composants dont les contacts sont insérés
OAR : Outer Annular Ring, anneau annulaire nouvelle piste dans des trous
externe Réseau : connexion volontaire entre deux ou Via : trou métallisé connectant des pistes entre
Pastille : élément de CI pour connecter une plusieurs contacts deux ou plusieurs couches différentes
broche Réserve : protection contre la soudure ; voir Via stitching : utilisation de multiples vias pour
Pierre Tombale (effet) : relevage partiel ou Masque de soudure connecter un élément de cuivre sur une
total d’un CMS à deux contacts pendant la Routage : transformation des réseaux en pistes couche à un autre élément sur une autre
refusion Sérigraphie : couche non conductrice couche ; souvent utilisé pour conduire la
Pile : empilage ordonné de couches de symboles graphiques et de texte, chaleur ou sur les cartes haute fréquence
Piste : connexion entre deux ou plusieurs habituellement blanche, nommé aussi
contacts sur un CI impression des composants

www.elektormagazine.fr juillet/août 9
Figure 4. Une sélection de pastilles traversantes disponibles dans Eagle, Figure 5. Pastilles effilées dans Eagle, créées avec le script goutte d’eau
outil répandu de conception de CI. (ULP).

borne. Consultez la fiche technique du composant pour l’em- ce qui rend le soudage difficile. Pour éviter la dissipation de
preinte ou plage d’accueil à utiliser. chaleur, les pastilles peuvent être connectées avec des pistes
Les pastilles traversantes présentent de multiples formes étroites – appelées rayons ou thermiques, d’habitude quatre
(fig. 4). Les pastilles carrées sont souvent employées pour – au cuivre environnant (c’est là que l’anneau interne « Inner
indiquer la broche 1 d’un composant tel un connecteur. Les Annular Ring », IAR, apparaît). Lorsqu’on fait de la soudure à
pastilles octogonales sont répandues, mais les rondes sont refusion (c.-à-d. dans un four), le problème est moindre parce
mieux, car elles maximisent la surface de cuivre (bon pour que toute la carte est chauffée à la même température. Ainsi il
la tenue mécanique comme pour la dissipation thermique), n’y a d’habitude pas de véritable raison d’utiliser les techniques
tout en minimisant la place requise pour respecter les règles de frein thermique pour les composants CMS qui seront soudés
d’espacement. dans un four. Toutefois, l’effet « pierre tombale » – le relevage
Il existe aussi des pastilles effilées ou en goutte d’eau, où partiel ou complet d’un composant CMS pendant la refusion
la pastille se fond progressivement dans la piste connectée – peut survenir quand la masse thermique est très différente
(fig. 5). En plus de donner une touche rétro à la carte, elles des deux côtés d’un petit composant à deux bornes (résistance
procurent des liaisons pastille-piste plus solides. C’est impor- ou condensateur). Un frein thermique règle ce problème. Les
tant pour les cartes qui doivent pouvoir être courbées, comme vias n’ont presque jamais besoin de frein thermique, car, en
les CI souples. Tous les outils de conception de CI ne peuvent général, ils ne sont pas soudés.
pas le faire.
Ensuite il y a le frein thermique (fig. 6). Si un contact d’un Les trous
composant est soudé à une piste très épaisse ou à un aplat de Les pastilles ont souvent des trous dedans – les vias aussi.
cuivre, le cuivre entourant la pastille peut absorber la chaleur, Les trous de fixation peuvent ne pas être métallisés ; les trous

Routage manuel ou automatique ?


Les fabricants d’outils de CAO et les scientifiques passent et ont tiels goulots d’étranglement et finissent en routant manuelle-
passé beaucoup, beaucoup, beaucoup d’heures à mettre au point ment. D’autres utilisent le routeur automatique sur des parties
et améliorer des routeurs automatiques et je n’ai encore jamais (simples) de la carte puis mettent au propre ensuite.
été satisfait des résultats d’un seul d’entre eux. Je n’ai non plus
jamais rencontré quelqu’un qui l’était. Une raison est que je n’ai
sans doute jamais eu accès aux meilleurs outils existants, mais
ceux que j’ai essayés soit se plantaient soit abandonnaient cinq
minutes après que j’aie quitté le bureau, n’ont jamais réussi à
router 100% de la carte, ou s’ils atteignaient 100% je devais
passer des heures à remettre au propre, ou étaient simplement
trop compliqués à mettre en œuvre. Pour toutes ces raisons, je
préfère router manuellement. (De plus, je trouve que le routage
est une activité très relaxante).
Le routeur automatique parvient souvent à router jusqu’à 90%
de la carte, voire mieux, mais n’atteint presque jamais 100%
à moins d’un circuit très simple. Quand il se bloque avant d’at-
teindre 100% cela signifie d’ordinaire qu’il ne reste plus de
solution pour finir la carte. Cela n’implique pas que la carte ne
peut pas être routée, cela signifie simplement que le routeur a
bloqué sur toutes les solutions possibles. Pour s’en sortir, vous
devez tant défaire que finalement il aurait été plus rapide de
router la carte manuellement depuis le début.
Comme compromis, certains utilisent le routeur automatique Le « routeur topologique » Eremex TopoR n’a pas de directions de
pour voir où les problèmes de routage peuvent survenir, puis routage préférentielles pour optimiser l’utilisation de l’espace.
déplacent quelques composants en espérant résoudre ces poten- (Source : Eremex)

10 juillet/août 2017 www.elektormagazine.fr


dans les pastilles et les vias sont métallisés. Vous spécifiez le
diamètre du trou métallisé pour vos vias et pastilles ; c’est le
travail du fabricant de CI de garantir que le trou terminé res-
pecte ce diamètre. Pour un trou métallisé, le diamètre de per-
çage réel doit être plus grand que spécifié en raison de l’épais-
seur de la métallisation. Le perçage a une précision limitée
et un trou peut être décentré (fig. 7). En conséquence, pour
garantir qu’assez de cuivre reste autour d’un trou métallisé
après avoir percé et gravé la carte, l’anneau externe (« Outer
Annular Ring », OAR) doit être suffisamment large. L’anneau
interne existe aussi (« Inner Annular Ring », IAR). Selon mon
dictionnaire, « annular » signifie « en forme d’anneau », donc,
techniquement parlant, des « annular rings » sont des « ring
rings » (ce qui me rappelle cette belle chanson d’Abba en 1973
dont je recommande la vidéo sur YouTube. On ne fait plus de
musique comme ça…, ni de tenues, Swenglish, guitares, coupes
Figure 6. Le frein thermique empêche que trop de chaleur ne s’échappe
de cheveux, etc., mais je m’égare).
dans les grands aplats de cuivre pendant le soudage. Ici, l’anneau interne
Spécifier une mauvaise taille de perçage pour un contact minimal peut être spécifié même si c’est presque le même que l’externe.
de composant – trop grande ou trop petite – est une erreur L’anneau rouge représente la métallisation du trou.
fréquente.
Il y a un problème avec les vias et la soudure à la vague : si
un via n’est pas masqué, la soudure peut couler au travers et Nommer les réseaux est utile pendant le routage, car cela vous
potentiellement endommager un composant monté au-dessus. rappelle sur quel signal vous travaillez.
Fermer le masque de soudure pour les vias évitera cela en Maintenant, les coins ! Les pistes arrondies sont meilleures
général. parce que, contrairement à celles avec des angles, elles ont
une largeur constante. Les changements de largeur de piste
Pistes et plans provoquent des inadaptations d’impédance et des réflexions,
Garder les pistes aussi courtes que possible : c’est évident. mais seulement à très haute fréquence, donc la plupart des
C’est particulièrement vrai pour les signaux haute fréquence, montages ne sont pas affectés par ces problèmes. On considère
mais les signaux basse fréquence et même les signaux conti- les angles droits affreux, pourtant vous en trouverez beaucoup
nus bénéficient aussi des pistes courtes. Les pistes courtes en regardant de près les vias sur une carte. Souvent une piste
sont bonnes non seulement pour les signaux, mais aussi pour sur une face continue à 90° sur une autre, et même si elle ne
économiser de la place sur la carte. Certains signaux rapides le fait pas, le via lui-même introduit deux angles de 90°. Les
peuvent nécessiter des pistes (ou une paire de pistes) d’une pistes avec des angles à 90° ont tendance à être plus longues
longueur (et impédance) précise ce qui n’est pas toujours la que celles avec des angles de 45°. Les angles aigus peuvent
plus courte connexion possible. aussi causer des problèmes de délaminage, des poches acides,
N’utilisez pas le stylet le plus fin de votre outil de conception ou un défaut de gravure. Quelquefois il est impossible d’éviter
de CI. Les pistes étroites peuvent coûter plus et sont fra- un angle aigu et dans la plupart des cas ça marche. Personnel-
giles. Le détail le plus fin de la carte détermine la classe de lement j’essaye de m’en tenir à des angles de 45°.
fabrication de la carte ; plus la classe est haute, plus la carte
est chère. Les vibrations peuvent créer des fissures dans les
pistes étroites et dégrader, voire couper, des connexions. Si la
carte doit être soudée à la main, ou si on prévoit des reprises,
les pistes étroites peuvent aisément se délaminer quand on
les chauffe trop, trop longtemps. La gravure à domicile n’est
généralement pas bien contrôlée et les pistes étroites peuvent
être rongées. De plus, une piste étroite peut ne pas supporter
l’intensité de courant prévue. Adaptez la largeur de la piste au
courant transporté, un peu plus pour la maintenir froide. De
nombreux calculateurs en ligne vous aideront à déterminer la
meilleure largeur pour votre piste. Une piste étroite transpor-
tant trop de courant chauffera et pourra fondre ou se casser ;
c’est la chaleur qui limite le courant. Les vias doivent aussi
supporter le courant. Recouvrir les pistes avec une épaisse
couche de soudure augmentera le courant maximal accepté
par la piste. De même, remplir un via avec de la soudure ou
Figure 7. À cause des tolérances de fabrication, un trou peut être
du cuivre pourra aussi aider. Ménager des ouvertures dans le décentré. Pour permettre la métallisation (l’anneau rouge), le trou doit
masque de soudure sera utile dans ce cas. Plusieurs vias en être percé plus grand que spécifié. Le trou terminé (avec métallisation)
parallèle sont souvent utilisés pour améliorer la conduction aura le diamètre spécifié. L’anneau qui reste après perçage est l’anneau
de courant, en limitant le risque de circuit ouvert dû à un via externe. L’anneau externe minimal acceptable montré ici est spécifié dans
coupé. Bien sûr, un via plus grand peut aussi être utilisé. les règles de conception.

www.elektormagazine.fr juillet/août 11
Marquages et impression de composants
Essayez de mettre des annotations pour tous les contours de
composants et assurez-vous qu’ils demeurent visibles après le
montage. J’aime orienter les annotations dans le même sens
que les composants, en lignes et colonnes (voir aussi figure 3).
Indiquez la broche 1 sur tous les connecteurs, barrettes, et
tous les composants où elle n’est pas clairement identifiable.
Marquez aussi la polarité de tous les composants polarisés
comme les condensateurs et les diodes (fig. 8).
Évitez les marquages sous les composants CMS, en particulier
ceux à deux plots, car cela rend leur assise bancale et peut
conduire à l’effet « pierre tombale ».
Gardez le texte lisible et utilisez des étiquettes pour guider
Figure 8. Pas d’annotations de composants, uniquement le marquage de
l’utilisateur quand c’est utile. Notez que les ouvertures dans le
la broche 1, pistes avec toutes sortes d’angles et vias en goutte d’eau.
Une fois que vous savez ce que vous faites, c’est une pratique répandue masque de soudure sont d’habitude légèrement plus grandes
d’être tolérant avec la bonne pratique. que les pastilles, et que chaque sérigraphie traversant ces
ouvertures est coupée, donc assurez-vous que le texte ne les
chevauche pas. Mettez un texte lisible sur toutes les couches
L’utilisation d’un plan d’alimentation ou d’aplats de cuivre (habi- pour éviter un retournement accidentel d’une couche. Étique-
tuel pour la masse) économisera beaucoup de travail et sera bon tez ou numérotez les couches pour garantir qu’elles seront
du point de vue CEM. Cependant, attention quand vous utilisez empilées dans le bon ordre. Donnez à la carte un nom ou un
plusieurs plans d’alimentation, en particulier proches des bords numéro unique et n’oubliez pas d’indiquer sa version.
de la carte et des trous de fixation où des objets métalliques Si le dessous de la carte peut aussi être sérigraphié, faites-le.
et vis d’assemblage pourraient créer des courts-circuits invo- Les cartes FLTM n’ont pas de sérigraphie en général, mais
lontaires entre les plans. Finissez toujours par une vérification cela ne signifie pas que vous devez oublier le texte et le mar-
des règles électriques (ERC) pour vous assurer que tous les quage de polarité ; vous pouvez aussi écrire sur les couches
courts-circuits et circuits ouverts ont été corrigés. de cuivre. Ainsi, quand c’est possible, placez des marquages
Quand vous utilisez un plan ou un aplat pour un réseau, ne et du texte tout en faisant attention à leur taille pour éviter
routez pas ce réseau, mais laisser l’aplat de cuivre le faire qu’ils ne soient perdus pendant la gravure.
pour vous. Attention aux connexions très fines, comme invo-
lontaires, entre des sections de plan, qui peuvent être rongées Test
et couper la continuité du plan. De tels plans sont inadaptés Prévoyez des points de test accessibles. Si possible faites que
pour la gravure à domicile. Pour empêcher cela, commencez le montage produise des signaux de test utiles. Les broches
avec un espacement large pour les aplats de cuivre et voyez des composants ne doivent pas servir de points de test, car une
si le cuivre s’étale partout. Déplacez les pistes et les vias pour sonde de test appuyée contre une broche peut provisoirement
améliorer l’écoulement du cuivre. Quand vous êtes satisfait de « réparer » un mauvais joint de soudure, feignant une bonne
l’aplat, diminuez l’espacement. connexion, mauvaise le reste du temps. Les vias peuvent être
Notez que les plans ont une influence sur la distribution du utiles pour le test manuel, mais seulement quand ils sont lais-
cuivre de la carte. Quand le cuivre n’est pas réparti réguliè- sés ouverts dans le masque de soudure.
rement, la gravure peut devenir irrégulière, et entraîner une
répartition irrégulière de l’épaisseur du cuivre pouvant courber C’est tout ?
le CI aux températures extrêmes (comme dans les applica- Après la lecture de ce long article, vous pourriez penser que
tions automobiles). vous en savez beaucoup sur la conception des CI, alors qu’en
réalité nous n’avons qu’effleuré le sujet. Nous n’avons pas
Appliquez les règles de conception parlé, pour ne citer que cela, des chemins de retour de cou-
Utilisez la vérification des règles de conception (DRC) et des rant, des plans de masse multiples, de la gestion de la chaleur
règles électriques (ERC) pour vous assurer que tous les élé- pendant le soudage et en fonctionnement, de la conformité
ments du CI les respectent. De bonnes règles de conception avec la CEM, du traitement des signaux haute fréquence, du
aident à éviter que des pistes ne se chevauchent ou passent dessin des empreintes, etc.
trop près des bords de la carte, à trouver des diamètres de La conception de CI est un vaste thème qui combine la chimie,
perçage et espacements incorrects, et bien plus. Utilisez-les ! la physique, l’électronique, la mécanique et l’automatisation. Il
Lorsque vous pensez que la carte est prête, assurez-vous que est plutôt amusant de découvrir que beaucoup d’aspects de la
tous les réseaux sont bien connectés. Ne laissez pas d’avertis- conception de CI n’ont jamais vraiment été étudiés en détail et
sements ni d’erreurs, même s’ils sont acceptables pour vous sont simplement fondés sur du bon sens et des hypothèses. Vous
parce qu’ils pourraient perturber la personne qui héritera du trouverez sur l’internet beaucoup de discussions sur la concep-
projet – ou vous-même lorsque vous le redécouvrirez six mois tion des CI, donc dans le doute, demandez autour de vous.
plus tard. Si vous devez tolérer un avertissement, documen- Remerciements à Malte Fischer pour ses conseils utiles.
tez pourquoi. Si possible changez la règle de conception qui (160397 – version française : Denis Lafourcade)
vous gêne pour le faire disparaître, mais assurez-vous que la
Lien
nouvelle règle est acceptable pour votre application, de même
que pour votre fabricant de carte. [1] www.elektormagazine.fr/160397

12 juillet/août 2017 www.elektormagazine.fr


la communauté d'Elektor DÉCOUVRIR CRÉER PARTAGER

82 248153 1040 489 235332


pays membres actifs experts & auteurs publications visiteurs (par mois)

Elektor, c'est bien plus qu'un simple magazine. C'est une communauté d'électroniciens, du débutant
au professionnel, désireux d'apprendre, de concevoir et de partager une électronique qui étonne.

Boutique en ligne d'Elektor : la caverne d’Ali Magazine Elektor : six numéros par an
Baba des électroniciens ! 10 % de remise d’électronique inédite (projets, bancs d’essais,
permanente pour les membres GREEN et GOLD. cours, trucs et astuces, actualité…).
www.elektor.fr www.elektormagazine.fr

Elektor PCB Service : gravure à la demande Elektor GRATUIT, version numérique :


de vos circuits imprimés, en un ou plusieurs lettre d’information à l’affût des nouveautés.
exemplaires. www.elektorpcbservice.com C'est gratuit : www.elektor.fr/inscription

Livres & DVD Elektor : Arduino, Raspberry Pi,


Elektor Academy : l’apprentissage par
microcontrôleurs, Linux et bien d’autres.
la pratique au travers de webinaires,
10 % de remise pour les membres !
séminaires, ateliers, DVD… www.elektor.fr
www.elektor.fr

Elektor TV : présentations, comptes-rendus, Elektor Labs : l’incubateur où partager ses


déballage et évaluation de produits. Pour y projets et participer à ceux des autres. Nous
voir plus clair. faisons grandir vos idées !
www.youtube.com/user/ElektorIM www.elektormagazine.fr/labs

connectez-vous à notre communauté


formule formule formule
GREEN 92,50 € par an GOLD 127,50 € par an GRATUITE
✔ accès à l’archive d’Elektor ✔ accès à l’archive d’Elektor ✘ accès à l’archive d’Elektor
✔ 10% de remise dans l’e-choppe ✔ 10% de remise dans l’e-choppe ✘ 10% de remise dans l’e-choppe

✘ 6x magazine imprimé ✔ 6x magazine imprimé ✘ 6x magazine imprimé


✔ 6x magazine numérique ✔ 6x magazine numérique ✘ 6x magazine numérique
✔ des offres exclusives ✔ des offres exclusives ✔ des offres exclusives

✔ accès à plus de ✔ accès à plus de ✘ accès à plus de


1 000 fichiers Gerber 1 000 fichiers Gerber 1 000 fichiers Gerber

✘ le DVD annuel d’Elektor ✔ le DVD annuel d’Elektor ✘ le DVD annuel d’Elektor

➧ connectez-vous ➧ connectez-vous ➧ connectez-vous


www.elektor.fr/formule-greencard www.elektor.fr/formule-goldcard www.elektor.fr/inscription

facebook.com/ElektorFR twitter.com/Elektor
PROJET DU LABO

gradateur à deux bornes


commande de LED, lampes et chauffages

Caractéristiques
• 2 versions : CA ou CC
Michael A. Shustov (Russie) et • Pas besoin de fil supplémentaire
Andrey M. Shustov (Allemagne) • Pas besoin d’Arduino

Par le passé, les rhéostats (aujourd’hui aussi appelés potentiomètres) étaient connectés en série avec
une charge pour régler l’intensité du courant à travers la charge. Bien que simple, cette technique a
des inconvénients.

Le premier de tous est que le courant de chauffage ou d’éclairage (lampes


R
ne peut être piloté que quand la charge incandescentes et LED), ou comman-
est active. Deuxièmement le rhéos- der la vitesse d’un moteur. LED LED

tat chauffe, ce qui produit des pertes. Les gradateurs qui pilotent l’intensité
De plus, régler l’intensité du flux lumi- des sources lumineuses sont habituel-
E DIMMER
neux de diodes électroluminescentes lement connectés en parallèle avec l’ali-
(LED) avec un rhéostat est quasiment mentation, ce sont des appareils à trois
impossible, à cause de la caractéristique bornes. Deux bornes sont connectées à
courant-tension non linéaire des LED. La
modulation de largeur d’impulsion (MLI)
est meilleure et plus efficace pour faire Figure 1. Le gradateur est en série
copyright
varier en douceur l’intensité d’appareils avec la/les LED et ne nécessite que deux fils.

14 juillet/août 2017 www.elektormagazine.fr


MAX MIN
LED1
infos sur le projet
P1 R2 R4
LED
330R 560R K1
47k 2 éclairage MLI gradateur
R1 lin. S–
D3 Danger ! 555
1
1k8
C2
S+

D1 D2 4u7 SWITCH débutant


BZXC79C3V6

K2
Æ connaisseur
1N4148 1N4148
2
expert
L–
4 8
RES VCC 1
6 T1 L+
THR

7
IC1
3
R3
LED
Environ 2 h
DIS OUT 2k2
2 LMC555
TRIG RFP12N10L K3
CV GND 2 V+

C1
5
C3
1 Fer à souder,
1
V– du bon sens
2n2 1n
VDC
160380 - 11

copyright
15 €

Figure 2. La version CC du gradateur série.

l’alimentation tandis que la troisième est pilote le MOSFET de puissance T1 qui de R5 réduira aussi le courant minimal.
connectée à la charge. Ces gradateurs « allume » et « éteint » la charge (LED) Un interrupteur peut être connecté à K1
ne peuvent pas prendre la place d’un suivant le signal MLI. Le signal MLI a une pour éteindre complètement le gradateur.
interrupteur bipolaire, car ils doivent fréquence approximative de 6 kHz, trop
être raccordés à un 3e fil d’alimentation. rapide pour que l’œil humain le perçoive. Gradateur alimenté sur secteur
Notre gradateur à deux bornes lui (fig. 1) Le ratio impulsion/repos ou rapport cycli- (CA)
peut remplacer un interrupteur et être que est ajusté avec le potentiomètre P1. Il est bien sûr possible d’adapter le gra-
connecté en série avec une charge (LED, Les résistances R1 et R2 déterminent les dateur pour l’utiliser avec une source
lampes ou éléments chauffants). Contrai- valeurs minimale et maximale de la lar- alternative comme le 230 V CA du sec-
rement à un interrupteur, le gradateur geur d’impulsion. Jusqu’ici le gradateur teur disponible dans les maisons de nom-
permet d’ajuster le courant de charge est un régulateur shunt à trois bornes breux pays à travers le monde (ça fonc-
de presque 0 à env. 97 % de sa valeur standard. L’astuce pour se débarrasser tionnera aussi avec du 115 V CA). Il faut
maximale. Lorsque le gradateur est réglé d’un bornier, c’est d’alimenter la charge franchir deux obstacles pour cela :
sur son minimum, il circule quand même et le circuit avec la même source. Quand • Trouver un transistor de puissance
un courant de très faible intensité à tra- T1 est bloqué, on charge C2 via R4 et qui résiste à des hautes tensions
vers la charge. LED1. La diode zener D3 limite la tension • Convertir la tension CA en tension
Un inconvénient des gradateurs à deux à 3,6 V. La LED1 sert de témoin de fonc- CC.
ou trois bornes est la consommation tionnement et permet aussi de trouver Le second point nécessite de l’attention.
résiduelle de courant, toutefois elle est plus facilement le gradateur dans le noir. Redresser la tension secteur ne suffit pas,
insignifiante comparée à celle quand la Le transistor T1 peut supporter jusqu’à les grosses charges comme les ampoules
charge est alimentée. 100 V et conduire 12 A, mais pas en à incandescence scintilleront, ce qui rend
Les gradateurs décrits ci-dessous même temps (le circuit imprimé ne sup- le filtrage obligatoire. De plus, la ten-
peuvent être utilisés avec des appareils porte que 2,5 A !). D’après sa feuille sion redressée du secteur vaut environ
d’éclairage domestiques, des thermostats de caractéristiques, il peut dissiper 325 V (163 V pour une tension secteur de
ou encore des éclairages secondaires ou jusqu’à 60 W et il doit être monté sur 115 VCA), ce qui est trop élevé pour des
de secours. un dissipateur adapté quand il doit sup- ampoules domestiques standard (néan-
porter plus de 1 W. R4 détermine la ten- moins, il est possible de monter en série
Gradateur à deux bornes sion d’alimentation maximale, ici 20 V. plusieurs ampoules identiques de tension
alimenté en CC Avec les valeurs données dans le schéma, inférieure). À cause de ces limitations
Le cœur du gradateur (fig. 2) est un bon nous mesurons un courant de repos pratiques, ce qui suit n’est là que pour
vieux temporisateur 555 dans sa ver- de 3,5 mA (c’est-à-dire quand le rapport illustrer nos propos ; nous vous décon-
sion CMOS basse consommation, appe- cyclique est de 0%). C’est un courant seillons de l’utiliser dans la vraie vie.
lée LMC555CN. Il est câblé en géné- suffisant pour que certaines LED s’allu- La figure 3 montre la version 230 V CA
rateur d’impulsions à rapport cyclique ment de façon notoire. Réduire la valeur du gradateur. Le changement le plus
variable, un circuit bien connu, rien de de R2 de 75-100 Ω devrait améliorer la notable est l’ajout du redresseur (D4-
nouveau sous le soleil. La sortie d’IC1 situation. De plus, augmenter la valeur D7) et du filtre d’alimentation constitué

www.elektormagazine.fr juillet/août 15
MAX MIN
LED1
K1
P1 R2 R4 R5
2
330R 15k 15k L–
47k 2W 2W
R1 lin. 1
L+
D3
1k8
C2
LOAD
D1 D2 4u7
BZXC79C3V6

1N4148 1N4148 D4 D5
230VAC
4 8
VCC
1N4007 1N4007
RES
6 K2
THR T1
IC1 R3 1
7 3 C4 C5 C6 V
DIS OUT 100R
2 LMC555 2
TRIG 100u 100u 100u V
BU323Z 350V 350V 350V
CV GND
D6 D7
LINE
5 1
C1 C3

2n2 1n 1N4007 1N4007

160380 - 12
copyright

Figure 3. Ce circuit gradateur est dangereux et risque de vous tuer. Ne le regardez pas trop longtemps !

de C4, C5 et C6. Nous avons aussi ajouté sible pour l’œil humain. Pour de plus Darlington BU323Z au lieu du MOSFET.
un symbole de risque mortel (tête de grosses charges, il faut augmenter les Ce transistor est conçu pour commuter
mort & tibias) : ce circuit est dangereux ! valeurs de C4 à C6 ; les diminuer pour des charges inductives en 230 V CA et
La capacité de filtrage est réalisée avec de plus petites charges. La taille de ces contient une protection contre les surten-
trois condensateurs séparés, car il est condensateurs n’est pas décisive si la sions. Il peut tenir jusqu’à 150 W (avec
difficile de trouver un gros condensa- charge est un élément chauffant. un dissipateur adapté !). Si vous êtes
teur à un prix abordable. Avec 3× 100 μF En plus des changements visibles du tenté de le remplacer par un modèle plus
(min. 350 V) et une ampoule de 100 W, schéma, il y a aussi quelques modifi- robuste, gardez en tête que les diodes
l’ondulation de la tension de sortie ne cations subtiles. Le transistor T1 est redresseuses D4 à D7 sont conçues pour
dépassera pas 3% (environ). C’est invi- maintenant un transistor de puissance aller jusqu’à 1 A et 3 W.

Faisons quelques calculs


Quand on utilise des LED (juste une ou
quelques-unes en série) pour de l’éclai-
rage, il faut calculer la résistance de
limitation de courant R (fig. 1) et sa
puissance.
La tension de seuil ULED d’une LED dépend
de sa couleur, voir tableau 1. L’équation
suivante permet d’estimer la valeur de
la résistance :

USUP − n ×ULED −UT1


R= [Ω]
0.9 × ILED

où USUP est la tension d’alimentation, n le


nombre de LED, UT1 la chute de tension
aux bornes du transistor T1, et ILED le

16 juillet/août 2017 www.elektormagazine.fr


courant maximal à travers la ou les LED. Tableau 1. Tension de seuil en fonction de la couleur émise par une LED.
Consultez la feuille de caractéristiques de
Couleur Longueur d’onde [nm] ULED [V]
la LED pour les valeurs exactes de ULED et
Infrarouge ≥ 760 ≤ 1,6
ILED. La puissance de la résistance peut
être calculée avec Rouge 610 – 760 1,6 – 2,0
Orange 590 – 610 2,0 – 2,1
2
PR = (ILED ) × R [W] Jaune 570 – 590 2,1 – 2,2
Vert 500 – 570 2,2 – 2,5
Bleu 450 – 500 2,5 – 2,7
Exemples
Violet 400 – 450 2,7 – 3,1
1. (Figure 2) Prenons n = 1, ULED = 3 V,
Ultraviolet ≤ 400 ≥ 3,1
ILED = 0,05 А, UT = 0,04 V, USUP = 20 V.
Alors R = 377 Ω, ou arrondie à sa valeur Blanc – 3 – 3,7
standard proche supérieure, 390 Ω.
La résistance doit être capable d’ab-
sorber (0,05)2 × 390 = 0,975 W, ou requise peut être obtenue en connec- Les auteurs de cet article ainsi qu’Elek-
arrondie à une valeur commune, 1 W. tant en parallèle deux résistances tor ne peuvent en aucun cas être tenus
de 3 kΩ / 2 W. Avec ces valeurs, le responsables, pour autant que cela soit
2. (Figure 2) Prenons U LED  = 2 V, courant à travers les LED devient (USUP juridiquement possible, des dommages
ILED = 0,02 А, UT = 0,04 V, USUP = 16 V. − n × ULED − UT) / 1500 = 0,041 A, ce dus à l’utilisation des circuits présentés
Si nous limitons n × ULED à 80% de qui signifie que T1 doit dissiper UT × dans cet article.
USUP, alors n = 6. Dans ce cas R devient ILED = 0,125 W. Il devrait le faire sans (160380 – version française : Alexandre Roy)
220 Ω, et sa puissance devrait être dissipateur.
supérieure à 88 mW (0,125 W serait Lien
une valeur standardisée suffisante). Derniers mots [1] www.elektormagazine.fr/160380
Nous ne vous le répéterons jamais
3. (Figure 3) Prenons U LED  = 2,5 V, assez : le circuit de la figure 3 est

dans l’e-choppe
ILED = 0,05 А, UT = 3 V, USUP = 325 V. dangereux. Il présente des tensions
Si nous limitons n × ULED à 80% de mortelles et peut vous tuer (ou quelqu’un
USUP, alors n = 104 et R = 1,378 Ω. d’autre) quand il est utilisé sans précau- ª160380-1
La valeur standardisée la plus proche tions adaptées. Ne fabriquez pas ce Circuit imprimé
est 1,5 kΩ. Sa puissance devrait être circuit ! Ne l’utilisez pas non plus (même pour la version CC
supérieure à 3,75 W. La résistance si ce n’est pas vous qui l’avez construit).

liste des composants

www.elektormagazine.fr juillet/août 17
PROJET DE LECTEUR

atténuateur HF
commutable
niveaux de signal précis
par atténuation réglable
Alfred Rosenkränzer (Allemagne)

Si l’on n’a que très rarement affaire à la haute fréquence, il est utile de pouvoir atténuer facilement le niveau
de ces signaux par pas discrets. On peut alors, par exemple, ajuster le niveau de sortie d’un générateur
HF à d’autres valeurs que celles fournies par le réglage du générateur. Un atténuateur est très utile pour le
réglage ou la réparation des récepteurs ainsi que pour les émetteurs. Les atténuateurs professionnels sont
malheureusement très chers, ce qui rend une réalisation personnelle intéressante là où une électronique
coûteuse ne s’impose pas.

18 juillet/août 2017 www.elektormagazine.fr


tronicien n’a pas les moyens ou le désir Circuit d’atténuation
Caractéristiques de consentir, alors que l’appareil n’est Pour l’atténuation d’un signal à impé-
• Atténuateur HF avec 6 inverseurs composé que d’un boîtier, de bornes, dances constantes (les impédances d’en-
pour 0 à 31 dB par pas de 1 dB de commutateurs et de quelques résis- trée et de sortie sont conservées, seul le
tances. En y mettant un peu de soin, la niveau du signal varie), il existe en prin-
réalisation maison d’un bon atténuateur cipe deux circuits équivalents composés
Il est quelquefois utile et même néces- pour les domaines de fréquences utiles de trois résistances : les circuits en T et
saire de pouvoir atténuer un signal HF à un prix raisonnable est donc possible. en Pi (fig. 2). Pour mon circuit, j’ai choisi
d’une manière précise. Si le signal est
fourni par une source HF dont le niveau
est difficilement réglable, il n’est guère
possible de se passer d’un atténuateur
additionnel. Cet atténuateur est d’or-
dinaire inséré dans une ligne HF. C’est
utile, par exemple, si l’on veut évaluer
la sensibilité d’un récepteur ou son com-
portement aux signaux faibles. On insère
alors l’atténuateur dans la ligne d’an-
tenne et l’on augmente l’atténuation
jusqu’à ce que la réception se dégrade
ou que les phénomènes à analyser
(comme un souffle ou un décrochage
du contrôle automatique de fréquence)
se manifestent. Pour l’électronicien HF,
les cas d’utilisation d’un bon atténuateur
sont évidents.

Les fabricants d’appareils de mesure pro-


posent des atténuateurs de bonne qualité
(fig. 1), mais à un prix auquel tout élec- Fig. 1. Atténuateur VHF typique de la société HP. Depuis longtemps plus disponible.

www.elektormagazine.fr juillet/août 19
avec une bonne approximation avec
des résistances des séries E. Il faut
donc en tout six inverseurs et (jusqu’à)
6 × 3 × 2 = 36 résistances.
copyright L’atténuation désirée est obtenue en
jouant sur les valeurs des résistances.
Théoriquement, on peut réaliser une
valeur entre 0 dB et l’infini. Dans la pra-
tique, l’atténuation est limitée à 10 dB.
Fig. 2. Configurations de base T et Pi. Les valeurs supérieures sont perturbées
par les effets parasites des composants,
du circuit imprimé et des inverseurs qui
ne sont pas spécialement conçus pour
S1.A S1.B S2.A S2.B S3.A S3.B
les hautes fréquences. La valeur mini-
TP1 R1 R7 R13
TP2 13R7 316R 261R male en pratique est de 1 dB, quoique
R2 R8 R14 des valeurs d’une fraction de dB soient
10R 12R1 26R1
R3 R4 R5 R6 R9 R10 R11 R12 R15 R16 R17 R18 possibles. Si un inverseur est en position
haute, le signal est transmis sans atté-
6810R

1000R

1000R

6810R

8250R

8250R

1470R

1470R
464R

464R

261R

261R
nuation, en position basse, il est atténué.
1 dB copyright 2 dB 4 dB Les valeurs d’atténuation des différents
étages sont indépendantes, car les impé-
dances d’entrée et de sortie sont partout
S4.A S4.B S5.A S5.B S6.A S6.B
les mêmes. Pour mon circuit, j’ai choisi
R19 R25 R31 TP3
les atténuations 1 | 2 | 4 | 8 | 8 | 8 dB,
825R 825R 825R TP4 ce qui permet de régler l’atténuation
R20 R26 R32
56R2 56R2 56R2 totale par pas de 1 dB (environ 10%)
R21 R22 R23 R24 R27 R28 R29 R30 R33 R34 R35 R36 dans le domaine 0 à 31 dB. Ce choix
3160R

3160R

3160R

3160R

3160R

3160R

convient à mes applications habituelles,


121R

121R

121R

121R

121R

121R

mais d’autres combinaisons sont pos-


8 dB 8 dB 8 dB 160323 - 11 sibles. On peut tout aussi bien envisager
6 fois 10 dB pour une excursion de 60 dB
par pas de 10 dB, ou bien une combi-
Fig. 3. Schéma complet de l‘atténuateur à six étages.
naison de 0,5 | 1 | 2 | 4 | 8 | 8 dB pour
0 à 23,5 dB par pas de 0,5 dB.
la variante Pi, qui facilite la conception de l’atténuateur à six étages. Il s’agit
du circuit imprimé. Dans le cas de la HF, tout simplement de six atténuateurs Pi Calculs
le circuit imprimé est préférable à un en série, insérés ou supprimés par des Pour le calcul des résistances, j’utilise le
câblage volant, car a) les paramètres inverseurs bipolaires. La seule spécifi- programme AADE, qu’on peut télécharger
géométriques sont les mêmes pour tous cité est que chaque résistance du circuit sur [1]. Normalement, on se sert de ce
les étages et b) les inductances et les de base est remplacée par deux résis- programme pour des calculs plus com-
capacités parasites restent faibles. tances en parallèle. De cette manière, pliqués, tels que celui d’un filtre, mais il
La figure 3 montre le schéma complet la résistance calculée peut être réalisée convient aussi pour les atténuations et
épargne ainsi des tas de calculs.
Dans le menu Design®Attenuator Pad,
on commence par choisir la structure Pi,
liste des composants puis dans le menu suivant l’impédance de
ligne. En principe, on peut choisir n’im-
porte quelle valeur, mais aujourd’hui le
choix est limité à 50 Ω pour les appareils
de mesure et 75 Ω pour les antennes et
les signaux vidéo analogiques. Le cir-
S1 S2 S3 S4 S5 S6 cuit imprimé est conçu pour 50 Ω, mais
E

il est réalisable pour 75 Ω en jouant sur


R1 R7 R13 R19 R25 R31
la largeur des pistes et l’épaisseur de la
T

R2 R8 R14 R20 R26 R32


platine. Pour cela, des logiciels sont dis-
ponibles sur l’internet. Si vous en avez
R10

R12
R15
R16
R17
R18
R21
R22
R23
R24
R27
R28
R29
R30
R33
R34
R35
R36
R11
R3
R4
R5
R6
R9

l’intention et les compétences, vous pou-


vez examiner de plus près l’outil proposé
Fig. 4. Dessin du circuit imprimé étudié pour la HF.
sous [2].
L’atténuation souhaitée est saisie dans
le menu suivant et l’on obtient un cir-

20 juillet/août 2017 www.elektormagazine.fr


cuit avec les valeurs de résistances
résultantes. Malheureusement elles ne
correspondent généralement pas aux
valeurs de la série E. Même la série E96
ne fournit pas toujours une solution satis-
faisante. Pour obtenir une valeur aussi
proche que possible de celle fournie par
AADE par la mise en parallèle de deux
résistances de la série E24 standard du
commerce, on peut, bien sûr, procéder
par calcul mental, martyriser sa calcu-
lette, créer un tableau Excel ou écrire
Fig. 5. Le circuit installé dans le boîtier Hammond.
un petit programme. Mais il est plus
simple d’utiliser des outils en ligne qui
vous déchargent du travail et vous four-
nissent, avec les solutions possibles, les
pourcentages d’erreur. Un bon outil est
Atténuer des signaux HF pas à pas
disponible sous [3]. Une précision de 1%
est suffisante.
Si vous vous demandez pourquoi aucune
variante en T n’est proposée ni pour le
schéma ni pour le circuit imprimé, la
réponse est que cela aurait compliqué le
circuit (et dégradé les performances HF).

Sans circuit imprimé,


rien à faire
Le circuit imprimé que j’ai conçu est
représenté sur la figure 4. Les fichiers
Eagle correspondants sont disponibles au
téléchargement gratuit sur la page asso- Fig. 6. Le prototype terminé. Fig. 7. Courbes de fréquences pour les
ciée à cet article sur le site d’Elektor [4]. atténuations minimale (0 dB) et maximale
Les inverseurs sont disposés au milieu, (31 dB).
avec, en dessous, les six résistances
associées, reliées au plan de masse de mat 0603, il faut de bonnes pincettes et très convenables: la figure 7 montre les
la face inférieure par trois vias. La lar- une main ferme. Après le montage, il est courbes de fréquences pour une atté-
geur des pistes, associée à l’épaisseur facile de tester le circuit en n’activant à nuation de 0 dB et pour le maximum
de 1,0 mm de la platine FR4 (impor- chaque fois qu’un seul étage d’atténua- de 31 dB. On voit que l’atténuateur est
tant !), donne une impédance de ligne tion (les autres étant sur la position 0 dB) à peu près stable jusqu’à 200 MHz.
de 50 Ω environ. Les résistances CMS et en mesurant la résistance globale suc- (160323 – version française : Helmut Müller)
sont de format 0603, mais vu la bonne cessivement à l’entrée et à la sortie. Il
Liens
taille des pastilles, on peut aussi bien uti- faut, bien sûr, connecter une résistance
liser des composants 0805. La puissance de 50 Ω (ou deux de 100 Ω en parallèle) [1] http://w1hue.org/filter.html
de l’atténuateur dépend directement de de l’autre côté. Si l’on trouve toujours [2] www.eeweb.com/toolbox/
la puissance des résistances, mais sa 50 Ω ±<1 %, on peut être raisonna- microstrip-impedance
conception le destine plutôt aux faibles blement assuré qu’on n’a pas permuté [3] www.qsl.net/in3otd/parallr.html
puissances : il est préférable de rester de résistance. Mais on n’en aura la cer-
[4] www.elektormagazine.fr/160323
en dessous des 100 mW. Par rapport titude qu’en mesurant l’atténuation de
au prototype, on a ajouté au circuit une chaque étage, ce qu’on peut faire aussi
structure de test permettant de mesurer en courant continu, à condition de ne pas
l’impédance de ligne. Les bornes SMA dépasser à l’entrée une tension de 5 V en
sont facultatives et ne sont pas utilisées série avec une résistance de 50 Ω, sans L’auteur
en dehors de cette mesure. oublier la charge de 50 Ω en sortie. Le Alfred Rosenkränzer est ingénieur de
Le circuit imprimé trouve place dans rapport des tensions entre l’entrée et la développement depuis plus de 30 ans,
un boîtier en aluminium extrudé de la sortie donne l’atténuation réelle. au début dans le domaine de la télé-
société Hammond (voir la liste des com- La figure 5 montre le circuit installé dans vision professionnelle. Depuis la fin
posants). Pour l’entrée et la sortie, on le boîtier Hammond, et la figure 6 le pro- des années 1990, il conçoit des cir-
utilise des bornes HF (au labo, en géné- totype terminé. Bien solide et pratique, cuits numériques à haute vitesse et des
ral de type BNC). Pour le montage des non ? Le prototype n’a pas seulement circuits analogiques pour les appareils
composants, rien de particulier, si ce une bonne mine, il affiche aussi, compte de test des circuits intégrés.
n’est que pour les résistances au for- tenu de sa simplicité, des caractéristiques

www.elektormagazine.fr juillet/août 21
PROJET DU LABO

CN/A audio pour RPi


lecteur audio sur réseau avec Volumio

Ton Giesberts Les mini-ordinateurs, tel le Raspberry Pi,


(labo d’Elektor)
sont vraiment prédestinés à être
utilisés comme lecteur audio
autonome et sur
réseau.

Avec une distribution


Linux spécifique comme
Volumio, c’est pratiquement un
jeu d’enfant. Ton Giesberts le prouve
ici, ces lecteurs audio peuvent être de très
bonne qualité.

L’offre en lecteurs audio autonomes qui mais pour Elektor nous voulions encore suréchantillonnage (×8). Les caracté-
peuvent être mis sur un réseau est limi- mieux. Nous avons donc décidé de conce- ristiques de ce circuit intégré, fourni en
tée, qui plus est si on souhaite aussi un voir un convertisseur pour le RPi, de la boîtier SSOP (Shrink Small Out-Line pac-
écran tactile. Il y a bien quelques ampli- meilleure qualité possible, et avec des kage) à 28 broches, sont excellentes à
ficateurs de marque, volumineux et au composants irréprochables. tous points de vue : plage dynamique
prix à l’avenant ; en général, ils n’ont pas de 132 dB (9 Veff, mono) et 127 dB (2 Veff,
d’écran tactile pour la commande non Vue d’ensemble stéréo), distorsion de 0,0004%, et sorties
plus. En tout cas, si l’on veut un appareil Les circuits intégrés CN/A de Burr‑Brown en courant symétriques (7,8 mA crête à
compact et portable, ce n’est pas dans (désormais Texas Instruments) restent crête). Il accepte en outre tous les for-
cette voie qu’il faut chercher. sans doute ce qui se fait de mieux, et mats de données connus : standard, jus-
On en est vite réduit à se tourner vers nous les avons déjà utilisés par le passé. tifié à gauche, et – important pour notre
une solution faite maison, et une applica- Nous avons choisi pour ce projet le projet – I²S. L’alimentation de la partie
tion sur la base du Raspberry Pi constitue PCM1794A, un des meilleurs du fabri- numérique du circuit intégré est de 3,3 V,
un bon point de départ. On trouve sur cant ; il s’agit d’un CN/A à 24 bits, qui mais les entrées numériques acceptent
le marché des convertisseurs CN/A de accepte des taux d’échantillonnage de 10 les signaux 5 V. La fiche de caractéris-
bonne qualité pour ce mini-ordinateur, à 200 kHz, et qui comprend un filtre à tiques est disponible sur le site de TI [1].

22 juillet/août 2017 www.elektormagazine.fr


Les sorties en courant symétriques convertisseurs I/V et les filtres de sor-
devront bien entendu être transformées tie ; pour éviter cela, nous utilisons des infos sur le projet
en sorties en tension asymétriques à régulateurs, et un inverseur pour obte- audio
l’aide d’un convertisseur I/V, et filtrées. nir la tension négative à partir du +5 V.
lecteur sur réseau CN/A
Forts de ces connaissances, nous avons En y regardant de plus près, on constate
Raspberry Pi écran tactile
dessiné le schéma de principe (figure 1) que l’alimentation de la partie analo-
et établi notre « liste de courses » : un gique est en fait de +5,2 V. Cette valeur débutant
Raspberry Pi 3 (la version 2 convient quelque peu supérieure – sans danger
Æ connaisseur
aussi), un CN/A tel que décrit ci-dessus, pour le PCM1794A – est voulue, pour
expert
et un écran tactile compatible avec le RPi que la valeur maximale de la tension de
(nous avons choisi un modèle Waveshare sortie sans déformation du signal soit
de 3,5 pouces). La partie logicielle inclut de 1 V. On rencontre souvent des spé-
Environ 5 h
Raspbian pour le RPi, Volumio (ou un pro- cifications de 2 V en sortie, mais il nous
gramme équivalent, p. ex. Mood Player), faudrait soit des tensions d’alimentation
et un pilote pour l’écran tactile. plus élevées, soit des amplis op avec une
Raspberry Pi 2 ou 3,
capacité de sortie rail à rail. La plupart ordinateur sous Putty (Win-
Considérations sur des amplis op ayant cette capacité n’ont dows) ou Linux,
deux adaptateurs réseau
l’alimentation principale cependant pas les qualités des amplis op
Le circuit intégré CN/A IC1 (voir le conçus spécifiquement pour l’audio haut
schéma en figure 2) a besoin de deux de gamme.
110 €
alimentations : 3,3 V pour la partie

I/V Stage
DATA
L Autres tensions
Analog Out
LRCK Differential to La tension d’alimentation positive des
RPi3 PCM1794A Single Ended amplis op est fixée à 4,74 V, obtenue à
BCK
/Filter
SCK R partir du 5,2 V via le régulateur linéaire
Analog Out
I/V Stage à très faible bruit IC7, un TPS7A4901. La
valeur de la tension de sortie est fixée
par le diviseur de tension R28/R29 :
PLL
fx6
+5V2 ⎛ R28 ⎞
DAC Vsortie = ⎜ +1⎟ ×1,185V
+3V3 ⎝ R29 ⎠
+7...12VDC Power
Supply
+4V74 I/V Stage
&
- 4V81 Output Filter
La tension de 3,3 V est obtenue via un
copyright régulateur identique, IC9, et le diviseur
de tension R32/R33.
Pour la tension d’alimentation néga-
Figure 1. Schéma de principe du CN/A audio. tive des amplis op, nous avons choisi
un LM27761, un régulateur à décou-
page inverseur à faible bruit. L’inversion
de tension s’effectue par commutation
numérique et 5 V pour la partie analo- Pour l’obtention du 5,2 V, nous avons de condensateurs ; la tension obtenue
gique. Nous pourrions utiliser les tensions choisi le TPS7A4700, un régulateur de est ensuite stabilisée par un régulateur
d’alimentation présentes sur le connec- tension à faible chute : 307 mV pour un linéaire à faible bruit. La valeur de la ten-
teur GPIO du RPi, mais elles sont tel- courant maximal de 1 A. La valeur de la sion est fixée à −4,81 V par le diviseur
lement « polluées » qu’il ne resterait tension de sortie est fixée en reliant cer- de tension R30/R31 :
rien de notre quête du haut de gamme. taines broches à la masse, connectées
Nous avons donc besoin de sources indé- en interne à des résistances ; la tension ⎛ R30 ⎞
Vsortie = − ⎜ +1⎟ ×1,22V
pendantes pour les tensions de 3,3 V régulée minimale est de 1,4 V, égale à ⎝ R31 ⎠
et 5 V ; il est à noter qu’on pourrait alors la valeur de la référence de tension du
alimenter le RPi à partir de la platine circuit. Pour obtenir 5,2 V en sortie, ce Rappelons que ces valeurs inhabituelles
CN/A, mais cela aurait aussi des effets sont les broches 6, 10 et 11 qui sont (±4,5 V est plus courant) ont été calcu-
néfastes sur la qualité finale. L’inconvé- reliées à la masse : lées pour garantir une tension maximale
nient est qu’il faudrait deux connecteurs du signal en sortie, sans déformation,
pour l’alimentation positive, et un troi- de 1 V (0 dB).
sième serait nécessaire pour la tension Vsortie = 1, 4V + 3,2V + 0, 4V + 0,2V = 5,2V L’entrée d’alimentation (via K7) est pro-
négative des amplis op utilisés pour les tégée contre une inversion de polarité par

www.elektormagazine.fr juillet/août 23
+3V3 +3V3 +5V2
L6 IC2, IC3 = LME49720 IC4, IC5 = LME49710

C28 C29 C27 C26 C25 C24 C22 C23


3
IC2A
10n 100n 10u 47n 10u 47n 47n 10u 1 R6
2 IC2.A 560R
VDD 2
SCK = 6 x BCK 9 28 15 R1 R5 R7 C10
JP1 JP2 6
IC6 8
SCK
VDD 360R 1k 360R

VCC2L
VCC2R
S0 CLK/2
7 5 SCK R22 7 26 7.8mA p-p C1 C9 2n2
CLK FBIN 22R SCK IOUTL-
1 4 BCK R23 6 6n8
S1 ICLK 22R BCK 2
DATA R24 5 25 7.8mA p-p C2 6n8 R17
ICS570BILF 22R DATA IOUTL+
6n8 IC4 6
LRCK R25 4 R8 R10 47R K3
GND 22R LRCK 3
3
360R 1k 360R K1 L
+3V3 1 VCOML
22
6 R2 R9 1
C11
IC1 C21 7

560R
R21 IC2.B 2
5 IC2B 2n2
7x 47k
10uF +5V2
23
1 VCC1

2
3
4
5
6
7
8
MONO
+3V3_RPi +5V_RPi 2 C20 C19 3
CHSL PCM1794A IC3A
3 1 R12
DEM
10u 10u IC3.A 560R
10 2
K5 MUTE 21
1 2 11 VCOMR R3 R11 R13 C15
FMT0
3 4 12 360R 1k 360R
FMT1
5 6 14 18 7.8mA p-p C5 C14 2n2
*RST IOUTR-
7 8 13 6n8

AGND3R
AGND3L
ZERO 2

AGND2

AGND1
9 10 17 7.8mA p-p C6 6n8 R18
1
2
3
4
5
6
7
S1 R19 IOUTR+ 6
11 12 BCK DGND IREF 6n8 R14 R16 IC5 47R K4
BCK H 3
K2 R

270R
13 14 8 20 24 27 19 16 360R 1k 360R
L R20
15 16 6 R4 R15 1
LED1 C16

10k
17 18 7
14
13
12
11
10
9
8

560R
IC3.B 2
19 20 no data 5 IC3B 2n2
21 22
23 24
+5V2 +3V3 +3V3
25 26
27 28 8 1
IN OUT
29 30 C53 C52 5 IC9 R32
31 32
EN C50 copyright

180k
33 34 4u7 4u7 7
TPS7A4901
DNC 10n C49 C48
LRCK 35 36 TEST POINT 2
LRCK FB
37 38 6
NR/SS 1.185V R33
4u7 4u7 +4V74L
39 40 DATA C51 L1

100k
DATA NC GND EPAD +4V74L +4V74L
3 4 9 C30
10n

4u7 C3 C12
K7 >5V7 +5V2 +4V74
8 7
3 PMEG6030EP 100n 100n
R26
1 15 1 8 1 IC2 IC4
IN OUT IN OUT 0R +4V74R C4 C13
2 C58 C57 C56 16 20 C54 C41 C40 5 IC7 R28
L2 4 4
D1 IN OUT EN C38
300k

13 3 TPS7A4901 100n 100n


47u 10u 10u EN SENSE 47u 4u7 4u7 7 C31
16V 25V 25V 16V DNC 10n C37 C36
IC10 2 K6
14 FB L5
NR 6 1.185V R29 C35 C34 4u7 -4V81L -4V81L
C55 NR/SS 4u7 4u7
17 C39 0
100k

NC NC GND EPAD
R34 18 100n 100n
1u NC
10n
3 4 9 -4V81L
19 L7 L3
NC
1k

+4V74R +4V74R
TPS7A4700
12 4 -4V81 ACM4520-231-2P-T C32
LED2 0P1V 6P4V2
11 5 R27
0P2V 6P4V1 1 4 C7 C17
10 6 VIN VOUT 0R 4u7
Power 0P4V 3P2V C47 C46 R30
9 8 8 7
0P8V 1P6V 6 IC8 100n 100n
-4V81R IC3 IC5
150k

GND PAD EN
4u7 4u7 7 C8 C18
7 21 C1- C42 L4 4 4
C45 5 –1.22V
VFB
C33 100n 100n
1u 8 LM27761 R31 2u2
3
C1+ CPOUT
4u7
51k

C44 C43
PAD GND -4V81R -4V81R
9 2
4u7 4u7
160198 - 11

Figure 2. Le schéma détaillé du convertisseur CN/A pour le RPi.

la diode Schottky D1, qui n’occasionne cifications I²S originales. Ce signal n’est pourrait croire qu’un signal dont la fré-
que 0,3 V de chute de tension. Le cou- donc pas présent sur le connecteur GPIO, quence d’échantillonnage est de 32 kHz
rant nécessaire dépend de la fréquence et le CN/A doit le produire lui-même. ne peut être reproduit, mais il n’en est
d’échantillonnage, sa valeur est reprise Nous avons pour ce faire ajouté un multi- rien : ça marche très bien.
dans le tableau 2. plicateur à boucle à verrouillage de phase
(PLL), un ICS570BILF (IC6). Ce circuit Un petit souci
Horloge principale intégré dispose d’un tampon sans délai Lors du test de notre CN/A avec des
Pour que la carte CN/A audio fonctionne de propagation, les flancs montants des signaux de 32 ou 24 bits et une fré-
correctement, Raspbian (le système d’ex- signaux d’entrée et de sortie coïncident quence d’échantillonnage entre 32 et
ploitation du RPi) doit être configuré donc parfaitement. 192 kHz, tout fonctionnait parfaitement.
pour un CN/A HiFiBerry. Les signaux I²S Le facteur de multiplication peut être Nous avons cependant rencontré un pro-
(Inter-IC Sound) seront alors disponibles sélectionné entre 0,5 et 32 à l’aide des blème avec des signaux de 16 bits : pas
sur le connecteur d’extension GPIO. Ces entrées à trois états S0 et S1. La plage de signal de sortie ! Pour résumer notre
signaux comprennent un signal d’horloge du signal de sortie va de 10 à 170 MHz. longue investigation : le PCM1794A
continu (SCK) ou horloge bit (BCLK/BCK), Nous avons choisi un facteur de multi- supporte bien les signaux audio de 16
un signal de sélection de mot (WS) ou plication de 6 (S0 et S1 ouvertes), et et 24 bits, mais apparemment pas en
horloge gauche-droite (LRCLK/LRCK), et nous utilisons la sortie CLK 2, qui est mode I²S ; la fiche de caractéristiques
un signal de données série (SD/SDATA). aussi reliée à l’entrée de contre-réaction. n’est pas très claire à ce sujet...
Pour la synchronisation, il faut aussi un Cette configuration offre la plage d’entrée Est-ce que cela signifie que notre lecteur
signal d’horloge principal (master clock), la plus étendue (2,5 à 12,5 MHz) pour n’accepte pas les signaux de 16 bits ?
mais cela n’est pas inclus dans les spé- une plage de sortie de 15 à 75 MHz. On Oui et non... Volumio, du moins la ver-

24 juillet/août 2017 www.elektormagazine.fr


sion 1.55 que nous utilisons, permet la à 200 kHz. Les signaux I²S parviennent de rappel de 47 kΩ ; le changement de
conversion de la fréquence d’échantil- au CN/A via des résistances de 22 Ω configuration en est grandement faci-
lonnage avec trois niveaux de qualité. (R22 à R25), pour éviter les parasites lité. La sortie ZERO (broche 13) com-
Cette possibilité sera sans doute aussi RF : pour une fréquence d’échantillon- mande LED 1, qui indique l’absence de
offerte par la version 2 du programme. nage de 192 kHz, la fréquence d’horloge données audio.
principale est de près de 74 MHz ! Les Pour le découplage des alimentations,
Le convertisseur N/A lignes de sélection matérielles (MONO, nous utilisons des condensateurs à élec-
Le PCM1794A intègre un filtre à suré- CHSL, DEM, MUTE, FMT0, FMT1, RESET) trolyte solide (C19, 23, 25 et 27) ; leur
chantillonnage (×8) et accepte les passent par un interrupteur DIP à résistance série équivalente (ESR) n’est
fréquences d’échantillonnage de 10 7 pôles, et un réseau de 7 résistances que de 40 mΩ à 100 kHz, mais leur cou-

liste des
composants

Figure 3. Le circuit imprimé, côté Figure 4. Le circuit imprimé, côté soudure. En


composants. principe, il ne faut pas monter JP1 et JP2.

www.elektormagazine.fr juillet/août 25
rant de fuite maximal est relativement
élevé, 100 µA. Nous ignorons si ce cou-
rant de fuite peut influencer les réglages
de courant internes du circuit intégré,
nous utilisons donc aussi des conden-
sateurs électrolytiques « ordinaires » :
ESR de 1,06 Ω à 100 kHz, courant de
fuite de 4 µA. On pourra expérimenter
avec divers types de condensateurs, il
y a suffisamment de place sur le circuit
intégré pour cela.

Le filtre de sortie
Les produits de la fréquence d’échantil-
lonnage sont limités par le filtre à suré-
chantillonnage, mais il y a tout de même
des composantes HF présentes en sortie
du CN/A. Pour atténuer ces fréquences,
nous utilisons un filtre de Butterworth
passe-bas du 3e ordre. Les filtres et les
convertisseurs I/V sont imbriqués et bâtis
Figuur 5. Le connecteur GPIO est inséré côté soudure.
autour des amplis op IC2 et IC3. La fré-
quence de coupure est de 64,5 kHz. Une
fréquence de 352,8 kHz, correspondant à
8 fois une fréquence d’échantillonnage de
Tableau 1 : positions de S1 44,1 kHz, est atténuée de plus de 40 dB ;
S1-1 L Désaccentuation 44,1 kHz désactivée pour une fréquence d’échantillonnage de
192 kHz, l’atténuation de l’harmonique 8
S1-2 L Filtre numérique à flanc raide
est supérieure à 80 dB. Le choix de la fré-
S1-3 L Sortie mono
quence de coupure du filtre est toujours
S1-4 L Sortie coupée (mute) un compromis entre une atténuation suf-
S1-5, S1-6 L Mode I2S fisante avec des fréquences d’échantil-
S1-7 H Remise à zéro (reset) désactivée lonnage basses, et la bande passante du
signal audio ; ici, cette bande passante
est tout de même plus de trois fois supé-
rieure au spectre audible.
Les sorties du CN/A sont en courant et
Tableau 2 : courant en fonction de la fréquence d’échantillonnage symétriques, ce qui permettrait l’utilisa-
Fréquence d’échantillonnage Courant (K7) tion d’un filtre externe. Pour notre carte
Pas de données 120 mA audio, les sorties doivent être converties
32 kHz 127,5 mA en tension, et désymétrisées. Les conver-
44,1 kHz 131,7 mA tisseurs I/V sont bâtis autour d’IC2 et
IC3 ; les sorties symétriques d’IC2A/IC2B
48 kHz 133 mA
et IC3A/IC3B sont ensuite désymétrisées
96 kHz 149,5 mA
par IC4 et IC5, qui sont aussi configurés
192 kHz 182,1 mA en filtres passe-bas du 2e ordre. Grâce à
(mesuré avec une alimentation de 8 V, les deux sorties terminées sur 10 kΩ) la combinaison avec les convertisseurs
I/V, nous avons bien finalement des
filtres du 3e ordre (avec une fonction de
transfert de type Butterworth).
Les signaux de sortie sont disponibles
Tableau 3 : distorsion harmonique
sur K1 et K2, via K3 et K4. Les signaux
DHT + bruit
peuvent transiter directement de K3/
Fréquence d’échantillonnage 48 kHz 96 kHz 192 kHz K4 vers K1/K2, ou on peut insérer un
1 kHz B = 22 kHz 0,0008 % 0,0009 % 0,0013 % potentiomètre double comme réglage de
B = 80 kHz 0,0028 % 0,0012 % 0,0014 % volume entre les connecteurs.
7 kHz B = 22 kHz 0,00095 % 0,0011 % 0,0013 % Le circuit intégré CN/A ne permet pas le
réglage du volume. On pourrait utiliser
B = 80 kHz 0,003 % 0,0014 % 0,0016 %
Volumio, mais ce serait au détriment de
DIM
la résolution, et donc de la qualité, ce
50 Hz : 7 kHz = 4:1 0,0014 % 0,002 % 0,0036 %
qui n’est bien entendu pas acceptable.

26 juillet/août 2017 www.elektormagazine.fr


Nous avons conçu un circuit séparé pour JP1 et JP2 sont montés côté soudure ; L’écran tactile de 3,5 pouces de chez
la commande du volume et de la balance ils peuvent en principe rester ouverts Waveshare doit être monté 16 mm
par télécommande. Ce circuit sera décrit (SCK = 6 × BCK). Les connecteurs audio au-dessus du CN/A. Nous avons utilisé
dans le prochain numéro d’Elektor, il est RCA sont de marque Switchcraft ; leurs pour ce faire des entretoises M2,5 de
aussi sur le site du labo [3]. pattes de connexion sont plus rappro- 14 mm avec bout fileté, et des écrous
Un dernier détail : l’alimentation symé- chées que sur des modèles standard, où M2,5 pour la distance additionnelle. Ne
trique des amplis op est filtrée par une l’espacement est de 10 mm. Si vous utili- poussez pas le connecteur de l’écran au
inductance en mode commun et des sez des connecteurs d’une autre marque, maximum vers le bas ! En cas de doute,
filtres LC (un par canal). il est probable qu’il ne soit pas possible il vaut mieux utiliser un connecteur sup-
de les insérer sur le circuit imprimé. plémentaire et monter l’écran un peu
Le circuit imprimé
Nous n’avons besoin que d’une seule ali-
mentation de 7 à 8 V pour la platine, le
RPi ayant sa propre alimentation. Nous
ne recommandons pas d’utiliser une ali-
mentation de 9 à 12 V, bien que ce soit
en théorie possible : la dissipation d’IC10
serait trop importante.
Les figures 3 et 4 montrent les deux
faces du circuit imprimé, dont les dimen-
sions sont identiques à celles du RPi. Les
connecteurs d’alimentation et de sortie
sont d’un même côté du circuit, l’inter-
rupteur DIP S1 de l’autre (là où se trouve
sur le RPi l’antenne Wi-Fi). Le connecteur
GPIO à 40 broches K5 est inséré du côté
soudure (voir photos).
Les pattes de K1 à K4, K6 et K7 côté sou-
dure doivent être coupées le plus possible
à ras du circuit imprimé, pour éviter tout
contact avec les connecteurs réseau et
USB du RPi ; un morceau d’isolant entre
les deux circuits serait même conseillé.
Nous avons utilisé des entretoises M2,5
de 17 mm avec bout fileté pour fixer le
CN/A au RPi. Les îlots de soudure pour
les condensateurs des filtres de sortie
(C1, C2, C6, C9-C11, C14-C16) sont tels
que divers modèles peuvent être utilisés,
p. ex. CMS 0805 ou conventionnels au
pas de 5 mm. Nous recommandons l’uti-
lisation de condensateurs au polystyrène
avec une tolérance de 1%.
La broche 1 des circuits intégrés est
identifiable grâce à une petite bande
blanche ; ce n’est pas facile à voir pour
IC7, à cause de la présence de C38. Le
numéro des résistances et condensateurs
CMS 0805 et 1206 est à l’emplacement
même du composant, il n’y avait pas
assez de place à côté ; les numéros ne
sont donc plus visibles une fois les com-
posants montés. Pour le montage à la
main, avec un pistolet à air chaud ou au
four, il est préférable d’utiliser une copie
agrandie de la photo du circuit imprimé
côté composants, pour faciliter la mise
en (bonne) place des CMS. Une fois les
composants traversants soudés, ce qui
se fait en dernier, il sera très difficile
de dessouder la plupart des CMS 0805 ! Figure 6. Le lecteur audio en réseau complet.

www.elektormagazine.fr juillet/août 27
dans l’e-choppe
Volumio
Volumio est une distribution Linux à code ouvert (open source) gratuite,
ªréf. 160198-1 :
spécifiquement adaptée à la reproduction musicale. Le logiciel tourne sur de
Circuit imprimé vierge
nombreux appareils, dont les mini-ordinateurs comme le Raspberry Pi. Après
installation, l’appareil cible devient un lecteur audio « sans tête » (headless ªréf. 160198-91 :
Module monté avec écran tactile ;
audiophile music player) ; il faut en effet un autre ordinateur, téléphone ou
les connecteurs doivent être soudés
tablette pour le commander. par l’utilisateur
Ceci est possible grâce à l’interface utilisateur de Volumio, une application web
ªréf. 17631 :
qui tourne sur tout appareil disposant d’un navigateur. L’interface est simple et Raspberry Pi 3, modèle B
intuitive ; elle permet la reproduction de fichiers musicaux. Les communications
entre Volumio et l’application web se font via le réseau local.
Les instructions pour l’installation de Volumio se trouvent sur la page du projet au
labo [2]. Nous avons utilisé la version 1.55 ; la version 2, qui date de décembre
2016, ne supporte pas (encore) l’écran tactile utilisé dans ce projet.
La figure 7 vous montre la commande de Volumio via l’écran tactile (à gauche) et plus haut. La distance entre le connec-
un ordinateur (à droite). teur à 26 broches de l’écran et le circuit
imprimé du CN/A est d’environ 2 mm.
Le résultat final est visible en figures 5
et 6.

Mesures
Nous avons bien entendu soumis notre
CN/A audio à toute une batterie de tests.
Les principaux résultats sont repris aux
tableaux 2 et 3. La position des inter-
rupteurs S1, utilisée pour les mesures,
est résumée dans le tableau 1.
Figure 7. Volumio peut être commandé via l’écran tactile (à gauche), ou un ordinateur
(à droite).
Le courant est proportionnel à la fré-
quence d’échantillonnage, voir tableau 2.

Le tableau 3 résume les mesures de


distorsion harmonique totale (DHT), aug-
mentée du bruit, et de distorsion par
intermodulation (DIM).

Sur la page du projet au labo [2],


quelques graphiques obtenus avec un
analyseur Audio Precision sont aussi dis-
ponibles.

(160198 – version française : Jean-Louis Mehren)

Liens
[1] www.ti.com/lit/ds/symlink/pcm1794a.pdf
[2] www.elektormagazine.fr/labs/audio-dac-for-rpi-networked-audio-player-using-volumio
[3] www.elektormagazine.fr/labs/volume-control-160321-for-raspberry-pi-dac-160198

28 juillet/août 2017 www.elektormagazine.fr


trucs et astuces
les lecteurs écrivent aux lecteurs
Encore des solutions futées qui facilitent la vie des électroniciens.

Un appareil-photo numérique en guise


de générateur de mire
Alfred Rosenkränzer (alfred_rosenkraenzer@gmx.de)

Pour mesurer les performances d’une installation de surveil-


lance vidéo, j’avais envie depuis quelque temps d’utiliser un
petit générateur de mire mobile et autonome. Je possède divers
générateurs (hérités de mon ancienne activité de développeur
de techniques vidéo), mais ils ne sont ni petits ni autonomes. Fig. 1. La mire sur mes trois APN.
J’ai donc commencé à réfléchir à ce que je pourrais faire avec
des CPLD, de la RAM et des CN/A.
le signal à l’aide d’un oscilloscope. Si
Et tout à coup, j’ai réalisé que j’avais déjà quelque
toutes les salves de fréquence ont la
chose d’équivalent sous la main (vous aussi, sans
même amplitude, cela veut dire que
doute) : tous ces composants sont déjà rassemblés
la réponse en fréquence est plate et
dans un appareil-photo numérique. Non seulement
la bande passante élevée. Les sal-
il peut afficher les images enregistrées sur son
ves peuvent être affichées sur une
écran, mais il peut les envoyer vers un moniteur
ligne ou bien être « saucissonnées »
externe par un connecteur de sortie. Les anciens
pour apparaître sur une verticale dans
APN n’ont qu’une sortie analogique (souvent un
l’image. On parle alors de multiburst
jack 3,5 mm), les plus récents ont une sortie HDMI.
horizontal ou vertical.
Des images toutes prêtes existent sur l’internet
Comme je ne trouvais pas une telle
par ex. chez Burosch [1]. Mais aucun de mes APN Fig. 2. La mire multiburst concoctée maison.
mire, je l’ai fabriquée moi-même
ne voulait afficher une image qu’il (lui ou un autre
(les lecteurs intéressés peuvent
APN similaire) n’aurait pas prise lui-même. Au bout
m’envoyer un courriel, je leur donnerai volontiers des détails).
d’un moment, j’ai abandonné l’idée de trouver et modifier les
Sur les bords supérieur et inférieur, j’ai ajouté les niveaux max.
métadonnées EXIF du fichier d’une mire. Si un lecteur s’y connaît,
(clair) et min. (sombre) : ils forment des bandes de référence.
j’apprécierais beaucoup qu’il me donne un coup de main.
Le début et la fin de chaque ligne virent au gris pour éviter l’ap-
Pour contourner ce problème, j’ai tout simplement fait une photo parition de suroscillations. Vous pouvez admirer le résultat sur
avec l’APN et j’ai échangé le contenu de la photo à l’aide d’un la figure 2.
éditeur photo spécialisé. Vu le peu de choses à afficher, une réso-
Le convertisseur N/A et le filtre de sortie d’un APN n’ont malheu-
lution de 640 × 480 ou 800 × 600 pixels est suffisante pour la
reusement pas la qualité d’un générateur de mire professionnel.
sortie analogique. La norme vidéo en PAL est de 720 × 576 et
La fréquence d’échantillonnage n’est pas toujours suffisante pour
en NTSC de 720 × 480 pixels.
couvrir la totalité du spectre de 5 MHz. Il faut donc tenir compte
La figure 1 montre la mire que j’ai ainsi enregistrée dans mes trois des limitations de la fréquence maximale du signal et de la qualité
APN. Un signal vidéo de test dit multiburst peut être utilisé pour de l’image. Les fichiers des images que j’ai utilisées sont dispo-
mesurer la réponse en fréquence d’une ligne de transmission (dans nibles au téléchargement sur le site d’Elektor [2]. Si votre APN se
mon cas, long de 80 m). Comme son nom le laisse entendre, il est montre aussi rebelle que les miens, vous pouvez comme exposé
constitué de plusieurs salves qui commencent à basse fréquence ci-dessus échanger le contenu d’une image prise avec l’APN avec
puis atteignent la fréquence de coupure haute du système (env. celui d’une mire avec Photoshop ou un autre logiciel similaire.
5 MHz en PAL et 4,2 MHz en NTSC). Un signal multiburst est éga-
(160426 – version française : Yves Georges)
lement intégré dans la mire normalisée, autrefois diffusée pendant
qu’il n’y avait pas d’émissions TV. À l’autre bout de la ligne de [1] https://goo.gl/WHE0H9
transmission, on observe soit la mire à l’aide d’un moniteur, soit
[2] www.elektormagazine.fr/160426

Vous avez une solution futée pour arranger une bricole… Une façon bien à vous d’utiliser un
composant ou un outil… Vous savez comment résoudre un problème plus facilement ou mieux
qu’avec la solution actuelle… Écrivez-nous – chaque astuce publiée vous rapportera 40 € !

www.elektormagazine.fr juillet/août 29
PROJET DE LECTEUR

BBC micro:bit
pour électroniciens (2)
enregistreur de données et oscilloscope

Burkhard Kainka

Tout microcontrôleur muni d’un


convertisseur A/N et d’une interface pour
PC peut servir de sonde pour un système
d’acquisition de données. Avec la carte BBC
micro:bit s’y rajoutent un petit afficheur à
LED et une interface sans fil. Idéal pour des
applications spéciales dans
un labo d’électronique !

C’est justement en raison de ses


dimensions réduites que la carte
micro:bit est prédestinée aux appli-
cations de métrologie. Qu’elle soit ali-
mentée par câble USB ou pile, qu’elle
communique par Bluetooth ou un pro-
tocole sans fil simplifié, il sera toujours
aisé de la placer à proximité de l’objet
à mesurer.

GND

3V

Input

micro:bit P2

P1 10k

P0

Fig. 1. Entrée de mesure et sortie du signal. Fig. 2. Un signal carré à 10 Hz. Fig. 3. Le signal filtré.

30 juillet/août 2017 www.elektormagazine.fr


Un oscilloscope USB
Listage 1. Mesure rapide avec retransmission directe des données.
La plateforme mbed a fait ses preuves
pour la programmation de la micro:bit. //Voltage Logger/Scope
Les premiers pas ont été expliqués #include "MicroBit.h"
en [1]. Tous les programmes de cet MicroBit uBit;
article sont disponibles en télécharge-
ment au format texte sur la page [2] du int main()
site d’Elektor et doivent être copiés dans {
un projet mbed existant.
uBit.init();
Lors de toute mise en œuvre de la
MicroBitSerial serial(USBTX, USBRX);
micro:bit pour des tâches générales de
uBit.io.P1.setAnalogValue(512);
mesure, on veillera scrupuleusement à
uBit.io.P1.setAnalogPeriodUs(100000);
ne pas dépasser l’étendue de mesure
entre GND et VCC. Dans tous les cas, while (1) {
une résistance de protection de 10 kΩ en if(uBit.buttonA.isPressed()){
série avec l’entrée s’avèrera utile afin de int u = 1000+3300 * uBit.io.P0.getAnalogValue()/ 1023;
limiter le courant en cas de dépassement uBit.serial.printf("%d\r\n", u);
involontaire (fig. 1). Outre l’entrée ana- // uBit.sleep(100);
logique, on dispose aussi d’une sortie de }
signal carré, utile comme signal de test. }
Le programme du listage 1 capture les }
mesures à vitesse maximale sans sau-
vegarde intermédiaire, et les retransmet
immédiatement. Une part significative touche A (if(uBit.buttonA.isPressed() s’avérer utile si l’on souhaite tester des
du temps de cycle provient de la trans- dans le listage 1). En appuyant sur la circuits ou des composants. Grâce au
mission série à 115 200 bauds. Puis le touche A durant la mesure, on obtient filtre passe-bas composé de 4,7 kΩ
déroulement de la mesure sera différent un affichage continu. Dès que la touche et 22 µF, le signal carré est transformé
si celle-ci s’effectue sur un seul chiffre est relâchée, l’affichage se fige pour en en dent de scie comme prévu (fig. 3). La
(3 mV) ou quatre chiffres (3000 mV). permettre une meilleure observation ou plage de mesure du traceur de l’Arduino
C’est pourquoi on préfèrera augmen- une sauvegarde. s’adapte automatiquement aux tensions
ter la tension de mesure de 1000 mV, Le signal de sortie supplémentaire peut mesurées les plus faibles.
ce qui donnera des valeurs de 1000 mV
à 4300 mV qui requièrent toutes le même
temps de traitement. Le programme Listage 2. Sauvegarde rapide suivie de la transmission.
inclut aussi une source de signal, on
//Fast Scope
dispose ainsi directement d’un signal de
test. P1 devient alors une sortie à MLI de #include "MicroBit.h"
fréquence 10 Hz et de période 100 ms. MicroBit uBit;
Il existe de nombreuses possibilités d’ex-
ploitation des mesures. On peut recevoir int main(){
les données à l’aide d’un programme de char d[400];
terminal puis les afficher dans une feuille uBit.init();
de calcul. Une alternative confortable est MicroBitSerial serial(USBTX, USBRX);
le traceur série de l’EDI d’Arduino à par- uBit.io.P1.setAnalogValue(512);
tir de la version 1.6.8. Le logiciel fournit uBit.io.P1.setAnalogPeriodUs(2000);
un affichage continu et ajuste automa-
while (1) {
tiquement la zone d’affichage, de sorte
if(uBit.buttonA.isPressed()){
qu’un changement de gamme est super-
for(int i = 0; i < 400; i++){
flu. Nous avons mesuré un signal carré
symétrique de 10 Hz avec les paramètres d[i] = uBit.io.P0.getAnalogValue()/ 4;
donnés (fig. 2). On dispose ainsi d’un }
axe du temps défini. L’oscillogramme for(int i = 0; i < 50; i++) uBit.serial.printf("%d\r\n", 0);
complet couvre bien entendu un temps for(int i = 0; i < 400; i++){
de mesure de 300 ms. uBit.serial.printf("%d\r\n", d[i]);
Le traceur de l’EDI d’Arduino trace tou- }
jours d’abord de gauche à droite, jusqu’à for(int i = 0; i < 50; i++) uBit.serial.printf("%d\r\n", 255);
ce que l’écran soit rempli. Après quoi }
l’image se décale à gauche, de sorte uBit.sleep(500);
que les données plus anciennes dis-
}
paraissent. Le problème de l’affichage
}
continu ou stationnaire est résolu par la

www.elektormagazine.fr juillet/août 31
ceur représentera alors toujours la pleine
échelle et donnera à l’utilisateur une
vision claire des limites de l’affichage.
La mesure à la figure 4 montre un signal
à 50 Hz avec les parasites typiques que
l’on recueille avec un câble de mesure
non connecté. La mesure dure 30 ms,
car environ 1,5 période sont affichées, ce
qui signifie une fréquence d’échantillon-
nage d’environ 13 kHz avec 400 points de
mesure. Comme la fréquence du signal
MLI a été ajustée à 500 Hz dans ce pro-
Fig. 4. Mesure à fréquence d’échantillonnage Fig. 5. Une dent de scie à 500 Hz. gramme, on peut facilement vérifier
plus élevée. cela avec son propre signal. La figure 5
montre le signal MLI à la sortie d’un
passe-bas de 4,7 kΩ et 100 nF.
Augmentation de la fréquence Mais si l’on souhaite utiliser le traceur,
d’échantillonnage par mise en 500 mesures sont souhaitables. Transmisson sans fil des
cache Cependant il faut savoir que le type int mesures
Si on peut s’affranchir de la durée de la occupe quatre octets dans un système La carte BBC micro:bit est équipée du
transmission série, alors seule la durée à 32 bits. On dispose donc de 400 octets. Bluetooth Low Energy (BLE). On cher-
de la mesure du convertisseur A/N déter- C’est pourquoi nous déclarons char chera en vain une puce spéciale sur la
mine la fréquence d’échantillonnage d[400] qui accaparera 400 octets. Grâce carte, les sections HF sont intégrées au
maximale. On crée donc un tableau de à une division par quatre, les données microcontrôleur. Le circuit nRF51822 de
données, on le remplit avec les mesures, sur dix bits du convertisseur A/N sont Nordic Semiconductor a été développé
et ensuite on le transmet au PC. Mais converties en huit bits, plus économes initialement pour des applications telles
c’est là que commencent les problèmes en place dans la mémoire. que claviers et souris sans fil qui ne néces-
auxquels on n’avait peut-être pas pensé. Désormais seuls 400 octets sont donc sitent pas de longue portée, mais usent
Bien que le contrôleur dispose généreu- sauvegardés et transmis (listage 2). Ne avec parcimonie l’énergie d’une pile. La
sement de RAM, on atteint déjà la limite manquent donc en fait que cent octets micro:bit en tire profit également. On peut
avec un tableau de type int d[100], car pour remplir le traceur. Mais on peut faire alimenter la carte avec une pile de 3 V, et
l’environnement d’exécution (runtime) de de nécessité vertu, et envoyer un en-tête ainsi renoncer au câble USB. Le système
la micro :bit ne laisse plus grand-chose. de zéro octet suivi de 255 octets : le tra- est alors compatible aussi avec des appli-
cations de longue durée avec alimentation
par pile. Les caractéristiques principales
du nRF51822 parlent d’elles-mêmes :

• émetteur-récepteur à  2,4 GHz
• sensibilité de −93 dBm en mode
Bluetooth® Low Energy
• débits de données supportés :
250 kbps, 1 Mbps, 2 Mbps
• puissance d’émission :
−20 à +4 dBm par pas de 4 dB
• puissance d’émission en mode
Whisper : −30 dBm
• réception 13 mA crête, émission
10,5 mA crête (0 dBm)
• réception 9,7 mA crête ; émission
8 mA crête (0 dBm) avec DC/DC
• RSSI (résolution de 1 dB)
• processeur à 32 bits ARM®
Cortex™-M0
• fonctionnement de la mémoire
flash : 275 μA/MHz
• fonctionnement de la RAM :
150 μA/MHz
• Serial Wire Debug (SWD)

La programmation avec mbed permet


Fig. 6. Désactivation de BLE. l’utilisation de Bluetooth, on peut ainsi

32 juillet/août 2017 www.elektormagazine.fr


envoyer des données directement à sa
tablette ou son ordiphone. Cela requiert
néanmoins une pile logicielle assez
grande et le développement d’une appli
appropriée pour l’appareil correspondant.
Mais il possible de faire plus simple.
On peut en effet communiquer avec
l’émetteur-récepteur à 2,4 GHz à un
niveau inférieur et renoncer ainsi au pro-
tocole Bluetooth compliqué. Pour cela,
on dispose de l’aide de MicroBitRadio,
avec des datagrammes simplifiés, c’est-
à-dire des messages courts qui utilisent Fig. 7. Mesures envoyées sans fil. Fig. 8. Mesure du signal de test.
directement l’émetteur-récepteur. Une
carte micro:bit envoie un message court,
celui-ci est reçu par toutes les autres à
sa portée. Pour cela un canal et une puis- programmée en récepteur qui affiche les stack on your micro:bit by compiling the
sance d’émission par défaut ont été défi- données ou les retransmet à un PC par runtime with #define MICROBIT_BLE_
nis, en fait on ne se soucie donc de rien. USB. Pour utiliser MicroBitRadio dans ENABLED 0 in your inc/MicroBitConfig.h
Voilà une des méthodes des plus simples mbed, il faudra en revanche désactiver file. »
pour transmettre des données sans fil, Bluetooth Low Energy. La documentation
et effectuer des mesures flottantes. Une de la BBC micro:bit fournit un avertisse- Il n’est pas facile de trouver le bon
application typique pourrait être l’ECG, ment à ce sujet : endroit parmi les nombreux fichiers de
une mesure flottante affranchie des ron- « It is not currently possible to run the l’environnement d’exécution. L’empla-
flements perturbants. MicroBitRadio component and Bluetooth cement exact est le suivant : micro-
On a simplement besoin de deux cartes Low Energy (BLE) at the same time. If bit\microbit-dal\inc\core\MicroBit-
micro:bit, l’une utilisée en instrument you want to use the MicroBitRadio func- Config.h (voir fig. 6). On trouve dans
de mesure qui émet les données, l’autre tionality, you need to disable the BLE ce fichier une entrée MICROBIT_BLE_

Code source et fichiers Gerber :


où sont-ils ? juillet 2017
Vous êtes nombreux à chercher
les fichiers associés (code, circuit
◊ Innovative City
imprimé…) aux articles publiés 05 au 06/07 – Nice
dans le magazine, dans la série www.innovative-city.com
de livres « 3XX circuits » ou
encore dans les compilations. ◊ Japan Expo Paris - festival des loisirs japonais
Malheureusement, en dépit 06 au 09/07 – Paris
de notre vigilance, vous www.japan-expo-paris.com/fr/
tombez parfois sur des liens
morts. Ceux-ci sont un dommage
collatéral de l’évolution constante des ◊ Maker Faire Nantes
sites d’Elektor et nous vous remercions de nous les 07 au 09/07 – Nantes
signaler. Nous les corrigerons aussitôt. https://fr-fr.facebook.com/MakerFaireNantes/

Le plus sûr chemin pour trouver un fichier lié à un ◊ 20e congrès international de l’IFAC
article publié est de commencer par repérer les six International Federation of Automatic Control
premiers chiffres de la référence mentionnée en
09 au 14/07 – Toulouse
fin d’article dans le magazine. Prenons par ex. le www.ifac2017.org
« Chargeur de batteries à panneaux solaires » publié
en juillet 2008. Sa référence est 080225-I.
Il suffit maintenant de saisir dans votre navigateur ◊ Salon du véhicule électrique et hybride
l’URL suivant : www.elektormagazine.fr/080225 13 au 16/07 - Val d’Isère
www.salon-vehicule-electrique.com
Vous accéderez automatiquement à la page associée à
cet article avec tous les téléchargements disponibles. Un événement oublié ?
Vous organisez une conférence, un salon… ou bien vous participez à un séminaire ou
La rédaction à votre service. tout autre événement qui aurait sa place ici, partagez cette information avec tous
les lecteurs. Envoyez-nous tous les détails à redaction@elektor.fr.

www.elektormagazine.fr juillet/août 33
ENABLED 1 où il faut remplacer le 1 par
Listage 3. Envoi et réception de datagrammes.
un 0. BLE sera alors désactivé à la pro-
chaine compilation et vous pourrez uti- //Radio Data
liser la version simplifiée MicroBitRadio. #include "MicroBit.h"
Le programme du listage 3 envoie MicroBit uBit;
et reçoit des datagrammes avec des
mesures. Émetteur et récepteur peuvent
donc utiliser le même programme pour void onData(MicroBitEvent e)
s’échanger des données. L’émetteur {
exécute une mesure sur P1 et envoie le ManagedString s = uBit.radio.datagram.recv();
résultat en mV. Le récepteur retransmet uBit.serial.send (s);
par USB les données reçues. Pas de chan- uBit.serial.send (" \r\n");
gement côté PC, le traceur série peut être }
utilisé. Un résultat de mesure est donné
à la figure 7. L’émetteur était alimenté int main()
par pile et se trouvait à 3 m du récep- {
teur. La liaison fonctionne jusqu’à 10 m. uBit.init();
Un condensateur électrolytique de 10 µF uBit.messageBus.listen(MICROBIT_ID_RADIO, MICROBIT_RADIO_EVT_
était connecté à l’entrée analogique P1. DATAGRAM, onData);
Celui-ci s’est lentement chargé par la uBit.radio.enable();
résistance de rappel de 10 MΩ de la char output[16];
carte. On observe des différences par while (1) {
rapport aux courbes de charge usuelles, int u = 3300 * uBit.io.P1.getAnalogValue()/ 1023;
car ce condensateur n’a plus été utilisé itoa (u, output);
depuis longtemps. Dans un tel cas, un uBit.radio.datagram.send(output);
faible courant de fuite circule d’abord, qui uBit.sleep(100);
diminue progressivement. Dans la partie }
droite du diagramme, la tension mesurée }
reste encore nettement inférieure à 1 V
et ne croît que lentement. Liens [4] https://lancaster-university.github.
io/microbit-docs/ubit
[1] www.elektormagazine.fr/160273
Mini-oscilloscope
[5] B. Kainka,
avec afficheur à LED [2] www.elektormagazine.fr/160392
BBC micro:bit Tests Tricks Secrets
Un oscilloscope très simple, c’est toujours [3] https://developer.mbed.org/
Code, CreateSpace 2016
mieux que pas d’oscilloscope du tout,
et parfois il est plus important que l’ap-
pareil soit petit, autonome et pratique.
Listage 4. Utilisation de l’affichage à LED.
Les mesures sont affichées sous forme
graphique sur l’afficheur à 5 × 5 LED //LED-Scope
(listage 4). Il est parfaitement exploi- #include "MicroBit.h"
table même si on est l’heureux posses- MicroBit uBit;
seur d’un appareil plus puissant. C’est int main()
incroyable tout ce qu’on peut observer {
avec un tel oscilloscope. int y;
Le mini-oscilloscope utilise à nouveau le uBit.init();
port 1 comme entrée analogique et en
uBit.io.P0.setAnalogValue(512);
plus le port 0 comme sortie MLI. Avec
uBit.io.P0.setAnalogPeriodUs(500);
une période de 500 µs, on obtient un
uBit.display.enable();
signal de sortie de fréquence 2 kHz. Une
connexion directe à l’entrée de mesure MicroBitImage image(5,5);
montre les limites du convertisseur A/N while (1) {
(fig. 8). La période d’échantillonnage est for(int x = 0; x < 5; x++){
clairement trop grande pour afficher les y = 4- (uBit.io.P1.getAnalogValue()/205);
flancs raides du signal MLI. La fréquence image.setPixelValue(x,y,255);
de coupure de notre simple oscilloscope }
est ainsi de l’ordre de 10 kHz. Cela ne uBit.display.print(image);
suffit pas pour un labo HF, mais ça le sera uBit.sleep(500);
pour bon nombre de mesures simples ou image.clear();
d’expériences.
}
(160392 – version française : Xavier Pfaff)
}

34 juillet/août 2017 www.elektormagazine.fr


PROJET DU LABO

simulateur de
murmure de la mer
un doux bruit
pour vous aider à vous endormir

Sunil Malekar et
Clemens Valens (labo d’Elektor)

Lorsque les bras de Morphée vous


repoussent, écouter le bruit des
vagues s’échouant sur la plage peut
vous aider à vous détendre. Avec
ce montage posé sur votre chevet,
le marchand de sable s’arrêtera chez
vous.

info sur le projet


bruit
simulateur
relaxation

Æ débutant
connaisseur
expert

1 h env.

Vous pourriez penser que pour produire favori toutes les huit semaines est notre Fer à souder,
un magazine tel qu’Elektor, il suffit de super-planificatrice multifonctions, petit tournevis,
quelques rédacteurs pour écrire des une héroïne méconnue : Hedwig. Bien lit
articles et d’un ou deux graphistes pour qu’elle ne soit pas une spécialiste de
créer de belles illustrations. Ce n’est l’électronique (« Comment s’appelle
qu’en partie vrai. L’une des principales ce truc bleu ? Un bidule capacitif ? »), 15 € env.
raisons – peut-être la seule – pour Hedwig a un circuit fétiche : le générateur
laquelle vous pouvez lire votre magazine de bruit de la mer. Donc, Hedwig, celui-ci

www.elektormagazine.fr juillet/août 35
R4 +5V
C9
68k 10u

R3 P1
50V
100k C4 R8 R13
R5 P4
D1 D2 500k 2M2

1k2
47u

10k
10 50V
8 6 1M C10 1 IC3
IC2.C R11 2 3 6
9 R6 7 C8 R12 C11
D3 IC2.B 8
1 5
3x 5 R9 1u IC2.A 100k LM386

1M
1N4148 50V
10k

3 10u 2 C13 K2
220u
50V

100k
P2 4 50V
T3 7 47n
R10
R7 R14
500k 100k IC2 = LM324 C12
Speaker

10R
Volume

2k2
P3 P5
OUT
500k BC547C 10k 10u
50V

+5V +5V

+5V
copyright R2 +5V

10k
8
K1
R1 C2 2 +V 7
1 C+ OSC
+5V 68k 4 C5
2 C7 C3 1 IC1 5
D– T1 * T2 10n IC2 FC OUT –5V
3 C1
D+ 11 100u
4 MAX660 6 C6
220u 100n 50V C– LV
4 50V
GND GND
1u
50V 100u
2N3904 3
50V
USB
–5V
140097 - 11
–5V

Figure 1. Les entrailles du simulateur de murmure de la mer.

il faut un oscillateur. Une onde


Caractéristiques plus ou moins sinusoïdale et
• Contrôle indépendant de asymétrique peut donner
l’attaque et de la chute d’une un effet réaliste, mais
enveloppe c’est un peu compliqué,
• Alimenté par un chargeur de surtout à cause de
téléphone l’aspect asymétrique, la
• Montage sans (0) Arduino montée du son n’ayant
pas la même durée
que sa diminution. Un
est pour toi. générateur de triangles
Le son des vagues se brisant sur asymétriques est beaucoup plus
la plage est connu pour détendre facile à construire, voyez la circuiterie
beaucoup de personnes. Aussi relaxant autour de IC2.C et IC2.B, et le résultat
et romantique soit-il, une fois analysé par est plus satisfaisant. Habituellement,
un scientifique, il s’avère n’être que du Le bruit qu’il un tel oscillateur produit une onde
bruit modulé. Peut-être un peu de bruit produit est amplifié symétrique par rapport à 0, mais ce
rose, comme une vague réminiscence par T2. Vous pourrez remarquer que n’est pas ce que nous voulons ici, car
du soleil couchant, mais du bruit tout ce transistor est connecté entre +5 V les moitiés négatives bloqueraient notre
de même. En réalité, en électronique, et −5 V, soit 10 V en tout. Cette « haute modulateur T3, créant des coupures. D1
il est facile de produire du bruit, et tension » est nécessaire pour produire permet d’éviter cela. Ainsi, la sortie de
beaucoup plus difficile de ne pas en créer un bruit adéquat. T1 et T2 sont des IC.2B balaie bien une plage de 0 à 3 V
intempestivement. Une diode polarisée 2N3904, car nous avons remarqué environ.
en inverse peut suffire. qu’ils produisent plus de bruit que les Les potentiomètres P1 et P2 contrôlent
BC547 chers à Elektor, autrefois appelés la pente du signal modulant ; P1 règle
Le circuit TUN. Nous les avons aussi essayés, cela la pente ascendante, P2 la pente
S’il est facile de créer du bruit, créer a fonctionné, mais les résultats sont descendante. Ils déterminent à eux deux
du bruit utilisable demande quelques meilleurs avec les 2N3904. Si vous la fréquence du signal, autrement dit la
efforts. La figure 1 montre le schéma voulez essayer des BC547, retenez qu’ils vitesse des vagues. Plus leur durée totale
du bidule auquel nous sommes arrivés. n’ont pas le même brochage. est faible, plus la fréquence sera haute.
La source de bruit est T1, monté en Maintenant que nous avons du bruit, Leur rapport définit la symétrie du signal.
diode polarisée en inverse, son émetteur il faut le moduler pour simuler le son Le transistor T3 agit en résistance
comme cathode, et sa base en anode. des vagues et du ressac. Pour moduler, commandée en courant, contrôlant le

36 juillet/août 2017 www.elektormagazine.fr


gain de IC.2A ; plus la résistance est Réglage
faible, plus le signal de sortie sera fort. Comme tout instrument de haute dans l’e-choppe
Les potentiomètres P3 et P4 permettent précision, notre simulateur de
ª140097-1
de régler finement l’amplification. murmure de la mer possède quelques circuit imprimé
La sortie de IC.2A arrive par P5, le potentiomètres qu’il convient d’ajuster,
contrôle de volume global, à l’ampli afin d’arriver au meilleur résultat.
de puissance construit autour de IC3. Heureusement, la procédure est simple.
C’est un classique LM386 qui pilote un On commence par mettre P3 au minimum
haut-parleur ou des écouteurs. Son gain (curseur à 0 V). P4 contrôle le bruit de Finalement, la « forme » des vagues
peut être ajusté de 20 à 200 grâce à la fond de la mer virtuelle quand il n’y a doit être ajustée avec P1 et P2. Des
combinaison R13/C9. Sans eux, le gain pas de vagues. Ajustez P4 pour obtenir études et simulations approfondies au
est de 20 ; avec C9 seul entre les broches un beau et doux murmure dans le labo ont montré que la montée de la
1 et 8 (soit R13 = 0 Ω), il est de 200. haut-parleur. vague (P1) est habituellement 5 à 10 fois
Les valeurs du schéma donnent un gain plus courte que sa chute (P2) ; la forme
de 50 environ. Réglez ensuite P3 pour ajouter les d’onde requise est donc plus une dent
vagues. Il contrôle efficacement de scie qu’un triangle. La période de la
Bien qu’une grande partie du circuit soit l’amplitude des vagues – réglez-le vague devrait être de quelques secondes
alimentée en symétrique (±5 V), un simplement à un niveau réaliste. Si le son – ajustez selon vos goûts.
chargeur de téléphone USB 5 V standard semble commencer à écrêter, baissez un (140097 – version française : Guy Matt)
suffit, grâce à IC1, un MAX660 monté peu P4. Rappelez-vous que P3 et P4 sont
en inverseur de tension à capacités interdépendants, cela peut nécessiter une Lien
commutées, et au connecteur USB K1. légère retouche des réglages. [1] www.elektormagazine.fr/140097

liste des composants

www.elektormagazine.fr juillet/août 37
le bus I²C
2e partie : le bus en action
Le bus bifilaire I²C, fort apprécié, est parfait pour les
expérimentations et les applications sur Raspberry Pi
et Arduino.

Josef Möllers

SDA

SCL

S B1 B2 BN P

Raspberry Pi, BeagleBone, Arduino, Genuino, ATmega, PIC, du RPi. En particulier, il faut s’assurer qu’un esclave I2C ne
presque tous les PC : à peu près tout ce qu’on trouve aujourd’hui possède pas de résistances de rappel vers le 5 V. Au besoin,
comme outil de calcul sur la paillasse des labos ou des faiseurs il faut les supprimer, elles n’ont de toute façon aucune raison
est équipé d’un ou plusieurs ports I2C. À l’aide d’un capteur de d’être.
température LM75, nous décrivons ici l’utilisation des interfaces Grâce à un environnement confortable, le RPi se prête bien à
I2C du Raspberry Pi, de l’ATmega et de l’Arduino en mode maître la prise en main de nouveaux esclaves, jusqu’alors inconnus.
et, quand c’est possible, en mode esclave. La figure 1 montre le raccordement au RPi d’un LM75 installé
sur une plaque d’essai.
Raspberry Pi
Le Raspberry Pi dispose de deux bus I2C physiques, mais Mode maître
habituellement un seul est utilisable directement. Les Pour pouvoir utiliser le bus I2C du RPi sous Raspbian, il faut
résistances de rappel vers 3,3 V sont déjà présentes et commencer par charger deux pilotes additionnels. Pour cela,
actives en permanence sur le RPi. Les signaux SDA et SCL on lance raspi-config et on sélectionne dans la rubrique
sont présents sur les broches 3 (SDA) et 5 (SCL) du connecteur Advanced Options la sous-rubrique I2C pour activer l’interface
GPIO, opportunément tout près des 3,3 V (broche 1), 5 V et charger les modules du noyau. Autre méthode, on ajoute
(broche 2) et masse (broche 6). Ces broches appartiennent avec l’éditeur de texte les lignes :
au bus I2C 1. On peut donc installer une mini-carte d’extension
pour un capteur de température ou de position, ou bien une i2c-dev
horloge en temps réel, en occupant un minimum de place. i2c-bcm2708

Attention : il est impératif que la tension sur une broche du au fichier /etc/modules.
RPi ne dépasse pas 3,3 V, lui appliquer 5 V peut conduire
à la destruction du RPi ! C’est pourquoi on doit contrôler Après un réamorçage, les deux pilotes (ainsi que d’autres pilotes
soigneusement tout circuit avant de le connecter aux broches éventuellement nécessaires) sont chargés et les liens vers les

38 juillet/août 2017 www.elektormagazine.fr


périphériques /dev/i2c-<n> existent, ce qu’on peut vérifier
avec les commandes ($...) suivantes :

$ lsmod | fgrep i2c_


i2c_dev XXXX 0
i2c_bcm2708 YYYY 0
$ ls /dev/i2c-*
dev/i2c-1

Les nombres XXXX et YYYY indiquent la taille des modules, les


deux zéros le fait qu’ils ne sont encore utilisés par personne.
Ces commandes fonctionnent aussi en mode non-privilégié.
On installe ensuite le paquet i2c-tools :

sudo apt-get install i2c-tools

qui contient entre autres un détecteur de bus et de modules I2C.


Raspbian contient déjà les pilotes de certains périphériques
I2C, comme l’horloge en temps réel (RTC) RV-8523. Par défaut,
le RPi gère le bus I2C dans le mode standard, à la vitesse
de 100 kbits par seconde.
Pour commencer, on peut, en utilisant l’outil i2cdetect à la Figure 1. Connexion d’un LM75 sur carte d’essai avec un Raspberry Pi.
console, obtenir une vue d’ensemble des esclaves présents
sur le bus I2C numéro 1 et reconnus par le RPi. Le résultat est
celui de la figure 2 si le LM75 répond présent à l’adresse 0x48.
Avec les commandes i2cget , i2cset et i2cdump , on peut ioctl() :
communiquer avec le LM75 sans avoir à programmer soi-même
(0x00 est le numéro du registre et il doit toujours être indiqué) : ioctl(fd, I2C_SLAVE, 0x48);

pi@raspberrypi ~ $ i2cget -y 1 0x48 0x00 w Maintenant, nous pouvons lire et écrire :


0xa010
unsigned char buf[2];
Il faut permuter les deux octets de la réponse (0x10a0). Seuls float T;
les neuf bits de poids fort de la réponse sont significatifs (0x021). buf[0] = 0;
Le LM75 fournit la température par incréments de 0,5 K, on a write(fd, buf, 1); /* write register number 0 */
donc mesuré une température de 16,5 °C. read(fd, buf, 2); /* read temperature register */
Théoriquement, le matériel du RPi peut aussi fonctionner en T = ((buf[0]<< 8) | buf[1]) / 256.0;
mode esclave, mais ce mode n’est pas supporté par le pilote
Linux. Enfin, on termine la session :

Programmation en C et Python close(fd);


Pour la programmation en C, on a besoin de cinq fonctions :
Bien entendu, pour détecter les erreurs, il faut améliorer le
• open() pour l’accès au périphérique (ou port) I2C, traitement des valeurs retournées par les fonctions appelées.
• ioctl() pour la configuration des paramètres de l’esclave Par exemple pour savoir si l’on dispose du droit d’ouvrir /dev/
I2C,
• read()et write() pour l’échange de données avec
l’esclave,
• close() pour terminer la session (fermer l’accès au péri- pi@raspberrypi ~ $ i2cdetect -y 1
phérique I2C). 0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
Pour définir l’argument I2C_SLAVE utilisé ci-dessous, il faut 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
ajouter le fichier linux/i2c-dev.h à la liste des fichiers inclus : 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# include <linux/i2c-dev.h> 40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
On ouvre l’accès au port I C avec open() :
2 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
fd = open(«/dev/i2c-1», O_RDWR);

Ensuite on sélectionne l’adresse de l’esclave par un appel à Figure 2. i2cdetect découvre le LM75 à l’adresse 48.

www.elektormagazine.fr juillet/août 39
w = bus.read_word_data(address, 0)
print format(w, ‘04x’)

Le « 0 » dans l’appel de la méthode read_word_data indique


le numéro du registre interne de l’esclave, ici le registre de
température (le protocole SMBus qui encapsule l’I2C exige
l’envoi préalable d’un numéro de registre). Cela peut poser
problème, par ex. pour la puce d’expansion d’entrées-sorties
PCF8574 qui ne possède pas de registre d’adresses !
La valeur lue pose le même problème que i2cget  : il faut
permuter les deux octets du mot w.
Figure 3. L’ATmega88 en compagnie du capteur sur une carte d’essai.

ATmega
Les microcontrôleurs ATmega d’Atmel disposent d’un contrôleur
i2c-1, s’il existe un esclave à l’adresse 0x48 ou si l’échange I2C intégré qui gère le mode standard (100 kHz) ainsi que
de données a réussi. le mode rapide (400 kHz) et qui peut être utilisé en mode
maître, esclave ou combiné. Les ATmega324PB et ATmega328PB
Pour programmer le bus I2C en Python, il faut avoir installé possèdent même deux bus I2C. Dans les exemples suivants,
le paquet Raspbian python-smbus : j’utilise un ATmega88 enfiché sur la platine d’essai à côté du
capteur de température (fig. 3).
sudo apt-get install python-smbus Ici, le mieux est d’utiliser la bibliothèque i2cmaster de Peter
Fleury [1], mais en notant que cette bibliothèque n’active
On peut alors lire la température mesurée par le LM75 : pas les résistances internes de rappel vers le haut. Il faut
donc fournir ces résistances soi-même. Elles apparaissent en
#! /usr/bin/python haut de la figure 3, au niveau de la ligne d’alimentation 5 V.
import smbus La bibliothèque configure le port I2C dans le mode standard
import time (100 kHz). L’accès au capteur LM75 prend alors la forme du
listage 1.
bus = smbus.SMBus(1) Avec la bibliothèque lcdlibrary du même auteur, on peut
address = 0x48 réaliser un thermomètre numérique rien qu’en ajoutant un
afficheur à cristaux liquides. On peut aussi utiliser une carte
d’interface I2C (qui embarque le plus souvent un PCF8574) ou
Listage 1. Boucle principale de lecture du capteur bien directement un afficheur avec une interface I2C intégrée.
LM75. Le contrôleur I2C intégré de la série ATmega n’est pas seulement
# include <i2cmaster.h> capable de fonctionner en mode maître pour gérer des esclaves,
il peut aussi travailler en mode esclave, sous le contrôle d’un
# define LM75 (0x48 << 1) maître. Il peut être maître pour communiquer avec un LM75,
// see datasheet puis esclave pour être lu par un RPi. Utiliser l’ATmega comme
int esclave peut être intéressant dans le cas où celui-ci acquiert
main(void) des données sur ses broches d’entrées-sorties et les soumet
{ à un prétraitement avant de les faire suivre à un RPi.
unsigned char val[2]; Mais ce mode de fonctionnement est plus complexe et en
interaction plus étroite avec le reste du logiciel. La bibliothèque
i2c_init(); disponible en [2] est un bon point de départ puisqu’elle permet
// initialisation I2C d’utiliser le contrôleur I2C des ATmega en esclave.
Le déroulement décrit ci-dessous suit les états décrits dans les
i2c_start(LM75 | I2C_WRITE); feuilles de caractéristiques d’Atmel. Les tableaux correspondants
// addressing to write se trouvent dans chaque feuille de caractéristiques d’Atmel,
i2c_write(0x00); ainsi qu’au chapitre 22.7 du manuel de l’ATmega48/88/168.
// temperature register Pour une meilleure efficacité, l’exécution du code est pilotée par
i2c_rep_start(LM75 | I2C_READ); interruptions. L’unité de contrôle I2C provoque une interruption
// addressing to read dans les conditions suivantes :
val[0] = i2c_read();
// degrees Celsius • après l’émission d’une START condition ou d’une Repeated
val[1] = i2c_read(); Start condition,
// tenth part bit • après l’émission de l’adresse et du bit de lecture/écriture,
i2c_stop(); • après l’envoi d’un octet de données,
// ready • quand l’ATmega a perdu l’arbitrage (lorsqu’il se produit
for(;;); une collision lors de l’envoi d’une START condition ou de
} l’octet d’adresse ou du bit de lecture/écriture),
• quand l’ATmega a reconnu une STOP condition alors qu’il a

40 juillet/août 2017 www.elektormagazine.fr


été adressé comme esclave La bibliothèque Wire est déjà contenue dans l’Environnement
• quand l’ATmega a reçu un octet de données de Développement Intégré (EDI) ; de même que pour la
• quand l’ATmega a reconnu une START condition ou une bibliothèque i2cmaster de Peter Fleury, il faut commencer
Repeated Start condition alors
qu’il a été adressé (de nouveau)
comme esclave, Listage 2. Routine de traitement d’interruption de la STOP condition. Le
• quand une transaction invalide a code complet et abondamment commenté est à télécharger sur la page du
été détectée sur le bus projet [5].

ISR(TWI_vect)
Comme les quatre premières {
conditions concernent le mode maître, /*
nous ne nous intéresserons ici qu’aux * These variables need to be preserved across interrupts
quatre dernières. */
L’unité de contrôle I 2 C doit être static unsigned char i2c_idx, /* Index into twi_msg[] */
initialisée avec l’adresse d’esclave i2c_tosend; /* Number of bytes to send */
désirée. On peut ensuite l’activer et
commencer le travail : switch (TWSR & 0xf8)
{
TWAR = (I2C_Slave_Addr << 1); ...
TWCR = _BM(TWEA) | _BM(TWEN) | /*
_BM(TWIE); * RECEIVE Code
* See Table 19-4. Status Codes for Slave Receiver Mode
Il n’y a pas lieu de régler la vitesse * [Page 229]
en mode esclave, étant donné qu’elle */
est imposée par le maître. case 0x60:
Si une interruption se présente, il faut /*
en déterminer la raison. Pour cela, on * Own SLA+W has been received; ACK has been returned
lit le registre d’état TWSR et on exploite * TWDR: No TWDR action
les cinq bits de poids fort. * STA=X STO=0 TWINT=1 TWEA=1
Le listage 2 présente une partie de * Data byte will be received and ACK will be returned
la routine de service de l’interruption */
(ISR) pour l’adressage comme TWCR = (TWCR & ~_BM(TWSTO)) | (_BM(TWINT) | _BM(TWEA));
récepteur, comme émetteur, ainsi i2c_idx = 0;
que pour la STOP condition. break;
Les descriptions et les tableaux des …
feuilles de caractéristiques ATmega case 0xA0:
sont très complets, aussi bien pour /*
l’explication des codes d’état que pour * A STOP condition or repeated START condition has been
les réponses requises du programme * received while still addressed as slave
et les actions matérielles qu’elles * TWDR: No action
provoquent. * TWA=0 STO=0 TWINT=1 TWEA=1
* Switched to the not addressed Slave mode;
Arduino * own SLA will be recognized;
Comme beaucoup de cartes Arduino * GCA will be recognized if TWGCE = "1"
sont basées sur des microcontrôleurs */
de la famille ATmega, toutes les TWCR = (TWCR & ~(_BM(TWSTA) | _BM(TWSTO))) | (_BM(TWINT) | _BM(TWEA));
explications ci-dessus restent en break;
principe valables. Toutefois l’Arduino …
bénéficie d’une bibliothèque souvent case 0xA8:
utilisée et très pratique du nom de /* Own SLA+R has been received; ACK has been returned
Wire. * TWDR: Load data byte
Pour l’Arduino, le raccordement */
est aussi simple que pour le RPi /*
(fig. 4). Selon le type (ou le clone) * The address (register number) has been received,
d’Arduino, il faut prendre garde à ce * Start sending payload
que les broches d’un Arduino alimenté */
en 3,3 V ne soient jamais soumises TWDR = 0x42;
à une tension de 5 V. Donc, mesurez break;
d’abord, connectez ensuite et, le cas }
échéant, supprimez les résistances }
de rappel vers le haut de l’esclave !

www.elektormagazine.fr juillet/août 41
par initialiser la bibliothèque, c’est-à-dire le port I2C :

#include <Wire.h>
void setup() {
Wire.begin();
}

L’appel de Wire.begin() active les résistances internes de rappel


vers le haut. Si cela pose problème du fait des valeurs assez
élevées de ces résistances, on peut leur connecter en parallèle
deux résistances de 10 à 20 kΩ. Ou bien, on les désactive
immédiatement et on n’utilise que des résistances externes
d’environ 4,7 kΩ. Pour cela, on ajoute les deux lignes suivantes
immédiatement après l’appel à Wire.begin() :

digitalWrite(SDA, 0);
digitalWrite(SCL, 0);

Remarque : ceci n’est pas officiel et pourrait totalement changer


dans l’avenir. Le mieux est de faire une mesure au multimètre
après l’initialisation.
Figure 4. La connexion à l’Arduino est pratiquement identique à celle au Attention : même si l’on désactive aussitôt les résistances
RPi. internes de rappel, elles ont quand même eu une courte période

Le bus I2C sur PC


Chaque PC possède une interface I2C et, le plus souvent, 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
plusieurs. On rencontre des esclaves I2C dans les afficheurs 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
(DDC [3]) et les barrettes de mémoires (SPD [4]). Même 30: -- -- -- -- -- -- -- 37 -- -- 3a -- -- -- -- --
les capteurs de température peuvent être connectés par 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
I2C. Malheureusement, pratiquement aucun constructeur 50: 50 -- -- -- -- -- -- -- 58 -- -- -- -- -- -- --
ne fournit d’information sur les types de puces utilisées, ni 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
comment accéder aux bus I2C de l’extérieur (à supposer que 70: -- -- -- -- -- -- -- --
ce soit possible et qu’ils ne soient pas enfermés à l’intérieur
de quelques modules). Il n’est toutefois pas toujours très facile de savoir de quel
genre d’esclaves il s’agit. Ici, on a à l’adresse 0x50 la PROM
Si l’on est sous Linux, on peut essayer de charger le module EDID de l’afficheur :
i2c-dev :
root@bounty:~# i2cdump -y 5 0x50
$ sudo modprobe i2c-dev No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
et voir ensuite s’il existe des périphériques 00: 00 ff ff ff ff ff ff 00 1a b3 d4 07 ec 22 02 00 ........?????"?.
i2c dans /dev : 10: 0a 16 01 03 80 34 20 78 2a ef 95 a3 54 4c 9b 26 ?????4 x*???TL?&
20: 0f 50 54 a5 4b 00 81 80 81 00 81 0f 95 00 95 0f ?PT?K.???.???.??
$ ls /dev/i2c* 30: a9 40 b3 00 01 01 28 3c 80 a0 70 b0 23 40 30 20 ?@?.??(<??p?#@0
/dev/i2c-0 /dev/i2c-1 /dev/i2c-2 /
40: 36 00 06 44 21 00 00 1a 00 00 00 fd 00 38 4c 1e 6.?D!..?...?.8L?
dev/i2c-3 /dev/i2c-4 /dev/i2c-5
50: 52 10 00 0a 20 20 20 20 20 20 00 00 00 fc 00 42 R?.? ...?.B
60: 32 34 57 2d 35 20 45 43 4f 0a 20 20 00 00 00 ff 24W-5 ECO? ....
Cela marche aussi en mode non-privilégié.
70: 00 59 56 32 45 31 34 30 30 31 32 0a 20 20 00 8e .YV2E140012? .?
Sous Debian et ses avatars (Raspbian et
Ubuntu), il y a les outils i2c-tools :
Si vous disposez encore d’un port VGA, essayez de connecter
apt-get install i2c-tools un esclave I2C à la broche 12 (SDA) et à la broche 15 (SCL).
Les broches 6 (SCL) et 7 (SDA) d’un connecteur DVI, ainsi
Il arrive qu’un seul des bus soit doté d’esclaves : que les broches 15 (SCL) et 16 (SDA) d’un connecteur
HDMI sont également de bons candidats. Mais ces bus sont
root@bounty:~# i2cdetect -y 5 probablement sous le contrôle total de la carte graphique et
0 1 2 3 4 5 6 7 8 9 a b c d e f de son micrologiciel.
00: -- -- -- -- -- -- -- -- -- -- -- -- --

42 juillet/août 2017 www.elektormagazine.fr


d’activité. Cela peut avoir des conséquences graves pour un Comme la quantité de données à transmettre ou à recevoir est
esclave 3,3 V avec des résistances externes de rappel vers inconnue, ce gestionnaire n’a pas de paramètre. Les données
3,3 V, connecté directement à un Arduino 5 V. Dans ce cas, il doivent toutefois être transmises par un appel à Wire.write() :
faut impérativement intercaler un convertisseur de niveau !
Après l’initialisation, on peut programmer un envoi de données #include <Wire.h>
à un esclave I2C dans la fonction loop(), par ex. l’adresse du void setup() {
registre de température du capteur LM75 : Wire.begin(0x48);
Wire.onRequest(transmit);
void loop() { }
Wire.beginTransmission(0x48); void loop() {
Wire.write(byte(0x00)); while (1) delay(1000);
Wire.endTransmission(); }
void transmit() {
ou bien une lecture de données : uint8_t msg[N];
// production du contenu de msg[]
Wire.requestFrom(0x48, 2); Wire.write(msg, N);
c1 = Wire.read(); }
c2 = Wire.read();
} Ces deux méthodes peuvent être combinées dans un croquis :

Comme on le voit, il faut indiquer à la bibliothèque Wire le #include <Wire.h>


nombre d’octets à recevoir de l’esclave (ici: 2). Avec cet appel, void setup() {
on en lit déjà deux. Ensuite, on peut les acquérir un par un. Wire.begin(0x48);
La bibliothèque Wire peut aussi être utilisée pour le mode Wire.onReceive(receive);
esclave. Là aussi, il faut commencer par l’initialiser. Pour cela, on Wire.onRequest(transmit);
appelle Wire.begin() avec un paramètre représentant l’adresse }
choisie pour l’esclave, ce qui active le mode esclave. De plus,
il faut spécifier une fonction de traitement des événements On peut ainsi reproduire un LM75 précis, utiliser un capteur
exécutée lorsque l’Arduino est adressé comme esclave, par 1-Wire (DS18B20) à la place d’un LM75 ou émuler une horloge
ex. dans le cas où il doit recevoir des données : en temps réel qui reçoit l’heure par DCF77 ou GPS.

#include <Wire.h> Dans la troisième partie


void setup() { La partie suivante de la série présentera quelques composants
Wire.begin(0x48); I2C très appréciés : outre le capteur de température LM75, la
Wire.onReceive(receive); puce d’expansion d’entrées-sorties PCF8574 et l’horloge en
} temps réel RV8523. Cette petite série d’articles se conclura
sur le thème de la recherche et de l’analyse d’erreurs avec
Ici aussi, la méthode Wire.begin() active les résistances de des outils appropriés et à la portée d’un labo d’amateur.
rappel vers le haut, chose plutôt inattendue pour un esclave. (160418 – version française : Helmut Müller)
Il faut donc les désactiver immédiatement, comme ci-dessus.

Avertissement : cela n’empêche pas un Arduino 5 V d’être


Liens
utilisable comme esclave d’un maître 3,3 V, mais une impulsion
à 5 V sur des lignes 3,3 V peut détruire le maître. Si l’on veut [1] http://homepage.hispeed.ch/peterfleury/avr-software.html
connecter un Arduino à un RPi, on doit obligatoirement faire [2] www.mikrocontroller.net/topic/182638
en sorte que la connexion électrique ne s’établisse qu’après [3] https://en.wikipedia.org/wiki/Display_Data_Channel
l’initialisation de l’Arduino.
[4] https://en.wikipedia.org/wiki/Serial_presence_detect
Dès l’arrivée de données, le gestionnaire d’événements receive
spécifié ci-dessus est appelé avec le nombre d’octets à lire en [5] www.elektormagazine.fr/160148
paramètre :

void receive(int n) {
while (n--) {
uint8_t c = Wire.read();
// traitement de c
}
}

Pour l’envoi de données au maître, on appelle, au lieu de


onReceive() , la méthode onRequest() et on lui passe un
gestionnaire d’événements qui met à disposition les données.

www.elektormagazine.fr juillet/août 43
des circuits
vraiment imprimés
imprimante de carte/four à refusion Voltera V-One

Karl-Ludwig Butte (Allemagne)

Figure 1. Vue latérale de la Voltera V-One.

Avant, quand on voulait graver soi-même son circuit imprimé, c’était une débauche de produits chimiques.
Il fallait d’abord transférer le dessin du circuit sur un film transparent puis sur la carte par une technique
photographique : insolation-développement-gravure. Et la gravure du cuivre, toujours chimique, était
synonyme de taches et de mauvaises odeurs. Ça pourrait bien changer : la Voltera V-One imprime les pistes,
applique la pâte à souder et peut même souder les composants selon un procédé par refusion.

Tous ces produits chimiques ont fini par détourner de nom- (Printed Circuit Boards ou PCB), on aurait mieux fait de par-
breux concepteurs de la réalisation des cartes de leurs pro- ler de cartes à circuit gravé (Etched Circuit Boards ou ECB).
totypes. Les manipulations fastidieuses commençaient avec Avec son imprimante V-One, il se pourrait bien que la startup
le typon : il fallait déterminer les durées d’exposition et de canadienne Voltera révolutionne la fabrication des circuits impri-
développement de façon empirique. L’idée était de trouver le més et conduise bien plus d’électroniciens à réaliser eux-mêmes
bon compromis entre l’opacité du noir (pistes de cuivre) et la leurs cartes. Une technique en phase avec le 21e siècle, car la
transparence du reste de la surface. Plus le noir était opaque, V-One ne se contente pas d’imprimer les pistes, elle applique
plus les surfaces censées rester transparentes viraient au gris aussi la pâte à souder et peut souder par refusion les compo-
et le cuivre n’était pas complètement attaqué là où il aurait sants placés manuellement.
dû disparaître. À l’inverse, si les zones transparentes restaient
bien claires, le noir n’était pas assez profond et les pistes fines Le matériel
se trouvaient en partie attaquées. La V-One, c’est une imprimante à plat avec une commande à
Une fois le film réalisé de façon satisfaisante, on pouvait enfin trois axes. Elle trouve sa place sans difficulté sur un bureau
graver la platine. Celle-ci était à son tour insolée, développée (fig. 1). La figure 2 présente la réalisation mécanique : un
puis gravée. Normalement, après élimination de la couche de socle accueillant un pont mobile (axe des Y). Le chariot mobile
résine photosensible et résistante à la gravure, des pistes bien (carriage) du pont comporte un logement pour recevoir trois
brillantes apparaissaient. Au lieu de cartes à circuit imprimé outils différents. Ce chariot parcourt l’axe des X. En outre, les

44 juillet/août 2017 www.elektormagazine.fr


Figure 2. Architecture de la V-One. Figure 3. Outils de la Voltera V-One.

outils peuvent se déplacer verticalement (axe des Z).


Les trois outils (fig. 3) sont un palpeur, une tête pour déposer
l’encre conductrice et une tête pour déposer la pâte à souder.
Les trois outils sont très faciles à échanger, car ils ne sont fixés
au porte-outil qu’au moyen de quatre puissants petits aimants.
La carte à imprimer (FR4) est maintenue sur le plateau à l’aide
d’un système de plaques de serrage. Un système de chauffage
est monté au-dessous du plateau. Il permet non seulement de
fixer l’encre des pistes imprimées, mais également de souder
les CMS par refusion. La V-One ne se contente pas d’impri-
mer vos cartes, elle fait également office de four à refusion !
Comme la V-One dépose aussi la pâte à souder avec précision
sur les pastilles, vous n’avez plus besoin de pochoir (stencil).
Avec une V-One, tout électronicien peut réaliser facilement des
montages CMS de qualité professionnelle.
Les fentes le long desquelles le pont se déplace sur l’axe des Y
sont éclairées du dessous par deux rangées de LED RVB (fig. 4).
Il s’agit non seulement de produire un effet spécial, mais éga-
lement de signaler la température du plateau : rouge veut dire
« ne pas toucher ». La plaque peut atteindre 250 °C : brûlures
garanties. Le bleu indique qu’une phase thermique (séchage
ou refusion) est terminée et que l’on peut retirer la carte.
L’imprimante a une interface USB. Pour se servir de l’impri-
mante sous Windows de Microsoft, il faut à installer le pilote Figure 4. Couleur des LED : quand les fentes de l‘axe des Y diffusent du
que l’on peut télécharger depuis le site de Voltera. rouge, le plateau est à haute température.

Le logiciel
Le logiciel est une solution complète : calibrage - commande -
impression - instructions vidéo. La dernière partie mérite des
louanges : chaque étape de travail est expliquée au moyen
d’une ou plusieurs courtes vidéos et chaque manipulation est
présentée de manière pratique (fig. 5). Ces vidéos s’enchaînent
et vous aident à reproduire chaque manipulation sur votre
machine. Difficile de faire plus simple et plus clair !
Le logiciel est disponible pour Windows 7 (64 bits) de Microsoft
(ou plus récent) et pour OSX (à partir de la version 10.11).
Une version Linux se fait encore attendre. À l’heure actuelle,
les logiciels sont uniquement téléchargeables : le fabricant a
abandonné les antiques médias optiques. À chaque démar-
rage, le logiciel vérifie la disponibilité éventuelle de mises à
jour. Selon le cas, le logiciel ou le microprogramme de l’im-
primante sont mis à jour. Figure 5. Le logiciel V-One comporte de très bons tutoriels en vidéo.

www.elektormagazine.fr juillet/août 45
Figure 6. La V-One en action : pistes conductrices imprimées. Figure 7. Évolution de la température (consigne et mesure) lors du
séchage de l‘encre.

Prise en main de la V-One male de 8 mil. (~0,2 mm). Si ce dessin n’a pas été imprimé
La Voltera V-One accepte uniquement les fichiers Gerber, mais correctement, il est possible de régler le débit d’encre par logi-
la plupart des programmes de dessin de circuits imprimés ciel et après l’avoir effacé, de l’imprimer à nouveau. D’après le
actuels peuvent exporter dans ce format. Voltera a testé les constructeur, l’encre conductrice et la pâte à souder doivent être
versions Gerber produites par Eagle, Altium, Upverter et KiCad. conservées au réfrigérateur et placées à température ambiante
Les projets d’Elektor sont très souvent assortis de fichiers 30 min avant utilisation. J’ai cependant observé qu’en portant
de ce type à télécharger. Pour pouvoir essayer l’imprimante la durée de mise en température à 2 h, j’obtenais des pistes
immédiatement, Voltera livre toutes les pièces nécessaires à plus uniformes et surtout sans interruption. Si le dessin de test
l’impression d’une carte « Hello World », c’est une délicate est correct, vous n’avez plus qu’à l’essuyer à l’aide de papier
attention. Il s’agit de faire clignoter une LED avec l’inusable absorbant et à nettoyer la platine à l’alcool.
timer NE555 en version CMS. Le dessin du circuit est intégré Le spectacle de l’imprimante au travail a toujours quelque
au logiciel et accessible en sélectionnant un lien particulier chose de fascinant (fig. 6). La tête d’impression ne travaille
dans la fenêtre de dialogue « ouvrir fichier ». pas ligne par ligne dans un mouvement de va-et-vient comme
celle d’une imprimante à jet d’encre. Elle travaille comme celle
Première impression d’un traceur XY en imprimant les pistes entières les unes après
Les cartes de résine époxyde renforcée de fibre de verre de type les autres et termine avec les pastilles.
FR4 conviennent parfaitement comme matériau pour les circuits Si à certains endroits l’impression ne paraît pas bonne (il peut
imprimés. Ma V-One a été livrée avec un jeu de dix plaques de y avoir de nombreuses raisons à cela), il est toujours possible
2 × 3" (50 × 76 mm) et 3 × 4" (76 × 102 mm) ainsi qu’une de choisir des parties à répéter depuis l’écran, le cas échéant
carte d’extension pour Arduino Uno ou Mega. La surface maxi- en retouchant l’apport d’encre.
male d’impression est de 5,5 × 4" (138 × 102 mm). Comme
les traces de graisse cutanée peuvent être préjudiciables, je
nettoie toujours les cartes vierges à l’alcool.
Pour commencer, il faut fixer la carte vierge au milieu du plateau Impression et soudage par refusion
à l’aide de plaques de serrage métalliques. Ensuite, le palpeur automatiques
reconnait le rectangle à l’intérieur duquel le circuit doit être
imprimé. Si le rectangle n’est pas centré sur la platine ou en
dehors des limites de celle-ci, on a tout le loisir de corriger le
positionnement sur l’écran. Cela permet également d’imprimer Séchage de l’encre
plusieurs petites platines sur une même plaque d’époxy pour Une fois l’impression terminée, le processus de séchage (ou
les découper ultérieurement. durcissement) de l’encre encore humide peut commencer. Il
Dès que le positionnement est correct, le palpeur analyse la faut rester très attentif pour ne pas effacer des pistes par inad-
hauteur. Les buses d’application de l’encre conductrice et de la vertance tant que l’encre n’est pas fixée. Pour le séchage, les
pâte à souder sont très fines et très fragiles. Elles ne doivent en plaques de serrage sont permutées et la carte retournée (pistes
aucun cas heurter la surface de la carte, mais elles ne doivent vers le bas) prend place dans les évidements des plaques de
pas non plus la survoler de trop haut, sinon la qualité de l’im- serrage. La surface inférieure de la carte est alors maintenue
pression en souffrirait. à une faible distance au-dessus du plateau.
Une fois l’analyse de hauteur terminée, il faut remplacer le Le séchage est lancé par le logiciel et dure de 40 à 50 min.
palpeur par la tête d’impression contenant l’encre conduc- Pendant ce processus, les valeurs et les courbes de la tempé-
trice. Ensuite, un dessin de test est imprimé : deux lignes rature de consigne et de la température instantanée du sys-
sinueuses sont imprimées ainsi que des traits parallèles, séparés tème de chauffage s’affichent sur l’écran (fig. 7). Les fentes
du minimum de 0,8 mm. Ces pistes ont une épaisseur mini- de guidage du pont virent graduellement à un rouge intense.

46 juillet/août 2017 www.elektormagazine.fr


Figure 8. Après le séchage des pistes, le circuit imprimé est poli. Figure 9. La carte soudée par la V-One est prête, il n‘y a plus qu‘à la
tester.

À 250 °C, il est formellement déconseillé de toucher l’impri- (Sn62) fonctionne correctement et la SnBiAg1 encore mieux.
mante, les brûlures seraient sévères. Par précaution, j’ai d’ail- Le fil de soudure est si fin qu’il n’est pas fourré. Le flux de sou-
leurs installé ma V-One sur une double épaisseur de carreaux dure (par ex. ChipQuick SMD 291) doit être déposé avant. J’ai
en céramique. Quand les LED repassent au bleu, le système pu me rendre compte que cela demande un peu de pratique.
de chauffage a refroidi et le séchage est terminé. La carte peut
être retirée sans risque. Résumé
La V-One est livrée avec une éponge synthétique spéciale per- Avec la Voltera V-One, la gravure des circuits imprimés va être
mettant de polir les pistes pour garantir des soudures de qua- reléguée au rang d’antiquité. Une fois que vous l’aurez essayée,
lité. La figure 8 montre un circuit imprimé poli. l’électronicien que vous êtes ne voudra plus s’en passer. En
particulier si vous concevez des cartes, c’est un gros avantage
Dépôt de la pâte à souder de ne plus avoir à attendre des jours, voire des semaines que
Avant de commencer à déposer la pâte à souder, il faut fixer les circuits imprimés des prototypes soient livrés. La capacité
à nouveau la carte sur le plateau ; ensuite on doit indiquer à de soudage par refusion est un plus décisif et le soudage des
l’imprimante la position exacte des deux points de référence. CMS devient une routine. Selon le tarif donné par Voltera,
Cela ne pose pas de problème grâce au palpeur et aux fonc- l’imprimante V-One coûte 2 000 € ce qui est assez cher, les
tions logicielles adéquates. Pour finir, il suffit de remplacer le consommables le sont aussi, mais à mon avis cela vaut vrai-
palpeur par la tête d’application de la pâte à souder et de lan- ment le coup.
cer la procédure. (160384 – version française : Yves Georges)

Mise en place des composants et soudage Lien


À ce jour, le placement des composants reste manuel. De
[1] www.voltera.io
bonnes brucelles sont indispensables. Il faut être très attentif à
ne pas étaler ou essuyer la pâte à souder et à respecter le sens
des composants polarisés (condensateurs chimiques, diodes,
circuits intégrés, etc.). Une fois tous les composants position-
nés, il faut placer la carte au centre du plateau et démarrer le
processus de refusion (fig. 4). Lorsque les LED sont redeve-
nues bleues, la carte est prête et peut être testée (fig. 9). Les
fils de raccordement au connecteur de la pile de 9 V ont été
soudés manuellement : c’est l’objet du paragraphe suivant.

Traitement des composants classiques


Avec la V-One, peut-on utiliser d’autres composants que les
CMS ? Oui : les composants classiques à pattes/fils peuvent être
soudés à la main. Pour cela on utilise les pastilles habituelles À propos de l’auteur
avec trou central. Au lieu de déposer automatiquement la pâte
Karl-Ludwig Butte a étudié l’informatique (branche
à souder, après avoir séché et poli la carte, il faut effectuer à la
économie) à l’école supérieure de Fulda et travaille
main le perçage de la carte et y placer les composants. En ce
actuellement dans l’industrie automobile sur les processus
qui concerne le soudage, l’encre conductrice se comporte diffé-
et les systèmes informatiques. Pendant ses loisirs, il
remment du cuivre. Il faut s’y habituer. Il faut impérativement
conçoit des projets électroniques, et se passionne pour les
une station de soudage régulée pour souder à une tempéra-
ordinateurs et l’histoire de l’informatique.
ture de 190 à 210 °C. La soudure recommandée par Voltera

www.elektormagazine.fr juillet/août 47
PROJET DE LECTEUR

nWatch,
un système de développement au poignet
ou comment fabriquer votre montre intelligente

48 juillet/août 2017 www.elektormagazine.fr


Piotrek Wasilewski (Pologne) Caractéristiques
• ARM Cortex-M4
À l’origine conçue pour tricher à l’école, cette montre est devenue • Bluetooth Low Energy (BLE)
• Gyroscope, accéléromètre et
de plus en plus intelligente. En la faisant évoluer, l’auteur a
magnétomètre
accidentellement appris pas mal de choses en chemin. Gadget à la • Lecture MP3
mode ou plateforme éducative ? Construisez-la et faites-vous une • Boîtier imprimé en 3D
• Fantastique projet didactique
opinion.

L’objet baptisé nWatch présenté ici est fais une deuxième puis une troisième. Je Il est doté d’un cœur ARM Cortex-M4
une montre intelligente que vous pourrez suis mal parti : je veux créer un appa- cadencé à 168 MHz et possède un DSP
utiliser comme carte de développement reil complexe en très peu de temps. Très et une FPU, 1 Mo de mémoire flash, et
pour microcontrôleur. Au début, ce projet mauvaise idée ! Je passe du temps à une myriade de périphériques. Ce µC a
n’était pas censé être une carte de déve- repenser le schéma et refais la carte été choisi pour plusieurs raisons. Tout
loppement, mais simplement une montre pour réduire le nombre de bogues. Après d’abord, il possède suffisamment de
pour m’aider à tricher aux contrôles de environ deux semaines de correction des ports d’E/S et bus pour y relier toutes
connaissances à l’école dans les matières problèmes, je produis la version finale. les autres puces. Une unité matérielle
qui, à mon humble avis, n’étaient pas Moralité : il faut réfléchir à un projet de gestion de la mémoire est présente ;
pertinentes. Le premier prototype n’était avant de se précipiter sur le dessin du elle est utilisée pour commander le LCD
pas très avancé, mais remplissait sa fonc- schéma ou de la carte. Ce projet m’a et la mémoire SRAM externe (IC10). La
tion. J’ai ensuite commencé à penser à la aussi appris à être patient. MMU rend leur commande beaucoup plus
possibilité de développer un système qui
serait utile et me permettrait d’apprendre
quelque chose, c’est ainsi que j’ai eu l’idée
de fabriquer une montre intelligente uti-
lisable comme carte de développement wake up Accellerometer
button RTC clock Gyroscope Bluetooth
pour microcontrôleur. L’exercice s’est
cependant avéré plus difficile que prévu.
Quand j’ai commencé, je n’avais que des SRAM memory

compétences limitées en électronique et


en programmation ; je pensais acquérir LCD panel
les connaissances nécessaires en chemin. DC-DC
backlight Main CPU Lipo
Le but était de fabriquer la montre à partir STM32f407 converter
de composants accessibles aux amateurs
Touch screen voltage
comme moi et trouvables sur l’internet. divider
J’explique ici mon approche du projet et
Touch
j’espère prouver que n’importe qui peut controller
fabriquer un objet similaire à la maison.
MP3 decoder Magnetometer microSD card
Commencez toujours
au commencement
Un beau matin, je me réveille avec l’idée
Figure 1. Aperçu de la structure de la nWatch. Pas facile de tout faire tenir au poignet !
de fabriquer une montre intelligente tac-
tile avec un grand LCD et d’autres fonc-
tions comme la lecture de MP3, carte SD, Le matériel de la nWatch facile qu’avec des broches d’E/S indépen-
etc. Que faire d’une telle idée ? En géné- Un diagramme de la nWatch est visible dantes. Le µC contient une RAM rapide
ral, mieux vaut commencer par écrire ce en figure 1, le schéma correspondant et assez de flash pour mon projet. Tou-
qu’on veut faire, les avantages et incon- en figure 2. Comme vous le voyez, elle tefois, il y a un inconvénient majeur :
vénients des solutions envisagées, les est composée de plusieurs blocs détail- son boîtier est énorme (tout est relatif).
fonctions de l’appareil… En résumé : un lés ci-après. Malheureusement il n’y avait pas d’autre
cahier des charges. Au début, je me dis : solution sans utiliser un boîtier BGA.
« je peux sauter cette étape et simple- Le micro
ment dessiner un schéma et concevoir L’âme de la nWatch est IC1, un µC SRAM externe et carte micro-SD
une carte ». Mais, cette première version STM32f407ZGT6 de la famille « haute Il y a deux mémoires externes à la
comporte tellement d’erreurs que j’en performance » de STMicroelectronics. nWatch : une puce SRAM et une carte SD.

www.elektormagazine.fr juillet/août 49
S1 S1 +3V3 +3V3 +3V3 +3V3 +3V3 +3V3
SW3 SW3
MAIN CPU MAIN CPU
EXTERNALEXTERNAL
SRAM SRAM NOKIA DISPLAY
NOKIA DISPLAY
S2 S2 C7 C16 C7 C16 C19 C20 C19 C20 R19 L3 R19 L3 MEMORY MEMORY
SW1 SW1 11 33 11 33 3 22 3 22
VDD VDD VDD VDD

1k

1k
D0 6 D0 6

VAUX

VAUX
VIO

VIO
100n 100n 100n 100n100n 100n 100n 100n 10uH 10uH D0 D0
A0 1A0 1 7 D0
7 D0
C21 C21 A0 A0 IO0 IO0 D1 18 D1 18
A1 2A1 2 8 D1
8 D1 D1 D1
SWDIO SWDIO A1 A1 IO1 IO1 D2 8 D2 8 12 RST 12 RST
TP7 TP7 A2 3A2 3 9 D2
9 D2 D2 D2 !RESB !RESB

143

143
108
121
131
144
108
121
131
144
100n 100n A2 A2 IO2 IO2
32

30
39
52
62
72
84
95

25

33
32

30
39
52
62
72
84
95

25

33
SDWCLK SDWCLK D3 17 D3 17
17

17
TP6 TP6 A3 4A3 4 10 D3
10 D3 D3 D3
A3 A3 IO3 IO3

PDRON

VDDA
PDRON

VDDA
D4 9 D4
VDD
VDD
VDD

VDD
VDD

NRST
9
VDD
VDD
VDD

VDD
VDD
VDD
VDD
VDD
VDD
VDD

NRST
VREF+

VREF+

TP5 TP5 A4 5A4 5


IC10 IC10 13 D4
13 D4 D4 D4 K4 K4
37 37 6 BATT
6 BATT A4 A4 IO4 IO4 D5 15 D5 15
PA3 PA3 VBAT VBAT A5 18A5 18 14 D5
14 D5 D5 D5
128 128 21 FPC5
21 FPC5 A5 A5 IO5 IO5 D6 10 D6 10 1 1
PG13 PG13 PF9 PF9 A6 19A6 19 15 D6
15 D6 D6 D6 VLED1– VLED1–
129 129 22 FPC6
22 FPC6 A6 A6 IO6 IO6 D7 14 D7 14 23 23
PG14 PG14 PF10 PF10 A7 20A7 20 16 D7
16 D7 D7 D7 VLED2+ VLED2+
SWI SWI 35 35 26 26 A7 A7 IO7 IO7
PA1 PA1 PC0 PC0 A8 21A8 21 29 D8
29 D8 NOKIA LCD6300 NOKIA LCD6300
126 126 28 FPC1
28 FPC1 A8 A8 IO8 IO8 A16 19 A16 19 24 LED+ 24 LED+
PG11 PG11 PC2 PC2 A9 22A9 22 30 D9
30 D9 D/!C D/!C VLED1+ VLED1+
RST RST 36 36 46 BAT_ADC
46 BAT_ADC A9 A9 IO9 IO9 2 LED– 2 LED–
PA2 PA2 PB0 PB0 A10 23A10 23 31 D10
31 D10 VLED2– VLED2–
27 27 47 BACKLIGHT
47 BACKLIGHT A10 A10 IO10 IO10 CSB 11 CSB 11
PC1 PC1 PB1 PB1 A11 24A11 24 32 D11
32 D11 !CSB !CSB
A11 A11 IO11 IO11

GND_UNK0
GND_UNK1

GND_UNK0
GND_UNK1
45
TOUCH_INT TOUCH_INT 45 48 48 WRB 5 WRB 5
PC5 PC5 PB2 PB2 A12 25A12 25 35 D12
35 D12 WRB WRB
44 44 50 50A6 A6 A12 A12 IO12 IO12 RDB 20 RDB 20
R17 PC4
R17 PC4 PF12 PF12 A13 26A13 26 36 D13
36 D13 RDB RDB

GND
GND

GND
GND
MP3-MOSI 43
MP3-MOSI 43 53 53A7 A7 A13 A13 IO13 IO13
0R PA7
0R PA7 PF13 PF13 A14 27A14 27 37 D14
37 D14
SDIO_D0 SDIO_D098 98 54 54A8 A8 A14 A14 IO14 IO14 4 21 7 16 4 21 7 16
PC8 PC8 PF14 PF14 A15 42A15 42 38 D15
38 D15
SDIO_D1 SDIO_D199
PC9
99
PC9
IC1 IC1 PF15
55
PF15
55A9 A9 A15 A15 IO15 IO15
A16 43A16 43
SDIO_D2 111
SDIO_D2 111 56 56A10 A10 A16 A16
PC10 PC10 PG0 PG0 A17 44A17 CY7C1041DV33
44 CY7C1041DV33 17 WRB17 WRB +3V3 +3V3
SDIO_D3 112
SDIO_D3 112 57 57A11 A11 A17 -10ZSXI
A17 -10ZSXI
WE WE
PC11 PC11 PG1 PG1 A18 28A18 28 41 RDB
41 RDB
SDIO_CMD SDIO_CMD116 116 58 58D4 D4 A18 A18 OE OE
PD2 PD2 PE7 PE7 40 UB
40 UB
SDIO_CLK SDIO_CLK113 113 59 59D5 D5 UB UB 6 8 14 6 8 14
PC12 PC12 PE8 PE8 NE3 6NE3 6 39 LB
39 LB
DRDY- DRDY- 76 60 60D6 CE CE LB LB

VCC
76 D6

VCC
VIO

VIO
IN0

IN0
PB15 PB15 PE9 PE9
MP3_ON MP3_ON75 75 70 SDA
70 SDA GND GND GND GND TOUCH_INT 2TOUCH_INT 2 13 13
PB14 PB14 PB11 PB11 INT INT X+ X+ TP8 TP8
IR_LED IR_LED 74 74 79 79D15 D15 12 34 12 34 SCL 4 SCL
IC11
4
IC11 15 15
PB13 PB13 PD10 PD10 SCLK SCLK Y+ Y+ TP9 TP9
MP3-DREQ MP3-DREQ100 100 80 80A16 A16 SDA 5 SDA STMPE811
5 STMPE81116 16
PA8 PA8 PD11 PD11 SDAT SDAT X– X– TP10 TP10
49
DIVIDE_ON DIVIDE_ON 49 81 81A17 A17 3 3QTR QTR 1 1
PF11 PF11 PD12 PD12
LCD +4V1
LCD +4V1 A0/D0 A0/D0 Y– Y– TP11 TP11
SW2 SW2 73 73 82 82A18 A18

DATAIN

DATAIN
D1 D1
PB12 PB12 PD13 PD13 BACKLIGHT BACKLIGHT
STM32f407
STM32f407 SBR1A40S1 SBR1A40S1

GND

GND
SCL2 SCL2 136 136 87 87A12 A12
CONVERTER CONVERTER L2 L2

IN1
IN2

IN3
IN1
IN2

IN3
PB6 PB6 PG2 PG2
137 137 88 88A13 A13 9 11 10 12 9 711 10 12 7
PB7 PB7 PG3 PG3 C17 C1722uH 22uH
LCD_ON LCD_ON34 34 89 89A14 A14 R4 R14
R4 R14 R16 R16
PA0 PA0 PG4 PG4 2 12 1
D7 D7 63 63 90 90A15 A15
PE10 PE10 PG5 PG5 1u VIN1u SW
VIN SW
TOUCH TOUCH

1k

1k

1k
1k

1k

1k
D8 D8 64 64 91 BRTS
91 BRTS 3 3 LED+ LED+
PE11 PE11 PG6 PG6 OVP OVP CONTROLLER CONTROLLER
D9 D9 65 65 93 BLE_EN
93 BLE_EN 4 IC12
4 IC12
PE12 PE12 PG8 PG8 EN EN
D10 D10 66 66 96 BLE_TX
96 BLE_TX AP5724 AP5724 5 5 LED– LED–
PE13 PE13 PC6 PC6 R2 R2 FB FB
D11 D11 67 67 97 BLE_RX
97 BLE_RX R5 R5 +3V3 +3V3
PE14 PE14 PC7 PC7 GND GND C18 C18
10R

10R

D12 D12 68 68 101 VBUS


101 VBUS

10R

10R
PE15 PE15 PA9 PA9 6 6

R27
R28
R29
R30
R35
R36
R27
R28
R29
R30
R35
R36
D0 D0 85 85 102 SD_ON
102 SD_ON 100n
PD14 PD14 PA10 PA10 100n
D1 D1 86 86 103 DM
103 DM
PD15 PD15 PA11 PA11

1k
1k
1k

1k
1k

1k
1k
1k
1k
D14 D14 78 78 104 104DP BACKLIGHT
DP BACKLIGHT
PD9 PD9 PA12 PA12
D13 D13 77 77 105 SWDIO
105 SWDIO
PD8 PD8 PA13 PA13

R9

R9
SDA2 SDA2 140 140 109 SWCLK
109 SWCLK SD CARD SD CARD
PB9 PB9 PA14 PA14 BATT_BLE BATT_BLE
SCL SCL 69 69 110 MP3-DCS
110 MP3-DCS

0R

0R
PB10 PB10 PA15 PA15 Card SocketCard 4 K1Socket 4 K1
FPC2 FPC2 29 29 114 114D2 D2 2 2
PC3 PC3 PD0 PD0 VDD VDD
MP3-SCK MP3-SCK41 41 115 115D3 D3 VCC VCC SDIO_DO SDIO_DO 7 7
PA5 PA5 PD1 PD1 3 3 18 18 DATA_OUT DATA_OUT
1 1 117 CPU_ON
117 CPU_ON P2.2 IC2P2.2 P0.1IC2 P0.1 SDIO_CMD SDIO_CMD 3 3
PE2 PE2 PD3 PD3 4 4 17 BLE_TX17 BLE_TX DATA_IN DATA_IN
2 2 118 RDB
118 RDB P2.1 P0.2(RX)
P2.1 P0.2(RX) SDIO_CLK SDIO_CLK 5 5
PE3 PE3 PD4 PD4 BLE_RST 5
BLE_RST 5 16 BLE_RX 16 BLE_RX SCLK SCLK
3 3 119 WRB
119 WRB RST RSTP0.3(TX) P0.3(TX) SDIO_D3 SDIO_D3 2 2
PE4 PE4 PD5 PD5 6 6 15 BLE_INT15 BLE_INT CS CS
4 4 123 123 P2.0(EN) P0.4(BCTS)
P2.0(EN) P0.4(BCTS) SDIO_D1 SDIO_D1 8 8
PE5 PE5 PD7 PD7 DAT1 DAT1
SW3 SW3 5 5 124 CSB
124 CSB CC2540-BLE CC2540-BLE SDIO_D2 SDIO_D2 1 1
PE6 PE6 PG9 PG9 7 7 14 BRTS14 BRTS DAT2 DAT2
7 7 125 NE3
125 NE3 P1.7 P0.5(BRTS)
P1.7 P0.5(BRTS)
PC13 PC13 PG10 PG10 8 8 13 13 SD & MMC SD & MMC
8 8 127 127 USB+ USB+ P0.6 P0.6 CARD_DETECT CARD_DETECT CD1 CD1
TP14 TP14 PC14 PC14 PG12 PG12 9 9 12 12 CARD_DETECT CARD_DETECT
9 9 132 132 USB– USB– P0.7 P0.7 CD2 CD2
TP15 TP15 PC15 PC15 PG15 PG15 R18 10 R18 10 11 11 CARD_DETECT CARD_DETECT
A0 A0 10 10 133 133 P1.2 P1.2 P1.1 P1.1
PF0 PF0 PB3 PB3 GND VSS GND GND VSS GND
A1 A1 11 11 134 134 GND GND +3V3 +3V3
1k

1k

PF1 PF1 PB4 PB4 MT 6 MT1


MT 6 MT1
A2 A2 12 12 139 139 1 1
PF2 PF2 PB8 PB8
A3 A3 13 13 141 141LB LB
PF3 PF3 PE0 PE0
A4 A4 14 14 142 142UB UB
PF4 PF4 PE1 PE1 2 13 2 13
A5 A5 15
PF5
15
PF5 PA4
40
PA4
MP3-CS
40 BLE_INT_OUTBLE_INT_OUT
MP3-CS BLUETOOTH 4.0
BLUETOOTH 4.0 VDD VDD_IO VDD VDD_IO
18 18 42 MP3-MISO
42 MP3-MISO WITH WITH 4 4 12 12
PF6 PF6 PA6 PA6 T3 T3 S1 S1 SETC SETC
FPC3 FPC3 19 19 135 MP3-RST
135 MP3-RST
INTERRUPTINTERRUPT
TRANSISTOR TRANSISTOR SCL SCL 1 IC7
1 IC7
PF7 PF7 PB5 PB5 R11 R11 SCL SCL C24 C24
FPC4 FPC4 20 20 122 122 BLE_INT DRDY–
BLE_INT 15
DRDY– 15
PF8 PF8 PD6 PD6 4k7 4k7 DRDY– DRDY–
138 138 92 92 R21 R21 SDA SDA16 16 1u
BOOT0 BOOT0 PG7 PG7 LED1 LED1 SDA HMC5883L SDA HMC5883L 1u
BSS84 BSS84
VCAP1

VCAP2
VCAP1

VCAP2

10 10 8 8
VSSA

VSSA

C1 C1 SETP SETP
1k

1k
VSS
VSS
VSS

VSS
VSS
VSS
VSS
VSS

VSS
VSS
VSS
VSS
PH0

PH1
PH0

PH1

TP3 TP3 GND GND GND GND


R20 R20
BATT_BLE BATT_BLE
38
51
61
83
94

23

24

71

31
38
51
61
83
94

23

24

71

31
107
120
130

106
107
120
130

106
16

16

C6 C1 C6 C1 C22 9
C22 11 9 11
TP4 TP4
1k

1k

1u 1u 1u 1u 4u7 4u7 MAGNETOMETER


MAGNETOMETER
OSC2

OSC1
OSC2

OSC1

R24 R24 MCP1703T MCP1703T


1M 1M CHARGINGCHARGING
CIRCUIT CIRCUIT IC4 IC4
3 3 2 BATT_BLE
2 BATT_BLE
3 X2 3 X2 IC3 IC3
USB CONNECTOR
USB CONNECTOR +4V1 +4V1
VBUS VBUS C10 C10 OUT OUTC11 C11 VBUS 4 VBUS 4 3 3
K2 K2 VIN VBAT
VIN VBAT
1 TRI 1 TRI +4V1 +4V1 1 1
1 1
L4 L4 22p 22p 22p 22p
MCP73831 MCP73831
VBUS VBUS DM DM STAT 1 STAT 1 5 5
2 2 STAT PROG
STAT PROG
D– D– 10uH 10uH VSS VSS MCP1703T MCP1703T
3 3 R38 R38 R23 R23
D+ D+ L5 L5DP DP 2 2 C9 C3 C9 C3 IC5 IC5
4 4 CPU CRYSTAL
CPU CRYSTAL 3 3 2 BATT
2 BATT
ID ID
5k6

VDD GND VDD 16 MHz


5k6

GND
1k

1k

10uH 10uH 16 MHz


5 5 1u 10u 1u 10u
GND GND 4 2 4 2 VOLTAGE REGULATORS
VOLTAGE REGULATORS
FOR SLEEPFOR
MODE
SLEEP MODE 1 1
USBAB USBAB

Figure 2. À part quelques résistances et condensateurs, le schéma n’ajoute guère d’information au schéma fonctionnel.

50 juillet/août 2017 www.elektormagazine.fr


La SRAM IC10 n’était pas prévue, mais
V+ V+ elle est nécessaire pour utiliser l’afficheur
MCP1703T-1V8
MCP1703T-1V8
IC13 IC13 de manière confortable ; la RAM interne
SUPPLY 3
SUPPLY 3 2 2

5 7 24 31
5 7 24 31
du processeur était trop petite pour
1 1
CRYSTAL, CRYSTAL, répondre aux besoins en mémoire de la

CVCCO
CVCCO
CVCCO
CVCCO
CVCCO
CVCCO
CVCCO
32 32 15 15 TURN ON TRANSISTOR
TURN ON TRANSISTOR
TEST TEST VCO VCO
AND VOLTAGE
ANDREGULATOR
VOLTAGE REGULATOR bibliothèque graphique STemWin (voir
FOR MP3 DECODER
FOR MP3 DECODER
6 6 33 33
14
IOVCC0
14
IOVCC0 GPIO0
34
GPIO0
34
plus loin). IC10 est utilisée comme tam-
IOVCC1 IOVCC1 GPIO1 GPIO1
SUPPLY SUPPLY
19
IOVCC2
19
IOVCC2 GPIO2
9
GPIO2
9 pon d’écran pour le LCD. Toutes les modi-
38 38 10 10
43
AVCC0
43
AVCC0 GPIO3
36
GPIO3
36 fications de l’écran sont appliquées au
AVCC1 AVCC1 GPIO4 GPIO4
45
AVCC2
45
AVCC2 GPIO5
25
GPIO5
25
tampon stocké dans cette mémoire avant
11 11
GPIO6 GPIO6
MP3-RST MP3-RST 3
RESET
3
RESET GPIO7
12
GPIO7
12 qu’il ne soit transféré dans le tampon de
MP3-CS MP3-CS 23
CS
23 IC14
CS IC14 4 l’afficheur. Nota : cette mémoire n’est
4
MP3-DCS MP3-DCS 13 13 GND0 GND0
DCS DCS 16 16
MP3-SCK MP3-SCK 28
SCLK
28
SCLK
GND1
20
GND1
20
pas aussi rapide que la mémoire interne
MP3-MOSI MP3-MOSI 29 29 GND2 GND2
MP3-MISO MP3-MISO 30
SI
30
SI
GND3
21
GND3
21 du µC ; il faut garder les piles (mémoire
SO SO 22 22
MP3-DREQ MP3-DREQ 8
DREQ
8
DREQ
GND4
35
GND4
35
FreeRTOS, etc.) dans la mémoire interne
GND5 GND5
K3 K3
46 46 37 37 pour que le processeur tourne le plus
LEFT LEFT AGND0 AGND0
39
RIGHT
39
RIGHT AGND1
40
AGND1
40
rapidement possible. La SRAM externe
41 41
VS1053 VS1053
AGND2 AGND2
42
GBUF
42
GBUF AGND3
47
AGND3
47 est reliée au même bus que le LCD et est
R33 R41 R33 R42 R41
1 1
R42 26
RX
26
RX
commandée par le flexible static memory
MIC+/LINE1 MIC+/LINE1 27 27
TX TX controller (FSMC) du µC.
1M

1M

1M
1M

1M

1M

2 2
MIC– MIC– C12 C12
48 48 44 44
C15 C13 C15 C14 C13 LINE2
C14 LINE2 RCAP RCAP
La seconde mémoire externe est la carte
XTALO XTALI
XTALO XTALI 100n 100n
47n 10n 47n 10n 10n 10n 17 18
17 18 SD non volatile K1. La carte SD est facile
R15 R15
SUPPLY SUPPLY
1M 1M à retirer et à relier à un ordinateur ou
T1 T1 +4V1 +4V1 +4V1 +4V1
C5 X1 C5 3 X1 3 C4 C4
R6
0R
R6
0R
un ordiphone pour y charger un fichier
OUT OUT
22p 22p TRI 1 TRI 22p
1 22p
image ou texte ; une conséquence des
R26 R26 +3V3 +3V3
R3 +3V3
R3 +3V3
BSS84 BSS84
0R 0R
débuts de la montre comme outil de
4k7

4k7

+3V3 +3V3 R1 R1
triche. À l’époque, je ne voyais pas com-
16.288 MHz 16.288 MHz
MP3_ON MP3_ON VDD GND VDD GND 0R 0R
ment charger des antisèches autrement
4 2 4 2
qu’en utilisant une carte SD. Cette der-
+3V3 +3V3
nière est reliée par un bus SDIO, bien
BATT BATT plus rapide que le SPI.
VCC VCC
BATT_BLE BATT_BLE R31 R32 R31 R32
VBAT VBAT XI XI
R12 R13 R12 R13 IC9 IC9 X3 X3
L’afficheur
4k7

4k7

WDI
4k7

4k7

WDI
13 8 13
8
C23 C23
4k7

4k7

AF
4k7

4k7

AF
EXTI EXTI XO 32.768 kHz
XO 32.768 kHz
SDA2 24
SDA2
VDD
24
VLOGIC
VDD
20
2n2
VLOGIC
20
2n2 Le ‘n’ de nWatch est dû à l’afficheur, récu-
SDA SDA SDA SDACPOUT CPOUT
SDA SDA R7 R7 SCL2 23
SCL2 23IC8 IC8 péré d’un vieux téléphone Nokia 6300
SCL SCL BATT_BLE BATT_BLE SCL SCL
SCL AB0805 AB0805
SCL NTIRQ 1k
NTIRQ 1k MPU_INT 12
MPU_INT 12 10 10
CLKOUT CLKOUT
R8 R8 1
INT
1
INTREGOUT REGOUT
(fig. 3). Je ne l’ai pas choisi par hasard.
RTC_INT RTC_INT CLKIN CLKOUT
CLKIN C2
CLKOUT C2
FOUT NIRQ2
FOUT 1k
NIRQ2 1k
GND GND
100n
MPU-6050 MPU-6050
100n
Il est pas cher (moins de 5 $), plutôt
6 6 7 7
AUX_DA AUX_CL
AUX_DA AUX_CL
11
FSYNC
11
FSYNCAD0
9
R34
1kAD0
9
R34
1k
facile à commander via son bus parallèle
RTC_INT_OUTRTC_INT_OUT

T2 T2 GND GND à 8 bits, sur un connecteur qui n’est pas


18 18
R10 R10
RTC_INT RTC_INT
ingérable pour un amateur. De plus, il fait
4k7 4k7
RTC CLOCKRTC CLOCK la bonne taille : suffisamment petit pour
BATT_BLE BATT_BLE BSS84 BSS84 WITH WITH GYROSCOPE AND ACCELEROMETER
GYROSCOPE AND ACCELEROMETER
INTERRUPTINTERRUPT
TRANSISTOR
TRANSISTOR une montre et suffisamment grand pour
la commande tactile. La rétro-ingénierie
TP12 TP12 copyright de l’afficheur n’avait pas l’air trop diffi-
BT BT +4V1 +4V1
SMD PAD SMD PAD cile ; j’ai trouvé plein d’articles décri-
vant le protocole de communication sur
VOLTAGE DIVIDER +4V1
VOLTAGE DIVIDER +4V1
l’internet, et j’ai même fini par dégot-
TP13 TP13 R39 R39
Li-Ion Li-Ion ter la feuille de caractéristiques du cir-
1k

1k

SMD PAD SMD PAD DOWN CONVERTER


DOWN CONVERTER
AND CPU ON LINES
AND +3V3
CPU ON LINES +3V3 T4 BSS84T4 BSS84 cuit de commande. Cela m’a certes per-
S3 S3
T5 T5
SW2 SW2 4 4 5 5
VIN VFB/VOUT
VIN VFB/VOUT
L1 L1 R40 R40
IC6 IC6 DIVIDE_ON DIVIDE_ON R22 R22
D5 D5 1k 1k
D2 D2 MCP1603T MCP1603T
MPU_INT MPU_INT 1 1 3 3
3k3

3k3

SHDN LX
SHDN LX
4uH7 4uH7 BSS123 BSS123
GND GND
D3 D3 C8 BAT_ADC
C8 BAT_ADC
RTC_INT_OUTRTC_INT_OUT 4x 4x 2 2
R25 R25
SBR1A40S1SBR1A40S1
D4 D4 1u 1u
BLE_INT_OUTBLE_INT_OUT
4k7

4k7

R37 R37
CPU_ON CPU_ON
1k 1k
160326 - 11 160326 - 11

Figure 3. On peut encore trouver l’afficheur du


Nokia 6300 sur l’internet.

www.elektormagazine.fr juillet/août 51
suadé d’utiliser l’afficheur Nokia pour ma un contrôle fin du panneau tactile. Dif-
montre, mais ça ne m’a pas empêché de férents paramètres sont ajustables pour
réaliser un prototype avec un de ces LCD adapter le panneau tactile à l’afficheur.
TFT populaires à base d’ILI9320. À ce Il possède également quelques fonctions
moment, je me dis que l’afficheur serait matérielles intéressantes comme le suivi
plus rapide si j’utilisais un bus à 16 bits de fenêtre ou la mesure de température.
au lieu d’un bus à 8 bits ; en outre la Il peut déclencher une interruption lors
puce de commande ILI9320 intègre plus d’un contact, informant le µC qu’il peut
de fonctions. Cependant, cette expé- lire les coordonnées : pas besoin de lire
rience, bien qu’intéressante, ne m’a pas les registres périodiquement.
satisfait : le LCD possède des angles de
vue pas terribles et ses couleurs sont Rétroéclairage
plutôt pâles. Mon TFT n’est peut-être L’AP5724 de Diodes Inc., IC12, est un
pas le meilleur, mais cette expérience petit convertisseur-élévateur pour LED
m’a décidé à continuer avec l’afficheur blanches en boîtier DFN à six pastilles Figure 4. Grâce à une puce de décodage dédiée,
Nokia. D’accord, ce n’est pas le plus qui commande la luminosité du LCD. la nWatch peut être utilisée en lecteur MP3.
rapide, mais il l’est suffisamment pour Comme c’est un convertisseur-élévateur,
des interfaces utilisateur simples. N’ou- il a besoin de quelques composants
bliez pas que la manière dont l’image de externes : une inductance de puissance Bluetooth Low Energy (BLE)
l’afficheur est dessinée influence égale- (L2), une diode Schottky (D1) et des Le module Bluetooth (IC2) utilisé dans la
ment beaucoup la vitesse. Dessiner pixel condensateurs (C17 & C18). Il est com- nWatch est basé sur la puce Bluetooth LE
par pixel sera beaucoup plus lent que de mandé par un signal MLI depuis le µC. CC2540 de Texas Instruments, et peut
copier de vastes zones à l’aide du Direct Il est capable de piloter jusqu’à six LED, être utilisé pour échanger des données
Memory Access (DMA). Le LCD est relié bien assez pour l’afficheur Nokia qui n’en avec un ordiphone. Cela permet d’affi-
au connecteur K4. a que deux. La résistance R5 détermine cher des notifications ou de mettre à jour
le courant maximal à travers les LED. l’heure et la date depuis le téléphone.
Ajouter un panneau tactile Ce module est un bon compromis entre
Le panneau tactile est un des objectifs Lecteur MP3 prix et dimensions. La portée dépend
principaux du projet. Toutefois, j’ai eu du Dans les deux premiers prototypes, c’est de nombreux facteurs ; il est possible
mal à trouver un modèle qui remplisse le µC qui se charge de la lecture des de la régler en changeant la valeur des
mon cahier des charges et, même si j’ai fichiers musicaux. Un convertisseur N/A registres gérant la puissance de trans-
réussi, avec le recul, je vois ça comme sert à attaquer les oreillettes. Seuls les mission. La portée est plutôt bonne pour
un problème majeur pour la reproducti- fichiers WAV sont lus et tout — lecture une petite antenne sur circuit imprimé. Le
bilité de la nWatch. des fichiers, décodage des en-têtes, module peut réveiller le µC lorsqu’il reçoit
Le premier panneau testé vient d’un etc. — est fait par le logiciel. Lire des des données ; celles-ci seront transmises
téléphone Nokia C3 de 2010. Il convient fichiers MP3 a l’air sympa, mais, comme au µC par un simple lien sériel.
parfaitement pour un LCD de 2,2” N82, je n’aime pas l’idée de décoder par logi- Un problème avec ce module : il
le grand frère presque totalement com- ciel des fichiers MP3, il faut une autre consomme beaucoup plus de courant
patible du Nokia 6300. Malgré sa tech- solution. C’est comme ça que je découvre lorsqu’il est connecté. Mieux vaut donc
nologie résistive, la sensibilité est plu- le fantastique VS1053 de VLSI Solution le déconnecter après chaque échange
tôt bonne. Malheureusement, il est trop (IC14), capable de décoder et jouer dif- et ne le reconnecter que lorsque c’est
grand pour une montre et ne convient férents formats (Ogg Vorbis, MP3, AAC, nécessaire.
pas à l’afficheur 2” Nokia 6300. Après WMA, FLAC et même les fichiers MIDI).
des heures de recherche sur l’internet, Il suffit de lui envoyer les données par Capteurs
je trouve un panneau tactile convenable SPI. Cette puce fournit également des La nWatch est équipée de trois capteurs
sur Aliexpress. Sa taille est parfaite, mais fonctions pour régler le son (volume et de position, choisis pour leur popularité
sa sensibilité pas vraiment impression- tonalité, etc.) et possède un amplifica- dans les cercles amateurs (beaucoup de
nante ; il faut presser assez fort. C’est teur pour casque intégré. Que demander bibliothèques sur l’internet). Il s’agit d’un
le panneau actuel de la nWatch mais je de plus ? Grâce à IC14, tout ce que le ensemble traditionnel : gyroscope, accé-
n’en suis pas satisfait ; je le remplacerai µC a à faire, c’est d’envoyer périodique- léromètre et magnétomètre.
par un panneau capacitif. ment des paquets de données à la puce Les deux premiers sont combinés dans
Les quatre fils du panneau tactile sont décodeuse. IC8, un MPU6050, puce de suivi de mou-
reliés à TP8 à TP11. Le VS1053 est petit et ne nécessite que vement à six axes d’InvenSense. Elle
quelques condensateurs et résistances communique avec le µC via un bus I2C,
Contrôleur de panneau tactile et un résonateur à quartz. Son cœur est et est dotée d’un régulateur de tension
Pour faire l’interface avec le panneau alimenté en 1,8 V (CVDD), d’où l’ajout du LDO (à faible chute) séparé pour l’ali-
tactile résistif, j’ai opté pour le distin- régulateur de tension IC13. Le transis- menter même lorsque le convertisseur
gué STMPE811 de STMicroelectronics tor T1 commande la mise sous tension DC/DC principal est inactif. Nota : cette
(IC11). Capable de communiquer avec du décodeur pour économiser l’énergie. puce contient un processeur de mouve-
le µC par SPI ou I2C (utilisé ici), il pos- La figure 4 montre l’application de lec- ment numérique programmable (DMP). Il
sède beaucoup de registres et permet ture MP3 de la nWatch. est donc possible de changer son micro-

52 juillet/août 2017 www.elektormagazine.fr


logiciel et lui faire faire des calculs, ce IC6, un MCP1603 de Microchip, est un micro-SD (K1) sur le fond du boîtier, un
qui allège la charge du µC principal. Le régulateur type buck synchrone à haute connecteur micro-USB (K2) et une bar-
micrologiciel est chargé sur le capteur efficacité 500 mA, 2,0 MHz, destiné aux rette à 3 voies (TP5, TP6 & TP7) utili-
juste avant l’initialisation. Cela permet applications alimentés par batterie, sée pour programmer le µC et/ou débo-
au capteur d’offrir des fonctions supplé- parfait pour notre projet. Il se contente guer l’exécution avec un programmateur
mentaires telles que la détection de tapo- d’une inductance (L1) et d’un conden- ST-Link. C’est la manière la plus facile et
tement ou chute libre. Des interruptions sateur (C8) pour fonctionner. la plus rapide de programmer la montre.
peuvent être produites lorsque cela arrive IC4 et IC5, deux régulateurs de tension Le connecteur micro-USB est utilisé
et peuvent réveiller le µC. LDO alimentent les composants toujours pour charger la batterie LiPo et permet
Le magnétomètre à trois axes (IC7) est sous tension (tant que la batterie dure) : d’échanger des données par USB. Lorsque
le populaire HMC5883 de Honeywell, une IC2, IC8 et IC9. IC5 alimente aussi le l’on relie la nWatch à un ordinateur (Win-
petite puce en boîtier QFN qui commu- µC et empêche la perte du contenu dows, Linux ou Mac OS), un périphérique
nique également via un bus I2C, mais pas des registres secourus par la batterie, de stockage de masse est détecté, ce qui
le même qu’IC8, tout simplement pour lorsque le régulateur 3,3 V est éteint. donne accès au contenu de la carte SD.
avoir des pistes courtes et éviter l’ajout de Ces registres se trouvent dans une zone Le port USB permet également de char-
vias superflus ; ils sont difficiles à souder protégée spéciale du µC et leur contenu ger des programmes sur la montre grâce
et prennent de la place. Comme le µC pos- est préservé aussi longtemps que la ten- au chargeur de démarrage intégré. Cette
sède deux ports I2C, j’ai tout simplement sion sur la broche VBAT est suffisam- méthode est toutefois bien plus lente que
relié les capteurs au bus le plus proche. ment élevée. le programmateur externe. Pour program-
IC4 alimente le module BLE afin qu’il mer l’exécutable (HEX ou BIN) par USB, il
Horloge en temps réel n’interfère pas trop avec le reste du faut d’abord convertir le fichier au format
Supposons que vous programmiez une circuit. spécial DFU (device firmware update). Il
alarme pour vous rappeler d’un évène- Comme déjà dit, le régulateur de tension n’est pas possible de déboguer via le bus
ment. Si cet évènement est trop loin dans LDO IC13 fournit le 1,8 V nécessaire au USB ; considérez l’USB comme une fonc-
le futur et que la montre est laissée sous cœur du décodeur MP3 (IC14). tion supplémentaire plutôt que le principal
tension, sa batterie sera à plat avant R22 et R25 forment un diviseur de ten- port pour le développement.
l’évènement. Remède : une horloge en sion permettant au µC de mesurer la
temps réel à faible consommation (RTC) tension de batterie. T4 et T5 permettent Le circuit imprimé
dotée d’une fonction alarme. Il suffit de de déconnecter ce diviseur pour écono- Le contour du circuit imprimé est adapté
programmer l’alarme de la RTC avant de miser l’énergie. au boîtier imprimé et au connecteur jack
mettre la montre hors tension. Quand la de 3,5 mm. Pour que la montre soit la
RTC atteint la date et l’heure de l’évène- Batterie LiPo avec chargeur plus fine possible, j’ai monté le connec-
ment, elle commande la mise sous ten- La nWatch est alimentée par une batte- teur « dans » la carte plutôt que sur
sion du régulateur IC6 (via le transistor rie LiPo 150 mAh. Sa capacité, qui paraît celle-ci. Cela permet de réduire l’épais-
T2) et la montre est allumée. faible, permet toutefois de maintenir la seur de l’ensemble.
Une bonne RTC est l’AB0805 d’Abracom montre en veille pendant plus d’une Même si la carte comporte des pistes
(IC9). Elle possède une interface I2C et semaine. Si vous ne regardez l’heure étroites (≥6 mil), vous pourrez quand
ne consomme qu’environ 50 nA, bien que de temps en temps, une charge de même la fabriquer vous-même avec le
moins que ce qu’il est possible d’at- batterie durera au moins cinq jours. La procédé photosensible. Mais, fabriquer la
teindre avec le µC en sommeil profond. batterie est équipée d’un circuit de pro- carte à la maison n’attirera sans doute
tection qui la protège des courts-circuits que les purs et durs : il y a 200 vias à
Alimentation et décharges profondes. Lorsqu’elle est souder et ce n’est pas une mince affaire.
La nWatch se porte au poignet et doit complètement déchargée, ce circuit la Le µC dans son gros boîtier LQFP
donc consommer le moins possible. Per- déconnecte du reste du circuit jusqu’à ce à 144 broches prend beaucoup de place
mettre à l’alimentation en 3,3 V d’être qu’un chargeur lui soit relié. Lorsqu’une sur la carte qui est du coup très dense ;
coupée est donc crucial. Pour ce faire, telle déconnexion se produit, toute la je ne pense pas que j’aurais pu la faire
j’ai utilisé un régulateur de tension (IC6) mémoire est effacée, même la date et plus petite. J’ai bien pensé à un moment
doté d’une broche d’activation (SHDN) l’heure de la RTC. Pour que la restaura- à passer sur une carte à 4 ou 6 couches
qui commande sa sortie. La montre peut tion des données soit facile, j’ai écrit une et utiliser des puces en boîtier BGA,
être (re)mise sous tension de quatre petite appli pour mon ordiphone (voir mais je n’ai pas poussé l’idée plus loin :
façons. Le moyen le plus évident et le plus loin). je voulais que la nWatch soit une carte
plus facile à mettre en œuvre est l’ac- La charge de la batterie est contrôlée de développement à faible coût pour
tion sur le poussoir S3. Lorsque le pous- par une puce de charge pour une cel- amateurs, pas seulement un prototype
soir est actionné, une tension positive lule, le MCP73831 (IC3) de Microchip, qui onéreux. Des composants plus petits
est appliquée à la broche SHDN via D5 gère automatiquement le processus de auraient rendu l’assemblage de la carte
et le régulateur démarre, alimentant charge. Il ne lui faut qu’une résistance significativement plus difficile et l’uti-
le reste du circuit. D2, D3 et D4 rem- pour régler le courant de charge. lisation de boîtiers BGA aurait requis
plissent la même fonction que D5, mais des outils spécialisés. Je me suis donc
pour l’ensemble gyroscope et accéléro- Connecteurs contenté d’une carte double face.
mètre (IC8), la RTC (IC9) et le module La nWatch possède trois connecteurs Le placement des composants sur la
BLE (IC2) respectivement. principaux : une fente pour carte carte est crucial lorsque l’on conçoit

www.elektormagazine.fr juillet/août 53
Figure 5. Pour réduire l’épaisseur de l’ensemble, la Figure 6. Rendu en 3D du boîtier de la montre.
batterie LiPo est placée au-dessus de la puce SRAM.

une montre : chaque millimètre compte. de solution miracle : mesurez avec pré- L’apparence du boîtier est meilleure
Essayez de placer les composants avec cision toutes les dimensions, réalisez un lorsque celui-ci est imprimé avec une
des hauteurs semblables du même côté premier prototype qui ne conviendra pas, faible épaisseur de couche, le pas ver-
de la carte : le composant le plus haut ajustez, et répétez ce processus trois ou tical sera aussi petit que possible. Avec
de chaque côté déterminera la hauteur quatre fois. un pas de 0,2 mm sur l’axe Z, le résul-
totale de la carte. La batterie LiPo est Les montres ne sont pas vraiment des tat est satisfaisant. Mon imprimante 3D
aussi un composant à problèmes. Le objets faciles à concevoir ; elles sont Prusa Mendel Iteration 2 (I2) 3D pos-
mieux, si vous pouvez, c’est de la placer petites et fines. Commencez par dessiner sède une résolution et une stabilité suffi-
dans une encoche fraisée dans la carte. une forme approximative, tout en gar- santes pour créer un boîtier sympa, donc
Lorsque ce n’est pas possible, essayez dant à l’esprit les dimensions de la carte, la plupart des imprimantes 3D devraient
de ne placer que des composants très de la batterie LiPo et du LCD avec pan- convenir ; les composants sont plutôt
plats (résistances, etc.) sur une zone de neau tactile. Ensuite, mesurez, essayez, faciles à imprimer.
la carte. Dans mon cas, je n’ai pas pu jurez sans doute un peu et itérez jusqu’à
éviter de placer la mémoire SRAM sous ce que tout tienne. Construisez votre nWatch
la batterie (fig. 5). Elle ne fait que 1 mm Les composants de la nWatch sont conçus 1. Rassemblez tous les composants
d’épaisseur et c’était le meilleur com- avec Solid Edge (fig. 6). Je voulais une Commencez par rassembler tous les
promis. D’autres composants, comme montre étanche aux projections d’eau, composants, surtout ceux qui sont diffi-
le connecteur jack de 3,5 mm ou l’em- mais c’est trop difficile : les connecteurs ciles à trouver. Vous saurez vite à quoi
base USB, peuvent être montés dans des posent problème, surtout la fente pour vous en tenir. Exception faite du pan-
encoches faites dans la carte. Cela réduit carte SD. J’ai créé un boîtier en deux par- neau tactile, sans doute le plus difficile
aussi l’épaisseur totale. ties, fixées par quatre vis. C’est une bonne à trouver, il y a quelques composants qui
solution, car une fois les vis retirées, l’ac- poseront problème, le connecteur jack
Composants imprimés en 3D cès à la carte principale, la batterie LiPo de 3,5 mm avec broches au milieu est un
L’impression 3D est facile ; ce qui est et le LCD avec panneau tactile est facile. bon exemple. Le mien vient d’une vieille
difficile c’est de créer le modèle. Non Le boîtier de la montre possède deux tablette dont la référence m’échappe ;
seulement l’esthétique doit être agréable fentes rectangulaires pour les boutons. je n’ai pas trouvé de modèle semblable
à l’œil, surtout lorsqu’il s’agit d’une Le bouton de réveil est le plus gros, afin sur l’internet. Ceux que j’ai trouvés ont
montre, mais le circuit imprimé et tous qu’il soit facile à actionner ; il se trouve soit une empreinte un peu différente soit
ses composants doivent aussi tenir dans au-dessus de la jonction avec le bracelet. un boîtier plastique incompatible ou bien
le boîtier. Malheureusement, il n’y a pas Les boutons ont également été imprimés. les deux. Vous pouvez ajuster l’encoche

Figure 7. Plusieurs itérations ont été nécessaires avant d’arriver à la version finale de la nWatch.

54 juillet/août 2017 www.elektormagazine.fr


dans le circuit imprimé avec une petite
lime ou bien relier le connecteur aux pas-
tilles avec des fils.
Les poussoirs sont moins problématiques,
mais pourraient être difficiles à trouver.
Je n’ai pas leur référence exacte, juste
leurs dimensions. La meilleure méthode
est sans doute de comparer les dimen-
sions et l’apparence.

2. Assemblez le circuit imprimé


Une fois tous les composants rassem-
blés et le circuit imprimé sur votre
bureau, passez à l’assemblage de la
carte (fig. 7). La soudure de la plupart
des composants ne sera pas trop difficile
pour peu que vous utilisiez un petit fer.
Les plus petits composants sont les résis-
tances et condensateurs en boîtier 0402 ;
il faut un peu de pratique. Une station à
Figure 8. Prototype assemblé avec l’afficheur et le panneau tactile en place.
air chaud est plus ou moins nécessaire
pour monter les quartz CMS et les puces
en boîtier QFN (sans ça vous ne pourrez
pas atteindre les pastilles sous le boîtier). Après le raccordement à la carte princi- le bouton de réveil dans sa fente et cou-
Aucune raison d’avoir peur d’un premier pale, mettez le connecteur LCD en place vrez l’ensemble avec la partie supérieure
contact avec les QFN toutefois. Si vous et placez l’afficheur de l’autre côté de la du boîtier. Insérez et serrez les quatre
préparez les choses correctement, vous carte, par-dessus la batterie. vis et voilà !
n’aurez qu’à positionner la puce approxi- N’importe quel bracelet de taille standard
mativement et appliquez l’air chaud ; elle L’assemblage du boîtier est vraiment convient, mais n’oubliez pas qu’il faut
s’alignera d’elle-même. Faites attention simple (fig. 9). Préparez les surfaces aussi deux barres de fixation à ressorts.
à ne pas chauffer trop longtemps : le où les deux moitiés se rencontrent avec
composant pourrait cramer. Tout le reste du papier de verre. Vous n’obtiendrez Le logiciel
n’est que classique soudure de CMS. Véri- pas un bon ajustement sans ça. Pen- Le logiciel est une partie essentielle de
fiez que toutes les broches des puces sez aussi à nettoyer les ouvertures au toute carte de développement ; c’est vrai
les plus grosses (µC, VS1053, etc.) sont fond du boîtier et les fixations pour le aussi pour une montre intelligente. Tout
soudées correctement. Parfois, elles ont bracelet : elles seront sans doute obs- en développant différentes versions du
l’air soudées alors qu’elles se trouvent truées par du filament sur la pièce brute matériel, j’ai aussi écrit du code pour
juste un peu au-dessus de la surface de d’impression. Insérez ensuite le bouton commander la montre et adapté beau-
la carte, mais sans toucher la pastille. latéral suivi de la carte (n’oubliez pas de coup de bibliothèques pour qu’elles fonc-
d’abord retirer la carte micro-SD). Placez tionnent avec la montre.
3. Assemblage final
Une fois la carte assemblée, vérifiez
qu’elle ne comporte pas de courts-circuits.
Lorsque vous êtes sûr de vos soudures,
reliez la batterie et collez-la à la carte
au-dessus d’IC10, la puce SRAM.
Mon panneau tactile est livré avec du
ruban adhésif sur ses bords ; je retire le
film de protection et je le colle sur le LCD.
Attention à son raccordement à la carte.
Les panneaux n’ont pas tous le même
brochage ; il faut jouer aux devinettes
pour trouver l’ordre des quatre broches.
Dans mon cas, j’ai dû croiser deux fils.
Par chance, vous ne ferez pas de dégâts
si vous ne le raccordez pas correctement ;
n’hésitez pas à tester autant de combinai-
sons que nécessaire. Si les coordonnées
sont inversées ou que les actions ne sont
pas détectées, permutez simplement les
fils jusqu’à ce que tout fonctionne (fig. 8). Figure 9. Pour l’assemblage final, empilez les composants comme ceci.

www.elektormagazine.fr juillet/août 55
liste des composants

150% de la taille réelle

56 juillet/août 2017 www.elektormagazine.fr


Interface utilisateur avec STemWin cule, optimisée pour les sys-
Une des bibliothèques les plus impor- tèmes embarqués, a été créée
tantes pour la nWatch est STemWin. Il par ChaN, un développeur
s’agit de la bibliothèque graphique qui japonais bien connu pour ses
commande le LCD et dessine tous les bibliothèques populaires FatFS
éléments de l’interface utilisateur. Basée et petit FatFs si utiles avec les
sur l’emWin de Segger, elle est supportée cartes SD dans les systèmes
par STM (le fabricant du µC) et il est donc embarqués. Comme TJpegDec
facile de l’adapter pour n’importe quel µC a été conçue pour les petits
à base de STM32. Vous trouverez beau- systèmes à µC, elle consomme
coup d’exemples différents ainsi qu’une moins de mémoire que libjpeg.
documentation complète sur l’internet. Elle est suffisamment rapide
Les éléments tels que les boutons et zones pour afficher une galerie
de saisie de texte visibles sur les pro- photo, mais vous ne pourrez pas vrai- tion ; je n’ai
grammes d’exemples vous rappelleront ment jouer de la vidéo. aucune expérience avec ça et je vous
l’ancien look Windows. Mais, et bien heu- laisserai donc vous débrouiller.
reusement, toute cette partie de l’inter- Bibliothèques
face est personnalisable. La bibliothèque de gestion du matériel ST Environnement
est fournie avec plusieurs utilitaires qui Les bibliothèques bas niveau STM, bien de développement intégré
vous aideront à créer une interface à votre que très complètes, ont mauvaise répu- Au départ, le logiciel de la nWatch a été
goût. GUIBuilder est, à mon avis, le plus tation. Certains utilisateurs pensent écrit dans l’environnement de dévelop-
utile de tous les outils. Il permet de conce- qu’elles sont lentes et que la program- pement intégré (EDI) CoIDE de CooCox.
voir un écran et produire automatique- mation directe du matériel est une meil- J’ai choisi cet EDI parce que je ne vou-
ment le code à ajouter à votre projet. leure approche, d’autres n’utilisent que lais pas de limite sur la taille du code et
Sans aucun doute, cet outil intuitif vous la bibliothèque pour périphériques stan- une interface ressemblant à Eclipse. Je
fera économiser du temps. dards. Il n’y a jamais eu de consensus. n’ai pas eu à me plaindre de cet EDI,
Personnellement, je n’ai pas de pro- mais il semble avoir été un peu oublié
Multitâche avec FreeRTOS blèmes avec ces bibliothèques, même par ses créateurs. La dernière version
Ce système d’exploitation en temps réel s’il y a des fois où je dois configurer un publiée comporte des bogues et j’ai dû
(RTOS) libre, bien connu des amateurs registre matériel moi-même, par ex. dans me contenter de celle d’avant. J’ai fini
et professionnels, commande la montre. le cas d’une fonction appelée périodique- par utiliser TrueSTUDIO d’Attolic qui avait
Grâce à sa prise en charge du multitâche, ment et qui doit s’exécuter rapidement l’air mieux maintenu. Vous pouvez choi-
plusieurs applications pourront tourner (comme un transfert DMA). Si vous utili- sir un autre environnement, même un
simultanément. Il permet d’attribuer des sez la dernière version de la bibliothèque Eclipse de base avec chaîne de compi-
priorités aux tâches, de suspendre leur d’abstraction matérielle de STM (HAL), il lation ; toutefois certains environne-
exécution, de leur attribuer une durée faut adapter mon code pour y inclure les ments limitent la taille du code ou bien
d’exécution et bien plus. Je ne vais pas fichiers d’en-tête nécessaires, etc. Cer- ne sont disponibles qu’en version d’essai.
tout détailler ici ; il est très bien docu- tains ont commencé à utiliser le géné- Configurer vous-même et complètement
menté sur l’internet. rateur de code d’initialisation STM32Cu- Eclipse pour la nWatch vous donnera la
beMX pour créer des fonctions d’abstrac- migraine et vous découragera.
Jouer des animations avec libjpeg
Une autre bibliothèque classique que
j’ai utilisée est libjpeg, pour décoder À propos de l’auteur
les fichiers JPEG. Elle sert à jouer des Pierre (Piotrek dans sa langue) est un lycéen de 19 ans qui habite en Pologne. Il est
vidéos simples sur la montre. Son avan- amateur de systèmes embarqués et aime programmer des microcontrôleurs, parti-
tage principal est la vitesse : jusqu’à culièrement les AVR et STM32. Il a démarré sa carrière en électronique en construi-
21 images par seconde avec des images sant des robots sumo pour des compétitions et s’est récemment intéressé aux wea-
de 240×320 pixels. Mais, cela a un prix : rable, ces appareils électroniques que l’on porte dans les vêtements ou comme des
développée à l’origine pour promouvoir bijoux. Lorsqu’il en a le temps, il aime aussi construire des avions radiocommandés.
le standard JPEG, elle utilise beaucoup
de mémoire. Si vous avez besoin d’un Fast Forward Award 2016
décodage vraiment rapide et que vous
La nWatch était l’une des concurrentes pour l’Elektor Fast Forward Award organisé par
n’avez pas de contraintes mémoire, c’est
Elektor en collaboration avec les directeurs du salon electronica 2016 à Munich. C’était
la bibliothèque parfaite. Si la mémoire est
une formidable occasion pour amateurs et professionnels de tous bords de partager
comptée, mieux vaut utiliser TJpgDec.
et présenter projets, produits et jeunes pousses. L’auteur de cet article a présenté le
projet nWatch au public et à un jury international de professionnels. Cela lui a per-
Bibliothèque graphique à faible
mis de rencontrer plusieurs fabricants pour discuter des composants utilisés dans la
empreinte mémoire
montre. Beaucoup d’opinions et de suggestions d’autres participants et visiteurs ont
Si libjpeg ne convient pas, utilisez la
permis à Pierre de partir heureux et la tête pleine de nouvelles idées. Gagner la troi-
bibliothèque Tiny JPEG Decompressor
sième place dans la catégorie « prototypage » du FFA n’a fait qu’élargir son sourire.
ou TJpegDec. Cette bibliothèque minus-

www.elektormagazine.fr juillet/août 57
Figure 10. Android Studio 2.2.3 a été utilisé pour créer une appli Android simple pour communiquer avec la montre.

Programmation en circuit Appli Android tous les problèmes rencontrés lors de la


Je vous recommande chaudement d’in- Même si je ne suis pas un programmeur conception de la montre. J’ai maintenant
vestir dans un programmateur ST-Link Java, j’ai décidé d’écrire une appli simple une bonne idée du temps et des efforts
bon marché. Non seulement, il est plus pour envoyer des données à la montre nécessaires pour un projet de cette taille.
confortable à utiliser que le chargeur de depuis un ordiphone. J’ai trouvé un J’ai aussi appris à apprécier le travail
démarrage USB, mais il permet égale- exemple d’appli utilisant le Bluetooth Low d’équipe : je n’aurais pas été capable
ment de déboguer le code. Faire par- Energy et l’ai modifié pour lire l’heure de créer seul chacun des composants.
tie des cartes STM Discovery et Nucleo et la date du téléphone et les envoyer Je pense que le résultat vaut le coup.
(souvent distribuées gratuitement dans sans fil à la montre (fig . 10 & fig. 11). Je voulais avec cet article vous mon-
les salons) en fait le meilleur candidat. C’est très confortable, car il n’y a pas trer que n’importe qui peut construire
Tout ce que vous aurez à faire c’est de besoin d’écrire une appli spéciale pour une montre de ce type. Ce n’est pas si
fabriquer un câble avec un connecteur la montre. Lorsque vous démarrez l’ap- difficile après tout et, à mon avis, c’est
femelle 2 mm à trois voies. pli sur le téléphone, elle recherche les le meilleur moyen d’apprendre quelque
nWatch à portée et, quand une est détec- chose de nouveau. J’espère que vous
tée, il suffit d’utiliser le bouton send pour avez apprécié cet article autant que j’ai
régler la date et l’heure. La prochaine pris plaisir à fabriquer la nWatch.
version de l’appli mettra à jour la montre (160326 – version française : Kévin Petit)
sans intervention de l’utilisateur.

Lien
Conclusion
Je crois que j’ai atteint mes objectifs [1] www.elektormagazine.fr/160326
initiaux. Le système que j’ai construit
m’a beaucoup appris et m’a permis de
lier programmation, électronique, méca-

dans l’e-choppe
nique, conception et impression 3D. Les
composants sont bon marché, certains
Figure 11. L’appli Android n’a pas (encore) une ont même été récupérés sur de vieux ª160326-1
belle interface, mais elle permet de régler la téléphones (ce qui malheureusement circuit imprimé
date et l’heure de la nWatch en tapotant le rend la montre difficile à reproduire).
bouton Send Data. J’ai appris énormément en résolvant

58 juillet/août 2017 www.elektormagazine.fr


vol tous azimuts
piloté par Clemens Valens (labo d’Elektor)

Arduino Create
Bien que pas encore poussié
reuse, la célèbre plateforme
Arduino évolue de façon asse Codebender, programmer la cart
z spectaculaire. Ces derniers e lui-même sans que l’utili-
mois, l’équipe d’Arduino a men sateur ait besoin de copier à la
é discrètement, en coulisse, main un fichier sur le disque.
un projet de plateforme de déve Pour que ça marche, il faut d’ab
loppement en ligne reposant ord installer un logiciel qui
entièrement sur le nuage : l’Ard permet au navigateur d’accéde
uino Create. Un projet ambi- r à la carte ; ce n’est donc
tieux qui étend le concept du pas complètement transparent,
défunt Codebender jusqu’au mais une fois fait, le reste
niveau de la BBC micro:bit. Les est automatique.
habitués du site Arduino.cc
ont eu accès à cette plateforme Le second objectif est de rend
presque depuis l’origine, mais re le développement d’applica
tions IdO aussi simple que poss -
son existence n’a pas fait l’obj ible par la fourniture gratuite
et de beaucoup de publicité.
À ce stade Arduino Create a deux de services avec des exigence
objectifs principaux. Le pre- s peu élevées (low-threshold)
mier est de complètement supp pour le nuage. Là encore tout
rimer l’installation fastidieuse comme mbed, mais accessible
aux non-spécialistes.
des cartes, outils et bibliothèque
s. L’utilisateur d’Ar- Les partisans du traditionnel Ardu
ino peuvent continuer à uti-
liser l’EDI hors ligne qui leur est
si familier. Toutefois, lors du
téléchargement d’une nouvelle
version sur le
site web, ils noteront qu’Ardui
no Create est
encouragé comme la voie à suiv
re.
Il nous tarde de voir ce que
le futur nous
réserve. Peut-être un Arduino
OS ?
(160404-a)

duino Create se connecte avec


son
compte, branche une carte com
pa-
tible sur l’ordinateur et commen
ce
à coder — ça doit être aussi simp
le
que ça. La carte est reconnu
e par
l’EDI en ligne, toutes les bibl
io-
thèques publiées dans le référent
iel
Arduino sont disponibles sans
ins-
tallation, l’EDI est toujours
à jour,
etc. Tout à fait comme mbed
d’ARM
(sans le jargon du programmeu
r) ou
l’environnement de la BBC micr
o:bit
(qui ne connait qu’une carte).
La diffé-
rence avec ces plateformes est
qu’Ar-
duino Create peut, comme le
pouvait

8 400 000 000 e t s c o n n ectés sero


n t u t i li s é s en 2017.

rds d’obj
8,4 millia
www.elektormagazine.fr juillet/août 59
Électronique et litérature
Pour autant que je sache — mais que sais-je ? — littérature et électronique ne font pas
bon ménage. Bien sûr il y a « Le scandale de la substitution de Darlington » en 1886
avec Sherlock Holmes, mais il a été écrit bien avant que quelqu’un n’ait l’idée du tran-
sistor Darlington (au passage découvert en 1953 et attribué à Sydney Darlington), et
il est donc aussi bien plus ancien que l’idée, certes
mauvaise, d’en substituer un incorrectement. Beau-
coup d’histoires mettent en scène l’électronique et
les technologies de façon spectaculaire, mais elles
n’ont tendance qu’à montrer l’ignorance du sujet
par les auteurs. Imaginez alors ma surprise quand
en lisant récemment un roman policier (Fuzz de Ed
McBain, roman de 1968 de la série 87e District), je me
suis soudain retrouvé devant les schémas d’un circuit
et une explication détaillée et crédible de la façon dont il
était censé fonctionner. Rares sont les illustrations dans
les romans, quelles sont les chances pour qu’il s’agisse
d’un schéma ?
(160404-b)

Fuzz de Ed McBain (1968)

LM0901A1411090451C, amplificateur
opérationnel (AOP) à circuit dégradé

Composants particuliers
Le LM0901A1411090451C est un AOP à circuit dégradé de macro-puissance, aux caractéristiques médiocres, conçu
pour une dissipation de puissance sans charge de moins de 0,553 W pour Vs = ±1 pV et moins de 200 W pour Vs = ±2 pV. Le
gain en boucle ouverte est supérieur à 0,001k et le courant de polarisation d’entrée typique est de 200 A.
© March 1878, Nominal Semidestructor Corporation
https://goo.gl/jFf75N
(160404-c)

60 juillet/août 2017 www.elektormagazine.fr


Outil de labo indispensable
Améliorez vos compétences Si vous vous êtes trouvé un jour dans une situa-
tion où vous auriez eu besoin d’un miroir den-
en refusion taire pour examiner un
dispositif inaccessible,
ces lunettes pourraient
Vous ne l’avez peut-être pas remarqué, mais le thème prin-
être exactement ce dont
cipal de cette édition est la conception de circuits imprimés
vous avez besoin. Avec
(CI). Comme les CI sont étroitement liés au soudage, l’art du
ses prismes à la place
soudage est une compétence importante à maîtriser, même
de lentilles ordinaires,
pour un concepteur de CI, car la technique utilisée pour le
elles permettent de voir
soudage affecte la conception du CI.
vers le bas en regardant devant, vous
voyez ainsi des choses là où votre tête ne
peut pas aller. Prévues pour lire sur la plage sans avoir à
relever votre lourde tête ou pour discrètement espionner
les autres, les lunettes à prismes sont très amusantes. Et
si on retournait un des prismes de 180° ? On pourrait alors
regarder en haut et en bas en même temps ! Ou en tourner
un de 90° vers la gauche et l’autre vers la droite et ressentir
la vision d’un cheval.
Disponible partout sur l’internet, cherchez Prism Glasses
Quand des composants de surface sont soudés dans un four
ou Bed Prism Spectacles.
à refusion, la température doit suivre une courbe précise — le
(160404-d - version franÇaise : Denis Lafourcade)
profil thermique ou de température — pour garantir des joints
de soudure corrects. On trouve les profils de température des
composants dans leurs fiches techniques, et tous les com- Source : Jannis Hermanns,
posants n’ont pas le même profil. En revanche, toutes https://jann.is/
les pièces, indépendamment de leur taille et de leur
masse, doivent dans un temps donné atteindre une Briquez votre ordinateur
température minimale pour démarrer le processus
Si vous ne disposez pas de
de refusion sans dépasser la température maximale
machines-outils à commande
admissible par la pièce (et les autres). Il est facile
numérique ni de découpe laser,
de comprendre que c’est un processus compliqué.
et que vous manquez de compé-
La norme IPC-7530 pour les profils thermiques exis-
tences en perçage et découpe, vous
tait depuis 2001. Malheureusement elle est main-
pouvez toujours vous tourner vers
tenant obsolète ; la révision A est censée voir le jour
LEGO® pour construire un boîtier pour
bientôt. Même si son nom suggère une mise à jour, c’est
votre circuit. Beaucoup font ça pour leurs
en réalité une complète réécriture. Le nouveau document
Arduino ou Raspberry Pi par ex., et j’ai même
fournit une myriade d’informations, des définitions jusqu’à
vu des graveuses faites avec les petites briques de couleur.
la comparaison de soudures, des techniques de mesure des
Jannis Hermanns de Berlin (Allemagne) a réalisé un joli
profils thermiques ou de choix du four à refusion jusqu’à la
« clone » de Macintosh Classic à partir de briques Lego,
compréhension des défauts de refusion de soudure.
d’une Raspberry Pi et d’un afficheur à papier électronique.
L’objectif de cette norme est de fournir des informations utiles
Il a utilisé Lego Digital Designer (LDD) pour concevoir son
et pratiques aux responsables du développement de profils
boîtier en briques.
thermiques afin de produire des assemblages électroniques
LDD peut être téléchargé gratuitement ici :
convenables avec et sans plomb. Officiellement cette norme
http://ldd.lego.com
s’adresse aux dirigeants, aux ingénieurs de conception et
(160404-f)
procédés, et aux techniciens impliqués dans les procédés de
soudage de masse, mais les amateurs et autres soudeurs à
refusion occasionnels pourront utiliser ce document pour par-
faire leurs compétences en refusion. Ceux qui ouvrent le four
pendant la phase de refroidissement pour refroidir la carte
plus vite devraient lire ce document pour savoir pourquoi ils
devraient se montrer plus patients.
Au moment d’écrire ces lignes, l’édition préliminaire
d’août 2016 de ce document était disponible pour téléchar-
gement ici : https://goo.gl/l88pjX
(160404-e)

Vous voulez participer ? Envoyez vos commentaires, suggestions, trucs et astuces à labs@elektor.com

www.elektormagazine.fr juillet/août 61
PROJET DE LECTEUR

tirez 5 V
d’une cellule alcaline épuisée
essorez-la à fond
Chaque jour, nous jetons des tonnes de piles alcalines (« sèches ») de 1,5 V supposées vides. Si un appareil
est alimenté par piles, dès qu’elles sont partiellement déchargées, il ne fonctionne plus. Quel gâchis ! C’est
pourquoi j’ai conçu un circuit pour rehausser à 5 V environ la tension d’une cellule épuisée et donc pouvoir
la réutiliser : allumage d’une LED, maintien en fonction d’un petit µC ou alimentation de capteurs peu
énergivores... et ce jusqu’à ce que la pile soit vraiment morte.

Juan Canton (Mexico) pas si facile. Les capacités parasites et


d’autres paramètres des composants
vous joueront des tours.
À partir d’une tension de pile de l’ordre Le cœur du circuit est un oscillateur,
de 0,8 V, ce convertisseur rehausseur de T1-T2-L1-C1, partiellement com-
tension auto-oscillant fournit une tension mandé par T4, qui influence la tension
de sortie à peine inférieure à 5 V. Avec de sortie sur K1. La bobine (pas une
un rendement de ±60% et un courant self) L1, épaulée par C2 qui fait office
de sortie de 5 mA seulement, ce n’est de réservoir et de dispositif de lis-
pas une merveille d’efficacité. En fait, sage, sert au stockage de l’énergie.
l’auteur voulait « vider » à fond des piles Remarquez la référence 1N4732A,
de 1,5 V épuisées en utilisant des com- une « diode de régulation de ten-
posants faciles à trouver et bon marché. sion » pour laquelle NXP annonce :
Les éléments essentiels du circuit sont tension nominale de 4,7 V, I direct
l’inductance L1 et les transistors. Pour de 53 mA, et Iinv de 10 µA sous 1 V
ces derniers, pensez que les 2N3906 pour Vinv. L1 est elle une « vraie »
et 2N3904 sont les transistors PNP et inductance, pas une self. La sélec-
NPN des Amériques, remplaçables par tion du composant par notre sta-
des BC560 BC550. C’est possible, mais giaire du labo a donné satisfac-
tion ; cepen-
dant, l’utilisation d’une valeur légèrement
L1 D1 supérieure semble promettre de meil-
2N3906
330uH leurs résultats. La PE52627NL de Pulse
1N5817
T3 Engineering (réf. 1209550 chez Far-
nell) est spécifiée pour une résistance
E C
C1
R3 D2
CC maximale de 0,78 Ω.
T1 B
BATT1 2N3906 La 1N5817 est une diode de redresse-
270k

150p K1
C4 C2 1 ment Schottky (c.-à-d. à faible chute de
1N4732A 2 5V
33u 2N3906 T2 220u tension) de 1 A. N’utilisez pas de diode
25V T4 25V
1V5 R1 silicium classique 1N400x, car elle fera
10R
perdre de la tension en sortie.
R4 2x R2
2N3904
2N3904 C3 Note : il est possible d’alimenter le circuit
copyright
avec une tension plus élevée, sans dépas-
1k
6k8

100n
ser la tension de sortie ni mettre la charge
E C
en difficulté – le réseau qui règle la tension
150724 - 11 B
de sortie bloquera l’oscillation. Cependant,
respectez certaines limites.
Figure 1. Un convertisseur rehausseur de 5 V pour piles de 1,5 V épuisées. (150724 - version française : Guy Raedersdorf)

62 juillet/août 2017 www.elektormagazine.fr


PROJET DE LECTEUR

ce bon vieux lampemètre


Tektronix 570
on s’en refait un ?

Pour savoir ce que valent encore tous ces tubes électroniques de récupération, il me faut un traceur de
caractéristiques, un lampemètre, disions-nous. Disposer d’un « vrai », c’est une utopie, en refaire un avec un
microcontrôleur moderne, c’est plus réaliste. Je peux ainsi mesurer le courant cathodique en fonction de la
tension d’anode pour différents potentiels de grille.

Charles van den Ouweland Vous non plus, vous ne pouvez rien mais avec les lampes de radio, c’est une
(Pays-Bas) jeter ? Nous voici face à des appareils en autre histoire. Les dégâts graves, on les
panne, mais tellement « vintage », avec voit à l’œil nu, les courts-circuits internes,
lesquels nous pourrions faire plaisir à la l’ohmmètre les détecte, mais c’est à peu
famille, aux amis ou aux voisins (trois près tout. Pas très malin de fabriquer tout
catégories qui ne se superposent pas un circuit pour y monter un tube dont
nécessairement), plutôt que de démolir on ne sait même pas s’il est bon. Que
des composants qui pourraient peut-être ferait-on du circuit après ?
encore servir. C’est ainsi que j’ai entassé
au grenier pendant des années des tubes Le Tektronix 570
électroniques apparemment intacts et Si vous n’avez pas de projet en vue avec
qui ne font que s’empoussiérer. ces tubes, rien ne vous empêche de les
Que faire de ces composants récupérés vendre. En trifouillant un peu sur eBay,
sur de vieux appareils ? S’en servir, bien je suis tombé sur un site français qui
sûr, même pour des expériences risquées. propose des tubes accompagnés de leurs
Les condensateurs, résistances, bobines et caractéristiques sur photos prises sur un
Figure 1. C’est ainsi qu’apparaissent les ainsi de suite, on les mesure facilement, vieux Tektronix 570.
caractéristiques produites par le lampemètre. idem pour les transistors et les diodes, Pour tracer ces caractéristiques (fig. 1),

www.elektormagazine.fr juillet/août 63
l’appareil envoie sur le tube à tester diffé-
rentes tensions de grille (0 V, −1 V, −2 V,
etc.) et fait varier la tension d’anode de
zéro à quelques centaines de volts. Sur
l’écran du tube cathodique, on voit alors
le courant de cathode en fonction de
la tension d’anode pour ces différents
potentiels de grille ce qui permet d’en
déduire si le tube est capable de fonc-
tionner dans une application précise.
Ma première idée a été de faire pareil.
Seulement voilà, le Tektro 570 est
devenu depuis un objet de collection.
Même si par chance vous en trouvez un,
il faudra largement ouvrir votre porte-
feuille. En plus, le 570 est un vrai masto-
donte, il mesure 42×33×62 cm et pèse
de l’ordre de 35 kg !
Comme tout électronicien qui se res-
pecte, je me suis dit illico : fais-le toi-
même ! En partant d’un oscilloscope
existant, avec des semi-conducteurs
modernes et un microcontrôleur, ce doit

Figure 2. Le Tektronix 570 originel est un


mastodonte au sens propre du terme.

+5V
IC2 LCD1
+18V 7805T L1

10uH
C5 C6 GR-LCD-100x48 C7 C8 R12
C2 C1
DATA/CMD

10k
ENABLE

100n 100n 10n 47n R11 R6


10u 10u +300V
VCC
GND

LED

R/W

D7
D6
D5
D4
D3
D2
D1
D0

1M

47k
10 30
1 2 3 4 5 6 7 8 9 10 11 12 13 14 R16
VCC AVCC +5V +18V
38 40
2k7
PA2(ADC2) PA0(ADC0) R4
37 39
PA3(ADC3) PA1(ADC1)
56k

36 2W
PA4(ADC4) 8 T2
35
PA5(ADC5)
IC1 PD7(OC2)
21
IC4
copyright 34 20
PC7
PC6
PC5
PC4
PC3
PC2
PC1
PC0

PA6(ADC6) PD6(ICP1) 4
33
+5V PA7(ADC7) TIP50
29 PC7
PC7(TOSC2)
ICP 5 28 PC6 +5V 3 DUT
PB4(SS) PC6(TOSC1) 3 –18V T1
1 MOSI 6 27 PC5
PB5(MOSI) PC5(TDI) C3 C4 1
2 MISO 7 26 PC4 IC4.A 5
PB6(MISO) PC4(TDO) 2
3 SCK 8 25 PC3
PB7(SCK) PC3(TMS) 10u 100n MPSA42
4 24 PC2 8
PC2(TCK) R13 R2
5 RST 9 ATMEGA32-P PC1(SDA) 23 PC1 15 7 6 R7
RST 10k 15k
6 19 22 PC0 PC7 1 VDD 16 R3 R1
REFIN
1k

PD5(OC1A) PC0(SCL) DB7


18 PC6 2 14
CLR IC4 = NE5532N
10k

3k3

PD4(OC1B) DB6 IC3


17 1 PC5 3 12 R15
PD3(INT1) PB0(XCK/T0) DB5 PD
16 2 PC4 4 19
39k

PD2(INT0) PB1(T1) DB4 VOUTA


15 3 PC3 5
PD1(TXD) PB2(INT2/AIN0) DB3
14 4 PC2 6 18
PD0(RXD) PB3(OC0/AIN1) DB2 VOUTB
PC1 7 R10
GND XTAL1 XTAL2 GND AREF DB1 AD7302
PC0 8 SMD 5
11 13 12 31 32 DB0
10k

10 13 7
X1 WR LDAC IC4.B
C9 11 9 6 D1
A/B CS R8 R5
DGND AGND
2x
100R

100n
10k

20 17 R9 R14 D2
RESET 16MHz 1N4007
39k 1k

160356 - 11

Figure 3. Le schéma du lampemètre.

64 juillet/août 2017 www.elektormagazine.fr


être réalisable pour une fraction du prix
D1 adjustable
et pèsera bien moins lourd. L’idée du +32V R6 L1 BYV27-600 55 – 400V
Neptronix 570, comme on l’a appelé dans 0R22
47uH
0W5 R3 R5
les couloirs, était née. C1

100k

1M8
6 7 8
220u
Le schéma VCC IS DC
T1
2W
1
Le circuit est conçu pour effectuer rapi- C5 C2
IC1
SWC D2
2
SWE
dement deux sortes de mesures : 100u 100n MC34063AP 1N4148
IRF740
- des variations de potentiel de grille sous 5
FB TC
3 T2
C6
différentes tensions d’anode ;
GND 47u
R1 R2
- des variations de tension anodique pour 4 C3 BC 400V
557B

6k2
différentes tensions fixes de grille.

10k
470p

Toutes ces opérations, un microcontrô-


R4 P1 P2
leur les commande et un petit écran 6k2

avec quatre boutons-poussoirs lui sert C4 100k 10k 160356 - 12

d’interface utilisateur. Le logiciel est 100n copyright


ainsi fait que les caractéristiques mesu-
rées peuvent être visibles sur LCD aussi
Figure 4. L’alimentation haute tension dont la tension d’entrée de 32 V est produite par une vieille
bien que sur un oscilloscope externe. Le
carte d’imprimante.
Neptronix 570 est et reste construit sur
plaque d’expérimentation, il n’y a pas de
circuit imprimé.

Survol du schéma
Le schéma du traceur de caractéristique
est à la figure 3. À gauche, le micro-
contrôleur IC1 est un ATmega32-P. Il
offre beaucoup de lignes d’E/S, est dis-
ponible en boîtier DIP, bon marché, d’au-
tant meilleur qu’il m’en restait quelques-
uns en stock !
À gauche de IC1, on voit le connecteur
de programmation ICP (en circuit) et les
quatre boutons à flèche plus celui de RàZ.
Le bus de données d’une largeur de 8 bits
du microcontrôleur relie d’un côté l’écran
Figure 5. Mon lampemètre tel qu’il a été décrit.
LCD1 et de l’autre, le double convertis-
seur N/A IC3 qui fournit de quoi former
les différentes tensions nécessaires au
tube à tester.
Enfin, à droite, il y a deux amplifica- aussi la tension négative de −18 V, de tension d’entrée dont vous disposez est
teurs opérationnels, celui du haut, IC4.A, manière à délivrer du ±18 V aux deux vraiment trop basse, vous aurez du mal
approvisionne à travers deux transistors amplis op. Nous pouvons supposer que à obtenir une haute tension suffisante.
à haute tension la tension d’anode pour toute paillasse d’électronicien comporte La solution : un doubleur de tension en
le tube à l’essai (DUT), tandis que IC4.B, une alimentation double de laboratoire, sortie.
celui du bas, fournit la tension de grille. nous n’entrerons pas dans les détails à
ce propos. Quelques détails
Alimentation La haute tension, c’est plus compliqué. Le double convertisseur N/A IC2, un
Nul n’ignore que les tubes fonctionnent Pas plus que moi, vous n’avez sans doute AD7302, n’est hélas pas disponible à
d’habitude avec une haute tension qui pas sous la main une alimentation CC prix abordable en version DIP. J’ai donc
peut être très élevée. Le schéma men- réglable à haute tension. J’ai donc dû installé la version CMS de cette puce sur
tionne différentes tensions d’alimenta- trouver une solution. Ce n’est heureu- une petite carte de liaison compatible
tion, voyons d’où elles proviennent. sement pas tellement grave, voyez le avec les plaques d’expérimentation. Mon
C’est un simple 7805T (IC2 de la figure 3) schéma de la figure 4. C’est une appli- lampemètre tient donc facilement sur ce
qui assure, à partir du +18 V d’une ali- cation standard du convertisseur survol- genre de supports.
mentation de laboratoire, l’alimentation teur MC34063AP. La tension d’anode pour l’essai des tubes
en 5 V de l’électronique numérique et J’ai pour ma part récupéré d’une impri- monte tout au plus à 320 V. Pour ce faire,
de l’afficheur. Autant dire que ce 7805 mante Canon Pixma mise au rancart l’ali- l’ampli op IC4.A multiplie par 3,5 la ten-
nécessite un refroidissement suffisant ! mentation dont le convertisseur élévateur sion de la sortie A du CN/A (0 à 5 V).
La même alimentation de labo fournit donne une tension de 32 V. Si jamais, la Le transistor T1 la multiplie encore d’un

www.elektormagazine.fr juillet/août 65
Figure 6. L’onglet de démarrage. Figure 7. Les paramètres de l’anode. Figure 8. Les paramètres de la grille.

facteur 17. Le transistor T2 assure un choisit le mode de fonctionnement avec


courant suffisant. les boutons haut et bas :
S’il ne fallait faire varier que la tension • égrener les polarisations de grille
d’anode (sweep), les valeurs exactes sous différentes tensions d’anode
de gain de IC4.A et T1 seraient sans (step plate/anode, sweep grid) ou
importance. Mais je veux aussi réaliser • égrener les tensions d’anode pour
le mode par lequel le potentiel de grille différents potentiels de grille (step
varie pour différentes valeurs de tension grid, sweep plate/anode).
d’anode. C’est le but du diviseur de ten- Le bouton flèche à droite mène à l’on-
Figure 9. La sélection de sortie.
sion composé de R11, R12 et R16, qui glet suivant.
répercute un quatre-vingtième de la ten-
sion d’anode vers l’entrée du CA/N ADC0 Anode (A)
du microcontrôleur pour régler précisé- Sous l’onglet A (fig. 7), on règle les ten-
ment le niveau voulu. sions minimale et maximale d’anode et
L’autre sortie du CN/A va à l’ampli op on choisit les valeurs avec les boutons
IC4.B. Comme la tension de grille doit haut/bas. En mode step plate, sweep
être négative, cet ampli op inverse la grid, on sélectionne l’intervalle de niveau,
tension de la sortie B du CN/A de 0 à 5 V c’est-à-dire la valeur à ajouter au mini-
vers le domaine entre 0 et −18 V. Les mum ou à retrancher du maximum.
diodes D1 et D2 protègent le circuit de
tout excès de tension. Grille (G)
La mesure du courant cathodique cor- En G, ce sont les tensions extrêmes
Figure 10. L’onglet de mise en route.
respond à la chute de tension sur la de grille et l’intervalle que l’on définit
résistance R5 de 100 Ω entre cathode (fig. 8). Ce dernier détermine la valeur
et masse. Elle est appliquée par R6 à à ajouter au minimum ou à retrancher
la deuxième entrée du CA/N ADC1 du du maximum en mode step grid, sweep
microcontrôleur. Pour compenser la chute plate.
de tension sur R5, le diviseur de tension
R7, R15 et R8 envoie un cinquième de Output (O)
la tension de cathode sur l’entrée posi- Il s’agit ici de choisir d’observer le résul-
tive de IC4.B. tat sur un oscilloscope ou sur l’afficheur
La figure 5 montre à quoi ressemblait le LCD (fig. 9).
lampemètre en phase de développement.
Run (R)
Interface utilisateur On entre dans le processus R (fig. 10)
Figure 11. L’écran d’étalonnage. Pour manier le testeur de tubes, on dis- pour lancer la mesure en poussant sur
pose de quatre boutons-poussoirs (haut, le bouton bas. La mesure une fois réa-
bas, gauche, droite) et d’un afficheur lisée, le résultat apparaît à l’écran. Le
LCD sur lequel s’inscrit une série d’on- paramètre sweep s’affiche chaque fois
glets pour opérer différents réglages. On sur l’axe horizontal.
navigue entre eux au moyen des boutons Quelques précisions selon le type d’affi-
à gauche et à droite, puis on ouvre l’on- chage. Sur oscilloscope, en mode sweep
glet choisi par le bouton bas. Les boutons grid, step anode : la grille est sur l’axe
à gauche et à droite permettent alors des x, la cathode sur l’axe des y. En
de désigner le réglage voulu. Voyons de mode sweep anode, step grid, l’anode
quoi il s’agit. est sur l’axe des x, la cathode sur l’axe
des y.
Start (N) Sur l’afficheur LCD, les mesures s’effec-
Figure 12. Calcul de la pente. Dans l’écran de démarrage (fig. 6), on tuent assez lentement et le micrologiciel

66 juillet/août 2017 www.elektormagazine.fr


calcule la moyenne de l’ensemble des mesures avant de pas-

Publicité
DÉCOUVRIR CRÉER PARTAGER
ser à l’affichage. Sur oscilloscope, en revanche, les mesures
arrivent très vite sur l’écran pour éviter le scintillement.

Calibrate (C) Retro Audio


Dans ce mode, pousser sur le bouton bas (fig. 11) fait voir
un graphe de la tension d’anode (0 à 320 V) en fonction de la
(livre en anglais)
valeur du CN/A (0 à 255). Les valeurs numériques qui s’ins-
crivent dans cet exemple représentent successivement la ten-
sion maximale pour une valeur 0 du CN/A, la tension minimale
pour une valeur de 255 sur le CN/A, la pente et le point d’in-
tersection de la ligne droite avec l’axe des y.
D’un coup sur le bouton haut, le graphe fait place à la courbe
théorique sur les mêmes axes.

Transconductance (T)
Sous cet onglet (fig. 12), on peut mesurer la pente S (mA/V)
du tube (transconductance). On commence par régler la tension
d’anode à sa valeur maximale sous l’onglet A, puis la tension
de grille au maximum aussi, sous l’onglet G. On mesure alors
le courant I1. Ensuite, on baisse d’un niveau la tension de grille
pour mesurer le courant I2. La pente se calcule comme suit :

S = (I1 – I2) / différence de potentiels


de grille [A / V]

Dans l’exemple de la figure 12, la tension d’anode est de 200 V


et les potentiels de grille 0 V et −1 V. Les valeurs mesurées
sont I1 = 600 µA et I2 = 11 000 µA. Ce qui donne une pente
de −10,4 mA/V.

Les onglets H (tension/courant de filament) et S (grille-écran)


ne sont pas encore implémentés. Aujourd’hui il y a un regain d’intérêt pour les
Le micrologiciel du lampemètre peut être téléchargé tel quel
disques vinyle et les tourne-disques, ce qui a don-
né naissance à un marché parallèle de la répara-
depuis la page de ce projet au labo d’Elektor (cherchez vacuum
tion. Le but de ce livre (en anglais) est d’apporter
tube curve tracer sur www.elektormagazine.fr/labs). Vous y
au lecteur, électronicien amateur ou confirmé, des
trouverez aussi les dernières informations sur les dévelop- connaissances ainsi que des solutions en matière
pements ultérieurs et vous pouvez y poster vos remarques d’audio d’antan. Cet ouvrage contient des ta-
et contributions propres. Un programmateur AVR ordinaire bleaux avec des données utiles, des trucs et as-
permet d’envoyer le micrologiciel dans le microcontrôleur par tuces pour l’entretien ainsi que des informations
l’interface de programmation ICP. pas si communes.
(130356 – version française : Robert Grignard)
Ce guide d‘entretien est très concret. Il commence
par un tour de l’atelier de réparation et des dis-
positifs de test et outils nécessaires. Ensuite deux
chapitres sont consacrés aux sources d’informa-
tion et d’approvisionnement en pièces détachées.
L’auteur
Le lecteur est alors prêt à effectuer des diagnos-
Charles van den Ouweland (Breda, 1963) a étudié tics et des tests, notamment sur les résistances,
l’électrotechnique à l’université technique d’Eindhoven condensateurs et inductances. Grâce à ce livre, il
(Pays-Bas). Il travaille apprend à gagner du temps tout en effectuant des
actuellement comme réparations de qualité. Les derniers chapitres sont
architecte de logiciel chez
consacrés aux problèmes spécifiques à chaque ap-
pareil : lecteur de cassette, tourne-disque, lecteur
ProRail, mais continue de
de CD, micros…
s’occuper d’électronique
pendant ses temps
www.elektor.fr/retro-audio
libres, principalement de
combinaisons entre les
microcontrôleurs modernes
et les « bons vieux » tubes.

www.elektormagazine.fr juillet/août 67
projet 2.0
corrections, mises à jour et courrier des lecteurs

e-BoB BL600 (1)
Elektor 03/2015, p. 34 (140270)
Depuis le premier article sur le module Bluetooth à basse énergie
BL600 dans le numéro de mars 2015, son fabricant (Laird) a mis
à jour son logiciel (micrologiciel et bibliothèques). Malheureu-
sement, il semble que les versions précédentes ne soient plus
disponibles. L’exemple proposé dans la série d’articles
de 2015 est basé sur la version 1.5.7.0 révision 5
du micrologiciel et les bibliothèques associées. Il est
possible qu’il ne soit pas compatible avec le nouveau
micrologiciel et les nouvelles bibliothèques.
En tout cas, il est important de n’utiliser que la bibliothèque
associée à un micrologiciel ou une révision donnés. Si vous
obtenez le diagnostic « BL600: Cross Compiler not found », votre micrologiciel et la bibliothèque téléchargée ne sont
pas compatibles. Les commandes AT pour identifier le micrologiciel et la révision du BL600 sont les suivantes (il faut
commencer par connecter le module au PC par une liaison série) :

• micrologiciel : AT I 3<Enter> ARDUINO


K11
• révision : AT I 0<Enter> ADA5/SCL
10
9
ADA4/SDA
8
Aref K4
7 3
K8 GND

Voir aussi l’article « eBoB BL600 (2e partie) » (www.elektormagazine.fr/150014) pour plus de détails
+5V sur le micrologiciel. 1
2
JO13/SCK
6
5
2
1
IOREF IO12/MISO

L’article « passerelle Bluetooth 2 vers Bluetooth LE » (www.elektormagazine.fr/150753)


K7
3V3
contient la procédure de pro-
1
3
4
RESET
+3V3
IO11/MOSI
IO10/SS
4
3
K3
grammation du micrologiciel du BL600. La reprogrammation du BL600 requiert un programmateur Segger J-Link EDU
2 5 2 3
5V +5V IO9
3 6 1 2
GND GND IO8
7 1
ou compatible. IOH
8
GND
Vin
9
POWER K6
7 CD+ 10 3
K10 I7 O7
8 6 11 2
K2 IO7 I6 O6
3 7 5 12 1
A5 K9 IO6 I5 IC2 O5
2 6 6 4 13
A4 AD5/SCL IO5 I4 O4
1 5 5 3 ULN 14
A3 AD4/SDA IO4 I3 2003 O3 K5
4 4 2 15 3
AD3 IO3 I2 O2
3 3 1 16 2
K1 AD2 IO2 I1 O1
3 2 2 GND 1
A2 R1 AD1 IO1/TX
8

shield IdO pour Arduino


2 1 1
A1 1k AD0 IO0/RX
1 JP1
A0 AD IOL
+5V

Elektor 01/2017, p. 17 (160169) P2 D1

Dans le deuxième paragraphe de cet article, lire « Entrée analogique 2 » au lieu adjust
3V3
de « Entrée analogique 3 »
10k
+5V
P1

100k
amplify
3 5
8 C1
JP2 1 7
IC1.A IC1 = MCP6232 IC1 IC1.B
2 100n 6
4

R2 R3
100k

1k

149014 - 11

bienvenue dans la section PARTAGER


Elektor 01-02/2017, p. 108 (160252)
La question du rédacteur d’Elektor Thijs Beckers « pourquoi la polarité des prises de courant des chauffe-
eau peut jouer un rôle » a reçu beaucoup de réponses, merci à tous ! En voici une petite sélection :

Le problème provient du fait que la symétrie de distribution du courant n’est pas conservée au niveau du consommateur.
Un exemple que je connais depuis longtemps concerne les tubes luminescents. Comme le transformateur de ballast est
conçu comme transformateur économiseur, le branchement n’est pas symétrique, c’est-à-dire qu’il dépend si c’est la
phase ou le neutre qui est relié à la base du transformateur. Dans l’un des cas, on observe dans l’obscurité une petite
lueur du tube, qui disparaît dans l’autre cas.
Lothar Freißmann

68 juillet/août 2017 www.elektormagazine.fr


La cause du problème est sans doute une électrolyse. Il y a toujours une petite composante continue sur le réseau
alternatif, ce qui provoque parfois la formation d’un dépôt sur les électrodes. On peut l’éviter dans une certaine mesure
par une mise à la terre de l’appareil.
Quand on retourne la prise, l’effet électrolytique s’inverse. En fait, le dépôt passe sur l’autre électrode de l’élément
chauffant.
J’ai ici, au Canada, un problème analogue, c’est-à-dire un dépôt de calcaire dans mon chauffe-eau rapide. J’ai équipé
l’élément chauffant d’un tuyau en parallèle afin de pouvoir le détartrer plus facilement : avec une pompe, j’y fais circu-
ler du vinaigre en circuit fermé aussi longtemps qu’il me paraît nécessaire.
Clinton Millet, Canada

Le manuel de mon chauffe-eau précédent « Remeha Calenta » mentionnait un paramètre 43 « Détection de la polarité
du réseau ». Après l’activation, on aurait l’affichage d’un code d’erreur en cas de prise de courant mal branchée. Ce qui
est possible en Allemagne et aux Pays-Bas, mais pas en Belgique et en France, où la géométrie des prises de courant
l’interdit. Après retournement de la prise, le code d’erreur SU9 s’affiche : prise branchée à l’envers. Le réglage d’usine
du chauffe-eau mettait le paramètre 43 à 0 : la prise mal banchée n’aurait donc pas été détectée.
Après l’allumage, l’électrode d’allumage est utilisée pour la mesure du courant d’ionisation afin de s’assurer de la bonne
mise à feu. Selon le manuel, le courant d’ionisation ne doit pas dépasser 3 µA. Dès lors, les divers kits d’entretien du
chauffe-eau contiennent préventivement une électrode de rechange. La haute tension est produite par un régulateur à
découpage susceptible de créer davantage de parasites si la prise est mal enfichée. En voilà peut-être un peu trop pour
un si petit courant de mesure sur une électrode presque complètement usée.
Peter van de Meerendonk

broches d’alimentation d’un ampli-op...


Elektor 01-02/2017, p. 110 (160257)
Comme j’ai travaillé à la conception de circuits intégrés, je peux imaginer la raison suivante de l’existence
de brochages différents pour un même circuit intégré fabriqué en grande série : il y a des clients importants
qui ont besoin d’un brochage différent pour simplifier le routage de leurs propres cartes ; le fabricant n’a alors
qu’à modifier les connexions et le marquage, pour un coût marginal.
Lothar Freißmann

microphone MEMS minuscule


Elektor 11/2016, p. 70 (160083)
L’article prétend qu’il est difficile de se procurer des microphones spéciaux pour les ultrasons. Pas
vrai ! J
En tant que vieil oiseau de nuit (quand, sinon, a-t-on la paix ?) j’ai aussi un intérêt particulier pour les
chauves-souris. J’ai déjà construit plusieurs convertisseurs pour ultrasons : tout d’abord purement numériques
(avec un diviseur 7493) ensuite à mélangeur linéaire abaisseur de fréquence (avec un SO42P). Pour cela il me faut bien
entendu des micros de qualité raisonnable.
Vous en trouverez sur l’internet à très bon prix : cherchez « HC-SR04 Ultrasonic Range Finder Distance Measuring
Module Sensor Arduino Pi Pic ».
La carte ne contient pas seulement un microphone récepteur, mais une puce qu’on peut aussi utiliser pour d’autres expé-
riences, et un émetteur d’ultrasons optimisé comme « haut-parleur » (ohé, les vieilles zappettes de téléviseur à ultrasons !).
Encore moins cher : Ebay propose ces cartes par lots de cinq ; et nul besoin d’une loupe pour trouver les composants.
Il s’agit d’unités à électrets, utilisables avec toutes sortes de détecteurs de chauves-souris sans grosses modifications.
Et voici un autre avantage : comme l’ouverture du micro est assez large, la partie réception s’adapte à l’utilisation d’un
réflecteur parabolique (facile à construire soi-même en papier rigide), si bien qu’on peut réaliser une antenne direction-
nelle permettant de localiser avec précision les mammifères volants.
Pour répondre d’avance à la question : oui, les micros fonctionnent jusqu’à plus de 100 kHz, ce qui n’est d’ailleurs guère
nécessaire, car la plupart des chauves-souris d’ici ne « montent pas si haut ».
Peter Krengel

(160406 – version française : Helmut Müller)

www.elektormagazine.fr juillet/août 69
PROJET DU LABO

70 juillet/août 2017 www.elektormagazine.fr


carte DSP à FPGA
pour SDR à bande étroite
émetteur-récepteur
complètement programmable

Daniel Uppström (SM6VFZ, Suède) et Ton Giesberts (labo d’Elektor)

www.elektormagazine.fr juillet/août 71
Voici une carte de traitement du signal numérique basée sur un FPGA qui comporte tout le nécessaire pour
réaliser le travail en bande de base des modes traditionnels à bande rétrécie, comme SSB, radiotélégraphie
(CW) et modulation d’amplitude (AM). Elle apporte une solution à de nombreuses difficultés et limitations
rencontrées avec les plateformes SDR simples. Capable d’émettre autant que de recevoir, elle réunit les
éléments indispensables à un trancepteur en ondes courtes, VHF, UHF SHF et micro-ondes, elle est idéale
pour toutes les applications radio scientifiques, radioamateurs et autres missions sans fil sérieuses.

Du bon vieux temps… partiellement compensée par des déco- partir de zéro, il est souvent plus facile
Il fut un temps où la technique radio rations numériques comme les afficheurs de mettre en œuvre une chaîne de trai-
focalisait l’attention d’une foule d’ama- couleur. Pourtant, sans se laisser impres- tement de signaux complexes en logique
teurs enthousiastes et d’ingénieurs en sionner par l’apparence et les gadgets, programmable, puisqu’on peut défi-
électronique. Nombre d’entre eux ont pour qui préfère la qualité radiophonique, nir chaque étape indépendamment des
construit leurs propres appareils. Avoir une il est à présent de nouveau possible de se autres. Il serait incommode d’expliquer
licence de radioamateur signifiait qu’on lancer dans une production personnelle. ici ce processus de développement, mais
s’y connaissait en électronique. Avec les tout le code écrit et toutes les informa-
avancées technologiques, les amateurs ont … à la radio logicielle (SDR) tions nécessaires sont à votre disposition
eu plus de mal à suivre et la plupart ont fini Cependant, retourner à la technique ana- gratuitement sur [1].
par acheter des postes tout faits. La crème logique de pointe n’est sans doute pas Malgré toutes ses qualités, la combinai-
des émetteurs-récepteurs des années 80 la meilleure solution, il est plus intéres- son seule de logique programmable et
et 90 faisait appel à de nombreux blocs sant de regarder ce qui se passe dans de CA/N ne donnera jamais une radio.
analogiques complexes, hors d’atteinte des la sphère de la radio logicielle, où la Il lui faut aussi un appareil à radiofré-
amateurs qui auraient voulu les imiter, non majorité du traitement du signal radio quence pour effectuer la conversion de
par manque de connaissances, mais en se fait en numérique et dans le logiciel. fréquence, le filtrage analogique et l’am-
regard du prix et du volume. La puissance actuelle des processeurs et plification. Cette construction fera l’ob-
Les progrès de l’internet ont permis la qualité des convertisseurs d’analogique jet d’une présentation dans une suite de
une nouvelle approche des moyens de à numérique (CA/N) disponibles peut cette série. Un panneau de commande
communication et les trancepteurs du vraiment aider dans la technique SDR. pour la syntonisation de la radio, le
commerce ont commencé à reculer. En Beaucoup d’applications pour électro- réglage de volume, etc. suivra égale-
acceptant des compromis dans le but de niciens enthousiastes et radioamateurs ment. Ces trois ensembles formeront
réduire la taille des radios et leur prix, traitent totalement les signaux numé- alors une radio complète dans un boî-
on couvrait encore un large spectre de risés par logiciel sur PC ou processeur tier adéquat.
fréquences. La baisse des prestations numérique de signal (DSP). Une méthode Notez que le système peut aussi être
essentielles des radios, sélectivité du souple, mais assez peu efficace du fait commandé par un PC branché par l’in-
récepteur et clarté du signal transmis, est que, sans l’aide de multiplicateurs maté- termédiaire d’un adaptateur USB/série
riels et de ce genre de périphériques, le ou un Raspberry Pi qui communique par
traitement du signal requiert énormé- son port I²C ou sériel. Une interface gra-
ment d’opérations. Parmi les plateformes phique écrite en Python est aussi dispo-
infos sur le projet SDR populaires, on en trouve démunies nible pour montrer le fonctionnement.
d’un bon filtrage analogique avant numé-
FPGA DSP SDR
risation, avec une basse résolution du Description du circuit
TX RX CA/N et par conséquent de pauvres pres- La carte DSP à FPGA dispose d’un CA/N
radio amateurs tations spécialement sous de puissantes à 24 bits pour échantillonner à la fré-
interférences. quence intermédiaire en mode récepteur,
débutant Il est préférable de construire en par- un FPGA Cyclone IV pour le traitement du
connaisseur tie antérieure une bonne radio analo- signal, un CN/A à haute vitesse pour l’os-
Æ expert gique avant de recourir au traitement cillateur local et la production du signal
du signal par logique programmable. De à transmettre, une interface audio pour
nos jours, les FPGA sont disponibles à des microphone et haut-parleur, un oscilla-
env. 4 h prix abordables vu le nombre impression- teur très stable à haute précision et une
nant de portes logiques, de mémoires et interface I²C ou UART pour un contrôleur
de blocs multiplicateurs prêts à l’emploi. hôte (fig. 1).
soudage de CMS, C’est vraiment ce qu’il faut pour le trai- Le cerveau de la carte DSP à FPGA est
programmateur JTAG (USB tement de signaux complexes. un FPGA EP4CE10 Cyclone IV d’Intel,
Blaster), Quartus Lite anciennement Altera (IC4). On peut
Faisons-la nous-mêmes configurer cette puce dans pratique-
Daniel a lancé le projet en 2013 en ment n’importe quelle fonction numé-
env. 200 € construisant un prototype et écrivant le rique. Sous la houlette du micrologiciel,
code VHDL pour les blocs DSP. Par rap- les circuits logiques sont configurés
port à un code d’exécution DSP créé à au démarrage à partir d’une mémoire

72 juillet/août 2017 www.elektormagazine.fr


externe (IC5) dite de configuration.
Pour l’entrée et la sortie audio, il Caractéristiques techniques
y a un CODEC (codeur/décodeur) • FPGA + DSP + Audio CODEC
TLV320AIC20K (IC3) qui contient deux • Radio logicielle à bande étroite
canaux CA/N et CN/A à 16 bits de réso- • Opère à toute fréquence radio entre 0 et plusieurs GHz
lution avec un taux d’échantillonnage • Architecture superhétérodyne
maximal de 25 000 échantillons par • Seconde FI non nulle
seconde (éch./s). Il possède un filtre • Alternativement récepteur (RX) et émetteur (TX)
passe-bas numérique intégré à 8 kHz à • Modulateur démodulateur SSB Weaver
côté d’un amplificateur de microphone
avec étage de sortie capable de fournir
EXT REF
250 mW sur 8 Ω. Toutes les entrées et TCXO

sorties audio sont équipées d’un réglage 20MHz < 50MHz

programmable du gain et de l’atténua- A

tion. On branche le HP sur K2, le micro- AD7760 2x 14 bit


Signal
phone sur K3, tous les autres canaux in
A 24 bit EP4CE10 D
disponibles sont reliés à K4 pour servir Cyclone IV
D FPGA A
à d’autres appareils.
1,25 MSPS DAC5672 B
L’entrée principale de la carte, K1, 120 MSPS

accepte un signal différentiel, norma- I2 C or UART


Control Interface
lement dans la gamme de centaines GPIO’s
PTT,Key
de kHz. Le signal passe par l’amplifica-
teur différentiel IC1 et un filtre passe-
Audio
bas discret avant d’être numérisé sur Codec

24 bits par le CA/N IC2, un AD7760. copyright 150177 - 11


TLV320AIC20K
Cette puce a plusieurs connexions d’ali-
mentation séparées par tension et des
Figure 1. Synoptique de la carte de DSP à FPGA.
filtres passe-bas. C’est le FPGA qui lui
donne son horloge principale après que
IC8 en ait remonté le niveau à 5 V. aux quatre régulateurs IC11 à IC14 à broches peuvent aussi servir pour l’E/S
Il y a encore sur la carte IC6, un CN/A faible déchet (LDO) pour former les ten- audio I²S.
rapide à deux canaux, le DAC5672. Ses sions de 1,2 V, 1,8 V, 2,5 V et 3,3 V Les cavaliers JP2 et JP3 n’ont pas de
deux sorties différentielles A et B sont nécessaires aux différents composants fonction dans le micrologiciel actuel.
rendues asymétriques par transforma- sur la carte. Le connecteur K6 fournit l’interface JTAG
teur, puis subissent un filtrage passe- L’interface vers le contrôleur hôte pour pour programmer le FPGA et la mémoire
bas qui permet de produire des signaux la communication par I²C ou UART arrive de configuration.
jusqu’à 50 MHz. Les deux sorties de sur deux broches sélectionnées par le
CN/A sont disponibles sur les connec- cavalier soudé JP1. Ces lignes sont dis- Topologie radio
teurs coaxiaux du type SMA K8 et K9. ponibles sur K7 parmi sept autres lignes Avec une carte radio adéquate, on peut
IC7, un oscillateur à quartz compensé d’E/S destinées normalement au bouton- faire travailler la carte DSP à FPGA en
en température (TCXO), fournit l’horloge poussoir d’activation du microphone principe à n’importe quelle fréquence
principale à 20 MHz de la carte. Ce signal (PTT) et au manipulateur morse. Ces entre 0 et plusieurs gigahertz. Les
est envoyé au FPGA qui le distribue aux
circuits périphériques. Le réglage fin de
< 30 MHz
la fréquence se fait avec P1. Le connec-
teur K5 permet de relier une source de 312.5 kHz
Crystal filter
référence externe, si on en dispose. Dans to ADC

ce cas, le TCXO sera éteint par T1. Les < 30 MHz


signaux du TCXO et la référence externe
45 MHz
sont tous deux envoyés au FPGA en pas-
sant par des inverseurs câblés sans tam- from DAC B

pon et comme ce sont des amplificateurs 45 - 75 MHz


RX: 44.6875 MHz
TX: 45 MHz
analogiques (IC9 et IC10), l’amplitude VCO
peut rester modérée. 150177 - 16

Le signal d’horloge subit une division reference


from
dans le FPGA pour obtenir une basse DAC A
fréquence pour la LED1 qui indique que PLL I2 C etc. copyright
l’horloge fonctionne et que le FPGA est
configuré. LED2 est réservée.
L’alimentation de 5 V de la carte est
connectée à K10 d’où elle est distribuée Figure 3. Synoptique d’une carte radio additionnelle.

www.elektormagazine.fr juillet/août 73
74
IRF9321PBF +5V
R19
C34

1k
L14 NM C37 IC14 IC13 IC12 IC11
R21
1k T2 TPS79633DCQ +3V3 TPS79625DCQG4 +2V5D TPS73018DBVT +1V8 LP3891EMR-1.2/NOPB +1V2
K3 R23 K10
MIC C33 C36 22n 2 4 2 4 1 5 7 1
+3V3 +1V8 +3V3 IN OUT IN OUT IN OUT VIN VOUT

47k
5V DC C105 C104 6 2
L15 S/D VOUT
NM R22 1n C38 3
C99 C97 C96 C94 C93 C91 C90 VBIAS C89

EN
GND
GND
NR/FB
EN
GND
GND
NR/FB
EN
GND
NR
100n 47u

copyright
1k C39 C40 C41 C42 C106 C43 R53
R20 0 16V GND GND PAD

1
3
6
5
1
3
6
5
3
2
4
C35 22n

4
5
9
1u 2u2 1u 2u2 1u 2u2 47u 47u

10k
C98 C95 C92

1k
1u 1u 1u 100n 100n 47u 16V 16V
16V
NM

juillet/août 2017
100n 100n 100n

42
33
5
15
12
C31
36 31
MICBIAS CIDI+

AVDD
DVDD
L12 10p 35 30 C100 C101 C108 C109 C110

IOVDD

AVDD1
AVDD2
DRVDD 27
LSP K2 MICI+ CIDI-
C30 34 14
MICI- FSD
28 2u2 2u2 47u 47u 47u
SPKO- 16V 16V 16V
L13 10p 26
SPKO+ 48 +1V2
C32 37 NC +3V3 +2V5D +3V3 +2V5D
LCDAC 8
38 NC
HNSO-
10p 39 23 C65 C66 C67 C68 C69 C70 C71 C72 C102 C107
HNSO+ RESET C53 C54 C55 C56 C57 C58 C59 C60 C61 C62 C63 C64 +5V
40 22
K4 HNSI- MCLK
2u2 100n 2u2 100n 2u2 100n 2u2 100n 47u 47u

le schéma se résume à quatre puces !


L31 41 IC3 21 100n 100n 100n 100n 100n 100n 100n 100n 100n 100n 100n 100n
HNSI+ M/S +3V3 16V 16V R41
1 2 L32 44 TLV320AIC20KIPFB 20 +3V3
LINEI+ SCLK
1k

3 4 L33 45 19 +2V5D +3V3 +2V5D


LINEI- FS
5 6 L34 46 18 IC5 C44 L30
LINEO- DIN C80 C81

3
7
8
7 8 L35 47 17
LINEO+ DOUT LED3

17
26
40
47
56
62
81
93
117
122
130
139
5
29
45
61
78
102
116
134
9 10 L36 1 11 100n
100n 100n C82

www.elektormagazine.fr
HDSI- SCL

VCC
VCC
VCC
L37 2 10 5 100n
HDSI+ SDA ASDI Power
L38 3 9 1 1

16
22
42
47

VCCIO1
VCCIO2
VCCIO3
VCCIO3
VCCIO4
VCCIO4
VCCIO5
VCCIO6
VCCIO7
VCCIO7
VCCIO8
VCCIO8
VCCINT
VCCINT
VCCINT
VCCINT
VCCINT
VCCINT
VCCINT
VCCINT
HDSO- PWRDN nCS IO
L39 4 6 2 144 48
HDSO+ DCLK IO IO, DIFFIO_T1p, (DM1T) MODE AVDD
2 3 143 1 23
GSET

DVDD
DVDD
DATA IO IO, DIFFIO_T1n, (DQ1T) DA13 DB13

VSS
AVSS
AVSS1
AVSS2
IOVSS
TESTP
DVSS
DRVSS2
DRVSS1
R24 6 142 2 24
GND IO, DIFFIO_L1n, (DATA1,ASDO) IO, DIFFIO_T2p, (DQS1T/CQ1T#,DPCLK7) DA12 DB12

6
7

24
43
32
13
16
29
25
7 141 3 25

4
IO, VREFB1N0 IO, DIFFIO_T5p DA11 DB11

27R
+5V +2V5D 8 138 4 26
IO, DIFFIO_L2p, (FLASH_nCE,nCSO) IO, (DATA6) DA10 DB10
L6 R18 10 137 5 27
IO, DIFFIO_L4p, (DQS0L/CQ1L,DPCLK0) IO, (DATA5), (DQ1T) DA9 DB9
10R 11 136 6 IC6 28
C22 IO, DIFFIO_L4n IO, VREFB8N0 DA8 DB8
L1 L2 L3 L4 R17 L7 L8 L9 L10 L11 12 135 7 29
M25P40-VMN6PB DCLK IO, DIFFIO_T8n, (DQ1T) DA7 DB7
C103 C16 100n 13 133 8 30
IO, (DATA0) IO, DIFFIO_T10p, (DATA3), (DQ1T) DA6 DB6

10R
28 132 9 31
IO, DIFFIO_L6n IO, DIFFIO_T10n, (DATA2), (DQ1T) DA5 DB5
47u 100n 30 129 10 32
16V C21 IO, DIFFIO_L8p, (DQS1L/CQ1L#,DPCLK1) IO, DIFFIO_T11p DA4 DB4
C17 C18 C19 C20 L5 C23 C24 C25 C26 C27 C28 C29 31 128 11 33
IO, VREFB2N0 IO, DIFFIO_T11n DA3 DB3
32 127 12 34 R49
10n IO, RUP1 IO, DIFFIO_T12p DA2 DB2
100n 100n 100n 100n 100n 10u 100n 10u 100n 100n 100n 33 126 13 35 L26..L29 = 0805CS-181XGLB
15nH IO, RDN1 IO, DIFFIO_T12n DA1 DB1
100R

pin9 34 125 14 36 TC4-1WG2+ K8


IO IO DA0 DB0 L26 L27

27
12
33
6
41
44
38 124 46 1 TR1 4 C83 C84 C85 1
IO, DIFFIO_B1p IO, DIFFIO_T13p IOUTA1
14 39 121 19 R42 2 180nH 180nH
2

AVDD2 IO, DIFFIO_B1n IO, DIFFIO_T16p CLKB/RESETIQ


NM

DVDD
15 42 120 20 3 6 DAC A

AVDD2
AVDD4
AVDD1
AVDD1
VDRIVE
AVDD2 IO, (DQS1B/CQ1B#,DPCLK2) IO, DIFFIO_T16n, (DQ1T) WRTB/SELECTIQ
IC1 = OPA2374AIDG4 4 63 43 119 18 45 R50 120p 180p 120p
AVDD2 VDRIVE IO, PLL1_CLKOUTp IO, VREFB7N0 CLKA/CLKIQ IOUTA2 100R
24 61 44 115 17 39 K9
5 AVDD3 DB0 IO, PLL1_CLKOUTn IO, RDN4, (DQ1T) WRTA/WRTIQ IOUTB1 100R L28 L29
+2V5A 60 46 114 R51 6 C86 C87 C88 1
7 R12 DB1 IO, VREFB3N0 IO, RUP4, (DQ1T)
3
NM

IC1B 25 59 49 113 DAC5672IPFB 180nH 180nH


2

6 18R VIN+ DB2 IO, DIFFIO_B9p, (DQ1B) IO, PLL2_CLKOUTp R43


22 58 50 112 40 2 4 DAC B
VOUTA+ DB3 IO, DIFFIO_B9n, (DQ1B) IC4 IO, PLL2_CLKOUTn IOUTB2
C3 R10 C10 57 51 111 37 43 1 TR2 120p 180p 120p
DB4 IO, DIFFIO_B10p, (DQ1B) EP4CE10E22C8N IO, DIFFIO_T19p SLEEP EXTIO
56 52 44 TC4-1WG2+

1k
NM DB5 IO, DIFFIO_B11p BIASJ_A
C1 R1 R3 C7 R8 27p 55 53 110 41 R52 R40 C79
20 DB6 IO, DIFFIO_B11n IO, DIFFIO_T20p, (DQS0T/CQ1T,DPCLK6) BIASJ_B
DGND
DGND
AGND

K1 560R 560R 1k VINA- 54 54 106


DB7 IO, DIFFIO_B12p IO, DIFFIO_R1n
2k0

C9
100R

100n
15
21
38

100n 100n 52 55 105


DB8 IO, DIFFIO_B12n IO, VREFB6N0
C2 R2 R4 C8 R9 51 58 104
5p6 19 DB9 IO, DIFFIO_B15p, (DQ1B) IO, (DQS0R/CQ1R,DPCLK5) K7
560R 560R 1k VINA+ IC2 50 59 103 R54
R11 C11 DB10 IO, DIFFIO_B16p, (DQ1B) IO, DIFFIO_R3p, (CLKUSR) 100R GPIO6
100n C4 100n AD7760BSVZ 49 60 101 R55
DB11 IO, DIFFIO_B16n, (DQ1B) IO, DIFFIO_R3n, (nCEO) 100R GPIO5

1k
NM 27p 48 64 100 R56 GPIO4
DB12 IO IO 100R
21 47 65 99 R57 GPIO3
2 VOUTA- DB13 IO, VREFB4N0 IO, DIFFIO_R4p, (CRC_ERROR) 100R
26 46 66 98 R58 GPIO2
+5V 1 18R VIN- DB14 IO, RUP2, (DQ1B) IO, DIFFIO_R4n, (INIT_DONE) 100R
IC1A R13 45 67 15 L22 PTT/GPIO1
3 DB15 IO, RDN2, (DQ1B) TDI
R7 +2V5A 40 68 20 L23
R15 R14 CS IO, DIFFIO_B20n, (DQS0B/CQ1B,DPCLK3) TDO KEY/GPIO0
10 39 69 16 L24 SCL/RxD
+2V5D 100R 10R VREF+ RD/WR IO TCK

330R
C12 38 70 18 L25 SDA/TxD
C13 DRDY IO, DIFFIO_B21p TMS +3V3
47u 37 71 94
16V RESET IO, DIFFIO_B21n MSEL0
R5 10n 9 36 72 96
REFGND SYNC IO, DIFFIO_B22p MSEL1
8 3 73 97 R34 R35 R36 R37 R38 R39
DECAPA MCLK C45 IO MSEL2

10k
+2V5A R25
30 2 74 21 +3V3
1k
1k
1k

8 DECAPB MCLKGND 10k IO nCE


10k
10k
10k

C6 K6
17 65 +3V3 75
IC1 RBIAS EP 100p IO

3
100n R6 C14 C15 R16 76 92 1 2
4 4 2 IO, RUP3 CONF_DONE
C5 +5V 77 14 3 4

5
IO, RDN3 nCONFIG

160k
DGND
DGND
DGND
DGND
DGND
DGND
DGND
AGND1
AGND1
AGND2
AGND2
AGND2
AGND2
AGND2
AGND3
AGND3
AGND3
AGND3
AGND4
100n 33p

10k
L16

Figure 2. Si vous oubliez la nuée de filtres passifs, de condensateurs de découplage, de lignes de bus et d’alimentation,
IC8 80 9 5 6
IO, VREFB5N0 nSTATUS

1
7
5
100n

35
42
43
53
62
64
34
13
16
18
28
23
29
31
32
11
100k 83 7 8
C46 IO 88 R44
R26 84 CLK7, DIFFCLK_3n 10k 9 10
100n IO, DIFFIO_R8n 89 R45
85 CLK6, DIFFCLK_3p 10k
IC8, IC9, IC10 = 74AHC1GU04W5-7 PMV65XP IO, DIFFIO_R8p, (DQS1R/CQ1R#,DPCLK4) 90 R46
T1 86 CLK5, DIFFCLK_2n 10k
IO, DIFFIO_R7n, (DEV_OE) 91 R47 +2V5D JTAG
R28 87 CLK4, DIFFCLK_2p 10k
R27 L17 IO, DIFFIO_R7p, (DEV_CLRn)
10k 35 L18
VCCA1

NM
23 107 L19

4
IC7 CLK1, DIFFCLK_0n VCCA2
5
+1V2
C49 R29 24 37 L20
P1 1 Vdd 3 2 4 CLK2, DIFFCLK_1p VCCD_PLL1
Vc 27R 25 109 L21
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
PAD
GNDA2
GNDA1

C47 C50 CLK3, DIFFCLK_1n VCCD_PLL2


3

100p
4

C73 C74 C75 C76 C77 C78


19
22
27
41
48
57
63
79
82
95
36

GND C48 IC9


118
123
131
140
145
108

2
10k 100n 100n 100n
100n 100n 100n 100n 100n 100n
ASVTX-09-20.000MHZ-T 150177 - 18
R30 +3V3
L40
10k R32 R33 R48
JP1 JP2 JP3
Ext. clock
10k

5
330R
330R

K5 C51 R31
1 2 4
27R
C52 LED1 LED2
2
3

100p
IC10
100n
applications typiques sont quand même
en ondes courtes (OC), en dessous
de 30 MHz et dans la bande amateurs LPF 32 LPF

de 2 m (144-146/148 MHz).
cos 2x 10 bit
24 bit
Pour la réception des OC, on peut se @ 1.25 MSPS
construire une radio simple comme à la from ADC Audio out
1.25 MHz
OSC Bandwith setting AGC Demod
figure 3. On fait passer le signal d’an- 4
16 bit
@ 25 KSPS
tenne par un filtre passe-bas avant de to Codec
sin
l’amplifier. En le mélangeant avec le
Q RSSI
signal d’un oscillateur local (LO) issu du LPF 32 LPF
CN/A A, on convertit vers 45 MHz, la
fréquence voulue, puis on l’envoie à un 39 KSPS 150177 - 13

filtre à quartz. On amplifie le signal à


fréquence intermédiaire (IF) avant de
Figure 4. La chaîne de traitement du signal implémentée dans le FPGA.
l’appliquer à un second mélangeur qui
le convertit vers une nouvelle FI centrée
sur 312,5 kHz (nous y reviendrons) à hautes fréquences d’échantillonnage et raisonnable. Avec 24 bits, la plage dyna-
l’aide d’un second oscillateur local fourni une haute résolution impliquent d’ha- mique numérique est de plus de 100 dB,
par le CN/A B. Le second signal FI est bitude des coûts élevés et de fortes ce qui rend superflu le contrôle de gain
alors numérisé par le CA/N et transmis demandes de puissance résultent sou- dans les blocs analogiques et du même
au FPGA où il sera traité et finalement vent en pauvres compromis. coup simplifie énormément les circuits
démodulé dans la gamme audio. du récepteur.
En comparaison de nombreuses autres 2. La seconde FI est basse,
radios logicielles, cette structure est mais pas nulle Traitement du signal numérique
avantageuse pour deux raisons. Ceci signifie qu’un signal d’interférence – réception
dans la bande passante du filtre (norma- C’est le boulot du FPGA de traiter le
1. Principe du superhétérodyne lement 15 kHz) ne peut pas se mélanger signal d’entrée numérisé. La figure 4 est
à double conversion pour produire une fréquence qui inter- un synoptique simple des blocs utilisés.
Le signal est d’abord mélangé pour obte- fère avec le signal reçu. Ce genre de Le CA/N numérise le signal d’en-
nir une FI élevée pour le filtrer. Puis il produits de mélange seront échantil- trée centré sur 312,5 kHz à un taux
est converti vers une FI plus basse avant lonnés, mais éliminés numériquement de 1,25 Méch./s. Avec 24 bits par échan-
la numérisation. C’est utile parce que après parce qu’ils sont renvoyés sous tillon à 1,25 Méch./s, il y aurait à trai-
les signaux puissants à des fréquences la fréquence voulue du signal centrée ter 30 Mbit/s. C’est nettement plus que
différentes de celle à recevoir sont éli- sur 312,5 kHz. Comme cette fréquence nécessaire, les premiers traitements
minés par le filtre à bande étroite situé n’est pas très élevée, elle ne requiert numériques consistent donc à déplacer
en amont de la chaîne. Tout bénéfice qu’un taux d’échantillonnage dans la vers le bas et à sous-échantillonner le
pour la sélectivité comme pour la plage gamme de 1 à 2 Méch./s pour lequel flux d’entrée. Le signal est multiplié par
dynamique, ce qui permet de recevoir on trouve des CA/N de 24 bits d’un prix deux séquences : [0, 1, 0, −1, 0,…] une
des signaux faibles dans le voisinage de
puissants.
Les projets simples de SDR utilisent sou- Listage 1. Implémentation en VHDL d’un convertisseur abaisseur
vent le principe de la FI zéro : un seul au ¼ du taux d’échantillonnage.
mélangeur, pas de filtre et juste une if ns = 0 then
numérisation à fréquence audio autour Ia(write_pointer) <= signed(Data_in); -- 1
de la porteuse. Cela limite la possibilité Qa(write_pointer) <= to_signed(0,24); -- 0
de traiter des interférences sérieuses, du
ns := 1;
fait que des produits de mélange indé-
elsif ns = 1 then
sirables peuvent alors atterrir dans la
Ia(write_pointer) <= to_signed(0,24); -- 0
gamme audio et provoquer la distorsion
du signal utile. Qa(write_pointer) <= signed(Data_in); -- 1
Des solutions plus particulières consistent ns := 2;
à échantillonner simplement une large elsif ns = 2 then
portion du spectre de fréquence (direct Ia(write_pointer) <= (not signed(Data_in)) + 1; -- -1
sampling) et effectuer l’accord dans le Qa(write_pointer) <= to_signed(0,24); -- 0
domaine numérique. Une méthode qui ns := 3;
permet d’observer de larges plages du elsif ns = 3 then
spectre, mais quand on veut conser- Ia(write_pointer) <= to_signed(0,24); -- 0
ver une bonne sélectivité et une ample Qa(write_pointer) <= (not signed(Data_in)) + 1; -- -1
dynamique, les impératifs de linéarité
ns := 0;
de l’étage d’entrée et de résolution utile
end if;
du CA/N deviennent très stricts. De

www.elektormagazine.fr juillet/août 75
freq. word

signals bandlimited
cos
to 1.6 kHz
Audio Audio
OSC
address ROM data
sinetable
1.7 kHz
sin
Q
Q 150177 - 16
150177 - 14
150177 - 15

Figure 5. Démodulation du signal à modulation Figure 6. Démodulation des signaux à bande Figure 7. Le principe opératoire du DDS. Le
d’amplitude (AM). latérale unique (SSB) et à onde entretenue bloc marqué d’un sigma est l’accumulateur de
(CW). phase.

onde sinusoïdale exactement au quart par 1, 0 et −1 est facile (listage 1). La tâche du bloc suivant, le contrôle
du taux d’échantillonnage et [1, 0,−1, Avec d’autres fréquences, il aurait fallu automatique de gain (AGC), est donc
0, 1,…] une onde cosinusoïdale (iden- mettre en œuvre une table de sinus et de surveiller en permanence la force du
tique à la première séquence, mais déca- des multiplicateurs à 24 bits. signal et de le graduer pour en sortir des
lée d’une position, soit 90 °) ; le signal Dans l’étape suivante, on soumet encore flux de seulement 10 bits à démoduler.
à 312,5 kHz devient un signal en quadra- les deux signaux à un filtre passe-bas. Le bloc AGC fournit aussi l’indication de
ture centré sur 0 Hz. Ces signaux sont Ici, les fréquences de coupure doivent la force du signal reçu (RSSI).
alors transmis à des filtres passe-bas s’adapter au mode opératoire choisi. Vient ensuite le démodulateur. Démodu-
qui les divisent par 32 (simplement en En AM, elles sont à 5 kHz pour une lar- ler un signal AM, c’est en extraire l’am-
éliminant 31 échantillons sur 32) pour geur de bande de 10 kHz. En téléphonie plitude en utilisant le théorème de Pytha-
arriver à un taux voisin de 39 kéch./s. en SSB (bande latérale unique), elles gore pour deux vecteurs orthogonaux :
Ces deux signaux sous-échantillonnés sont aux alentours de 1,6 kHz (bande √(I2+Q2), cf. figure 5. Pour démoduler
contiennent maintenant chacun une passante de 3,2 kHz) et pour la bande la SSB (et le morse), l’opération est hélas
information de 0 à env. 10 kHz ; combi- étroite CW (tout ou rien, code morse), on un peu plus compliquée. On a eu recours
nés, ils représentent l’information qui se ne filtre que quelques centaines de hertz. à la méthode de Weaver [2] [3]. L’idée
situait à ±10 kHz autour de 312,5 kHz Une résolution de 2×24 bits représente de base (fig. 6) est de séparer la largeur
dans le signal d’entrée. encore une énorme quantité de données de bande du signal en deux et de pro-
Si vous doutez de l’explication, sachez à interpréter. Pour en extraire l’infor- duire localement un signal en quadrature
que la formule marche uniquement mation intéressante, à basse fréquence pour le mélanger de
parce que la seconde FI a été choisie donc démoduler, nouveau au milieu de la bande. Choisir
pour être exactement le quart du taux on n’a pas besoin entre la bande latérale supérieure (USB)
d’échantillonnage de 1,25 MHz. C’est de tous ou la bande inférieure (LSB) n’est plus
ce qui permet de constituer ces bits. que l’affaire d’un signe lors de l’addition.
simplement le conver- Le signal audio démodulé passe enfin par
tisseur vers le bas un filtre passe-bas pour retirer toutes
en VHDL, parce les composantes HF de distorsion dans
que multiplier l’AGC ou le démodulateur. Il est alors
ré-échantillonné pour correspondre au
taux voulu par le CODEC audio et y est
envoyé par interface sérielle standard
PCM. Le CODEC audio programmable
peut amplifier et attaquer directement
un HP ou un écouteur.
Les signaux de l’oscillateur local (LO) à
la sortie des deux CN/A sont produits
par deux blocs de synthèse numérique
directe (DDS) dans le FPGA. Ce genre
de synthétiseur consiste en un registre
à accumulation de phase dont la valeur
augmente d’une quantité fixe à chaque
coup de l’horloge à 120 MHz du CN/A,
laquelle provient d’une boucle à phase
asservie (PLL) du FPGA ; l’augmenta-
tion détermine donc la fréquence. La
valeur de l’accumulateur sert d’adresse

76 juillet/août 2017 www.elektormagazine.fr


liste des
composants

www.elektormagazine.fr juillet/août 77
carte adéquate. Pour des essais ou si
l’on préfère un système informatique, un
Raspberry Pi peut faire l’affaire. Pour RPi
ou tout ordinateur sous Linux, il existe
une applet en Python basée sur la suite
graphique GTK qui rend la commande
facile. Sinon, l’applet se connecte à la
carte FPGA par le port sériel. Il y a aussi
un mode d’identification expérimental
qui permet la radiocommande. L’idée
est de mettre en œuvre un serveur sur
un RPi à proximité de la radio et de le
connecter au RPi par l’applet depuis un
ordinateur distant. Avec le pullulement
de parasites d’origine humaine dans
Figure 8. Le prototype construit par l’auteur, il opère en USB à 144 MHz.
les centres urbains et les limitations et
règlements qui y empêchent l’usage de
grandes antennes, la télécommande
Liens intéresse de nombreux radioamateurs
[1] www.elektormagazine.fr/150177 et radioécouteurs d’ondes courtes (SWL).
[2] Donald K. Weaver Jr., « A Third Method of Generation and Detection of Il devrait aussi être possible d’amener
Single-Sideband Signals », www.h4.dion.ne.jp/~ja5fp/weaver.pdf l’audio du FPGA directement sur les ports
PCM/I²S du RPi au lieu de passer par
[3] Daniel Uppström, « Weavers metod för SSB », ESR Resonans 2/2014, http://
l’audio analogique en opération à dis-
resonans.esr.se/ESR_Resonans_2014_2.pdf (en suédois)
tance, reste à en vérifier la faisabilité.
[4] www.elektormagazine.fr/labs/ Un document joint au code source
fpga-dsp-radio-for-narrow-band-communications-150177-i explique comment télécharger l’applet,
[5] https://github.com/ast/dspsdr installer le nécessaire et brancher le RPi
à la carte FPGA.

dans une table de sinus à consulter et Quartus Lite, à télécharger gratuitement Conclusion
cette lecture est transmise au CN/A du site d’Intel/Altera. Si l’EDI complet ne Ce projet est un sérieux point de départ
(fig. 7). Le mot de fréquence pour vous intéresse pas, n’en prenez que les pour les radioamateurs et enthousiastes
le CN/A A qui forme l’oscillateur local applications nécessaires pour la program- qui veulent construire leur radio sans
accordable a une largeur de 25 bits. Cela mation seule. La suite Quartus est dispo- compromis sur les prestations. Nous
correspond à un pas de fréquence de nible tant pour Windows que pour Linux. espérons aussi qu’il incitera des adeptes
120 × 106 / 225 = 3,57 Hz. Il y a en outre du numérique à découvrir le monde de la
un réglage fin qui travaille sur des valeurs Interface de commande radio et du traitement du signal.
fractionnaires pour une résolution finale À l’allumage, le micrologiciel passe de la Il laisse place à de nombreux perfec-
de 0,44 Hz. mémoire de configuration vers le FPGA, tionnements et compléments. S’il suscite
Pour le second LO, qui est à fréquence qu’il faut encore initialiser et commander l’intérêt auprès des lecteurs, nous pro-
fixe pour la conversion entre la première par I²C ou port sériel. Le FPGA ressemble poserons d’autres cartes radio évoluées.
FI et la seconde, le DDS est réalisé à à une puce ordinaire dont on doit régler Le code VHDL pour le FPGA à source
plus basse résolution pour préserver les quelques registres. Tout transit vers le ouverte est disponible sur [5], toute idée
ressources du FPGA, sa précision est FPGA compte cinq octets : deux pour d’ajout ou de perfectionnement est la
d’environ 38 Hz. donner l’adresse du registre destinataire, bienvenue.
les 38 bits restants sont les données de Finalement, la carte est assez généra-
Programmation du FPGA configuration. liste pour servir à d’autres projets centrés
Le micrologiciel compilé pour ce projet On peut lire quelques signaux d’état sur l’utilisation des FPGA en traitement
est disponible dans un fichier de configu- ainsi que la valeur de force du signal numérique du signal.
ration JTAG indirecte (trx.jic) qui confi- reçu (RSSI), mesurée plusieurs fois par (150177 – version française : Robert Grignard)
gure le FPGA en passerelle pour ensuite seconde pour en être informé.
charger la mémoire de configuration Dans les pages [1] [4] et [5] du projet,
par le truchement du FPGA. On le fait vous trouverez une description détaillée
à l’aide d’un câble de téléchargement
USB-Blaster™ de connexion à un PC
de cette interface avec toute la cartogra-
phie des registres, le micrologiciel et son
dans l’é-choppe
par USB pour former une interface JTAG code source dans un dépôt GIT. ª150177-1 : circuit imprimé nu
pour carte DSP à FPGA
pour la carte. Ce genre d’adaptateur ne Une radio indépendante, on la commande
ª150177-91 :
coûte pas cher sur les sites commerciaux d’ordinaire par une carte à µC avec affi-
carte DSP à FPGA prête à l’emploi
populaires. cheur et boutons, comme Platino d’Elek-
Le logiciel à installer sur le PC s’appelle tor. Un prochain article présentera une

78 juillet/août 2017 www.elektormagazine.fr


optocoupleurs
drôle de composant n°31
Neil Gruending (Canada)

Parfois il est nécessaire d’isoler des cir-


cuits les uns des autres, pour la sécurité,
pour réduire le bruit ou même simplifier
une fonction. Un exemple classique est
la photorésistance que Gibson et Fen-
der utilisaient pour ajouter des effets de
trémolo dans les premiers amplis pour
guitare. Cette photorésistance était une
forme primitive de coupleur optique, ou
optocoupleur, qui faisait varier la résis-
tance d’une cellule au sulfure de cad-
mium (CdS) avec une source de lumière
pour moduler la polarisation de l’ampli-
ficateur et créer des effets de trémolo.
Ces optocoupleurs étaient faciles à fabri-

petits signaux, mais n’est pas pratique rapidité, moins sensibles aux change-
pour transmettre de l’énergie comme ments de température. Les détecteurs
avec un transformateur d’isolement. La ont également changé, des cellules CdS
zone d’isolement implique aussi que les aux photodiodes et phototransistors.
deux côtés du circuit seront toujours Les photodiodes sont utilisées pour les
isolés, même si l’optocoupleur cesse de interfaces logiques à haute vitesse. Les
fonctionner. Cela rend les optocoupleurs phototransistors sont plus lents et leur
idéaux pour protéger les circuits. courant de sortie est lié à celui de la LED.
L’étendue de la zone entre la source lumi- Une photorésistance est un exemple d’op-
neuse et le récepteur définit la tension tocoupleur linéaire : une variation du cou-
d’isolement : plus la zone est grande, rant dans la lampe (émetteur) entraîne
plus cette tension est élevée. Les com- un changement identique de la résis-
posants qui n’ont besoin que de quelques tance de la cellule CdS (récepteur). Les
kV d’isolement ont typiquement une optocoupleurs numériques, quant à eux,
structure planaire, comme le composant sont faits pour transmettre des signaux
Figure 1. Structures d’optocoupleur [1]. du haut de la figure 1. Le composant binaires et donc optimisés pour la vitesse.
du bas utilise un dôme de silicone où la En fait, certains optocoupleurs, comme
quer à partir de composants discrets et lumière circule horizontalement pour per- ceux de la famille HP 6N137/HPCL2601
des entreprises comme VacTec ont fini mettre la création de zones d’isolement comportent même un circuit additionnel
par les intégrer en un unique composant plus étendues et donc pour atteindre des du côté du détecteur pour augmenter
dans les années soixante. tensions d’isolement plus élevées. encore un peu plus leur vitesse.
En général, un optocoupleur utilise de la Les optocoupleurs utilisaient à l’origine Les optocoupleurs sont utilisés depuis
lumière pour relier des circuits isolés l’un des lampes incandescentes ou au néon longtemps et toujours utiles aujourd’hui,
de l’autre. Cette zone d’isolement per- comme source de lumière, mais ils ont même avec l’apparition des isolateurs à
met au circuit de supporter des surten- rapidement évolué dans les années 70 couplage magnétique et capacitif. J’es-
sions élevées (kV) et du bruit qui, nor- quand les LED sont apparues. Les LED père vous avoir donné un bon aperçu de
malement, détruiraient les composants constituent une grande avancée sur les ces humbles composants.
sensibles. Mais isoler deux parties d’un lampes au néon : meilleures linéarité et (160136 – version française : Kévin Petit)
circuit n’est pas très utile si l’on ne peut
pas faire passer de signal entre les deux ;
c’est pourquoi les optocoupleurs com- Lien
portent d’un côté une source de lumière
[1] https://upload.wikimedia.org/wikipedia/commons/thumb/1/10/Optoisolator_
et de l’autre un détecteur (fig. 1). Cette
topologies_both.svg/220px-Optoisolator_topologies_both.svg.png
structure fonctionne très bien pour les

www.elektormagazine.fr juillet/août 79
PROJET DU LABO

MicroPython et PyBoard
de la LED qui clignote …
au serveur web qui fait clignoter une LED

Clemens Valens (labo d’Elektor)

Depuis la première édition de 1991, le langage de programmation


Python s’est largement répandu. Il est devenu l’un des langages préférés
de nombreux programmeurs. Pensé au départ pour les applications sur PC, Python a aussi été porté sur les
systèmes embarqués où il s’appelle MicroPython (uPy) ; c’est un sous-ensemble de Python qui s’exécute sur
des plateformes comme la carte BBC micro:bit et l’ESP8266. Il tourne également sur la PyBoard, la carte de
démonstration uPy officielle.

Le projet Micro Python (initialement ce qu’il en est sorti. Jouons un peu avec le contenu du lecteur détecté et baptisé
écrit en deux mots), pyboard comprise, la pyboard et uPy. PYBFLASH. Le système d’exploitation
a été lancé sur Kickstarter fin 2013 et devrait également détecter un port série.
il a recueilli plus de six fois le montant Prise en main de la pyboard
initial prévu de 15 000 £. La promesse Vous aurez besoin d’une pyboard v1.1 Après avoir ouvert un programme pour
de prendre en charge les modules (PYBv1.1, joliment emballée !), d’un terminal série (Tera Term), il suffit de le
CC3000 (Wi-Fi), WIZ820io (Ethernet) câble micro-USB et d’un ordinateur (j’ai connecter au port de la carte pyboard
et NRF24L01+ (sans fil à faible utilisé un portable sous Windows 10). En et d’appuyer sur une touche pour voir
consommation) n’y est sans doute pas raccordant la carte à l’ordinateur, une l’invite de Python apparaître (fig. 1):
pour rien. Quatre ans plus tard, voyons fenêtre s’ouvre immédiatement et affiche
MicroPython v1.8.2 on 2016-07-13;
PYBv1.1 with STM32F405RG
Type "help()" for more
information.
>>> 
>>> 

Bravo, rapide comme l’éclair ! Vous


pouvez commencer à travailler moins
d’une minute après avoir connecté la
Figure 1. La REPL. carte (une minute essentiellement passée

80 juillet/août 2017 www.elektormagazine.fr


à promener la souris pour ouvrir les en allumant la LED(3) ; à titre d’exercice,
menus de l’OS et y naviguer). je vous laisse le soin d’éteindre les LED. Caractéristiques
Pour faire clignoter une LED indéfiniment, • Programmation en MicroPython
REPL il faut une boucle, par ex. while. Pour • Serveur web simple
Vous êtes maintenant confronté à un que la boucle ne s’arrête pas, utilisez • 100% sans Arduino
environnement de programmation une condition qui sera toujours vraie, par
interactif simple, capable de saisir des ex. la constante booléenne VRAI (TRUE).
expressions individuelles, de les évaluer Saisissez la commande (n’oubliez pas le
et d’afficher le résultat. Il s’agit d’une « : » en fin de ligne)
boucle Lire-Évaluer-Imprimer ou REPL
(Read–Evaluate–Print loop). Il est >>> while True: infos sur le projet
important de connaître ce sigle, car avec
Python MicroPython
Python, vous le rencontrerez souvent. Ensuite, tapez une commande LED. Le
Ceux qui ont programmé en BASIC terminal indente automatiquement le pyboard
seront familiers avec ce type d’interface texte conformément aux règles Python serveur de web
même si, à l’époque, elle ne s’appelait (trois points). Entrez une commande
pas REPL. Python est, comme le BASIC, de délai pour fixer la fréquence de Æ débutant
un langage de programmation interprété clignotement, 250 ms, par exemple. Le connaisseur
et, comme le BASIC, il peut aussi être programme ressemble à ceci : expert
compilé pour tourner plus vite. En fait,
Python ressemble beaucoup au BASIC. >>> while True:
...     pyb.LED(3).toggle() 2 h environ
Étape suivante : faire clignoter ...     pyb.delay(250)
une LED ...
Comme l’invite le suggère, tapez pyboard v1.1,
« help() » et appuyez sur la touche Pour que cette boucle fonctionne, arrêtez PC,
Entrée. Une liste de commandes le mode indentation en appuyant sur les terminal série
possibles s’affiche : vous pouvez touches Retour arrière, puis Entrée. La
démarrer. En regardant cette liste de LED3 doit alors clignoter à la fréquence
plus près, vous devinerez rapidement définie. Comme vous l’avez peut-être Env. 35 €
de quoi la carte est capable. Construite remarqué, le terminal n’accepte pas les
autour du µC STM32F405RG ARM Cortex- commandes pendant l’exécution de la
M4F, la carte dispose d’une horloge en
temps réel (RTC), d’un convertisseur
analogique/numérique (CA/N), d’un
convertisseur numérique/analogique
(CN/A), de quatre LED, d’interrupteurs,
d’un accéléromètre, d’un générateur de
nombres aléatoires (RNG), des interfaces
I²C, SPI, UART, de lignes d’E/S et elle
peut piloter des servomoteurs. Comme
certaines fonctions de commande de ces
périphériques sont également listées,
l’aide s’avère relativement complète. Il
suffit de regarder la carte pour repérer
le connecteur de carte SD.
À l’invite, tapez la commande ci-dessous
et appuyez sur <Entrée>.

>>> pyb.LED(1).on()

Remarquez qu’une LED rouge à côté


du poussoir USR s’illumine. Répétez la
commande en tapant « 2 » au lieu de
« 1 » (utilisez les flèches pour retourner
à la commande précédente et l’éditer),
une LED verte s’allume juste à côté de la
rouge. La 3e LED est jaune, la 4e bleue.
À l’exception de la jaune, les LED sont
extrêmement lumineuses et mieux vaut
ne pas les regarder en face. Continuons Figure 2. MicroPython contient aussi une aide en ligne complète.

www.elektormagazine.fr juillet/août 81
Comment sortir d’une impasse
Soyez créatif ! Essayez et corrigez vos
erreurs. Si vous arrivez à déstabiliser
le système au point que rien ne semble
plus fonctionner, il y a deux procédures
de secours : le mode protégé et
l’initialisation avec les paramètres
d’usine. En mode protégé (safe mode),
les fichiers boot.py et main.py ne sont
pas exécutés, ce qui vous donne accès
au système de fichiers (le lecteur USB
devrait apparaître). Vous pouvez alors
modifier boot.py et main.py pour corriger
les problèmes. Pour passer en mode
protégé, maintenez le poussoir USR
enfoncé tout en actionnant brièvement
RST. Regardez maintenant les LED ;
quand seule la jaune est allumée,
relâchez USR : la carte est maintenant
en mode protégé.
L’initialisation avec les paramètres par
défaut (factory reset) va un peu plus
loin. Elle supprime tous les fichiers
de l’espace de stockage interne de la
pyboard (et non pas de la carte SD),
et restaure l’état d’origine des fichiers
Figure 3. DfuSe en plein chargement d’un nouveau micrologiciel vers la pyboard.
boot.py, main.py, README.txt et pybcdc.
inf. Pour réinitialiser la carte, utilisez
la même procédure que pour démarrer
boucle. Pour arrêter la boucle et retourner de trois entiers). J’ai obtenu trois lignes en mode protégé, mais quand les LED
à l’invite, appuyez sur Ctrl-C (« interruption par seconde, ce n’est pas très rapide ! changent d’état, relâchez USR quand la
du programme en cours d’exécution »). Le programme n’est pas traduit en langage jaune et la verte sont allumées. La LED
Dès lors, toutes les commandes saisies machine (compilé). Il est interprété au fur jaune clignote trois fois et vous êtes de
pendant l’exécution de la boucle vont à leur et à mesure, cela explique cette lenteur, retour au point de départ : le début de
tour s’exécuter. Mieux vaut être prudent car même s’il n’y a qu’une instruction cet article.
et ne pas entrer n’importe quoi ! (en omettant le while), elle est en réalité Si ces deux méthodes échouent, il y a
très complexe. Il est possible d’améliorer un dernier recours : reprogrammer le
Accéléromètre embarqué sur la les choses en créant des « modules micrologiciel. Pour cela, placez la carte
pyboard figés (frozen modules) », mais cela en mode « mise à jour du micrologiciel »
Voici comment savoir rapidement si sous-entend la compilation complète du (Device Firmware Update, DFU). Il faut
l’accéléromètre embarqué fonctionne microprogramme de la pyboard, ce qui relier la broche P1 au 3,3 V avec un
correctement. sort du cadre de cet article. trombone par ex. avant de réinitialiser
la carte avec le poussoir RST. Pour la
>>> while True: Mon premier programme première mise à jour, vous devrez peut-
...     print(pyb.Accel().x(),pyb. Après vous être amusé avec REPL, vous être installer un pilote DFU. Si Windows
Accel().y(),pyb.Accel().z()) vous demanderez sans doute comment ne parvient pas à installer ce pilote,
faire pour ne pas avoir à retaper vos aidez-le un peu. Téléchargez l’archive
La sortie devrait être une liste sans fin de instructions à chaque fois. C’est assez STSW-STM32080 (ou DfuSe Demo)
trois valeurs (axes x, y et z). Secouez la facile. Tout ce qu’il vous faut c’est un chez STMicroelectronics et installez-la.
carte dans tous les sens et vous verrez éditeur de texte. Pointez Windows sur <chemin
ces valeurs changer : La pyboard est accessible comme lecteur d’installation>\STMicroelectronics\
de carte flash. Avec un explorateur de Software\DfuSe v3.0.5\Bin\Driver\ pour
-1 -2 21 fichiers, vous verrez le fichier main.py. qu’il installe le pilote. Si tout s’est bien
-1 -2 20 C’est le fichier Python qui s’exécute à la passé, DfuSe Demo devrait maintenant
-2 -1 20 réinitialisation de la pyboard (matérielle lister la carte (fig. 3).
… à l’aide du poussoir RST ou logicielle par Le site de uPy propose des micrologiciels
Comme précédemment, faites Ctrl-C la commande Ctrl-D). Ouvrez ce fichier à précompilés. Attention : choisissez celui
pour retourner à l’invite. Ce test est l’aide d’un éditeur de texte et ajoutez-y qui correspond à votre carte. Dans la zone
intéressant, car il montre la vitesse vos commandes. Lorsque c’est fait, Upgrade or Verify Action (pas Upload
d’exécution d’une boucle apparemment enregistrez le fichier et réinitialisez la Action) cliquez sur Choose, naviguez
simple (lecture d’un capteur et impression carte pour lancer votre programme. jusqu’au fichier DFU à programmer puis

82 juillet/août 2017 www.elektormagazine.fr


cliquez sur Upgrade (pas Upload). Fermez un micrologiciel qui inclut les pilotes aurait dû. À sa décharge, le module
DfuSe, retirez le trombone et appuyez réseau ( pybv11-network-20170322- WIZ810io à base de W5200 n’est pas
sur RST. Vous devrez peut-être procéder v1.8.7-461-g58f23de.dfu). le plus récent.
à une réinitialisation à l’état d’usine pour J’ai copié/collé le code d’un serveur Bon, même si remplacer sendall par send
initialiser le système de fichier sur la simple dans m a i n . p y , mais il ne fut facile, cela n’a pas fait fonctionner
mémoire flash. Dans mon cas, j’ai dû fonctionnait pas. Comment déboguer ? mon serveur web. Il m’a fallu un bon
laisser Windows réparer le lecteur de J’imagine qu’on a le choix entre moment pour trouver le problème :
la pyboard après une mise à jour du ajouter des messages de dépannage le champ content-length n’était pas
micrologiciel. au programme ou l’exécuter ligne par présent dans l’entête HTTP envoyé par
Sur Linux ou Mac OS, prenez l’outil dfu- ligne dans la REPL ; j’ai opté pour la mon serveur. Après l’avoir ajouté, ma
util ou pydfu. deuxième solution. Cette technique, page MicroPython s’affichait enfin dans
bien que fastidieuse, m’a rapidement mon navigateur (listage 1).
Vous n’êtes pas le seul à faire montré que l’appel à la méthode sendall En insérant le code fonctionnel dans
des erreurs de mon objet socket était invalide main.py, j’ai eu quelques surprises.
Au début de l’apprentissage de l’écriture (voir code de [4] pour voir de quoi j