Les 10 Meilleurs Projets D'elektor

  • Uploaded by: Olivier PERRIN
  • 0
  • 0
  • March 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Les 10 Meilleurs Projets D'elektor as PDF for free.

More details

  • Words: 37,079
  • Pages: 69
Loading documents preview...
BEST-OF SERIES

LES 10 MEILLEURS PROJETS D’ELEKTOR EDITORS CHOICE

69 pages pour

7,95 €

9,95 € pour non membres

SELECT

DÉCOUVRIR

CRÉER

PARTAGER

UVRIR ● CRÉER ● PARTAGER ● DÉCOUVRIR ● CRÉER ● PARTAGER ● DÉCOUVRIR ● CRÉER ● PARTAGER ● DÉCOUVRIR ● CRÉER ● PARTAGER ● DÉC ● CRÉER ● PARTAGER ● DÉCOUVRIR ● CRÉER ● PARTAGER ● DÉCOUVRIR ● CRÉER ● PARTAGER ● DÉCOUVRIR ● CRÉER ● PARTAGER ● DÉCOUVRI R ● PARTAGER ● DÉCOUVRIR ● CRÉER ● PARTAGER ● DÉCOUVRIR ● CRÉER ● PARTAGER ● DÉCOUVRIR ● CRÉER ● PARTAGER ● DÉCOUVRIR ● CRÉ OUVRIR ● CRÉER ● PARTAGER ● DÉCOUVRIR ● CRÉER ● PARTAGER ● DÉCOUVRIR ● CRÉER ● PARTAGER ● DÉCOUVRIR ● CRÉER ● PARTAGER ● DÉC ● CRÉER ● PARTAGER ● DÉCOUVRIR ● CRÉER ● PARTAGER ● DÉCOUVRIR ● CRÉER ● PARTAGER ● DÉCOUVRIR ● CRÉER ● PARTAGER ● DÉCOUVRI

Personal Download for François Cariou | copyright Elektor

découvrir

créer

partager

testeur de transistors Platino type, brochage et gain Sunil Malekar (elektor.labs Inde) et Luc Lemmens (elektor.labs)

Ce testeur permet de trier comme bons ou mauvais les transistors sans référence ou douteux, de déterminer leur type et de mesurer leur gain. L’instrument repose sur Platino et peut tester les transistors bipolaires PNP et NPN, ainsi que les MOSFET à canal N ou P.

Certains trouvent fastidieux de lire le marquage d’un transistor et de chercher ses caractéristiques dans une fiche

technique. D’autres vous diront qu’il n’est pas de meilleure loupe pour identifier ces petites bêtes à trois pattes. Quoi qu’il

Caractéristiques

+5V

+5V

65 Ω

NMOS VGS = VTH

B PNP

S

RSW RE

RC

RE 1k

RB

230 Ω

100k

1k

RE

VB = RB • IB

C

(RE + RSW)

E 65 Ω

La muse Elektor

G

E

RSW

RC

D

RSW

B NPN

RB

Ce testeur est le troisième instrument de la panoplie d’appareils d’essai que nous concevons à partir de la carte Platino [1]. Il permet d’identifier le brochage du composant testé (base, collecteur, émetteur ; grille, source, drain), son type (PNP/NPN ; canal N ou P), sa technologie (bipolaire/MOSFET) et, bien sûr, son gain en courant HFE. La carte Platino dispose de tout ce qu’il faut pour créer une interface entre un circuit intrinsèquement analogique d’analyse du composant testé et un LCD et un poussoir. Le tout est gouverné par un micrologiciel exécuté par l’ATmega de la Platino.

VE = (5V - VTH) •

C

RE



RC

230 Ω

+5V

100k

c

VB = 0V

b

1k

RB

a

230 Ω

100k

VB = RB • IB

• Teste les bipolaires NPN/PNP et les MOSFET à canal N/P • Gain mesurable : entre 5 et 999 (environ) • Identification automatique du type (bipolaire/MOSFET, P/N) et du brochage (B/C/E, grille) • Indique si le transistor est défectueux ou n’est pas un transistor • Microcontrôleur ATmega32 sur la carte Platino d’Elektor • Programme (gratuit) en BASCOM AVR • LCD 20 x 4 caractères • Commande et lecture par terminal série (optionnel) • Alimentation : 12 à 18 VCC

130544 - 13

Figure 1. Configurations pour la mesure du gain (β) pour un transistor, et de la tension de seuil pour un MOSFET.

62

mars 2015

en soit, un testeur n’est jamais de trop (Internet non plus) lorsqu’il s’agit d’effectuer des tris rapides de type bon/ mauvais, des tests de résistance aux chocs mécaniques ou thermiques, ou encore, pour les audiophiles, des appariements de composants.

La conception du testeur a été inspirée par l’analyseur de semi-conducteurs de M. Waleczek publié dans Elektor en 2005 [2]. Téléchargez l’article (gratuit pour les membres abonnés) si la théorie sur laquelle s’appuie la méthode « d’essai en aveugle » du testeur vous intéresse, seul l’aspect pratique du circuit est abordé ici. Par « essai en aveugle » nous voulons simplement dire que le testeur peut s’utiliser sans savoir si le transistor en question est bipolaire ou MOSFET, PNP ou NPN, canal P ou N, ou si son gain vaut tant ou tant. Un essai en aveugle ne doit bien sûr ni détruire le composant en test

www.elektor-magazine.fr

Personal Download for François Cariou | copyright Elektor

...

projet labs

(noté DUT ci-après, pour Device Under Test), ni le circuit du testeur.

Discours de la méthode La méthode décrite ci-dessous s’applique à la majorité des transistors ordinaires fonctionnant correctement et doit être considérée comme générique. Elle ne prévoit pas les cas particuliers des thyristors, Darlington, UJT, MOSFET logiques, transistors RF au germanium, transistors à diode de protection ou autre membre de la foisonnante faune à trois pattes. En cas de doute, supposez que l’essai porte sur un NPN bipolaire au silicium de type BC547B ou 2N2222. NPN ou PNP ? Deux des trois pattes du transistor, notées E (émetteur), B (base) et C (collecteur), sont reliées virtuellement à la masse via

projet de lecteur

des résistances de 100 Ω, tandis que l’autre est tirée au +5 V via une 5,6 kΩ. Une fois cette connexion établie, la chute de tension aux bornes de la résistance est mesurée et enregistrée. Le circuit forme ensuite d’autres connexions masse/5,6 kΩ avec les pattes, la chute de tension est mesurée pour chaque configuration créée. Le tableau 1 montre les valeurs théoriques qui devraient être mesurées pour des transistors NPN et PNP. Le signe – correspond à une liaison entre la masse et une résistance de 100 Ω, le signe + à une connexion entre le +5 V et la 5,6 kΩ. Un NPN donne deux valeurs d’environ 5 V, et une d’environ 0,7 V ; un PNP donne une valeur de 5 V et deux 0,7 V. Ce premier test permet également d’identifier la base du transistor puisqu’il s’agit de la patte dont la mesure aboutit à une valeur différente des deux autres.

...

...

Mesure du gain Puisque le test NPN/PNP ne détermine pas la position des pattes E et C, le gain est mesuré pour chacune des deux combinaisons possibles. La valeur finale est présumée être la plus grande des deux valeurs mesurées. Si les tensions mesurées ne correspondent à aucune des combinaisons du Tableau 1. Mesures initiales Type

NPN

PNP

E

B

C

Valeur mesurée





+

5 V

+





5 V



+



0,7 V





+

0,7 V

+





0,7 V



+



5 V

www.elektor-magazine.fr

Personal Download for François Cariou | copyright Elektor

mars 2015

63

PC7

PC6

8

9

10

1

2

3

4

5

6

7

8

9

10

+5V

PC6

PA7

7

PC7

PA6

6

PA7

PA5

5

PA6

PA4

4

PA5

PA3

K1

3

PA4

K2

PA2

GND

AREF 8

2

PA3

PB5

7

PA1

6

1

PA2

5

K1

PA0

4

Platino PCB

K5

PA1

3

8

PA0

2

7

partager

AREF

PB5

1

PB4

6

GND

PB4

PB3

PB2

5

PB3

4

PB2

3

PB1

2

PB0

1

PB1

créer

PB0

découvrir

+5V 16 1

T1

R13 4k7

PA3

2 4

BC548

PA0

5

3 C5

6

VCC

2Y0 2Y1

IC2

2Y2 2Y3

1Y0 1Y1 1Y2 1Y3

74HC4052 2Z

1Z S0

E

1n

VEE

GND

7

8

S1

12

R1

14

R4

15

R2

11

R3

100k 5k6

PC6

1k 100R

13 10

PC1

9

PC0

+5V 16 1

IC1 LM7805

D1

K5 +V –V

+5V

2 4

1N4007 C1 1000u 35V

C2 100n

5

C3 100n

C4

PA1

3 C6

100u 16V

6

VCC

2Y0 2Y1

IC3

2Y2 2Y3

1Y0 1Y1 1Y2 1Y3

74HC4052 2Z

1Z S0

E

1n

VEE

GND

7

8

S1

12

R5

14

R8

15

R6

11

R7

K4

100k 5k6

K3

PA6

1k 100R

13 10

PA7

9

PC7

K6 1 2 3

+5V 16

10

PB4

9

PB3

2

3

4

5

6

7

8

9

10 11 12

1

2

3

4

5

6

6

5

4

3

mars 2015

www.elektor-magazine.fr

Personal Download for François Cariou | copyright Elektor

2

1 GND

+5V

Figure 2. Schéma du testeur de transistors. La carte Platino est représentée par le pourtour bleu (au cas où vous la schtroumpferiez).

64

GND

1

+5V

K6

PD0

K3

PD0

+5V PD1

8

13

PD1

7

100R

RESET

GND

PB5

1k

RESET

VEE

S1

R11

PC5

E

11

5k6

PC5

S0

R10

PC4

1Z

15

100k

PC4

2Z

R12

PC3

1n

6

1Y3

74HC4052

R9

14

PC2

C7

2Y3

1Y2

12

PC3

3

2Y2

1Y1

PC1

PA2

IC4

1Y0

PC2

Transistor Tester PCB

4

2Y1

PC0

2

2Y0

PC1

5

VCC

PC0

1

K2

130544 - 11

...

projet labs

tableau 1, le composant est soumis à des tests spécifiques à d’autres composants (MOSFET et diode). Pour vérifier s’il s’agit d’un MOSFET, le gain est mesuré de façon similaire pour les six arrangements possibles des pattes. L’identification des autres pattes est réalisée en connectant le DUT selon une configuration en collecteur commun s’il s’agit d’un transistor bipolaire, ou en drain commun s’il s’agit d’un MOSFET (fig. 1a, b et c). Le gain (noté β sur la figure) est déterminé par la mesure de VB et VE d’après les relations :

projet de lecteur

Listage 1. Code BASCOM AVR (extrait) cls locate 1,1 'Transistor type and base/gate pin determined 'Now calculate transistor parameter and display results Select case T_type case 1: 'NPN HFE_cal ' (T_type, base_pin, C_pin, E_pin,beta) lcd "Type : N-P-N"

HFE = [(VE × RB) ÷ (VB × RE)] – 1

Locate 2,1

Le gain mesurable est compris entre 5 et 999 (environ). Un MOSFET à canal N (fig. 1c) se distingue d’un transistor bipolaire par son courant de grille presque nul. Dans ce cas, la tension de seuil vaut VCC – VE (en supposant un NMOS). Le testeur ne prend malheureusement pas en charge les JFET.

Locate 3,1

Matériel et logiciel interagissent étroitement. Commençons par un survol du matériel et de son fonctionnement. La figure 2 montre le circuit monté sur la carte Platino. La section construite autour d’IC2, IC3 et IC4 lit la tension qui règne aux bornes des trois pattes du transistor relié à K6. Les trois 74HC4052 sont des multiplexeurs analogiques à 4 entrées (4 vers 1). Leur rôle est d’établir différentes connexions afin de former les arrangements de pattes à tester. Les différentes configurations de résistance nécessaires à la mesure des paramètres du transistor sont définies (de façon logicielle) sur les entrées parallèles 1Yn/2Yn des multiplexeurs. La chute de

JP4 : PB0 JP5 : PB1 JP6 : PB2 JP14 : PC7

LCD "C = ";c_pin; " B = ";base_pin;" E = "; e_pin LCD "Hfe=";beta case 2: 'PNP HFE_cal ' (T_type, base_pin, C_pin, E_pin,beta) lcd "Type : P-N-P" Locate 2,1 LCD "C = ";c_pin; " B = ";base_pin;" E = "; e_pin Locate 3,1 LCD "Hfe=";beta

Description du circuit

JP3 : PC5

...

Les héros de notre enfance : 2N3055, BC547, OC75, BC107, BF451, AC127, 2N406, BC550C, BD137, et les vôtres ? TIP2955, 2N1613, 2N2219A

VE = RE × (HFE + 1) × (VB ÷ RB)

Tableau 2. Configuration des cavaliers Platino

...

Case 5: 'NMOS call cal_Vgs(Vt) lcd "Type : NMOS" Locate 2,1 LCD "D = ";c_pin; " G = ";base_pin;" S = "; e_pin Locate 3,1 lcd "Vth = ";fusing(Vt,"#.#");" V" CASE 6: 'PMOS Call cal_Vgs(Vt) lcd "Type : PMOS" Locate 2,1 LCD "D = ";c_pin; " G = ";base_pin;" S = "; e_pin Locate 3,1 LCD "Vth = -";fusing(Vt,"#.#");" V" end select

Tableau 3. Interface Platino-testeur Broche

Fonction

PA0, PA1, PA2:

broches CAN (ADC) reliées aux pattes du DUT pour lire les tensions

PA7, PB3, PB4, PC0, PC1, PC7:

lignes de sélection des multiplexeurs

PA6,PB5,PC6:

sortie numérique pour la configuration masse/+5 V avec les résistances

PB0–PB2:

codeur avec poussoir

PC5:

commande du rétro-éclairage du LCD

www.elektor-magazine.fr

Personal Download for François Cariou | copyright Elektor

mars 2015

65

découvrir

créer

tension résultante est lue en reliant une patte à VCC via une 5,6 kΩ (R4, R8, R12) tandis que les deux autres sont reliées à la masse via les 100 Ω (R3, R7, R11). Après lecture des tensions aux bornes de chaque patte via les sorties nZ des multiplexeurs, la base du DUT est identifiée en comparant ces valeurs et en s’appuyant sur le fait que la tension à ses bornes (par rapport à la « masse ») est toujours différente des tensions aux bornes des autres broches. Le type NPN/PNP/NMOS/ PMOS du DUT est alors déterminé par le programme d’après le tableau 1. Les sorties des 4052 sont reliées aux CAN de la Platino via les lignes de bus PA0, PA1 et PA2. Le transistor T1 sert de commutateur de calibrage. La section qui s’occupe de l’alimentation est construite de façon classique. La tension d’entrée est délivrée par un adapta-

partager teur CA/CC de 12 à 18 V relié au bornier K8. La diode D1 protège contre les inversions de polarité et le régulateur LM7805 se charge de fournir une tension régulée de +5 V au contrôleur et aux composants alimentés par le rail de +5 V.

Platino Nous avons déjà présenté et utilisé Platino dans plusieurs articles. Qu’on l’appelle carte ou plateforme, concrètement la Platino est composée d’un ATmega32 installé sur une petite carte équipée par défaut d’un LCD, d’un codeur rotatif et de poussoirs. Le placement de ses connecteurs est optimisé et sa programmation est facilitée par les outils AVR. Attention, les cavaliers doivent ici être montés comme l’indique le tableau 2, pas autrement ! Le tableau 3 résume le brochage de l’interface Platino-testeur. L’interface utilisateur se fait via le LCD

de 4 lignes et 20 caractères. Si votre projet nécessite une liaison sérielle pour lire les résultats du testeur et, disons un zeste d’interaction en plus, vous pouvez interfacer la Platino avec la passerelle Elektor BOB USB-série et amener les lectures DUT dans un émulateur de terminal. Partant de là vous n’aurez aucun mal à automatiser la création de feuilles de calcul et de rapports d’essai. L’interface du DUT est montée sur la Platino, à laquelle elle est électriquement reliée via les connecteurs K1, K5, K2/K6.

Programme Le micrologiciel pour l’ATmega32 est écrit en BASCOM AVR. La carte Platino ellemême a servi d’outil de développement durant toute l’élaboration du projet. Pour toute introduction, raffermissement ou approfondissement de vos connaissances

Liste des composants Résistances (5%, 250 mW) R1, R5, R9 = 100 kΩ R2, R6, R10 = 1 kΩ R3, R7, R11 = 100 Ω R4, R8, R12 = 5,6 kΩ R13 = 4,7 kΩ Condensateurs C1 = 1000 µF, 35 V, radial C2, C3 = 100 nF C4 = 100 µF, 16 V C5, C6, C7 = 1 nF Semi-conducteurs IC1 = MC7805 IC2, IC3, IC4 = 74HC4052 D1 = 1N4007 T1 = BC548 Divers K1, K2, K3 = embase femelle simple rangée, coupée dans une embase à 36 contacts K4 = embase femelle double rangée, coupée dans une embase à 72 contacts K5 = bornier à vis pour CI à 2 voies, au pas de 5,08 mm K6 = bornier à vis pour CI à 3 voies, au pas de 5,08 mm 3 supports CI DIP-16 circuit imprimé 130544-1 (réf. e-choppe) [ELPP : Composants Passe-Partout d’Elektor Labs]

Figure 3. Dessin du circuit imprimé du testeur. Une fois les composants implantés, le circuit peut être relié à la carte Platino.

66

mars 2015

www.elektor-magazine.fr

Personal Download for François Cariou | copyright Elektor

...

projet labs

projet de lecteur

...

...

Construction

Figure 4. Le testeur peut communiquer avec votre PC via un émulateur de terminal.

en BASCOM, rappelons l’atelier du microcontrôleur, dont le premier numéro de la série a été publié en avril 2014 [3]. Le code, dont le listage 1 montre un extrait, est disponible [4]. Le programme comprend trois modules principaux : Affichage Le module traitant l’affichage envoie sur l’écran le type du transistor, son brochage CBE et la valeur du gain (HFE) dans la configuration en collecteur commun. Test Cette partie lit la tension qui règne aux bornes de chaque patte du transistor. Les CI multiplexeurs servent à former les différents arrangements de pattes. La nature PNP/NPN/NMOS/PMOS est établie d’après la valeur des tensions lues. Calcul du gain HFE Le gain est mesuré en utilisant le CAN de la Platino. À cette étape, les deux autres pattes restent encore à identifier. Pour cela, une des pattes est supposée être le collecteur. Le transistor est alors connecté en collecteur commun, le gain est mesuré, puis une nouvelle fois mesuré après commutation des multiplexeurs afin de permuter les connexions. La valeur la plus grande est considérée comme la valeur correcte, ce qui permet d’identifier sans équivoque possible les pattes C et E.

Commencez par assembler sur la carte Platino le LCD, l’unique poussoir, l’ATmega32 et les autres composants, puis configurez les cavaliers selon le tableau 2. La carte d’extension est spacieuse et ne comprend que des composants traversants. Elle a en outre été conçue pour être arrimée à la carte Platino au moyen de connecteurs. Le montage ne devrait pas poser de problème si vous vous conformez à la liste des composants, au schéma d’implantation (fig. 3) et aux photographies de l’article. Un assemblage en boîtier et un support ZIF pour le DUT donneront un aspect pro à votre testeur. Connectez la passerelle BOB USB-série Elektor si vous souhaitez afficher la sortie du testeur dans un terminal série (fig. 4). Le débit est paramétré sur 9600 bauds. Si vous voulez programmer vousmême le microcontrôleur, référez-vous à la figure 5 pour la configuration des fusibles.

Figure 5. Configuration des fusibles pour l’ATmega32 de la Platino.

Et maintenant donne la papatte Mettez le testeur sous tension en branchant une alimentation CC de 12 à 18 V en K8. Reliez le transistor à tester au connecteur K6 en plaçant ses pattes dans n’importe quel ordre. Appuyez sur le poussoir ou, si vous souhaitez lire les résultats sur un terminal série (optionnel), entrez « T » depuis votre émulateur. La figure 6 montre quelques résultats obtenus avec deux composants innocents, piochés dans un tiroir du laboratoire Elektor par une main non moins innocente. (130544 – version française : Hervé Moreau)

Liens [1] Platino : Elektor, octobre 2011, www.elektor-magazine.fr/100892 [2] Analyseur de semi-conducteurs : Elektor, avril 2005, www.elektor-magazine.fr/030451 [3] L’atelier du microcontrôleur : Elektor, avril à novembre 2014. No 1 : www.elektor-magazine.fr/120574 [4] Téléchargements : www.elektor-magazine.fr/130544

Figure 6. Deux suspects (un transistor bipolaire et un MOSFET) passant aux aveux.

www.elektor-magazine.fr

Personal Download for François Cariou | copyright Elektor

mars 2015

67

découvrir

créer

partager

sonde différentielle active 2 GHz faites-la vous-même, encore mieux et moins cher

Alfred Rosenkränzer (Allemagne)

HDMI, DVI, USB, les signaux numériques rapides, on a l’habitude de les transmettre en mode différentiel. Pour les mesurer, il faut des sondes différentielles actives. Elles sont hors de prix pour l’amateur ou la petite entreprise. Alors, faites-les vous-même ! Le modèle présenté ici, dans un boîtier style clé USB, offre une très grande largeur de bande, près de 2 GHz.

Caractéristiques techniques • atténuation : 10:1 pour des signaux différentiels et bouclage de 50 Ω sur l’oscilloscope • impédance différentielle : 5 kΩ • impédance d’entée asymétrique : 2,5 kΩ • impédance de sortie : 50 Ω • bande passante : 1,9 GHz (–3 dB) • temps de montée/descente : 300 ps • alimentation : ±8 à 12 V CC

On rencontre de plus en plus de signaux numériques rapides : FireWire, Panel Link, SATA, USB, DisplayPort, DVI, HDMI… Bien que différents protocoles et codages soient utilisés comme TDMS et 8b/10b, il y beaucoup de similitudes sur le plan électrique, aussi appelé couche physique ou Physical Layer. Les signaux sont transmis sur deux fils en différentiel, c’est-à-dire en opposition de phase. Leur amplitude n’est à peine que d’une centaine de millivolts, alors que le décalage peut atteindre plusieurs volts. Les deux

58

juillet/août 2015

conducteurs du signal sont généralement bouclés sur 100 Ω. Le récepteur n’utilise que la différence de tension entre les deux fils, les parasites de mode commun induits sur les conducteurs sont ainsi atténués. La faiblesse des variations des signaux aide à réduire les interférences électromagnétiques. C’est ce qui permet d’atteindre de hauts débits binaires avec une vitesse de balayage modérée. Cette technique a déjà été utilisée il y a des décennies sur les puces ECL (emitter-coupled logic) ; de nos jours, on

l’applique aux CML (current-mode logic) ou LVDS (low voltage differential signaling), mais aussi aux FPGA. Bien entendu, on peut aussi observer ces signaux avec les sondes de mesure habituelles à haute impédance. Quand on veut voir le signal de différence, il faut deux sondes et la fonction mathématique de l’oscilloscope. Mais pour cela, les sondes doivent être convenablement équilibrées non seulement en atténuation, mais aussi en temps. Pour les professionnels, il existe des sondes différentielles actives pour ce genre de mesure, par ex. Keysight (ex-Agilent), Tektronix, Rohde & Schwartz... Leur bande passante va de quelques centaines de mégahertz jusqu’à 10 GHz. Comme elles sont actives, elles ont besoin d’une alimentation, elle est fournie par l’oscilloscope (fig. 1) sur des contacts supplémentaires. Évidemment, les accessoires d’un fabricant sont rarement compatibles avec les appareils des autres. Dans la gamme

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet de lecteur

projet labs inférieure de prix, on trouve des sondes à brancher sur un port USB, celui d’un oscilloscope par exemple. Quand il faut plusieurs sondes, comme pour mesurer le signal d’horloge et celui de données, on atteint vite la saturation du système USB. L’alimentation sur pile de 9 V n’est pas non plus une bonne solution, elle ne tient pas longtemps, surtout si on oublie d’éteindre la sonde. Alors, le prix de sondes adéquates, à partir de 800 euros, les rend inaccessibles aux amateurs comme aux petites entreprises. Il faut changer tout cela.

Le circuit

Figure 1. Entrée d’un oscilloscope avec les contacts prévus pour la sonde de mesure différentielle adaptée (source : Keysight).

10 +OUT 9 V OCM

+5V 1 LED1

C4

330n

–9V DO214AA

100n

1

2

D4

IN –

R5 147R

R6 2k15

3 9

7 +VS

2

6

100n

10u 10V

8

+

IC3 ADA4927-1



EXP PAD

VOCM

13

LED2

14

3

79L05F IC2

C6

+VS

C3

562R

R2

R4 2k15

5

C5

–VS

IN +

R3 147R

PD

–VS

100n

12

+VS

R1

+VS

330n

D2

–VS

C2

562R

2

C1

–VS

DO214AA

D3

+5V

+VS 8

–IN 3 +FB 4

+VS 7

3

IC1 78L05F

R7 464R

12 PD 11 –OUT

+VS 6

D1

ADA4927-1

+IN 2

+VS 5

+9V

14 –VS

15 –V S

–FB 1

résistance de source de 50 Ω, à boucler sur 50 Ω, de préférence avec la fonction interne de l’appareil, sinon directement à l’entrée. Par rapport à l’amplitude de l’un des signaux d’entrée (pas leur somme), la sonde présente donc un rapport de

13 –VS

longe ici jusqu’à environ 1,9 GHz, assez pour la plupart des signaux et des oscilloscopes. Le signal d’entrée est appliqué aux contacts IN+ et IN–. Seule la sortie négative (–OUT) est utilisée pour attaquer l’entrée de l’oscilloscope avec une

16 –V S

Voici une sonde différentielle active dans un boîtier similaire à une clé USB. La figure 2 révèle l’étonnante simplicité du circuit. Un amplificateur opérationnel totalement différentiel ADA4927-1 d’Analog Devices suffit. Il a deux entrées et deux sorties et les deux branches sont câblées à l’identique. L’amplification vaut 1/5 selon le rapport R7/(R3+R4). La valeur de la résistance de R7 et de R8 est choisie de manière à obtenir la courbe de réponse la plus plate le plus loin possible. Elle se pro-

–5V R8 464R

15

1 11 –FB –OUT

+OUT +FB 4 10 16

C8

C7

100n

10u 10V

R9 49R9

SIG

R10 100R

(coax) GND

–5V 130538 - 11

Figure 2. Schéma de la sonde différentielle active.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

juillet/août 2015

59

créer

découvrir

partager

Figure 3. Sonde de mesure installée dans un boîtier transparent format clé USB.

tension de 1/10, tout comme une sonde passive à haute impédance raccordée sur 50 Ω. L’impédance d’entrée différentielle avoisine 4,6 kΩ. Cela semble très peu en comparaison d’une sonde passive. Mais comme les signaux rapides sont à très basse impédance (100 Ω), c’est bien suffisant.

La sortie inutilisée de la puce est reliée à la masse par 100 Ω pour garantir une symétrie parfaite de charge. La puce dispose d’une entrée V_OCM de compensation du décalage qui n’est pas utilisée ici, elle est mise à la masse et le décalage sera annulé sur l’oscilloscope. L’entrée de coupure du courant (Power down) est reliée à la tension d’alimen-

tation, la puce reste donc active tout le temps. Sous la puce, il y a une surface de contact dite Exposed Paddle (EPAD) à connecter à un plan soumis à une tension comprise entre celles d’alimentation, ici à la masse. Les deux tensions de ±5 V sont produites par les régulateurs linéaires IC1 et IC2, et découplées à la masse (GND)

L1 L1 ... L8 = SD12K100

TR1 3VA6

L2

B1

B80C800

2200u 16V

C1

C2

100n

100n

C5 22u 16V

1k2

C9

LED2

S1 C10 2200u 16V

C3

C4

100n

100n

C6 22u 16V

D1

LED1

R2 1k2

F1 200mA T

R3

R1 1k2

7V5

7908

1N4004

100n

1

C19

C7

3

22u 16V

100n

C22

C20

22u 16V

100n

C23

C21

22u 16V

100n

C26

C24

22u 16V

100n

C27

C25

22u 16V

100n

C30

C28

22u 16V

100n

1

C31

C29

3

22u 16V

100n

K1

2

LED3

1

K2

2 3

D2

1N4004

1

K3

2 3

L7

130538 - 12

L8

Figure 4. Schéma de l’alimentation secteur pour quatre sondes de mesure.

juillet/août 2015

22u 16V

L5

D3 8V2

L4

L6

IC2

60

C6

L3

IC1 7808

7V5

C18

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

2

K4

projet labs

projet de lecteur

Une sonde différentielle professionnelle est trop chère pour un amateur ou une petite entreprise par des condensateurs. Les diodes D1 et D3 protègent d’une inversion de polarité, tandis que D5 et D6 empêchent un verrouillage haut du régulateur de tension au cas où l’une des alimentations serait appliquée avant l’autre. Les LED D2 et D4 témoignent de la présence de ces tensions. Autant le circuit est simple, autant son câblage est crucial pour atteindre le fonctionnement voulu. J’ai eu recours à un circuit imprimé à quatre couches. Celle du haut assure les liaisons du signal, la suivante est totalement occupée par un plan de masse comme point de référence. Les deux autres servent à acheminer l’alimentation. J’ai évoqué l’EPAD sous la puce, qu’il faut relier à la masse. Comme ce n’est pas une mince affaire pour un amateur d’effectuer pareille soudure, je propose une carte toute montée et testée, prête à l’emploi. La puce est dotée de deux paires de sorties. Les broches +FB et –FB, à gauche, qui encadrent les entrées sont utilisées pour fermer la boucle d’amplification avec R7 et R8. Les deux autres, à droite, servent de sorties. Les raccordements des deux tensions d’alimentation au-dessus et en dessous sont découplés par deux condensateurs aussi près que possible de la masse. Tant pour les alimentations que pour la masse, de nombreux vias sont prévus pour réduire l’inductance autant que faire se peut.

La mécanique On peut insérer la carte de la sonde dans un boîtier transparent de clé USB (fig. 3). Le câble coaxial muni d’une fiche BNC se soude par le conducteur central à la pastille « Out », le blindage sur la surface à sa droite. Des trous permettent de fixer ce câble par un collier de serrage. Le câble d’alimentation sera soudé aux pastilles +9 V, –9 V et GND. Après avoir installé la carte dans son boîtier, on introduit dans les trous forés en face avant une barrette femelle sécable à trois éléments dont on aura enlevé la broche centrale. On incurve les autres broches pour les souder aux pastilles In+ et In-. C’est là qu’il faudra insérer les broches correspondantes sur

lesquelles auront été soudés de petits fils fins à relier aux conducteurs du signal. Ceci permet d’abord d’installer cette prise et ensuite d’y insérer la sonde. Il est alors possible de faire l’échange entre plusieurs signaux. Si cette prise est abîmée, on s’en fait une nouvelle. Manier une sonde à deux entrées n’est pas très pratique. Si vous utilisez plusieurs sondes, veillez à ce que les câbles coaxiaux aient tous la même longueur, sinon il y aura des différences dans le temps de parcours entre elles et vous risquez des erreurs de mesure. Le reste, on peut le compenser sur la plupart des oscilloscopes par le « Skew Ajust ». Avec des mesures différentielles, la somme des décalages des deux signaux est atténuée, seule la différence est affichée. Mais si vous voulez mesurer le décalage, vous pouvez utiliser une sonde à haute impédance ou relier l’une des entrées à la masse. Il faut alors penser à la baisse relative de la résistance d’entrée.

Les deux tensions sont encore filtrées par bobines et condensateurs avant d’atteindre les connecteurs de sortie.

Conclusion Cette sonde différentielle active bon marché, parce que construite pour une fraction du prix des produits commerciaux comparables, présente d’excellentes caractéristiques (cf. figures 5 et 6). Pour cela, il faut de bons composants bien choisis, mais aussi une conception mûrement réfléchie du circuit imprimé. Les lecteurs intéressés peuvent me contacter pour se procurer une carte montée et testée. Il est aussi possible de commander un kit comprenant le boîtier, le câble HF avec fiche BNC et le câble d’alimentation avec fiche. Pour des informations supplémentaires, écrivez à [email protected]. (130538 – version française : Robert Grignard)

L’alimentation On peut alimenter la sonde de mesure par une alimentation de laboratoire d’au moins ±8 V. C’est très simple avec une seule sonde, mais plus il y en a, plus le câblage se complique et on finit par s’y perdre. Aussi ai-je étudié une alimentation secteur de table (figure 4) pour quatre sondes, en concordance avec le nombre maximal d’entrées d’un oscilloscope. Ce sont des fiches mini-DIN à trois broches que j’ai choisies pour le branchement : aucun risque d’inversion de polarité. Les quatre sorties sont largement filtrées en interne pour minimiser la diaphonie entre sondes. Le circuit se compose d’un transformateur secteur à deux secondaires, un redresseur, des électrolytiques et deux régulateurs linéaires encadrés des habituels condensateurs de découplage. Deux LED indiquent le fonctionnement de chacune des alimentations et, à l’aide d’une diode zener en série, une troisième en façade témoigne que les deux tensions sont bien là. Deux autres diodes empêchent qu’une tension inverse, issue éventuellement de la sortie, ne cause des dommages.

Figure 5. Comportement en fréquence jusqu’à 3 GHz de la sonde de mesure. Le point à –3 dB se situe à environ 1,9 GHz.

Figure 6. Mesure d’un signal d’horloge à 300 MHz avec un oscilloscope de 2 GHz.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

juillet/août 2015

61

découvrir

créer

partager

carte d’E/S pour Android l’électronique embarquée, pilotez-la depuis votre téléphone portable

Attention : la numérotation sur les photos du prototype diffère de celles du schéma et du tracé définitifs.

32

septembre 2015

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs

projet de lecteur

Elbert Jan van Veldhuizen (Pays-Bas)

Avec son énorme puissance de calcul à un prix abordable, son écran tactile et ses multiples possibilités de communication sans fil, un appareil Android est tout indiqué pour commander toutes sortes de circuits électroniques. Ajoutezlui 22 lignes d’E/S et vous pourrez à distance commuter facilement, réaliser des mesures, lancer des moteurs, recevoir des signaux analogiques et en créer, bien d’autres choses encore. Ce premier article expose le matériel nécessaire.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

septembre 2015

33

créer

VMOD

V++

2 4 6 8

RST DOUT

1 3 5 7

DOUT DIN

JP1

ESP8266 DIN DOUT

PIO11 PIO10 PIO9 PIO8 PIO7 PIO6 PIO5 PIO4 PIO3 PIO2 PIO1 PIO0 GND

34 33 32 31 30 29 28 27 26 25 24 23 22

3V3

CONN

C6 C4 C2 C0 B6 B4 B2 B0 A6 A4 A2 A0

TX RC4 RC2 RC0 RB6 RB4 RB2 RB0 RA6 RA4 RA2 RA0

26 24 22 20 18 16 14 12 10 8 6 4 2

C7 C5 C3 C1 B7 B5 B3 B1 A7 A5 A3 A1

1 2 3 4 5 6 7 8

RX RC5 RC3 RC1 RB7 RB5 RB3 RB1 RA7 RA5 RA3 RA1

2 4u7

5 6

1u

K3

R1

C5

LED1

RA0 RA1 RA2 RA3 RA4 RA5 RA6 RA7

IC1 PIC16F1938

VSS

X1

470R

1 2 3 4 5 6

K4

3V3

C6

RB1

RB0

TX

R7 330R

RX

RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0

470R

LED3

LED4

R14 330R

6

R15 RC4 330R

5

RC3

100n

8

RX TX RC5 RC4 RC3 RC2 RC1 RC0

LED2

C2

VCC

18 17 16 15 14 13 12 11

CLED

R13 2k2

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

R12 2k2

28 27 26 25 24 23 22 21

3V3

R4

SCL

IC2

WC

24FC256

SDA

GND

2 3 4 5 6 7 10 9

R5 330R

7

1 A0 2 A1 3 A2

K5 PICkit

3V3 RE3

RB7 RB6

R8

3V3 R9

K6

ICSP X1, C5, C6 not mounted

10k

3V3 C4

RA0 RA1 RA2 RA3 RA4 RA5 RA6 RA7

2 4 6 8

4

MCLR

VSS

3

1 3 5 7

RB3

1

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

470R

100n

R3

8

C3

R2

C1

10k

IC3

1

3V3

RB2

CLED

V++

DOUT DIN

ESP8266

R16

MCP1702T-3302E/CB

S2

CONN

3V3

RE3

K1

RST

BL600 eBOB

DIN DOUT

VMOD

micro USB 1 2 3 4

16 15 14 13 12 11 10 9

PGM RES GND VCC RTS CTS TX RX

JP2

10

GND

CONN DIN DOUT

GND 2 3 8 9 10 11 12

VMOD

20 19 18 17 16 15 14 13 12

470R

4 6 9 11

DIO0 DIO1 DIO2 MOD2 DIO3 XBEE-PRO DIO6 DIO12 RSSI DIO5 RN41/RN42/RN171 DTR VREF DIO4 STATUS CTS

20

2 DOUT 3 DIN 5 RST

VDD

DOUT DIN RST

VCC

DOUT DIN

VMOD

1

R6

MOD7

K2 25 23 21 19 17 15 13 11 9 7 5 3 1

10k

FT232R BOB

VMOD

TX RX CTS MOD1 RTS PCM_CLK PCM_OUT HC_06 PCM_IN PCM_SYNC AIO0 Bluetooth 2.0 AIO1 RST 3V3 GND

14 15 16 17 18 19 20 21

VMOD MOD5

MOD6

RST

VMOD

1 2 3 4 5 6 7 8 9 10 11 12 13

19

FT311D BOB

DIN

MOD4

330R

VMOD MOD3

partager

NC VBUSDCSB MOSI MISO CLK VSUBD+ GND

découvrir

R10 330R S1

R11

-t° Touch

NTC

150057- 11

Figure 1. Schéma de la carte d’E/S. En pratique, il y a beaucoup moins sur la carte, puisqu’on n’y installe qu’un seul module de communication. Tableau 1. Aperçu des caractéristiques de la carte d’E/S pour Android fonction

nb de broches (max 22) / valeur

remarques

entrées numériques

22

dont 8 broches à résistance de rappel vers le haut « molle » en option

sorties numériques

22

Isortie max 25 mA

C A/N

11

résolution de 10 bits, env. 20 Ké/s

interrupteurs sensitifs

8

dont 7 broches partagées avec le C A/N

MLI

8

par logiciel, 4 x 2 en mode en pont

compteur

à 16 bits

maximum 8 MHz

débit binaire

max 100 tâches par seconde

liaison à 9600 bauds

mémoire flash de données

32 Ko

sur 25FC256

suppléments sur carte

4 LED, 1 CTN, 1 touche tactile

tension d’alimentation

4 à 13 V non stabilisés 3,3 V stabilisés

consommation (sans charge)

max 30 mA (Bluetooth) max 250 mA (Wi-Fi) max 5 mA (USB) plus le courant pour le module USB

connexion d’alimentation

micro-USB, connecteur encartable

34

septembre 2015

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs

projet de lecteur

Nous allons décrire une carte et un exemple d’appli pour échanger des informations sur 22 lignes d’entrée/sortie au moyen de commandes simples. La carte est capable de communiquer avec un téléphone tactile ou une tablette par Bluetooth, Wi-Fi ou USB. Ses ports peuvent traiter des entrées et des sorties numériques, mais aussi servir de C A/N, utiliser une touche capacitive, moduler des impulsions ou les compter. Son micrologiciel est aisément modifiable, on ajoute ainsi des fonctions dans le microcontrôleur pour des applications en temps réel, le contrôleur est pourvu d’un chargeur d’amorçage à cet effet. Pour commander cette carte d’E/S pour Android, j’ai développé des classes Java (des bibliothèques) aux dénominations parlantes. Avec elles, vous n’aurez pas le souci des détails de la programmation des fonctions de l’appli. Ce premier article dévoile le circuit imprimé et les fonctions du microcontrôleur. Dans les épisodes suivants, nous verrons les possibilités du Bluetooth, du Wi-Fi et du port USB, ainsi qu’une appli pour piloter la carte d’E/S Android. Nous étudierons ensuite comment réaliser un enregistreur de données, adapter le micrologiciel et le transférer avec le chargeur d’amorçage. Avant de fouiller dans le matériel, voyons ce qu’il peut faire en pratique. On sait déjà qu’il met à disposition 22 broches d’E/S. La carte porte aussi un interrupteur à touche capacitive, soudé à demeure, quatre LED et une résistance CTN. C’est en tout cas un circuit imprimé pratique pour acquérir de l’expérience. Le tableau 1 détaille les caractéristiques de la carte d’E/S Android avec les différentes options d’alimentation.

K4. La puce IC3 est un MCP1702-33, un régulateur à faible déchet qui délivre la tension de 3,3 V au module Bluetooth ou Wi-Fi et au reste du circuit. C’est l’interrupteur S2 qui met sous tension. Si vous n’en voulez pas, remplacez-le par un pont de câblage sur les deux pastilles de gauche. Le microcontrôleur PIC16F1938 de Microchip (IC1) totalise 28 broches. La liaison entre lui et les modules Bluetooth, Wi-Fi ou USB passe par le bloc de cavaliers JP2 pour le débogage et les résistances de sécurité R5 et R7. Toutes les lignes d’E/S sont disponibles sur le connecteur K2.

Le circuit Le schéma de la carte est à la figure 1. Le nombre de composants réellement présents sur le circuit imprimé est bien moindre que ce que le schéma présente. Il y a en effet de nombreux modules de communication qui peuvent y prendre place. Parmi eux, la plupart des modules pour le Bluetooth sont constitués de cartes de liaison (Break out Board, BoB) : e-BoB BL600 (avec Bluetooth V4, réf. 140270-91, ici Mod7), BoB (Mod1) avec module HC-06 (avec Bluetooth V2), carte à embase avec HC-06 (Mod6), carte avec RN41 au format Zigbee (Mod2), carte avec HC-06 au format Zigbee (Mod2). Comme modules Wi-Fi, on peut y mettre aussi bien un RN171-XV (au format ZigBee) qu’un ESP8266 (à embase). Il y a aussi des connecteurs pour brancher l’e-BoB Android d’Elektor (13051691) et la passerelle Elektor e-BoB FT232R USB/série (11055391), tous deux pour une liaison USB avec un PC, une tablette ou un téléphone tactile (par câble USB-OTG). Tous ces modules fournissent des données sérielles qui transitent par l’appareil Android vers un PC. Elles passent par un microcontrôleur PIC, ici un PIC16F1938 avec pas moins de 24 broches d’E/S, chargé d’un micrologiciel qui interprète les commandes pour configurer ces broches de manière à y envoyer des données numériques ou y recevoir des signaux en analogique ou numérique. Les lignes d’E/S du microcontrôleur sont toutes accessibles sur K2, une embase à deux rangées de treize picots. Ces généralités exposées, allons voir de près les composants dans le schéma. Partons du régulateur de tension de 3,3 V, IC3 sur la carte. Pour lui fournir du courant, il y a là deux options : un connecteur K1 micro-USB ou deux pastilles à souder, voire une embase

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

septembre 2015

35

créer

découvrir

partager

Liste des composants

Comme mémoire supplémentaire, pour l’enregistrement de données, par exemple, la carte dispose d’une mémoire flash (IC2) sérielle I²C de 32 Ko. Les lignes de bus I²C de cette puce sont protégées par R14 et R15, les résistances de rappel haut sont R12 et R13. On trouve aussi une résistance CTN (R11) pour des mesures de température, elle forme avec R9 un diviseur de tension. Les LED1 à LED4 sont des témoins pour les différents signaux. La première indique la présence de la tension de 3,3 V. LED2 ne travaille que si le module HC-06 est installé. On peut utiliser les LED3 et 4 dans différentes fonctions, par exemple LED3 signale que le chargeur d’amorce est activé. Le capteur capacitif S1 est constitué d’une surface soudée sur le circuit imprimé. Le connecteur K6 est directement en parallèle sur cet interrupteur sensitif, nécessaire à l’activation du chargeur d’amorçage dans le PIC.

Résistances : R1, R2, R3, R4 = 470 Ω 1%, CMS 0805 R5, R7, R8, R10, R14, R15 = 330 Ω 1%, CMS 0805 R6, R9, R16 = 10 kΩ 1%, CMS 0805 R11 = CTN 10 kΩ CMS 0805 (p.ex. Vishay NTCS0805E3103JHT) R12, R13 = 2,2 kΩ 1%, CMS 0805

Condensateurs : C1, C2 = 100 nF/25 V, 10%, CMS 0805 C3 = 4,7 µF/25 V, 10%, CMS 0805 C4 = 1 µF/25 V, 10%, CMS 0805

Semi-conducteurs : LED1, LED2, LED3, LED4 = LED verte faible courant, CMS 0805 IC1 = PIC16F1938-I/SO, SOIC28 (programmé : 150057-41*) IC2 = 24FC256-I/SN, SOIC8 IC3 = MCP1702T-3302E/CB, SOT23A

Divers : K1 = connecteur micro-USB 2.0 type B, CMS K2 = embase à 2x13 picots, pas de 2,54 mm K3 = embase à 2x3 picots, pas de 2,54 mm K4 = embase à 2 picots, pas de 2,54 mm K5 = embase à 6 picots, pas de 2,54 mm S2 = commutateur inverseur, pas de 2,54 mm circuit imprimé : 150057-1* ou circuit imprimé avec tous les CMS déjà soudés : 150057-91*

module de communication (n’en installer qu’un seul) :

Figure 2. Le circuit imprimé pour la carte d’E/S. Il y a sept options différentes de montage disponibles pour les modules de communication.

Mod1 = module Bluetooth HC-06/HC-05 à souder directement sur la carte Mod2 = module Bluetooth HC-06/HC-05 au format ZigBee Mod2 = module Bluetooth RN41XVC Mod2 = module WLAN RN171 (avec antenne fouet) à monter sur deux embases à 10 picots au pas de 2 mm Mod3 = e-BoB Android (Elektor, 130516-91*) à monter sur une embase à 10 picots au pas de 2,5 mm Mod4 = module Wi-Fi ESP8266 (raccordement sur 2x4 broches) à monter sur embase à 2x3 picots au pas de 2,5 mm Mod5 = e-BoB passerelle FT232R USB/série (Elektor, 110553-91*) à monter sur une embase à 3 contacts au pas de 2,5 mm (embase à 3 picots sur e-BoB) Mod6 = module HC-06 (version à 6 broches) à monter sur embase à 6 contacts au pas de 2,5 mm Mod7 = e-BoB BL600 (Elektor, 140270-91*) à monter sur embase à 8 contacts au pas de 2,5 mm * Circuits imprimés, modules assemblés et composants programmés disponibles en ligne (www.elektor.fr)

Tableau 2. Fonctions des connecteurs et embases K1

connecteur micro-USB pour alimenter carte et module

K2

embase à 2x13 picots pour 24 lignes d’E/S du PIC, 3,3 V et masse

K3

embase à 2x3 picots pour connecter en chaîne plusieurs cartes d’E/S

K4

connecteur d’alimentation à 2 broches pour carte (4 à 13 V)

K5

connecteur de programmation à 6 broches pour PICkit 2 ou 3

K6

embase à 2 picots pour lancer le chargeur d’amorce par bouton ou par liaison

JP1

embase à 2 picots pour mise à niveau du micrologiciel du module ESP8266

JP2

embase à 2x4 picots pour configurer les lignes de signal et d’alimentation vers les autres modules

MOD1 à connecteurs pour raccorder les différents modules Bluetooth / Wi-Fi / USB MOD7 (cf. liste des composants)

36

septembre 2015

Le circuit imprimé est prévu pour recevoir un quartz pour le PIC. Le logiciel du chargeur décrit ici ne s’en occupe pas. Pour le mettre en œuvre, il faut un autre chargeur qui adapte le mot de configuration. Alors, les broches A6 et A7 de K2 ne peuvent plus être utilisées par le micrologiciel.

Un circuit imprimé universel On pourrait vraiment s’y perdre dans le dessin des pistes de la figure 2, avec toutes ces implantations possibles de modules divers, mais à y regarder de plus près, on découvre où se situent précisément les raccordements pour les modules MOD1 à MOD6. Reste à faire le choix de l’unique module désiré qui occupera la place. Exception faite des connecteurs et commutateurs, tout est en CMS, ce qui ne simplifie pas la construction à la main. C’est pourquoi l’e-choppe [1] propose le circuit imprimé 150075-91 sur lequel tous les CMS et les connecteurs sont déjà soudés. Mais comme les différents modules ne seront décrits en détail que le mois prochain, il est préférable de patienter encore un peu. Il y a sur le circuit imprimé plusieurs connecteurs et embases pour différents usages. Pour la clarté, reportez-vous au tableau 2 qui en donne un aperçu complet. En usage normal, JP2 sert au passage des signaux TX et RX entre le PIC et le

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs

projet de lecteur

module en place. D’habitude, on relie la broche 3 à la 4 et la broche 5 à la 6, tandis que les broches 7 et 8 (GND) sont déjà interconnectées par une piste, ce qui est pratique quand on veut brancher un module externe sur JP2. Sur la broche 2, on trouve l’alimentation de 3,3 V fournie à la carte par le régulateur de tension, alors que la broche 1 est reliée à la connexion d’alimentation du module. Il y a deux manières d’alimenter le module :

Figure 3. Le circuit imprimé assemblé, l’e-BoB BL600 d’Elektor y est installé.

• W pour Write, permet d’écrire une valeur donnée sur une broche spécifique. Format : W broche valeur. Exemple : w a3 1 passe la broche d’E/S A3 au niveau haut. • R pour Read, permet de lire la valeur sur une broche déterminée. Format : R broche. Exemple : r b4 lit la valeur de la broche B4. Le microcontrôleur répond selon le format : R broche valeur, donc dans l’exemple par R B4 1. • S pour Settings. On détermine ainsi la fonction d’une broche. Format : S broche fonction, la fonction est codée par un nombre. C’est 0 pour

A0

X

X

X

A1

X

X

X

spécial (6)

MLI (5)

Cap sense (4)

C A/N (3)

Inutile d’attendre que vous ayez une carte d’E/S entre les mains pour vous parler des commandes dont vous aurez à vous servir pour gérer la carte. Supposons qu’une liaison avec le module (Bluetooth, Wi-Fi ou USB) soit en service. C’est qu’il y a une communication sérielle transparente entre l’appareil Android et le microcontrôleur sur la carte d’E/S pour Android. Là, c’est une appli qui permettra d’envoyer des commandes au microcontrôleur. Le micrologiciel les interprète et agit en conséquence sur les E/S. Ces ports ont été numérotés d’après les dénominations du microcontrôleur : A0 à A7, B0 à B7 et C0 à C7 (cf. aussi tableau 3). On dispose de quatre types de commandes :

sortie (2)

ligne

Les commandes

entrée à rappel vers le haut (1)

Tableau 3. Fonctions possibles des lignes d’E/S entrée hte impédance (0)

Le module doit être alimenté en 3,3 V. C’est le cas des modules Bluetooth et Wi-Fi. Alors, il faut relier ensemble les broches 1 et 2. Lors de l’installation d’une passerelle e-BoB FT232R USB/série (110553-91) ou d’un e-BoB Android (130516-91), il faut les alimenter en 5 V par leur connecteur USB et dans cette circonstance, les broches 1 et 2 sur JP2 ne peuvent en aucun cas être reliées entre elles.

A2

X

X

X

A3

X

X

X

A4

X

X

A5

X

X

A6

X1

X

A7

X1

X

B0

X

X

X

X

X

X

B1

X

X

X

X

X

X

B2

X

X

X

X

X

X X

X X X

B3

X

X

X

X

X

B4

X1

X1

X

X

X

B5

X1

X1

X

X

X

B6

X

X

X

X

B7

X

X

X

X

C0

X1

X

C1

X1

X

X

C2

X1

X

X

C3

X1

C4

X

C5

X

pont MLI avec A6 pont MLI avec B0

pont MLI avec B6 compteur pont MLI avec C1 I2C: SCL I2C: SDA

X

C6

TX (vers module Bluetooth/Wi-Fi/USB)

C7

RX (d’un module Bluetooth/Wi-Fi/USB)

S

1

enregistreur

X

horloge

Y

numéro de version/série

Z

réglage global

Possibilité de faire changer la valeur

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

septembre 2015

37

découvrir

créer

faire une entrée à haute impédance, 1 crée une entrée avec résistance de rappel vers le haut « molle » (weak pull-up). Le 2 détermine une sortie. Un 3 transforme la broche en entrée de C A/N, tandis que le 4 en fait une entrée de capteur capacitif. Avec un 5, on obtient une sortie MLI. Le 6 est réservé à une fonction spéciale. Exemple : s b3 3 fait de la broche B3 une entrée de C A/N. En supplément, on peut encore fixer d’autres paramètres. À chaque broche sont attribués trois registres d’état à 8 bits, adressables en faisant suivre le numéro de broche de 1, 2 ou 3. C’est ainsi que dans l’exemple s b32 8, le paramètre du deuxième registre d’état est mis à la valeur 8. L’état du registre 0 est d’ailleurs la fonction de la broche précédemment adressée ; donc s b3 3 est identique à s b30 3. • G pour Get, permet de lire un réglage. Format : g broche. Le microcontrôleur, lui répond sous la forme G Broche valeur. Exemple : g b3 donne G B30 3. Les commandes et numéros de broches ne sont pas sensibles à la casse, mais le microcontrôleur répond toujours en lettres capitales. Lors du débogage, comme le contrôleur répète en écho les entrées, il est pratique d’écrire les commandes en minuscules, de manière à discerner facilement le texte de l’appareil Android en petites lettres de celui de la carte d’E/S en majuscules. Un document séparé (150057-W) qui reprend toutes les fonctions est disponible gratuitement sur [1]. Dans la deuxième partie de cette série, nous examinerons les modules Bluetooth, Wi-Fi et USB et nous verrons une appli qui utilise la carte d’E/S pour Android pour l’insolation et la gravure de circuits imprimés. (150057 – version française : Robert Grignard)

38

septembre 2015

partager

Figure 4. Quelques modules compatibles avec la carte d’E/S pour Arduino.

Liens [1] www.elektormagazine.fr/150057

Webinaire sur la carte d’E/S pour Android : le 17 septembre 2015, l’auteur de ce projet présentera un webinaire sur la carte universelle qu’il a développée. Ne le manquez pas ! La participation est gratuite, il suffit de s’inscrire à temps sur www.elektor.fr/webinar.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

Carte d’E/S Android

La carte d’E/S Android permet de piloter les ports d’un microcontrôleur PIC avec un appareil sous Android, par WiFi, USB ou Bluetooth (versions 2.0 et 4.0). Les classes JAVA (bibliothèques) spécialement développées pour commander la carte d’E/S Android permettent de se concentrer sur l’application plutôt que sur la manipulation des entrées/ sorties. La carte d’E/S Android basée sur un PIC16F1938-I/ SO permet d’accéder aux 25 broches d’E/S. www.elektor.fr/android-i-o-board

déwatteur L’ampli qui ne consomme que la puissance qu’il fournit !

Cet amplificateur de puissance en classe D est construit autour d’une puce audionumérique spéciale, l’IRS2092. Avec ce projet sans CMS, donc très facile à construire, vous disposerez de 200 W sur 8 Ω, mais pratiquement sans dissipation de chaleur. Kit de composants : www.elektor.fr/d-watt

Personal Download for François Cariou | copyright Elektor

découvrir

créer

partager

le déwatteur ampli en classe D

ne consomme que la puissance qu’il fournit Ton Giesberts (labo d’Elektor)

36

décembre 2016

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs

projet de lecteur

Depuis longtemps, Elektor s’est bâti une renommée dans le domaine des projets audio. Pour les nombreux enthousiastes audiophiles, nous présentons cette fois-ci un nouvel ampli de puissance en classe D à partir d’une puce audionumérique spéciale. Vous voulez de la puissance, 200 W sur 8 Ω, mais pratiquement sans dissipation de chaleur ? Oubliez les gros radiateurs !

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

décembre 2016

37

créer

découvrir

partager

FLOATING INPUT

CSH

VAA

VB HIGH SIDE CS

COMP VAA+VSS 2

IN-

HO

OTA

L’amplificateur

GND HV LEVEL SHIFT

COMP

HV LEVEL SHIFT

FLOATING HIGH SIDE

VS

HV LEVEL SHIFT

VCC VSS

DEAD TIME

CSD

PROTECTION CONTROL

HV LEVEL SHIFT HV LEVEL SHIFT

SD

LO

DT

COM

LOW SIDE CS

VREF OCSET

DT

Figure 1. Diagramme fonctionnel de la puce numérique IRS2092 de pilotage de l’amplificateur.

Il y a déjà trois ans que le dernier projet d’amplificateur de sortie audio a été publié [1], l’ampli de puissance compact. Un classique étage final en classe AB pour un plein de puissance, la distorsion en moins. Il a depuis lors convaincu de nombreux audiophiles. Pour changer, ce projet-ci prend le chemin du numérique. Dans un ampli en classe D, les transistors de sortie commutent en permanence à une assez haute fréquence. Un modulateur de largeur d’impulsion traduit la grandeur du signal analogique d’entrée en une largeur équivalente d’impulsions positives et négatives pour constituer le signal de sortie. Là, un filtre éliminera la haute fréquence pour ne laisser passer que le signal analogique amplifié pour le haut-parleur. Avec pareil traitement numérique, on y gagne énormément en rendement, ce qui limite considérablement la dissipation d’énergie et… la dimension du radiateur. Tout tourne principalement autour d’une puce à 16 broches pour piloter un double MOSFET de puissance. De concert avec une panoplie de sécurités, l’ensemble repose sur un unique circuit imprimé, il ne vous reste qu’à lui fournir l’alimentation (stabilisée). Le projet ne compte aucun CMS, sa construction est donc très facile et vous pourrez encore y ajouter votre grain de sel.

38

jets de référence pour l’IRS2092. Mais pourquoi réinventer la roue quand on vous a déjà mâché la besogne ? D’autant que, vous l’avez deviné, notre projet a finalement abouti à bien mieux qu’un calque du circuit d’exemple.

décembre 2016

Sélection du projet On n’a pas attendu l’arrivée des puces spécialisées pour faire des amplis en classe D (les anciens se souviennent encore de Woodstock), mais sans elles, c’est plus compliqué. Par bonheur, différents fabricants proposent une solution mono-puce pour amplificateur en classe D. Pour de petites puissances, on trouve quantité de puces, mais si vous cherchez une grande puissance conjuguée à une bonne qualité, le choix s’amenuise. Nous avons découvert une solution épatante avec une puce développée par International Rectifier (aujourd’hui Infineon), l’IRS2092. Sous l’appellation de Protected Digital Audio Amplifier, ce DIP à 16 broches contient tout le nécessaire à la construction d’un ampli de qualité en classe D relativement simple, il ne lui manque que quelques transistors de puissance. Il dispose des pilotes de grille capables de fournir un fort courant aux MOSFET de puissance qui suivent, d’un modulateur MLI à autoamorçage, d’une protection bidirectionnelle en courant, d’une temporisation programmable de temps mort pour la commande de MOSFET, il supporte aussi des fréquences jusqu’à 800 kHz. Son diagramme fonctionnel est à la figure 1. Infineon offre, outre la fiche technique [2], une série de notes d’application et de nombreux pro-

Avec une puce conçue spécialement pour une tâche précise, mieux vaut partir de l’application standard du fabricant, c’est vrai pour l’IRS2092 aussi. La note d’application AN-1138 [3] fournit une description détaillée de la puce. La figure 2 vous montre notre version de l’ampli, dans laquelle la configuration autour de l’étage pilote IC2 et du double MOSFET T1 est pratiquement conforme. T1 est d’un type spécial pour ce genre d’applications, avec deux MOSFET à canal N, rassemblés sous un même boîtier. L’IRFI4020H-117P appartient à la famille Digital Audio MOSFET d’Infineon et se caractérise par un UDS max de 200 V, un ID cont de 9,1 A et une RDS(on) de 80 mΩ. Il est parfaitement adapté aux étages de puissance de 200 à 300 W sur 8 Ω. Il est bien plus facile de monter ce double MOSFET sur un radiateur et le tout sur le circuit imprimé. La rétroaction entre la sortie et l’entrée passe par R7/R8, où R8 forme avec C6 un filtre pour les signaux HF. Le gain est déterminé par (R7+R8)/(R5+R6). L’impédance d’entrée dépend sur cet amplificateur inverseur de R5 + R6, elle est assez basse, environ 3,3 kΩ. C’est pourquoi il est précédé d’un étage tampon, l’ampli op IC1A, un modèle rapide AD8031ANZ à excursion totale en tension. Le cavalier JP1 définit laquelle des deux entrées est branchée. L’impédance d’entrée de l’ampli op s’élève à 11 kΩ. Le gain est actuellement de un, mais vous pouvez le modifier en changeant R3 : A =R4/R3 + 1. Il est alimenté par les stabilisateurs ±5 V qui fournissent aussi les tensions auxiliaires pour IC2, nous y reviendrons. Presque chaque composant autour de IC2 détermine un paramètre. Certaines résistances définissent les deux tensions

Figure 2. Le schéma complet de l’amplificateur en classe D. Au-dessus, l’ampli proprement dit, en bas, les sécurités et le circuit de démarrage en douceur.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

U

B 1k

D1

D2

+5V -5V

U = unbuffered B = buffered 2x 1N4148 R1 3 2

1

IC3 7805 3

R6 3k0

100n

C16

+5V

C5 1n

R14

C15 10n

-5V

+5V R10

C10

R9

50V 10u

R11

P1

1k

C11 100n

C7 1n C8 1n C9 1n

C14

3

4

2

5

R7 120k

+12V

C20 10u 50V

8

D6

-VP

OCSET

R18

9

DT

COM

LO

VS

HO

CSH

VB

15

MUR120G

R16 4R7 R15

VCC

12

VCC 1

7

R17 6k8

IC2 IRS2092PBF

VAA IN-

COMP

GND

CSD 6

VSS VREF

C13

50V 10u

100n

C6 150p

16

14 13

11

10

R8 1k

R21

C21 22u 50V

VCC R19

R20

Ext. Test DC

D7

100n

C22

C23

+VP

BAV21 R24

R25 18R

R26 18R

C25

-VP

C24

R43

680u 100V

C35

D12

R42

1N4148

D13

100n

R41

+5V

IRFI4020H-117P

T1

680u 100V R22

R23

Amp.

JP2 Ext.

R39

R40

R44

RE1A

C26

C27

R45

C28 100n 100n 100n

R27

1W

RT314048 5520 Ω T8

T9

4x BC547C 1N4148

L1

22µH

R48

+5V

T10

T11

D14

R30

T2

D10

18V 1W3

R49

R50

R31

1

3

D8

+VP

IC5 7812

TIP122G

C33

1u 50V

R28

D9

-VP

2x 1N4007

C29

C30

100n

68V R53

0W5

D16

+VP

470n

R51

T12

R54 10k D17

1N4148

C32

100n

C31

+12V

10u 50V

-VP

–VP

+VP

RE1B

R29

2W

Over-Voltage Protection

R52

D15

0W5

68V

2 1

2 1

2 1

2 1

2 1

K1

K2

K3

K4

K5

LS+

LS-

+

0



39

décembre 2016

www.elektormagazine.fr

R12 2W C17 1u 50V

C4 R5 330R

C2 100n C3 100n

C18 100n

D3

C12

C34

T7

OCPL=19.5A R37

R38

T6

IRFD 210PBF

150115 - 11

Personal Download for François Cariou | copyright Elektor

D4 18V 1W3

JP1

10u

+5V

7

IC1 4

3

50V 10u

R36

2u2 50V

R47 150k

-VP

2

+VP

U B

6

AD8031ANZ IC1 R4 2k

-5V C19 1u 50V 2

-5V 1N4007

R35

D11

T5

+5V

BC557C

T4

1N4148 R33 4x BC547C R34

100u

R46 10k

Under-Voltage Protection

2k2

C1 1n

D5 18V 1W3 R13

7905 IC4

-VP

R32

T3

-5V

22k

10R

47k

22k

1R

10R

10R

22k

120k

2k7

10k

10k

820k

10k

15k 10M

1M

5k6 NM

8k2 10k

33k OCPH=19.5A 22k 4k7

3k0 10k 22k

10R

10R 6k8 10k

15k

10k

2W

-VP

HS1

2k2

2 1

1k8 1k8

R3 NM

R2 10k

470R CSD 4k7

projet de lecteur

projet labs

créer

découvrir

limites, le temps mort, le pilotage du MOSFET côté supérieur et la rétroaction depuis la sortie. Il faut au modulateur deux tensions symétriques de plus et moins 5 V. Elles ne sont pas prélevées simplement des sources principales par résistance et Zener, mais passent par une stabilisation séparée des œuvres de IC3 et IC4 pour leur garantir la qualité suffisante, surtout si l’alimentation principale n’est pas bien stabilisée. Pour limiter à un niveau sûr les tensions d’entrée des stabilisateurs et la dissipation, il y a aux entrées les diodes Zener D4 et D5 (les tensions d’alimentation peuvent s’élever à maximum ±70 V). Aux raccordements des tensions auxiliaires VAA et VSS sur la puce, un découplage supplémentaire composé de R10/C10/C11 et R11/C12/C13 évite toute influence des commutations à HF sur les deux stabilisateurs. La diode D3 protège

partager l’IRS2092 en cas de perte de l’alimentation négative. La tension d’alimentation négative sur la broche VCC, utilisée pour la commande du MOSFET d’en bas, vaut 12 V de plus que −VP, la tension négative principale. Comme cette ligne doit supporter un courant plus élevé que celle des tensions auxiliaires, son circuit de stabilisation comporte en plus, en série avec IC5, un Darlington de puissance (T2). C’est lui qui prend en charge le surplus de puissance à dissiper. La broche VCC de IC2 est découplée localement par C20 et R15. La tension d’alimentation positive (flottante) VB de IC2 sert à la commande du MOSFET du haut. Cette broche est reliée à un circuit auto-élévateur composé de R16/D6/C21 et R21, cette dernière est requise pour la charge de C21 avant le démarrage de la MLI. La résistance R16 limite les pointes de courant.

Résultats de mesure Mesures faites sur la version 6/8 Ω avec alimentation ±60 V (Hypex SMPS400A400), B = 22 kHz, R7 = 100 kΩ • Sensibilité d’entrée :

1,3 V (189 W/8 Ω, DHT+b = 1 %)



1,25 V (174 W/8 Ω, DHT+b = 0,1 %)

• Impédance d’entrée :

3,33 kΩ /11 kΩ

• Puissance de sortie permanente : 174 W sur 8 Ω (DHT+b = 0,1 %, 1 kHz)

189 W sur 8 Ω (DHT+b = 1 %, 1 kHz)



224 W sur 6 Ω (DHT+b = 0,1 %, 1 kHz)



246 W sur 6 Ω (DHT+b = 1 %, 1 kHz)

• Largeur de bande de puissance : 5 Hz (−3 dB) à 20 kHz (±1 dB) • Vitesse de balayage :

15 V/µs (8 Ω)

• Temps de montée :

4,4 µs (8 Ω)

• Rapport signal/bruit :

> 77 dB (linéaire, B = 22 Hz à 22 kHz)

(référence 1 W/8 Ω)

> 80 dBA

• Distorsion harmonique + bruit : (B = 22 kHz)

0,014 % (1 kHz, 1 W/8 Ω) 0,004 % (1 kHz, 50 W/8 Ω)



0,024 % (1 kHz, 1 W/6 Ω)



0,0046 % (1 kHz, 50 W/6 Ω)

• Distorsion d’intermodulation :

0,013 % (1 W/8 Ω)

(50 Hz : 7 kHz, 4 : 1)

0,023 % (50 W/8 Ω)



0,013 % (1 W/6 Ω)



0,017 % (50 W/6 Ω)

• Distorsion IM dynamique :

0,037 % (1 W/8 Ω)

(3,15 kHz carré + 15 kHz sinus) 0,009 % (50 W/8 Ω)

0,043 % (1 W/6 Ω)



0,008 % (50 W/6 Ω)

• Facteur d’amortissement :

174 (1 kHz, 8 Ω)

• Rendement à pleine puissance :

93 % sur 8 Ω

(THD+N = 0,1 %)

40

94 % sur 6 Ω

• Protection CC :

+3/−4 V

• Décalage CC en sortie :

< 0,3 mV

• Retard à l’enclenchement :

6 s

décembre 2016

Le temps mort DT, celui durant lequel on force les deux MOSFET à bloquer pour éviter que de fortes pointes de courant n’y circulent en même temps, est programmé par le diviseur R19/R20 en quatre pas : 105, 65, 40 et 25 ns. Nous avons choisi le temps mort le plus court, 25 ns en éliminant R20. Allonger le temps mort entraîne une augmentation considérable de la distorsion harmonique (DHT) aux fréquences élevées ! Notez toutefois qu’un MOSFET met habituellement deux fois plus de temps à bloquer qu’à conduire. Les résistances R25 et R26 réduisent dans les deux sens les courants de et vers les grilles des MOSFET de puissance. Les courants de court-circuit des pilotes de grille s’élèvent à 1 A fourni et 1,2 A absorbé. Avec 18 Ω pour R25 et R26, les courants de pointe de charge et décharge sont limités aux alentours de 0,5 A. Le diviseur de tension R17/R18 détermine le seuil de limitation de courant dans le côté bas. La caractéristique RDS(on) des sorties des MOSFET est ici utilisée pour mesurer le courant. Le coefficient de température positif de la RDS(on) du MOSFET a l’avantage de réduire le courant limite quand la température du MOSET s’élève. L’IRS2092 dispose d’une référence de tension interne de 5,1 V (VREF, broche 7) pour le réglage précis du seuil de courant. Il y a malheureusement une assez grande tolérance sur la résistance drain/source d’un MOSFET. Avec une tension de grille à source de 10 V, la RDS(on) du MOSFET utilisé présente une valeur typique de 80 mΩ et maximale de 100 mΩ à 25 °C. La R DS(on) grimpe à plus de 175 mΩ à 125 °C. Sur ce projet, nous avons réglé la tension de seuil à 1,56 V pour laquelle le seuil de courant s’établit typiquement à 19,5 A pour une température de jonction de 25 °C. À 125 °C, le seuil s’abaisse à environ 8,7 A. Si le courant de sortie devient trop fort, l’IRS2092 le bloque et les sorties LO et HO sont mises au niveau bas pour protéger le MOSFET. Le seuil de limitation de courant du côté haut est réglé par la broche 16, CSH. Elle a une tension de seuil fixe à 1,2 V par rapport à VS (broche 13). En plus de la limitation de courant côté haut par un diviseur de tension, il faut la diode de blocage D7 pour empêcher qu’une tension trop élevée parvienne à la broche CSH en cas de déconnexion du côté haut. En raison de la chute de

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs

projet de lecteur

cet étage final de puissance en classe D ne consomme que ce qu’il restitue

tension de 0,6 V quand D7 conduit, la tension drain/source du MOSFET d’en haut se situe encore 0,6 V plus haut. La résistance R24 fournit un courant de polarisation à D7 quand le MOSFET d’en haut est commuté. Le diviseur de tension R22/R23 réduit la tension sur le MOSFET d’en haut et sur D7. Donc, si nous voulons y régler le même seuil qu’en bas, il faut tenir compte de D7. On obtient alors une valeur de 10 kΩ pour R23 et 8 kΩ (arrondi à 8,2 kΩ) pour R22. Vous trouverez le calcul dans la description de cet amplificateur sur le site du labo [4]. Le signal MLI en sortie des MOSFET passe par le filtre du second ordre composé de la bobine à noyau torique L1 et le condensateur C29. Suit encore le réseau de Boucherot R28/C30 qui assure à l’ampli une charge de sortie suffisante aux fréquences élevées.

tion. Mieux vaut alors adapter l’ampli et employer une autre tension d’alimentation, comme l’indique l’encadré Configuration sur 4 Ω.

Protections Nous avons complété les protections incorporées pour l’IRS2092 par quelques circuits supplémentaires : une protection contre les surtensions sur les deux alimentations, une protection contre la sous-tension (en double aussi) et une sécurité en continu par démarrage en douceur. Chacune de ces protections peut faire chuter le relais de sortie et débrancher l’IRS2092.

règne une trop haute tension, en vue de protéger l’enceinte qui y est branchée. La protection en continu réagit sur quelques volts. Cette valeur relativement haute tient compte du fait qu’en sortie de l’amplificateur, toute tension continue ne peut s’y manifester que si aucune charge n’y est connectée et que l’IRS2092 est coupé. Il subsiste manifestement un courant de repos en sortie de la broche VS quand l’IRS2092 est en mode de fermeture. Ce sont R38/R39/R40/C34/T6/T7 qui charpentent la protection en continu. Le diviseur de tension R39/R40 en définit le seuil d’activation. Avec les valeurs de

La protection en continu fait en sorte que la sortie soit isolée dès qu’il y

Les condensateurs C22 à C28 forment le découplage indispensable de l’alimentation. Comme sur tout amplificateur en classe D, il se peut qu’un phénomène de bus pumping se produise, qui renvoie de l’énergie du filtre de sortie vers l’alimentation. Il survient surtout à haut niveau, en basse fréquence et avec des impédances de charge basses. Avec une alim à découpage stabilisée, il peut rendre instable la rétroaction de la régulation. La meilleure façon d’étouffer une éventuelle montée de la tension d’alimentation est d’installer de gros condensateurs en parallèle sur les lignes d’alimentation. Commencez par un électrolytique de 10 000 µF/100 V sur chacune d’elles. Faites-le avec diplomatie, la plupart des alimentations à découpage n’apprécient pas les charges capacitives trop élevées, consultez les spécifications du constructeur. La tension d’alimentation de l’amplificateur se monte à ±60 V pour une version à 6/8 Ω (pour R7, le mieux est de prendre une valeur de 100 kΩ). Le maximum se situe près de ±70 V, mais alors, la distorsion augmente du fait de la présence accrue de la composante MLI dans le signal de rétroaction. Si vous utilisez l’ampli avec une charge de 4 Ω, l’alimentation ira régulièrement en limita-

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

décembre 2016

41

découvrir

créer

Liste des composants Résistances : (5 %, 0,25 W, sauf mention contraire) R1, R8 = 1 kΩ R2, R23, R24, R30, R34, R36, R37, R46, R50, R54 = 10 kΩ R3, R20 = non installées R4 = 2 kΩ, 1 % R5 = 330 Ω R6, R18 = 3 kΩ, 1 % R7, R52 = 120 kΩ R9 = 470 Ω R10, R11, R15, R31 = 10 Ω R12, R13 = 1,8 kΩ 2 W R14 = 2,2 kΩ R16 = 4,7 Ω R17, R35 = 6,8 kΩ R19 = 5,6 kΩ R21 = 33 kΩ R22 = 8,2 kΩ R25, R26 = 18 Ω R27 = 1 Ω, 1 W R28 = 10 Ω 1 W R29 = 2,2 kΩ 2 W R32, R40 = 4,7 kΩ R33, R43 = 15 kΩ R38, R39, R45, R48, R51 = 22 kΩ R41 = 1 MΩ R42 = 10 MΩ R44 = 2,7 kΩ R47 = 150 kΩ R49 = 820 kΩ R53 = 47 kΩ P1 = potentiomètre d’ajustage 1 kΩ vis au-dessus

Condensateurs : C1, C5, C7, C8, C9 = 1 nF/63 V, 1 %, polystyrène, au pas de 7,18 mm (LCR Components EXFS/HR 1 000 pF ±1 %) C2, C3, C11, C13, C16, C18, C31 = 100 nF/50 V, 10 %, X7R, au pas de 5,08 mm C4 = 10 µF/63 V, 10 %, MKT, au pas de 15 mm C6 = 150 pF/500 V, 5 %, mica argenté, au pas de 5,9 mm (Cornell Dubilier

42

décembre 2016

partager CD15FD151JO3F) C10, C12, C14, C20, C32 = 10 µF/50 V, 20 %, 5×11 mm, au pas de 2 mm C15 = 10 nF/100 V, 10 %, X7R, au pas de 5,08 mm C17, C19, C33 = 1 µF/50 V, 20 %, 5×11 mm, au pas de 2 mm C21 = 22 µF/50 V, 20 %, 5x11 mm, au pas de 2 mm C22, C24 = 100 nF/250 V, 10 %, MKT, 4×10 mm, au pas de 7,5 mm (TDK B32520C3104K000) C23, C25 = 680 µF/100 V, 20 %, 28 mΩ/ 2,57 A, 18×40 mm, au pas de 7,5 mm (Rubycon 100ZL680MEFC18X40) C26 = 100 nF/200 V, 10 %, X7R, au pas de 5,08 mm (Kemet C330C104K2R5TA) C27, C28, C30 = 100 nF/400 V, 5 %, polypropylène, au pas de 15 mm (TDK B32652A4104J000) C29 = 470 nF/400 V, 5 %, polypropylène, au pas de 15 mm (TDK B32652A4474J000) C34 = 100 µF/10 V bipolaire, 20 %, au pas de 2,5/3,5 mm, diam. max. 8 mm C35 = 2,2 µF/50 V, 5x11 mm, au pas de 2 mm

Inductances : L1 = noyau torique 22 µH, T130-2 (Micrometals), max. 20×40 mm (2 m fil de cuivre émaillé de 1,5 mm de diam.)

Semi-conducteurs : D1, D2, D11, D13, D14, D17 = 1N4148 D3, D8, D9 = 1N4007 D4, D5, D10 = BZX85C18 SB00018/E1, diode Zener 18 V/1,3 W D15, D16 = BZX55C68-TR, diode Zener 68 V/0,5 W (ou BZX79-C68 de NXP) D6 = MUR120G (200 V/1 A) D7 = BAV21 (250 V/250 mA) D12 = LED verte, 3 mm T1 = IRFI4020H-117P T2 = TIP122G T3, T4, T6, T7, T9, T10, T11, T12 = BC547C T5 = BC557C T8 = IRFD210PBF

IC1 IC2 IC3 IC4 IC5

= = = = =

AD8031ANZ IRS2092PBF MC7805CTG MC7905ACTG MC7812CTG

Divers : K1, K2, K3, K4, K5 = connecteur mâle plat Faston encartable, 6,35 × 0,81 mm, au pas de 5,08 mm JP1, JP2 = embase à 3 picots au pas de 2,54 mm, avec cavaliers RE1 = relais encartable SPCO, 16 A, 48 V/5,52 kΩ (TE Connectivity/Schrack RT314048) HS1 = radiateur encartable 2,6 K/W, distance entre 2 broches de montage 25,4 mm (Aavid Thermalloy 530002B02500G) radiateur pour IC4/IC5/T2 : plaque d’aluminium de 27 × 90 mm, 2 mm d’épaisseur radiateur pour IC3 : plaque d’aluminium de 30 × 30 mm, 1 ou 2 mm d’épaisseur matériel d’isolation (pastille thermique TO220 + anneau isolant TO-220) pour T2, IC3, IC4, IC5 6× broche à souder diam. 1,3 mm support pour CI DIP-16 support pour CI DIP-8 circuit imprimé 150115-1 ou kit complet avec circuit imprimé (mono), sans alimentation 150115-71

Nécessaire au raccordement d’une alimentation Hypex SMPS400A400 : 1× boîtier connecteur à 1 rangée droite de 5 contacts femelles JST série VHR pour connecteur encartable au pas de 3,96 mm (RS Components 820-1188, ensemble de 5) 1× boîtier connecteur JST au pas de 3,96 mm, 1 rangée droite de 3 contacts femelles série VHR encartable, (RS Components 820-1175, ensemble de 5) 5× cordon JST sertissage vers sertissage (RS Components 820-1135, ensemble de 5) 3× connecteur isolé Faston femelle, au pas de 6,35 mm

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs résistances indiquées, il se situe entre +3 V et −4 V. Les niveaux choisis divergent vers le haut par rapport à l’habitude, mais ne risquent pas de porter atteinte au système de haut-parleurs. Si jamais T6 ou T7 entre en conduction sous une tension d’alimentation trop haute, T5 deviendra immédiatement passant et activera à son tour T4, lequel décharge le condensateur électrolytique C35 de manière à bloquer le MOSFET T8 et faire chuter le relais. Simultanément, l’IRS2092 est mis hors tension par la décharge de C14 à travers T3 sur la broche CSD. Ce transistor travaille en adaptateur de niveau. La diode D11 près de T5 est là pour empêcher que T3 conduise en permanence à cause de R35. C’est un petit MOSFET qui active le relais, il facilite le travail du circuit de temporisation d’allumage, le condensateur C35 peut ainsi garder des proportions raisonnables pour assurer avec R41 la constante de temps voulue et se faire décharger plus vite par T4. L’embase JP2 permet de tester la sécurité du courant continu. En service normal, le cavalier est mis sur « Amp ». Pour changer le niveau du continu ou essayer une autre valeur pour R40, on le place sur « Ext. Test DC » pour y brancher une alim continue réglable. Le courant maximal de drain du double MOSFET IRFI4020H-117P est de 9,1 A (T C = 25 °C). À une température de 100 °C, il n’est plus que de 5,7 A. Aussi, avons-nous ajouté une sécurité anti-surtension qui limite la dissipation pour une tension d’alimentation supérieure. Cet amplificateur est conçu pour tolérer une tension maximale de ±70 V. La sécurité anti-surtension, basée sur les deux diodes Zener D15 et D16, réagit à environ ±75 V. Selon les résistances en série R52 et R53, le transistor T12 se met à conduire pour une trop forte tension positive ou négative et, comme pour la protection en continu, met T5 en conduction pour désactiver le relais par T4 et T8. La diode D17 permet la détection côté positif ; sans elle, la tension sur l’émetteur de T12 monterait effectivement lors

Figure 3. L’amplificateur au grand complet se trouve sur le même circuit imprimé, radiateurs compris. Il n’a besoin d’aucun refroidissement complémentaire.

projet de lecteur

Figure 4. Il y a deux petites plaques d’aluminium de 1 et 2 mm d’épaisseur à faire soi-même, la plus petite pour IC3, la plus grande pour IC4, IC5 et T2.

Figure 5. La bobine de 45 spires de fil de cuivre doit être enroulée selon une technique éprouvée pour limiter autant que possible la capacité parasite.

d’une surtension, mais pas suffisamment pour le faire conduire.

des composants traversants à installer, chacun de vous pourra donc aisément construire l’amplificateur, le modifier, y mener des expériences. Vous pouvez acheter à l’e-choppe un circuit imprimé nu, mais nous proposons aussi un kit (150115-71) qui comprend le circuit imprimé, tous les composants nécessaires et les radiateurs. Les trous restent à forer.

La protection contre la sous-tension est plus complexe, elle est aussi responsable de faire chuter le relais lors de l’extinction de l’amplificateur pour éviter le bruit de choc dans les enceintes. Au lieu de deux Zener, ce sont des transistors, T10 et T11, qui s’occupent ici de la détection. Ils sont tous deux passants tant que les deux tensions d’alimentation sont assez hautes, d’où T9 bloque. Sinon, T9 se met à conduire et, par l’intermédiaire de T5, T4 et T8, le relais est désactivé. D14 empêche la conduction de T11 quand T10 est à saturation, auquel cas, le collecteur de T10 est à −0,6 V, niveau qui serait celui de l’émetteur de T11 en l’absence de D14, avec pour conséquence qu’il continuerait de conduire avec une très basse tension d’alimentation. La sécurité contre la sous-tension positive serait alors compromise. Ce sont les diviseurs de tension R49/R50 pour le positif et R47/R46 pour le négatif qui fixent les seuils de détection. Les valeurs de R49 et R47 dépendent aussi du courant de base de T11 et du courant d’émetteur de T10. Avec les valeurs données dans le schéma, la sécurité réagira à toute tension inférieure à ±40 V environ.

Construction : trois radiateurs et une bobine La figure 3 représente le circuit imprimé pour l’amplificateur en classe D. Il est relativement grand, mais tous les radiateurs nécessaires y sont, nul besoin de grande et lourde plaque de refroidissement à l’extérieur. De plus, il n’y a que

La plupart des composants se montent sans la moindre difficulté. Il ne faut pas encore installer T1. Utilisez pour les deux puces, IC1 et IC2, des supports de qualité, de préférence avec des contacts de précision. Pour les condensateurs du modulateur MLI et les découplages HF du signal d’entrée audio (C1/C5/C7/C8/C9), il est important qu’ils soient de la meilleure qualité. Raison pour laquelle il y a sur le circuit imprimé beaucoup de place disponible pour y loger des modèles au polystyrène, au polypropylène ou au polyester ordinaire. Pour le découplage de la ligne de rétroaction (C6), nous préconisons même une version au mica argenté de 150 pF/500 V. Toute autre technologie est déconseillée. Pour le condensateur C4 à l’entrée, il faut bien se résoudre à utiliser une exécution au standard MKT, un polypropylène aurait une trop grande dimension, trop vulnérable aux parasites. Il ne faut au régulateur de tension IC3 qu’un petit radiateur à fabriquer soimême dans un morceau d’aluminium de 1 mm d’épaisseur, une surface de 30 × 30 cm suffira. Il n’est pas nécessaire d’isoler le régulateur, la surface de refroidissement est reliée à la masse. Installez

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

décembre 2016

43

découvrir

créer

partager

Quelques caractéristiques mesurées

Audio Precision +3 +2

Instrument de mesure : Audio Precision System Two Cascade Plus 2722 Dual Domain

+1 -0 -1 -2

d B r

Image A Ici, l’amplitude est mesurée en fonction de la fréquence pour des charges de 4, 6 et 8 Ω. La courbe près de 20 kHz montre que les caractéristiques du filtre de sortie constituent un bon compromis pour les différentes impédances. Entre 10 et 20 kHz, la déviation est d’environ ±1 dB. Sur 8 Ω (cyan), la fréquence de résonance du filtre de sortie est facilement identifiable. Sur 6 Ω (vert), la courbe reste pratiquement plate et sur 4 Ω (bleu), la fréquence de coupure est un peu plus basse.

A

-3 -4 -5 -6 -7 -8 -9 -10 -11

A

-12

10

20

50

100

200

500

1k

Hz

2k

5k

1k

2k

10k

20k

50k

100k

Audio Precision 10 5 2 1 0.5

Image B Distorsion harmonique totale plus bruit (DHT+b) à 1 W et 50 W, sur une charge de 8 Ω et pour des largeurs de bande de 22 kHz et 80 kHz. D’habitude, on ne dévoile pas de larges bandes passantes dans les fiches techniques des étages de puissance en classe D, parce que la fréquence de commutation y joue un rôle prépondérant. L’amplificateur produit effectivement des signaux au-dessus de 22 kHz, il est donc honnête de montrer ce qui s’y passe, même si on ne peut pas l’entendre. La courbe en rouge représente la DHT+b à 50 W, mesurée avec une largeur de bande de 22 kHz. La courbe en bleu est mesurée à la même puissance, mais sur une largeur de bande de 80 kHz. La courbe en cyan montre la DHT+b à 1 W et sur une bande passante de 22 kHz, enfin, la courbe verte présente la DHT+b à 1 W et 80 kHz de largeur de bande. Toutes les mesures ont été effectuées avec un filtre passe-bas elliptique d’ordre neuf dont la fréquence de coupure est de 200 kHz, placé devant l’entrée de l’analyseur, de manière à éliminer les résidus de la modulation de largeur d’impulsion de l’amplificateur.

0.2

%

0.1 0.05 0.02 0.01 0.005 0.002

B

0.001 20

50

100

200

500

Hz

5k

10k

20k

Audio Precision +0 -10 -20 -30 -40 -50 -60

d B -70 r A

-80 -90

-100 -110 -120 -130 -140

C Image C La FFT de 1 kHz à 1 W/8 Ω. Pas d’harmoniques visibles, sauf à bien y regarder, encore une harmonique deux dans le bruit. La DTH+b est à 0,014 % et là, il n’y a que du bruit. Dans cette FFT et dans la suivante, la fréquence de commutation de l’alimentation Hypex utilisée est bien visible près du 90 kHz (selon la fiche technique du fabricant, elle se situe entre 80 et 120 kHz), mais elle est à très bas niveau, −82 dB, aucun souci à se faire.

-150

10

20

50

100

200

500

1k

2k

5k

10k

20k

50k

100k

100

200

500

1k

2k

5k

10k

20k

50k

100k

5m 10m 20m

50m

200m

500m

Hz

Audio Precision +0 -10 -20 -30 -40 -50

d B r A

-60 -70 -80 -90 -100 -110 -120 -130

Image D La même FFT que dans C, mais ici, nous sommes à une puissance de 50 W/8 Ω. Quelques harmoniques sont visibles. La DHT+b est maintenant à 0,004 %. La fréquence de commutation est tombée au niveau insignifiant de −96 dB.

-140

D

-150

10

20

50

Hz

Audio Precision 10 5 2 1

Image E La DHT+b en fonction de la puissance de sortie (1 kHz/8 Ω, B = 22 kHz). La largeur de bande de mesure est ici réduite pour mieux suivre l’évolution de la distorsion. À partir de 50 W environ, la distorsion s’élève peu à peu. Avec une tension d’alimentation nominale, l’amplificateur peut délivrer un bon 200 W.

44

décembre 2016

0.5 0.2

% 0.1 0.05 0.02 0.01 0.005 0.002 0.001

E

1m

2m

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

W

1

2

5

10

20

50

100

300

projet labs la plaque contre le régulateur pour qu’elle vienne quelques millimètres au-dessus du circuit imprimé, sans occulter le trou de fixation du coin (voyez à la figure 4). IC4, IC5 et T2 sont montés sur une même plaque d’aluminium de 2 mm d’épaisseur, dimensions 27 × 90 mm, dont une partie est pliée à 65 mm (figure 4). Installez cette plaque contre les trois semi-conducteurs pour qu’elle vienne au moins 5 mm au-dessus du circuit imprimé pour éviter tout contact avec d’autres composants. Ces trois semi-conducteurs doivent être isolés, IC5 et T2 se placent l’un en face de l’autre et se fixent dans le même trou ! La position de ces trous dans la plaque : ils sont distants l’un de l’autre de 40 mm, IC4 se trouve à 14 mm du bord du circuit imprimé. À vous de voir à quelle hauteur les forer. Venons-en au radiateur pour T1. Ce double MOSFET de puissance est dans

projet de lecteur

un boîtier totalement synthétique, il n’y a donc pas lieu de l’isoler. Montez d’abord le radiateur sur le circuit imprimé, enduisez l’arrière de T1 d’une mince couche de pâte thermique et insérez les broches dans les trous appropriés. Appuyez-le contre le radiateur au moyen d’une vis de 12 mm de long, une rondelle plate, une rondelle éventail et un écrou. Vérifiez que ses pattes sont bien dans le circuit imprimé et ne sont pas tordues et fixez-le définitivement. Ce n’est qu’alors que vous pourrez souder les pattes du MOSFET sur le circuit imprimé.

La bobine de sortie Votre travail le plus « dur » sera sans doute la fabrication de la bobine du filtre de sortie. Vous devrez la bobiner à la main sur un noyau torique de 33 mm de diamètre avec du fil de cuivre émaillé de 1,5 mm. Le noyau Micrometals choisi pour son excellente linéarité est fait de poudre de fer, il ne donne qu’un minimum de distorsion. L’inconvénient de ce matériau est sa faible perméabilité, il lui faut donc un grand nombre de spires pour atteindre la valeur d’inductance requise. Pour réaliser le bobinage, il vous faudra 2 m de fil de cuivre émaillé de 1,5 mm de diamètre, de quoi revêtir le noyau de 45 spires. Elles ne tiendront pas toutes sur une seule couche à l’intérieur du noyau. Comme il importe de maintenir la capacité parasite à un minimum, il faut enrouler les spires d’une certaine façon. Le deuxième enrou-

Configuration sur 4 Ω Pour utiliser l’amplificateur avec une charge de 4 Ω, nous préconisons l’usage d’un autre type de MOSFET pour T1, un IRFI4212-117P. Auquel cas, la tension d’alimentation ne doit pas dépasser ±46 V. Il y a en outre quelques modifications à faire. Régler la limitation de courant à une valeur supérieure, R17 passe alors à 6,2 kΩ, R18 à 3,9 kΩ et R22 à 12 kΩ. La limite de courant devient ainsi 15,33 A et la charge peut descendre à 3 Ω. Le relais de 48 V peut maintenant se brancher directement sur la source d’alimentation, R44 est remplacée par un pont de câblage. Il convient aussi d’adapter la rétroaction : R7 descend à 75 kΩ. En service continu à pleine puissance sur 3 Ω, la protection en courant déclenche après quelques secondes, parce que la température du radiateur de IC1 – malgré le haut rendement – s’élève trop. On conseille alors de le doter d’un plus grand radiateur (il n’est pas livrable dans le kit prévu). Sur le site du labo [4], vous trouverez de nombreuses mesures pour la configuration de 4 Ω. Vous y verrez entre autres que l’amplificateur peut fournir 243 W sur 4 Ω avec 1 % de distorsion et même 297 W sur 3 Ω.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

décembre 2016

45

découvrir

créer

lement est posé sur le premier à l’intérieur du noyau. À l’extérieur, en revanche, les spires sont jointives par rapport au premier. La troisième couche vient de nouveau à côté de la première à l’intérieur du noyau et à côté de la deuxième à l’extérieur. On recommence la même procédure pour la quatrième couche. Quand on est arrivé de cette façon à 45 spires, les deux extrémités du fil de cuivre se trouvent de part et d’autre du noyau. Il faudra peut-être un peu improviser ou bidouiller pour avoir les 45 spires les unes près des autres, vous aurez sûrement compris le but de la manœuvre. Servez-vous aussi de la photo de la bobine terminée à la figure 5. Autant le savoir d’avance, du fil de cuivre de 1,5 mm d’épaisseur, c’est assez rigide : il ne se laisse pas facilement plier. Il faut travailler prudemment pour bien serrer les spires autour du noyau, mais sans utiliser d’outil métallique pour ne pas endommager

partager l’isolant du fil. Vous aurez alors une bobine d’une inductance de 33 µH et d’une résistance d’environ 20 mΩ, à placer verticalement sur le circuit imprimé pour la souder à demeure. Et voilà votre carte d’amplificateur prête !

Alimentation et insertion Vient le moment de monter le circuit imprimé avec une alimentation adéquate dans un joli boîtier. Il est évidemment possible de choisir une alimentation classique à gros transformateur, redresseur en pont et condensateurs électrolytiques, mais elle ne sied pas vraiment à une version moderne de l’amplificateur en classe D. En outre, cet ampli donne des résultats de mesure nettement meilleurs avec une alimentation stabilisée. C’est pourquoi nous avons associé notre ampli à une alimentation à découpage de la firme néerlandaise Hypex, développée spécialement pour des amplis de puissance en

classe D. Nous avons retenu le modèle SMPS400A400 qui fournit 400 W à 20 Hz pour une tension nominale de ±64 V. Et avec la faiblesse du secteur dans notre labo, nous arrivons à peine à ±60 V. Avec cette alim, l’amplificateur est à l’aise sous une charge de 6 à 8 Ω tandis qu’à de plus basses impédances, il vaut mieux l’adapter, selon l’encadré, pour éviter d’éventuelles interruptions à forte puissance. La figure 6 vous montre comment assembler deux circuits imprimés d’amplificateur et deux alimentations Hypex dans un boîtier standard. Le câblage y est assez succinct, vu que tout est ramené à un seul circuit imprimé. Nous vous souhaitons beaucoup de plaisir avec ce puissant déwatteur finalement très cool ! Vous trouverez sur le site du labo [4] de plus amples informations et encore d’autres résultats de mesure. (150115 – version française : Robert Grignard)

Figure 6. Deux cartes d’amplificateur et deux modules d’alimentation à découpage sont ici rassemblés dans un boîtier.

Liens [1]  www.elektormagazine.fr/110656 [2]  www.infineon.com/dgdl/irs2092.pdf?fileId=5546d462533600a401535675f1be2790 [3]  www.infineon.com/dgdl/an-1138.pdf?fileId=5546d462533600a40153559a077610d1 [4]  www.elektormagazine.fr/labs/200w-class-d-audio-power-amplifier-150511

46

décembre 2016

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

Rejoignez la communauté Elektor Devenez membre GOLD maintenant !

formule GOL D

• 6x magazine im

primé • 6x magazine numérique • accès à l’arc hive d’Elektor (des milliers d’ articles) • accès à plus de 1 000 fichiers Ge rber • le DVD annu

el d’Elektor

• 10% de rem ise da

ns l’e-choppe • des offres ex clusives

formule GRE EN

• 6x magazin e nu

Également disponible abonnement « zéro papier » GREEN !

www.elektor.fr/membres

mérique • accès à l’arc hive d’Elektor (des milliers d’ articles) • accès à plus de 1 000 fichiers Ge rber • 10% de rem ise dans l’e-cho ppe • des offres

Elektor Uno R4

exclusives

Nouveau microcontrôleur, plus d’E/S et plus de possibilités ! Quand un fabricant propose la version B d’un produit donné, les différences entre nouveau et ancien produits sont généralement peu significatives. Ce n’est pas le cas pour l’ATmega328P d’Atmel au cœur de l’Arduino Uno R3. La version B de ce µC a tellement de nouvelles fonctions que l’abandon de la version R3 est justifié : passez à l’Elektor Uno R4. • • • • • • • • • • •

Points forts : ATmega328PB à 16 MHz 2x UART 2x I²C 2x SPI 9 sorties à MLI 8 entrées analogiques 24 broches d’E/S à usage général Code source ouvert, matériel libre Régulateurs de tension embarqués 5 V et 3,3 V Paquet compatible Arduino (installation + bibliothèque)

www.elektor.fr/elektor-uno-r4

Personal Download for François Cariou | copyright Elektor

découvrir

créer

partager

générateur de fonctions par DDS sinus, carrés et dents de scie jusqu’à 10 MHz Theodorou Gerasimos (Grèce) Post-ingénierie : Ton Giesberts (Elektor.Labs)

Les puces DDS (Direct Digital Synthesis) simplifient grandement la construction de la partie analogique des générateurs de fonctions. Ajoutez à votre puce DDS une circuiterie de sortie, un microcontrôleur, une interface utilisateur, et voilà. Simple comme un jeu de briques. Du moins en théorie. En pratique, ce n’est pas si facile. À moins de choisir la bonne puce !

Un jour j’ai eu besoin d’un générateur de fonctions pour mon labo personnel. Au départ j’ai envisagé l’achat d’un des modèles commerciaux que j’utilise au travail, mais ils étaient trop coûteux et trop complexes pour ce que je souhaitais faire. J’ai donc décidé de construire mon propre générateur. Et bien sûr de vous en faire profiter.

Le choix des composants Après quelques recherches sur les différentes techniques de construction possibles, j’ai choisi une architecture exploitant la synthèse numérique directe (DDS, Direct Digital Synthesis). La synthèse DDS recourt à un oscillateur numérique et un quartz pour produire des sinusoïdes qui peuvent atteindre des fréquences très élevées. Comme microcontrôleur, j’ai pris un modèle d’Analog Devices. Ce n’est peutêtre pas le premier nom de fabricant qui vous serait venu à l’esprit, toutefois j’apprécie la documentation complète qui accompagne leur famille de microcontrôleurs ARM à 32 bits. Là où d’autres fabricants étalent parfois leurs descriptions sur plus d’un millier de pages, Analog Devices réussit à faire le tour des rouages d’un microcontrôleur complexe

42

novembre 2015

en à peine plus d’une centaine de pages. Outre ses célèbres processeurs de traitement numérique du signal (DSP), Analog Devices propose aussi des puces DDS, des AOP et des puces pour le traitement analogique. Je me suis donc naturellement tourné vers eux, d’autant plus qu’ils offraient des échantillons des composants dont j’avais besoin. J ’a i p l u s p r é c i s é m e n t o p t é p o u r l’ADuC7024BSTZ62, un µC de la famille Precision Analog Microcontroller. Il est en boîtier à 64 broches et son cœur ARM7TDMI est cadencé à 44 MHz. Les contrôleurs de cette famille sont dits analogiques, car ils présentent des E/S analogiques (CA/N et CN/A) et un comparateur analogique. Ils sont par ailleurs dotés de MLI, de timers et de ports série standard (SPI, UART et I²C). Celui que j’ai choisi possède 8 Ko de RAM et 62 Ko de mémoire flash programmable in situ via un port série ; certains modèles utilisent l’I²C pour leur programmation, donc assurez-vous d’utiliser un µC ayant exactement la même référence que celui-ci. La puce DDS est la populaire AD9834. La fréquence maximale de son oscillateur externe est de 75 MHz, ce qui autorise une fréquence de sortie maximale de 37,5 MHz (la moitié de la fréquence

d’horloge). L’inconvénient d’un signal d’horloge aussi rapide est que la résolution n’est que de 0,28 Hz, ceci en raison du diviseur de fréquence à 28 bits de la puce. Ça n’a l’air de rien, mais à 20 Hz cela représente une erreur de presque 0,6 %. On peut certes baisser la fréquence pour y remédier, mais au prix d’une fréquence de sortie maximale moindre. La résolution passe à 0,004 Hz en optant p. ex. pour 1 MHz, soit une erreur de 0,005 % à 20 Hz ; bien, mais le hic est que la fréquence maximale tombe alors à un ridicule 500 kHz. J’ai dû trancher entre résolution et plage de fréquence : la fréquence d’horloge DDS est de 75 MHz de façon à ce que le signal reste relativement propre jusqu’à 10 MHz. J’ai soigné l’inter face utilisateur puisqu’elle compte pour beaucoup dans le confort d’utilisation d’un instrument. J’ai ajouté des poussoirs pour faciliter la navigation entre les menus et leurs options, ainsi que deux potentiomètres multitours pour le réglage de l’amplitude et du décalage CC du signal de sortie. L’afficheur est un écran de remplacement pour le Nokia 6100. Il est bon marché et bien documenté sur Internet, mais les deux modèles existants (Epson

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs

et Philips) ne sont hélas pas entièrement compatibles. Plus embêtant, il est impossible de spécifier le modèle souhaité au moment de l’achat. J’ai donc écrit deux micrologiciels, un pour chaque modèle.

projet de lecteur

Puisque l’aspect esthétique compte aussi, j’ai habillé le générateur d’un beau boîtier en aluminium de chez Hammond. Sur ma paillasse trône ainsi un instrument très élégant.

Caractéristiques

Le circuit Sur le schéma du générateur DDS (fig. 1), c’est la partie supérieure qui produit le signal ; la partie inférieure comprend quant à elle le microcontrôleur et

Audio Precision

• Synthèse numérique directe (DDS) avec étage d’entrée analogique • Plage de fréquences : 1 à 10 MHz • Résolution en fréquence : 0,28 Hz • Sortie : 0 à 15 VCC • THD+N (charge de 100 kΩ, bande passante > 500 kHz) : -- 1 V, 1 kHz : 0,12 % (0,09% pour bande passante = 22 kHz) -- 5 V, 1 kHz : 0,1 % (0,09 % pour bande passante = 22 kHz) -- 1 V, 10 kHz : 0,1 % (0,09 % pour bande passante = 80 kHz) -- 5 V, 10 kHz : 0,09 % (0,08 % pour bande passante = 80 kHz) -- 1 V, 100 kHz : 0,1 % -- 5 V, 100 kHz : 0,08 % • S/B (pour un signal de 1 V) : 72 dB • Sortie maximale (charge de 10 MΩ) : -- Sinus : 16 VCC -- Triangle : 16 VCC -- Carré : 18 VCC • Tension de décalage CC : –10 à +10 V • Impédance de sortie : 50 Ω • Rapport cyclique (onde carrée) : 1 à 99 % • Temps de montée et de descente (80 %, onde carrée) : 100 ns • Mode balayage • Consommation : 3 VA

+0 -10 -20 -30 -40 -50

d B -60 r A

-70 -80 -90

-100 -110 -120 -130

10

20

50

100

200

500

1k

Hz

2k

5k

10k

20k

50k

100k

Tracé jusqu’à 130 kHz de la FFT d’une sinusoïde de 1 kHz (la fondamentale a été supprimée). Le taux THD+N est principalement dû aux harmoniques du signal. Les quelques composantes visibles liées à la ligne CA (50 Hz) sont proches du bruit de fond. Vous trouverez d’autres chiffres et courbes sur www.elektor-labs.com/150210.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

novembre 2015

43

créer

découvrir

partager Le signal qui quitte IC5.A suit deux chemins. Celui du haut sert à la formation des sinusoïdes et des dents de scie (IC3 peut former les deux) ; il mène à l’entrée S2 d’IC7, un inverseur unipolaire qui pro-

fiée par IC5.A. S’il y a un filtre aussi rudimentaire, c’est à la fois pour des raisons de simplicité et, comme nous le verrons, parce qu’un filtre d’ordre supérieur aurait été inutile ici.

l’interface utilisateur. Les composants passifs qui entourent la puce DDS (IC3) sont ceux recommandés par le fabricant. La sortie d’IC3 est filtrée par le réseau R16/C18 avant d’être ampli-

DVDD

P1.2

DVDD DVDD

+3V3 DVDD AVDD Triangle, Sinus

DVDD

1

8

4 VDD

EN

OUT

6 9

3

10

GND

OSC 75MHz

12

2 C11 1u

IOUT

IC3

FSYNC

AD9834

MCLK

CAP/2.5V

SINGBIT

FSELECT

FSADJ

PSELECT

IOUTB

SLEEP

1

7

IC5.B

5

R19

R14 C16

100n

100n

2 1

IC6.A

3

100n

R23

R25

3

1

+15V

IC2 = AD8032ARZ IC5,IC6 = AD8042ARZ

8

2

IC2

3

4

8

C19

IC5

100n 4

1

5

IC2.B

IC2.A

V+

1

10u

2 3

D

4

3 4 5 6 DAC0

9 10 56

P1.2

48 47

CLK

46 45

MOSI

40

CSL

39 23 24 25

K2 RXD TXD

26 1

50

2

49 55

UART

P0.5/IRQ1

ADC5

P4.0

ADC6

P4.1

IC1

ADC7

P4.2

ADC8

P4.3

ADC9

P4.4

DAC0/ADC12

P4.5

DAC1/ADC13

P4.6

DACREF

P4.7

P1.2

P0.6

P1.3

TDO

ADUC7024

P1.4/IRQ2

TMS

P1.5/IRQ3

XCLKI

P1.6

XCLKO

P1.7

P0.7

P3.0

P2.0

P3.1

TDI

P3.2

TCK

P3.3

ADCNEG

P1.0

P0.0/BM

P1.1 VREF

C7

58 7

57

RST LVDD

19 41 22

A

CS

NC VCC

0W75

8 7

D

6

DVDD

29 R5

30 31 32

R6

R7

R8

R9

R10

R11

R12

43 44 51 52 53 54 13 14 16 18

TDO

11

TMS

36 35

S1

VCC

S3 S2

VCC 6

4

K3 JTAG

33 12

TDI

17

TCK

5

3

S5 S4

S7 S6

S8

2

34

D

1

DVDD

R2

GND

8

VCC

15

JTAGVCC

DVDD

28 21 C6 470n

470n

GND

Nokia 6100 LCD

CLK

9

10k

ADC4

VLED–

DATA

10k

P0.4/IRQ0

RST

2 JP2

2 JP1

RESET 1

DOWNLOAD 1

D

150210 - 11

Figure 1. À l’exception de l’alimentation, la carte principale accueille tous les composants du générateur.

44

novembre 2015

+15V

R1 220R

10

27

10k

ADC3

VLED+

1k

IOVDD

IOVDD

AVDD

DACVDD

P3.5

38

5

VCC

1k

2

P3.4

ADC2

DGND

1

ADC1

IOGND

64

P3.7 P0.3/TRST

IOGND

63

ADC0

DACGND

62

P3.6

GNDREF

61

AGND

37 ADC0

R3

20 42

R31 10k

–15V

10k

A

100n

ADR1581

K1

C5

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

7

IC8

C28

100n

100n

C27 A

C29

100n

100n

3

R36 10k

10k

100n

60 59

V– 2

2

10k

100n

IC11

–1V25

10k

10u

C4

A

4

A

1

NC

6

DVDD C3

100n

C26

2

3 10k

R37 1k

C1

C24

C23

3

2

100n

AVDD DVDD

C2

C22

+15V

ADR1581

V–

3 7

R33 100R

IC10 NC

10k

–15V

6

+15V

V+

A

ADC0

100R

A

220u 25V

10k

R30 10k

+1V25

C20

IC6

100n 4

R32

220u 25V

4

POWER

AD811

1

8

C30

100p R28

6

OP1177

1 P1

K4

K5

IC8

R27

C21

IC9

2

0V-2Vmax

+3V3

2

R29 10R

R24 499k

AVDD

A

DAC0

2 1 A

A

7

IC6.B

5

1k

3 1k

A

6

R15

R13 C17

P2

3

1.8V p-p

R20

2

3

GND

1.41V p-p

20

18

D

R22 1k

2k

5

D

7

A

AGND

ADG779

6

10p

16

REFOUT

DGND

C12

1

IC5.A

R17

C18

IC7

Square (0:0)

3

17

VIN

RESET

R16 910R

0.6V p-p

S1

+1V25

IC4

SDATA

19

2

1k2

11

3

COMP

4

R21 499k

1k2

15

SCLK

10n

6k8

CSL

AVDD

A

200R

13

DVDD

D

200R

14

MOSI

C15

4

1.8V p-p

IN

R26

A 100n

220R

A 100n 5

R18 2k

910R

D 100n

CLK

1

C14

C31

2 VDD

S2

910R

C13

6

–15V

7

IC9 4

projet labs

Figure 2. Une onde carrée de 1 MHz (rapport cyclique de 50 %) obtenue avec la sortie presque maximale et un potentiomètre P2 de dix tours et 1 kΩ.

CMS, l’alimentation recourt à des composants traversants de la liste de composants Passe-Partout du labo d’Elektor. Les secondaires du transformateur valent chacun 15 V / 5 VA puisque 10 VA suffisent à alimenter le générateur DDS. Pour minimiser les pertes dans le régulateur de 3,3 V, le circuit comporte un redres-

C15 D5

10n

+3V3

IC3 3

D6

LM317

2 R5

1

C16 10n

C17

C18

47u 50V

D1

10n 3

LM317

100n

+15V 2 R1 180R

1 10n

C5

C7

(115)

1000u 50V

100n

R2

C9

C11

C13

10u 50V

100n

K2 +3V3

10u 50V R4

0 +15V

C10

2k0 FL10/15 2x 15V / 10VA

D3

10n

C8

1000u 50V

100n

F3 315mA T

1 2

D4

R7

C4 10n

ADJ

10u 50V

C12

C14

R3

10u 50V

100n

180R

C3

C6

–15V

3

LM337 IC2

10k

100mA T (115VAC; 200mA T)

10u 50V

10u 50V

ADJ

JP1

F1

C21

IC1

D2

315mA T C2

K1

C20

C1

F2

TR1

C19

390R

100n

R6

2k0

D1, D2 = STPS2L60 D3...D6 = 1N4007

240R

ADJ

230

Puisque nous parlons de filtres indésirables, observez les chemins des signaux : tous les composants qui s’y trouvent, depuis la sortie d’IC3 et y compris le circuit imprimé, ont une bande passante limitée et contribuent partiellement au filtrage passe-bas du signal de sortie. C’est la raison pour laquelle je n’ai placé qu’un filtre RC du premier ordre (R16/C18). Avec un filtre d’ordre supérieur, il aurait fallu une troisième voie pour acheminer l’onde triangulaire, et le circuit aurait été plus complexe. La tension de décalage du signal de sortie est créée par les deux références de tension IC10 et IC11 et par le potentiomètre P1, tamponné par l’AOP de précision IC9. L’AOP IC8 ajoute cette tension CC au signal de sortie. Le signal de sortie alimente une des entrées analogiques du microcontrôleur

(ADC0) après mise à l’échelle et suppression du décalage CC (IC2). Le but est de surveiller le niveau du signal de sortie tel qu’indiqué sur l’afficheur. Consultez le lien [2] pour les mesures. La circuiterie qui entoure le µC IC1 parle d’elle-même : huit poussoirs, un LCD graphique, des condensateurs de découplage, et quelques embases. Rien de mystérieux, donc. Pas besoin de quartz externe, le contrôleur est cadencé par un oscillateur interne. Notez le connecteur JTAG : c’est lui qui m’a servi à programmer et déboguer le micrologiciel. Le port série est également accessible au cas où vous seriez obligé d’utiliser le chargeur d’amorçage pour programmer le µC. JP1 sert à placer le µC dans ce mode bootloader. L’alimentation (fig. 3) est construite autour de deux LM317 et d’un LM337. Ces régulateurs produisent une tension stable de ±15 V pour l’étage de sortie analogique, et de +3,3 V pour le reste du circuit. Contrairement à la carte principale, composée quasi exclusivement de

(115)

cure une très bonne isolation entre ses deux entrées et la sortie. Le chemin du bas va à l’entrée d’IC7 et est utilisé pour former les ondes carrées. Une onde carrée est créée en produisant un signal triangulaire transmis à IC5.B et IC6.B, deux comparateurs relativement rapides dotés d’une hystérésis bien dosée. La tension de référence nécessaire à ces deux comparateurs provient d’une des sorties analogiques (DAC0) du microcontrôleur et est tamponnée par IC6.A. Cela permet un contrôle précis du rapport cyclique de l’onde carrée. La sortie d’IC7 commande le potentiomètre P2 puis est amplifiée par l’AOP IC8. Cet amplificateur vidéo est rapide (vitesse de balayage : 2500 V/ms) et peut commander des charges de faible impédance. Notez qu’il s’agit ici d’un composant traversant, donc facilement remplaçable en cas d’avatar. L’amplitude crête à crête du signal de sortie est définie par P2. Ce potentiomètre influe de manière fondamentale sur la qualité du signal de sortie en raison de ses capacités et inductances parasites (qui le font se comporter comme un filtre passe-bas). Sa fréquence de coupure dépend de sa résistance et de son nombre de tours. Si vous utilisez surtout le générateur pour avoir des sinusoïdes propres et de fréquence élevée, un modèle à dix tours et de 1 kΩ ou plus convient. Si par contre vous avez besoin d’impulsions à flancs raides, optez pour un modèle à cinq tours et de 200 Ω ou moins (fig. 2).

projet de lecteur

–15V

LED1 POWER

150210 - 11

Figure 3. L’alimentation du générateur comprend trois régulateurs de tension LM3x7. Quelques tours de passe-passe ont permis de réduire la consommation de la partie à 3,3 V.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

novembre 2015

45

créer

découvrir

seur séparé (D5/D6) flanqué d’un simple filtre à condensateurs (C17/C18). La forte ondulation restante réduit quelque peu les pertes dans le régulateur IC3. D1 et D2 sont des diodes Schottky. Lorsque la charge est maximale, la chute de tension aux bornes de diodes « ordinaires » et l’ondulation sur C5 font dangereusement approcher la tension d’entrée d’IC1 de sa valeur minimale permise. À 0,5 A la tension directe des Schottky est inférieure à 0,45 V, alors qu’elle serait

partager deux fois moindre avec une classique 1N4007. L’alimentation et le circuit principal sont sur deux cartes séparées. La carte principale a été soigneusement conçue de façon à ce que le signal de sortie reste éloigné des interférences produites par les rapides signaux de commande numériques. Les CMS dominent, mais l’assemblage ne devrait pas poser de problème avec de bons yeux ou de bons verres de lunettes.

Le programme J’ai écrit le code source en C depuis l’environnement de développement intégré µVision de Keil. Je n’ai pas utilisé de système d’exploitation en temps réel par souci de simplicité. Le code est réparti sur quelques fichiers. Certains sont des fichiers d’en-tête contenant des définitions et des prototypes de fonctions, les autres contiennent les fonctions elles-mêmes. Deux d’entre eux prennent en charge les deux modèles de

Liste des composants de la Carte du générateur Résistances Toutes 1 %, 0,125 W, CMS 0805 R1 = 220 Ω, 1 %, 0,75 W, CMS 2010 R2, R22, R23, R37 = 1 kΩ R3 = 1 kΩ, 1 %, 0,1 W, CMS 0603 R5, R6, R7, R8, R9, R10, R11, R12, R30, R31, R36 = 10 kΩ R13 = 6,8 kΩ R14, R15 = 200 Ω R16, R19, R25 = 910 Ω R17, R20 = 1,2 kΩ R18, R26 = 2,0 kΩ R21, R24 = 499 kΩ R27 = 220 Ω R28 = 10 Ω R29 = 10 kΩ, 1 %, 0,1 W, CMS 0603 R32, R33 = 100 Ω, 1 %, 0,75 W, CMS 2010 P1 = 10 kΩ, 2 W, pot. 10 tours P2 = 1 kΩ, 2 W, pot. 10 tours

Condensateurs Par défaut : CMS 0603 C1, C3, C4, C12, C13, C14, C16, C17, C19, C20, C26, C27, C28, C29, C31 = 100 nF, 50 V, X7R

C2, C5 = 10 µF, 16 V, X7R, CMS 1206 C6, C7 = 470 nF, 25 V, X7R C11 = 1 µF, 16 V, X7R, CMS 1206 C15 = 10 nF, 50 V, X7R C18 = 10 pF, 50 V, C0G/NP0 C21 = 100 pF, 100 V, C0G/NP0, CMS 0805 C22, C23 = 220 µF, 25 V, radial, pas de 3,5 mm, diam. 8 mm max. C24, C30 = 100 nF, 50 V, X7R, CMS 0805

Semi-conducteurs IC1 = ADUC7024BSTZ62, LQFP-64, programmé* IC2 = AD8032ARZ, SOIC-8 IC3 = AD9834BRUZ, TSSOP-20 IC4 = FXO-HC736R-75, 7 x 5 mm IC5, IC6 = AD8042ARZ, SOIC-8 IC7 = ADG779BKSG-REEL7, SC-70 6 pattes IC8 = AD811ANZ, DIP-8 IC9 = OP1177ARZ, SOIC-8 IC10, IC11 = ADR1581ARTZ-REEL7, SOT-23-3

DF23C-10DS-0.5V(51), Hirose (HRS) K2, JP1, JP2 = barrette mâle 1x2 broches, verticale, pas de 2,54 mm K3 = barrette mâle 2x3 broches, verticale, pas de 2,54 mm K4 = barrette mâle 1x4 broches, verticale, pas de 2,54 mm K5 = prise BNC droite encartable, 50 Ω S1 à S8 = bouton à effleurement 6 mm, actionneur de 4,9 mm, 24 V / 0,05 A, SPST-NO Support DIP à 8 voies pour IC8 Écran LCD de remplacement N&B pour Nokia 6100

Divers

Autres

Boîtier aluminium, modèle Hammond 1455T1601, 165 x 160 x 51,5 mm Optionnel : filtre EMI/EMC, prise, CEI, 250 VAC / 4 A 2 boutons, noir, 16 mm, diam. axe 6,3 mm Circuit imprimé 150210-1 v1.11 (www.elektor.fr)

K1 = embase, pas de 0,5 mm, hauteur des contacts 1,5 mm, 10 voies,

* Indisponible en version préprogrammée

Figure 4a. Sérigraphie de la carte du générateur (double face et composants CMS).

46

novembre 2015

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs LCD graphiques. Le code du générateur est dans le fichier main.c. Le fichier init.s est écrit en assembleur et enferme les fonctions d’initialisation du µC ; il ne fait pas partie de l’EDI, je l’ai écrit en partant de zéro. J’ai écrit une partie du pilote du LCD, le reste repose sur un code source ouvert trouvé sur l’internet. Comme l’écran n’est pas relié à un port SPI matériel, le protocole de communication est reproduit de façon logicielle sur les broches GPIO au travers des fonctions WriteLcdCommand et WriteLcdData. Ce qui m’a pris le plus de temps ici a été de créer deux polices, une grande et une petite. L’activation du « clavier » est scrutée dans la boucle sans fin principale. Je me suis efforcé de n’utiliser ni arithmétique en virgule flottante, ni bibliothèque de maths, ceci afin que le code reste peu volumineux et indépendant de l’EDI. Tous les fichiers source ont été compilés en « code Thumb » ARM (code à 16 bits), pas tant pour réduire la taille du fichier hex qu’en raison de la mémoire flash à 16 bits du contrôleur : un code à 16 bits y est donc plus vite exécuté. L’exécutable fait environ 8 Ko, auxquels s’ajoutent 20 Ko pour stocker l’écran d’accueil. Je

projet de lecteur

n’ai eu besoin d’aucune astuce pour faire tenir l’ensemble dans le µC, sa mémoire flash est assez vaste pour ça. L’archive du projet peut être téléchargée gratuitement depuis [1].

Construction Les composants du générateur sont répartis sur deux circuits imprimés (fig. 4). Comme je l’ai dit, l’assemblage de la carte principale ne présentera pas de difficultés pour qui a de bons yeux… ou une bonne

loupe. Notez que les poussoirs et le LCD se montent côté cuivre de la carte. Restez soigneux avec le câble plat souple du LCD : il doit être détaché de son support en plastique (fig. 5) et plié autour de la carte pour atteindre K1 (fig. 6). Les deux potentiomètres s’insèrent dans le circuit imprimé en laissant dépasser l’axe côté cuivre. Le labo d’Elektor a utilisé des « disques » en caoutchouc (découpés dans une vieille chambre à air de vélo) pour éviter que les potentio-

Figure 5. À gauche, l’écran autrefois utilisé dans certains mobiles d’une célèbre marque scandinave qui n’est pas Ikea ; à droite, le même écran adapté à notre générateur.

Liste des composants de l’Alimentation Résistances (1 %, 0,6 W) R1, R3 = 180 Ω R2, R4 = 2,0 kΩ R5 = 240 Ω R6 = 390 Ω R7 = 10 kΩ, 5 %, 0,25 W

Condensateurs C1, C2, C3, C4, C15, C16 = 10 nF, 50 V, Y5V, pas de 5 mm C5 = 1000 µF, 50 V, pas de 5 ou 7,5 mm, diam. 16 mm C6 = 470 µF, 50 V, pas de 5 ou 7,5 mm, diam. 13 mm C7, C8, C13, C14, C18, C21 = 100 nF, 50 V, X7R, pas de 5 mm C9, C10, C11, C12, C19, C20 = 10 µF, 50 V, pas de 2 mm, diam. max. 6.3 mm C17 = 47 µF, 50 V, pas de 2,5 mm ou 3,5 mm, diam. max. 8 mm

K2 = bornier pour CI à 4 voies (2x2), pas de 5 mm, 250 V TR1 = prim. 2x115 V / sec. 2x15 V, 10VA, p. ex. Block FL 10/15 F1 = fusible, 100 mA (réseau 230 V) ou 200 mA (réseau 115 V) ; action retardée, 250 V, 20 x 5 mm F2, F3 = fusible, 315 mA, action retardée, 250 V, 20 x 5 mm

Porte-fusible pour F1, F2, F3, 20 x 5 mm, 500 V, 10 A Caches pour porte-fusibles F1, F2, F3, 20 x 5 mm JP1 = cavalier Circuit imprimé 150210-2 v1.1 (www.elektor.fr)

Semi-conducteurs D1, D2 = STPS2L60, boîtier DO-41 D3, D4, D5, D6 = 1N4007, boîtier DO-41 IC1, IC3 = LM317, boîtier TO-220 IC2 = LM337, boîtier TO-220 LED1 = LED, verte, 3 mm

Divers K1 = bornier pour CI à 2 voies, pas de 7,6 mm, 500 V

Figure 4b. Sérigraphie de la carte d’alimentation (simple face et composants traversants).

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

novembre 2015

47

découvrir

créer

partager

Figure 6. Montage de l’écran des deux côtés de la carte. Utilisez de l’adhésif double face pour le coller à la carte.

Figure 7. L’alimentation assemblée et son dissipateur maison. Notez le cavalier derrière le transformateur pour la sélection de la tension de réseau (230 V ici).

mètres ne glissent lors des réglages. Un trou de diamètre 10 mm convient ; le diamètre extérieur des disques doit de préférence être légèrement inférieur à 22 mm. Pour P2, la présence d’un disque évite aussi d’endommager la piste qui jouxte son trou côté composants. Le montage de la carte d’alimentation ne devrait poser aucun problème. Le transformateur a deux secondaires pour supporter à la fois les réseaux de 115 et 230 V. Placez un cavalier sur JP1 (au milieu des trois lignes pointillées) pour un réseau de 230 V ; placez deux cavaliers (sur les deux lignes pointillées extérieures) si vous êtes sur du 115 V. Ne placez pas les trois cavaliers sur JP1 ! N’oubliez pas d’utiliser le bon fusible pour protéger le primaire : 100 mA(T) pour du 230 V, et 200 mA(T) pour du 115 V, où T est le retard. Les trois régulateurs ont besoin d’un dissipateur. Celui de la figure 7 a été fabriqué à partir d’une bande d’alu de 2 mm d’épaisseur. N’oubliez pas l’isolation électrique de ces trois régulateurs (rondelle en mica et manchon en plastique). La longueur de la vis M3 doit être d’environ 6 mm. Il est conseillé d’ajouter une rondelle métallique entre la tête de la vis et le manchon en plastique. Le manchon est souvent un peu trop long ; si c’est le cas, coupez-le à la bonne longueur avant de monter les régulateurs sur le dissipateur. Si vous souhaitez loger le générateur dans le même boîtier que le mien (fig. 8), vous pouvez télécharger depuis [1] un gabarit pour le perçage des panneaux avant et arrière. L’embase BNC K5 est isolée ; elle se monte sur le panneau avant. Après avoir fixé la carte principale à ce panneau (j’ai collé les vis à l’arrière du panneau), utilisez des fils courts pour relier l’embase BNC au circuit imprimé.

Programmation

Figure 8. Le prototype construit par Jan Visser au labo Elektor. Découpes faites avec une machine-outil à 100 k€ des outils simples et de la patience.

48

novembre 2015

Le générateur doit d’abord être programmé avec le bon micrologiciel. Il en existe deux versions (à télécharger depuis [1]) puisqu’il y a deux configurations possibles pour le LCD. Comment savoir laquelle est la bonne ? Pas d’autres solutions que de les essayer puisqu’il n’existe aucun moyen visuel de connaître le modèle du LCD. Donc programmez le µC, et regardez si des ondes apparaissent. Pas d’ondes ? Essayez l’autre. Toujours rien ? Oh, oh… Vous pouvez programmer le contrôleur par JTAG ou par chargeur de démarrage.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs

projet de lecteur Matériel disponible sur www.elektor.fr • 150210-1 – circuit imprimé de la carte principale, sans composants • 150210-2 – circuit imprimé de la carte d’alimentation, sans composants • 150210-91 – carte principale, préassemblée Hélas, nous ne pouvons pas proposer le microcontrôleur IC1, ni vierge, ni programmé.

Figure 9. Capture d’écran de l’outil de programmation ARMWSD en plein travail.

La première solution, qui nécessite un adaptateur JTAG (p. ex. le J-LINK de Segger ou le ULINK de Keil), fournit une interface de débogage. L’interface JTAG standard a 20 broches mais fonctionne également avec seulement 6 broches (K3). L’autre solution est d’utiliser l’interface du port série (K2). Seule la programmation est possible ici. Autrement dit : pas de

débogage. Analog Devices vend le câble nécessaire, mais vous pouvez fabriquer le vôtre avec un câble série TTL-vers-USB. Le site web d’Analog Devices propose un outil de programmation in situ gratuit (ARMWSD.exe). Sélectionnez d’abord le port série USB approprié, puis chargez le fichier hex. Le programme vous invitera à Press Download and pulse Reset on hardware (fig. 9). C’est la raison pour laquelle les deux cavaliers JP1 et JP2 portent les mentions Download et Reset sur la carte. Pensez à retirer le cavalier de Download après la programmation, sinon à la prochaine mise sous tension le contrôleur sera encore en mode bootloader et l’écran restera noir.

Et là c’est moi… … qui vous envoie des ondes positives : avec ce bel instrument vous prendrez plaisir à réparer des amplificateurs, vous découvrirez que tracer la courbe de réponse d’un filtre est un jeu d’enfant, et le langage des ondes n’aura plus de secret pour vous. Bienvenue dans le monde merveilleux des électroniciens bien équipés ! (150210-I – version française : Hervé Moreau)

Liens [1] www.elektormagazine.fr/150210

[2] www.elektor-labs.com/150210

Manuel de l’utilisateur Bouton

Fonction

Bouton

Fonction

S1

Set

S5

–Down

S2

Right

S6

Mode

S3

Left

S7

Sweep

S4

+Up

S8

Calibration

• Forme d’onde – Appuyez sur Mode pour basculer entre sinus, carré et triangle. • Rapport cyclique – Il ne peut être défini qu’en mode onde carrée. Appuyez sur Mode pour activer la sortie onde carrée. La valeur du rapport est indiquée en bas de l’écran. Ajustez-le en pressant +Up et -Down (les chiffres ne doivent pas clignoter). • Fréquence – Appuyez sur Set. Un chiffre clignote ; utilisez +Up et -Down pour modifier sa valeur, et Left et Right pour passer aux autres chiffres. Appuyez sur Set pour valider. • Amplitude – Ajustez P2. Notez que le réglage de l’amplitude affecte la tension de décalage. Cf. [2] pour le détail des mesures. • Décalage CC – Ajustez P1. • Balayage de fréquence – Appuyez sur Sweep pour ouvrir le menu Sweep. Le chiffre le moins significatif de la fréquence de départ clignote ; utilisez +Up et -Down pour modifier sa valeur, Left et Right pour passer aux autres chiffres. Appuyez sur Set pour régler le paramètre suivant. Définissez la fréquence d’arrêt, la durée du balayage (appelée msec) et le mode (linéaire

ou logarithmique). Set lance le balayage : la première ligne du menu Sweep indique sweep run. Appuyez de nouveau sur Set pour l’arrêter (sweep stop s’affiche). Vous pouvez définir de nouvelles valeurs. Pressez Sweep pour revenir au menu principal. • Contraste – Appuyez sur Calibration pour accéder au menu permettant de régler le contraste du LCD. Utilisez Set pour naviguer entre les options, +Up et –Down pour modifier le niveau de contraste. Appuyez sur Calibration pour revenir au menu principal. • Niveaux de tension de calibrage – Reliez un oscilloscope à la sortie du générateur et réglez le niveau de sortie sur 5 Vcc. Appuyez sur Calibration pour ouvrir le menu Calibration. Sélectionnez Measurements pour lancer la procédure (si vous y entrez par erreur, coupez l’alimentation pour en sortir). Ajustez P1 pour définir la valeur minimale de sortie sur 0,00 V ; appuyez sur Set pour valider. Ajustez P1 pour mettre la valeur maximale de sortie sur 12,00 V ; Set pour valider. Un message signale la fin du calibrage. Appuyez sur Calibration pour revenir au menu principal. • Fréquence de calibrage – Reliez un fréquencemètre de précision à la sortie du générateur. Appuyez sur Calibration pour ouvrir le menu Calibration. Sélectionnez Frequency pour lancer le calibrage (si vous y entrez par erreur, coupez l’alimentation pour en sortir). Réglez la fréquence de sortie sur 100 kHz avec +Up et -Down. Bouton Set pour valider. Un message signale la fin du calibrage. Appuyez sur Calibration pour revenir au menu principal.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

novembre 2015

49

créer

découvrir

partager

boutons radio RVB pour quiz sans peur des coups, ni fil Antonello Della Pia (Italie) Circuit : Luc Lemmens (labo d’Elektor) Rédaction : Jan Buiting (rédacteur en chef GB)

Pour encadrer un jeu de questions-réponses dans un bistrot bruyant ou une classe de jeunes surexcités, il faut un système rapide, fiable et sans fil. C’est encore mieux si ce système permet de favoriser l’équité et d’assoir l’autorité de l’animateur. Ajoutez-y du son, de la lumière et une main magique pour la remise zéro. Il n’y a plus qu’à jouer ! référence NRF24L01+ de la marque Nordic Semiconductor. On les trouve facilement et c’est un jeu d’enfant de les associer aux microcontrôleurs ATtiny d’Atmel. Ces modules de trancepteur (émetteur/récepteur) de bonne composition peuvent gérer jusqu’à six canaux et offrent plusieurs modes de communi-

RF Transmitter

Les modules radio du projet portent la

PA

Caractéristiques

56

janvier/février 2016

Baseband TX Filter

GFSK Modulator

ANT1 LNA

ANT2

SPI

GFSK Demodulator RX FIFOs

Power Management

SCK MISO MOSI IRQ CE

Radio Control

VDD_PA

RF Synthesiser

IREF

XC2

RX Filter

DVDD

XC1

CSN

TX FIFOs

Enhanced ShockBurst Baseband Engine

RF Receiver

VSS

• Trancepteur NRF24L01+ à 2,4 GHz • Pupitres des joueurs rouge, vert et bleu • Trois canaux avec témoin par LED R-V-B • Le premier qui appuie évince les autres pour 2 s • Remise à zéro avec la main magique de l’animateur • Ruban de LED 12 V RVB bon marché et facile à trouver

cation. La figure 1 montre le synoptique du NRF24L01+ ; nous vous recommandons de consulter sa fiche technique [1] parce que ce module présente des options intéressantes et un bon potentiel pour l’incorporer à d’autres projets à µC. Et puis chut !… ils sont très bon marché.

Register map

Les trancepteurs

VDD

La femme de l’auteur est enseignante, elle voulait un système pour animer des jeux dans sa classe. Sur le modèle des émissions de quiz, le premier à donner la bonne réponse à la question gagne. Vu l’âge des participants, on se dit que le matériel doit être d’emploi aisé, à l’épreuve des coups, empêcher la tricherie, rester fiable et surtout, sans fil.

Figure 1. Le trancepteur radio est un NRF24L01+ de Nordic Semiconductor. Il a six canaux à 2,4 GHz. Il est disponible entre autres auprès de Seeed Studio.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs

projet de lecteur

L’émetteur K1 MISO 1 SCK 3 RESET 5

R2

MISO

C2

+3V

CR2032

C3

C1

100n 100u 50V

R1

PB5

IC1 ATtiny85

100n

3 2 7 6 5

SCK MOSI

4

GND

S1

PB4 PB3 PB2 PB1 PB0

1 = GND 2 = VCC 3 = CE 4 = SCN 5 = SCK 6 = MOSI 7 = MISO 8 = IRQ (not used)

1 3 5 7

1

VCC

8

MOD1 NRF24L01+

2 4 6 8

6k8

BT1

150499 - 12

Figure 2. Schéma de l’émetteur pour quiz. Selon le micrologiciel chargé, il envoie la chaîne de texte RED, GREEN ou BLUE au récepteur sur le pupitre de l’animateur.

7805

1

500mAT

+5V R2

3 C3

C4

C5

100n

100u 50V

100n

+5V

UART

C7

JP1

21

20 16MHz

8

C9

ready

22p

R3

+5V 120R

R5

GND

OSC1 9

X1

2 3 4 5 6 11 12 13

R4

IC3

3

IC4

1

1

LS1 8 Ohm JP2

IR

C8 10u 50V

LED1

cable

AREF PD0/0 PD1/1 PD2/2 PD3/3 PD4/4 PD5/5 PD6/6 PD7/7

ATMEGA328P

1k

22

R1

RST

OSC2

PC5/A5 PC4/A4 PC3/A3 PC2/A2 PC1/A1 PC0/A0

AVCC

PB5/13 PB4/12 PB3/11 PB2/10 PB1/9 PB0/8

GND

28 27 26 25 24 23

VCC

7

Power Select

10

19 18 17 16 15 14

5V FTDI

K1 K2

100n 100u 50V

2

Le récepteur

K2

C12

100n

120R

1N4007

+5V

IC2

F1

2k7

D1

10k

12V 3 1 2

2

K1

C6

TSOP58238

LED2

C10 22p

T1

12k

R6 120R R7

12V

BS170

K3

2 4 6 8

+3V3

1 3 5 7

100u 50V

LP2950-33LPE3 +5V

1

IC1

3

+3V3

C1 100n

100n

1 = GND 2 = VCC 3 = CE 4 = SCN 5 = SCK 6 = MOSI 7 = MISO 8 = IRQ (not used)

R8 120R R9

+ R G B

T2

12k

MOD1 NRF24L01+

BS170

T3

R10 120R 12k

C11

2

Le récepteur dont le schéma est à la figure 3 est un peu plus compliqué que l’émetteur. Il utilise le même module trancepteur MOD1 alimenté par un adaptateur secteur à 12 Vcc sur K1. La diode D1 protège de l’inversion de polarité le régulateur IC2 ainsi que les trois LED branchées sur K3. La tension de 5 V sert à IC3, le détecteur IR, au microcontrôleur ATmega328P et à la fonction de démarrage à distance par K2. Un autre régulateur, IC1, abaisse cette même tension de 5 V à 3,3 V pour le trancepteur NRF24L01+. Le cavalier JP1 permet de choisir entre l’alimentation en 5 V à partir du récepteur (position K1) ou par le câble FTDI branché sur K2 (position K2). Les enfants en veulent toujours plus ! Du son et de la lumière ? Le µC sort un bip sur LS1 quand JP2 le permet. Il allume aussi LED2 quand on appuie sur le bouton pour répondre. La réception d’un message valide RED, GREEN ou BLUE fait s’allumer la LED correspondante. On a vu que les autres boutons sont alors inhibés jusqu’à une remise à zéro du récepteur. C’est l’animateur du quiz qui le fait en approchant sa main du détecteur de proximité IR (invisible) IC3 – c’est spectaculaire, un véritable tour

2 VCC 4 MOSI 6 GND

ATMEL ISP

10k

Le schéma de la figure 2 est celui de l’un des trois émetteurs à installer dans le camp des participants. Notre NRF24L01+, alias MOD1, est configuré pour fonctionner en mode de base. Quand on appuie (ou qu’on frappe) sur S1 pour donner la réponse, PB5 du microcontrôleur ATtiny est mis au niveau bas. Ce que détecte le micrologiciel qui tourne dans l’ATtiny, il envoie alors une chaîne de texte, RED, GREEN ou BLUE, au récepteur à sa portée. Dès ce moment, côté récepteur, on fait la sourde oreille à tout autre message envoyé par quelque retardataire que ce soit, le temps pour le meneur de jeu d’évaluer la réponse. Chaque émetteur est alimenté par une pile bouton de 3 V de type CR2032. Pour prolonger la vie de la pile, on maintient l’ATtiny85 en mode de veille. En poussant sur le bouton S1 pour répondre, on provoque une impulsion de mise à zéro qui éveille le microcontrôleur. Il envoie alors la chaîne de texte au trancepteur et se rendort. L’auteur a trouvé des boîtiers originaux : les émetteurs sont logés dans de gros rouleaux d’adhésif de couleur et le récepteur dans une boîte à spaghettis.

R11

BS170

150499 - 11

Figure 3. Schéma du récepteur. De nombreux composants servent aux alimentations et à la conversion de niveau pour le ruban de LED RVB de 12 V.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

janvier/février 2016

57

découvrir

créer

de magie. Après la remise à zéro, la LED ready s’allume et le système est prêt pour une nouvelle question. Les LED R, G et B fonctionnent sous 12 V ; l’ATmega328P,

partager avec son 5 V, ne peut pas les allumer seul, il faut donc comme intermédiaires les MOSFET T1, T2 ou T3. L’ensemble de LED RGB est connecté sur K3.

Le logiciel, l’affaire d’Arduino Le code du projet a été écrit avec l’IDE 1.6.5 d’Arduino et des bouts de la bibliothèque RF24 de Nordic. C’est pour-

Liste des composants Récepteur Résistances : à film de carbone, 5 %, 0,25 W, 250 V R1 = 1 kΩ R2 = 10 kΩ R3, R5, R6, R8, R10 = 120 Ω R4 = 2,7 kΩ R7, R9, R11 = 12 kΩ

Condensateurs : C1, C2, C3, C4, C6, C12 = 100 nF, 50 V, X7R, au pas de 5,08 mm C5, C7, C11 = 100 µF, 50 V, au pas de 3,5 mm, 8x11 mm C8 = 10µF, 50 V, au pas de 2 mm, 5x11 mm C9, C10 = 22 pF, 50 V, C0G/NP0, au pas de 2,5 mm

Semi-conducteurs :

Émetteur Résistances : à film de carbone, 5 %, 0,25 W, 250 V R1 = 10 kΩ R2 = 6,8 kΩ

D1 = 1N4007 LED1 = LED rouge 3 mm LED2 = diode IR à 940 nm, 5 mm, TSAL6100 T1, T2, T3 = BS170 IC1 = LP2950-33LPE3 IC2 = MC7805 IC3 = TSOP58238 (38 kHz), Newark/Farnell réf. 2251388 IC4 = ATMEGA328P, programmé (150499-41)

Divers :

Condensateurs : C1, C2 = 100 nF, 50 V, X7R, au pas de 5,08 mm C3 = 100 µF, 50 V, au pas de 3,5mm, 8x11 mm

Semi-conducteurs : IC1 = ATTINY85-20PU, programmé RED (150499-42) IC1 = ATTINY85-20PU, programmé GREEN (150499-43) IC1 = ATTINY85-20PU, programmé BLUE (150499-44)

Divers : Bt1 = coupleur de pile CR2032 K1 = embase à 6 picots avec collerette (en option) S1 = bouton-poussoir à dôme rouge, Sparkfun réf. COM-09181 ; vert = réf. COM-11275 ; bleu = réf. COM-11274 circuit imprimé (150499-2) embase femelle à 2 rangées de 4 contacts, verticale, au pas de 2,54 mm (option pour MOD1) pile au lithium CR2032 MOD1 = module trancepteur NRF24L01+ à 2,4 GHz (2x4 broches), Seeed Studio réf.113990011 (150499-91) variante : kit de composants (150499-71) ; contenu : cf. liste de composants du récepteur

F1 = 500mAT 20x5 mm, avec porte-fusible 20x5 mm JP1 = embase à 3 picots JP2 = embase à 2 picots K1 = prise pour jack CC, broche 1,95 mm, 12 V, 3A K2 = embase à 6 picots au pas de 2,54 mm K3 = embase à 4 picots au pas de 2,54 mm MOD1 = module trancepteur NRF24L01+ à 2,4 GHz (2x4 broches), Seeed Studio réf.113990011 (150499-91) JP1, JP2 = cavalier à 2 contacts, au pas de 2,54 mm embase à collerette à 2 lignes de 4 contacts, verticale, au pas de 2,54 mm (en option pour MOD1) LS1 = haut-parleur miniature 8 Ω, p.ex. KINGSTATE réf. KDMG20008 X1 = quartz 16 MHz, CL=18 pF ruban de LED RGB 12 V circuit imprimé réf. 150499-1 V1.1 variante : kit de composants (150499-71). Contenu : 1 carte de récepteur, 3 cartes d’émetteur, 4 µC programmés, 4 modules NRF24L01+

Figure 4. Circuits imprimés pour le récepteur et les émetteurs, ainsi que la liste de leurs composants. Notez qu’il faut trois cartes d’émetteur, chacune dotée d’un micrologiciel différent selon la couleur, -42 pour le rouge, -43 pour le vert et -44 pour le bleu.

58

janvier/février 2016

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs quoi nous avons utilisé un µC ATmega328P, le cœur de l’Arduino. Il n’est pas étonnant de le retrouver dans d’innombrables applications autonomes embarquées proposées dans le magazine Elektor. Les codes des programmes pour le récepteur et l’émetteur sont des sketchs Arduino séparés, disponibles sur la page du projet [2]. Comme pour tous les logiciels que nous distribuons gratuitement, chacun est invité à y apporter ses adaptations, améliorations et extensions. Pour ceux qui ne disposent pas chez eux d’une plateforme Arduino ou qui n’ont pas vraiment d’intérêt pour les microcontrôleurs, nous les fournissons déjà programmés dans l’e-choppe, voyez la liste des composants. Pour les autres, voici les données capitales qui permettent de programmer les émetteurs à la maison : 150449-42 (TX rouge) 150499-43 (TX vert) 150499-44 (TX bleu) ATTINY85-20PU SELFPRGEN = 1 (non programmé) RSTDIBL = 1 (non programmé) DWEN = 1 (non programmé) SPIEN = 0 (SPI validé) WDTON = 1 (non programmé) EESAVE = 1 (non programmé, EEPROM non préservée) BODLEVEL = 111 (non validé) CKDIV8 = 0 (programmé) CKOUT = 1 (non programmé) CKSEL = 0010, SUT = 10 (Int. RC osc. 8 MHz, start-up time: 6CK/14CK + 64 ms (PWRDWN/RESET)) et pour le récepteur : ATmega328P-PU à 16 MHz, réglage des fusibles : L:0xFF, H:0xDA, E:0x07, LB:0x0F, chargeur d’amorçage : Optiboot

La construction Pour ce projet, nous vous proposons un kit (réf. 150499-71) qui comprend les

projet de lecteur

quatre circuits imprimés nus, les quatre µC et les quatre modules radio pour le système à trois canaux décrit. Les informations essentielles pour la construction sont données dans la liste des composants de la figure 4. Les circuits imprimés sont pourvus de combinaisons de connecteurs et de supports pour y monter les modules trancepteurs. Si vous êtes sûr de vous, vous pouvez aussi souder directement les huit broches des modules sur le circuit imprimé, mais ils peuvent masquer certains trous de la carte. La carte du récepteur n’a qu’un composant, la diode radiante IR, installée sur le côté inférieur. La carte de l’émetteur peut accueillir un connecteur ISP à six broches en option, il ne servirait que pour (re)programmer l’ATtiny in situ. Elle porte en tout cas le coupleur pour la pile CR2032 sur le côté inférieur, mais ne l’implantez qu’en dernier lieu, vous verrez vite qu’avec lui, il devient impossible d’atteindre la plupart des pastilles à souder. Pour les rubans de LED, tout type RVB sous 12 V ira, il faut savoir qu’il en existe de deux sortes. La plupart ont trois, voire six LED RVB (les trois couleurs dans chaque LED) montées par section sur le ruban, les autres ont des LED séparées par couleur dans chaque section. On peut les utiliser indifféremment dans ce projet, le tout est de savoir ce qu’on commande. Les gros boutons de quiz que l’auteur a fabriqués avec des rouleaux de bande adhésive sont à la figure 5, ils doivent résister aux assauts des plus enthousiastes. Les microrupteurs euxmêmes sont des modèles industriels qui répondent aux mêmes critères. Jan Visser du labo d’Elektor, par ailleurs spécialiste de l’amélioration de l’habitat, a imaginé une construction différente. Les boîtiers des poussoirs sont faits de morceaux de tuyaux de descente en PVC de 55 mm de long, 110 mm de diamètre et une paroi de 3 mm, avec pour chacun deux capuchons, peints en rouge, vert et bleu. Le microrupteur se monte facilement sur le capuchon du haut, il suffit

Figure 5. Fabriqué avec un empilage de rouleaux de ruban adhésif et un microrupteur de qualité industrielle, le bouton de quiz de l’auteur est dans un boîtier solide décliné en trois couleurs.

d’y percer un trou de 23 mm au milieu. D’autres trous sont nécessaires dans le bouchon du fond pour évacuer l’air lorsqu’on presse le bouton. Le résultat pour le bouton rouge est visible à la figure 6, avec l’émetteur en sûreté dedans. Les microrupteurs utilisés sont des boutons-poussoirs éléphantesques (Big Dome pushbutton) d’un diamètre extérieur de 100 mm que l’on trouve entre autres chez Sparkfun [3] ou RobotItaly [4]. (150499 – version française : Robert Grignard)

Figure 6. Variante élaborée, on peut construire un bouton à toute épreuve avec des morceaux en PVC et un gros bouton-poussoir de Sparkfun illustrés ici.

Liens [1]  Fiche technique du trancepteur NRF24L01P+ : www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01P [2]  Page du projet : www.elektormagazine.fr/150499 [3]  Bouton-poussoir de type Big Dome : www.sparkfun.com/products/9181 [4]  Bouton-poussoir de type Big Dome : www.robot-italy.com/en/big-dome-push-button-red-economy.html?___from_store=it

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

janvier/février 2016

59

créer

découvrir

partager

précision à la seconde près grâce au satellite Willem Tak (Pays-Bas)

nouvelle horloge Nixie pilotée par GPS

36

mai 2016

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs

projet de lecteur

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

mai 2016

37

créer

découvrir

partager Caractéristiques

On garde les mêmes et on recommence, mais avec une précision

• Horloge radiopilotée par GPS • Précise à la seconde près • Horloge interne pour suppléer au signal GPS évanoui • Passage automatique à l’heure d’été/hiver

accrue. L’Horloge Nixie à récepteur GPS, dite « suisse », parue en octobre 2014 a, depuis, accouché d’une fille encore plus douée qui ne craint pas de montrer la vérité de la seconde, et toujours dans la chaleur du tube.

+180V' R26

R25

V6 Nixie IN12

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

2 11 10 9 8 7 6 5 4 3 12

2 11 10 9 8 7 6 5 4 3 12

2 11 10 9 8 7 6 5 4 3 12

2 11 10 9 8 7 6 5 4 3 12

1

V5 Nixie IN12

2 11 10 9 8 7 6 5 4 3 12

LA2

s ec s- 1

27k

27k

se cs- 1 0

1

27k

27k 1

R24

mins-1 V4 Nixie IN12

0 1 2 3 4 5 6 7 8 9

LA1

R5

mins-10 V3 Nixie IN12

470k

R4

470k

27k

V2 Nixie IN12

1

V1 Nixie IN12

R3

hours-1

1

R2

hours-10

2 11 10 9 8 7 6 5 4 3 12

1

27k

R1

1 3 5 7 9

2 4 6 8 10

1 3 5 7 9

2 4 6 8 10

+180V'

K4

1 3 5 7 9

2 4 6 8 10

1 3 5 7 9

1 3 5 7 9

2 4 6 8 10

1 3 5 7 9

1 3 5 7 9

2 4 6 8 10

K14

K13 2 4 6 8 10

1 3 5 7 9

2 4 6 8 10

1 3 5 7 9

K11

K9 2 4 6 8 10

2 4 6 8 10

K12

K10

K7

K5 2 4 6 8 10

2 4 6 8 10

K8

K6

K3 1 3 5 7 9

1 3 5 7 9

1 3 5 7 9

2 4 6 8 10

+180V

C13

100uF 25V

100n 100n

C15

TC

GND

C3

R16

680p

R17

RD7

+5V

+5V R15

+3V3

R21

S1

16 15 8 9 13 14 11 10 1 2 O0 O1 O2 O3 O4 O5 O6 O7 O8 O9 A3 4

A1

A2

7

R22 T7

21 20 19 18 17 16 15 14 13 12 11

RX0 TX0 EXT/INT ON/OFF SDA SCL GPIO5 GPIO4 NC NC NC

RST BOOTSEL VCC 3V3 WAKEUP MOD1 VOUT A2035H GND GPIO6 GPIO7 GND NC

1 2 3 4 5 6 7 8 9 10

R20 10k

R10

+3V3 C2 100n

2N7000

C14 100n

150189 - 11

copyright

Figure 1. L’horloge Nixie « suisse » s’est enrichie de deux tubes supplémentaires et d’un contrôleur avec plus d’E/S pour les piloter.

mai 2016

6

A0

1V8

SPP20N60C3

38

3

4

A2

A1

7

6

A3

C17 100n

R19 T6

30

8 RE0 9 RE1 10 RE2

18 RC3 23 RC4 25 RC6 26 RC7

JP1

+5V

100n

29 28 27 26 25 24 23 22

10u 250V

12

C16

10k

R18 10k

12

10k

C10

R14

GND

+3V3

+5V

10k

P1 500k

22p

+5V

MPSA42

IC9 74141

VCC

GND GND GND GND GND GND GND GND

31

10k

2 3

+5V

C9

22p

5

12

19 RD0 20 RD1 21 RD2 22 RD3

27 RD4 28 RD5 29 RD6

2 RA0 3 RA1 4 RA2 5 RA3

16 15 8 9 13 14 11 10 1 2 A0 3

R23

1k LED1

10k

SE

MC34063

DC

T5

C8

GND

10k

100n

3k3

100n

VSS

OSC2

IC8 74141

VCC

A3 4

A1

A2

7

6

3

C5

+5V

O0 O1 O2 O3 O4 O5 O6 O7 O8 O9

16 15 8 9 13 14 11 10 1 2 O0 O1 O2 O3 O4 O5 O6 O7 O8 O9 A0

A3 4

A2

A1

7

5

T8

C4

VSS

14

13

RB7

MCLR 1

+5V 12

X1

22.1184MHz

R13

5k6

C12

IS

5

150R

8

IC7

CI

+180V 470k

BYV26

6 7

SC

4

1N4004

2

K2

1

VCC

R12

D1

330uH

3

+5V

GND

2N7000

IC6 1

OSC1

VDD

R11

40

PICkit

L1

7805

IC3 74141

VCC

IC4 PIC18F4420 7 RA5 6 RA4

32

C7 100n

+5V VCC

D2

24 RC5 15 RC0 16 RC1 17 RC2

RB6 RB5 RB4 RB0 RB1 RB2 RB3

39 38 37 33 34 35 36

3k3

2u2 25V

5

+5V

MPSA42

VDD

10k

100uF 25V

+5V

PGD PGC

C1 2

C11

12

GND

RST 11

3

1

6

A0 3

A3

R8

MPSA42

K1

IC2 74141

VCC

4

A1 6

5

T3

100n

IC5 +3V3 LP2950-33

+5V

O0 O1 O2 O3 O4 O5 O6 O7 O8 O9

+5V 12

GND

C6

T4

R9 10k

3

+5V

MPSA42

A2

IC1 74141

VCC A0

5

7

T2

R7 10k

O0 O1 O2 O3 O4 O5 O6 O7 O8 O9

+5V

MPSA42

16 15 8 9 13 14 11 10 1 2

16 15 8 9 13 14 11 10 1 2

T1

R6 10k

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs Le magazine Elektor d’octobre 2014 vous a présenté mon horloge à Nixie qui tire le temps réel d’un module GPS A2035H (de Maestro) pour en obtenir une grande précision. Et pourtant, sur quatre tubes, il n’était pas possible d’égrainer les secondes. D’autant que, malgré leur présence dans le logiciel (version 2.0 comprise), le matériel ne permettait pas de piloter suffisamment de lignes d’E/S pour gérer six tubes.

Davantage de broches Il aurait été possible de s’en sortir avec des extensions I²C par ex., mais le circuit en serait devenu trop compliqué à mon goût. J’ai choisi de repartir d’un PIC à 40 broches, le 18F4420. Bon marché, il est largement disponible.

projet de lecteur

GPS correcte. Si ce témoin reste allumé, c’est qu’il y a perte de contact. On peut programmer le PIC en circuit à l’aide d’un PICkit 2 ou PICkit 3 (cf. encadré Vicissitudes du programmateur). Le cavalier JP1 décide de l’affichage ou non du zéro non significatif (présent : pas de zéro ; absent : zéro inscrit). Le module GPS MOD1 (A2035H) inclut toute l’électronique et une antenne pour recevoir les signaux GPS. Comme le module GPS travaille sous 3,3 V alors qu’il faut 5 V pour le PIC, j’ai intercalé dans les lignes de données deux changeurs de niveau avec les FET T6 et T7, et les résistances R18 + R19 ainsi que R21 + R22. Comme pilotes des tubes Nixie, j’avais

je les ai remplacés par des IN-14 qui sont en plus compatibles avec les autres tubes de forme ovale comme le ZM1100 et le CD56. Ce nouveau type est lisible par le sommet de l’ampoule. Il a donc fallu séparer de la carte mère la partie affichage, qui peut dès lors servir directement de face avant. Mais il est aussi plus facile de construire un affichage personnalisé avec de la plaque perforée ou d’utiliser des tubes avec un autre brochage. Six embases à deux rangées de picots assurent la fixation de l’affichage sur la carte mère. On peut alimenter le circuit sur un adaptateur secteur de 9 à 15 VCC. La haute tension pour les tubes Nixie provient

coutume d’utiliser des puces 74141, mais depuis lors, elles sont devenues rares. La solution de rechange est le circuit russe K155ID1. Nul besoin de cette puce pour attaquer V1, puisque du chiffre de dizaines d’heures, on n’use que le 0, le 1 et le 2 : un triplet de transistors suffit. Pour les séparateurs entre heures, minutes et secondes, deux transistors alimentent les loupiotes au néon. Les tubes Nixie de l’horloge précédente sont aussi devenus rares et donc chers,

d’IC7, un convertisseur survolteur du type MC34063. Une diode rapide D1 et la bobine L1 produisent des pics de surtension qui sont stockés dans le condensateur électrolytique haute tension C10. Si jamais la rétroaction par la broche 5 d’IC7 est interrompue, la tension risque de s’élever inconsidérément jusqu’à faire exploser le condensateur électrolytique. Vérifiez donc soigneusement cette liaison avant toute mise en service. La tension d’alimentation de 180 V atteint chaque anode des Nixie à travers R1, R2,

En principe, tous les ports sont restés identiques, seuls les numéros des broches changent en raison de l’augmentation de leur nombre. Le schéma de la nouvelle version à la figure 1 montre le grand frère du PIC18F2480 dans un environnement technique éprouvé, tandis que le reste du schéma n’a subi que peu de modifications, en dehors de la commande des deux tubes Nixie supplémentaires, confiée au port D. Sept de ses lignes s’occupent des décodeurs de secondes. Le huitième nouveau bit servira à attaquer une petite ampoule au néon supplémentaire pour afficher le point sexagésimal entre les minutes et les secondes.

Autre amélioration Outre la question de l’affichage des secondes, de nombreuses remarques sont parvenues à propos du réglage du fuseau horaire (UTC+1 pour l’Europe centrale). Cela ne pouvait être modifié que dans le code source pour le microcontrôleur, ce qui – il est vrai – n’est pas très pratique. Dans la nouvelle version de l’horloge Nixie, il est désormais possible de choisir la zone horaire après une réinitialisation (RàZ) par l’interrupteur S1.

Le schéma Parcourons sommairement le schéma. Le PIC18F4420 collecte les données du module GPS et commande les tubes Nixie. Sa fréquence d’horloge de 22,1184 MHz est un multiple convenable du débit binaire de 4 800 bauds du module GPS. Le PIC peut aussi allumer un témoin à LED (LED1) qui clignote après une RàZ et marque chaque réception d’une chaîne

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

mai 2016

39

créer

découvrir

partager

Liste des composants Résistances :

C11, C12 = 100 µF, 25 V au pas de 3,5 mm

(5%, 1/4 W) R1, R2, R4, R5, R25, R26 = 27 kΩ R6, R7, R9, R10, R11, R14, R15, R18, R19, R20, R21, R22 = 10 kΩ R3, R13, R24 = 470 kΩ R8, R23 = 3,3 kΩ R12 = 1 kΩ R16 = 150 Ω R17 = 5,6 kΩ P1 = 500 kΩ potentiomètre d’ajust.

Condensateurs : C1 = 2,2 µF, 50 V au pas de 2 mm C2, C4, C5, C6, C7, C13 à C17 = 100 nF, 50 V, 20% C3 = 680 pF, 100 V Y5P, au pas de 2,5 mm C8, C9 = 22 pF, 50 V C0G/NP0, au pas de 2,5 mm C10 = 10 µF, 250 V 20 %, radial, au pas de 5 mm

Inductance : L1 = 330 µH, 900 mA, radial 10 x 15 mm

Semi-conducteurs : D1 = BYV26 D2 = 1N4004 LED1 = LED à tête plate, rouge, 3 mm T1, T2, T3, T4, T8 = MPSA42 T5 = SPP20N60C3 T6, T7 = 2N7000 IC1, IC2, IC3, IC8, IC9 = K155ID1 (74141) IC4 = PIC18F4420, programmé, réf. 150189-41 (www.elektor.fr) IC5 = LP2950 IC6 = 7805 IC7 = MC34063

K1 = embase SIL à 6 picots au pas de 2,54 mm K2 = bornier à 2 vis au pas de 5,08 mm K3, K5, K7, K9, K11, K13 = embase verticale à 2x5 picots K4, K6, K8, K10, K12, K14 = embase à 2x5 picots coudés LA1, LA2 = ampoule néon à fils T1.1/4 MOD1 = module GPS A2035H avec antenne interne S1 = interrupteur à levier, SPDT, 20 V 0,4 VA V1 à V6 = tube Nixie IN-12 X1 = quartz 22,1184 MHz cavalier pour JP1 circuit imprimé, réf. 150189-1 (www.elektor.fr) connecteur CC pour montage en boîtier : PC-010 (www.tme.eu/en/details/pc-010/ dc-power-connectors)

Divers : JP1 = embase à 2 picots

Figure 2. Pour mettre en valeur la lumière chaude des tubes Nixie, nous avons choisi un circuit imprimé de couleur sombre pour accentuer le contraste.

40

mai 2016

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs R4, R5, R25 et R26. Si vous utilisez un autre modèle de tube, il faudra adapter leur valeur au courant optimal. L’alimentation du reste de l’électronique est assurée par deux puces de stabilisation, un 7805 (IC6) pour le PIC et les circuits pilotes et un LP2950-33 qui fournit le 3,3 V au module GPS.

projet de lecteur Produits disponibles Pour ce projet, l’e-choppe vous propose un kit, un boîtier, un circuit imprimé et un contrôleur tout programmé. Le kit contient aussi les tubes Nixie testés individuellement à la main sur un appareil fait expressément (cf. photo).

Récupération du temps GPS Le logiciel précédent ne demandait que peu de modifications, exception faite de la sélection du fuseau horaire et de la production du code hexadécimal pour la nouvelle cible, le PIC18F4420. N’empêche, pour ne rien laisser dans l’ombre, nous allons revisiter l’ensemble du logiciel. Comme d’habitude, le code source et l’hexadécimal sont disponibles sur le site du magazine [1]. Si vous ne souhaitez pas le programmer vous-même, le PIC programmé [2] est aussi disponible dans l’e-choppe. Le système GPS se base sur le Temps Universel Coordonné, UTC (Coordinated Universal Time) [3], celui des horloges atomiques embarquées dans les satellites. La référence à GMT est maintenant anachronique.

venu une minute après le lancement, il déclenche une RàZ du PIC. Le témoin LED1 est resté allumé pendant cette minute. Dès réception d’une chaîne valide, la ligne RS232 reste sous surveillance, mais différemment. Le témoin continue aussi à indiquer une éventuelle coupure. Quand des données sont introduites, le PIC vérifie l’authenticité de la chaîne avant de transférer les données jusqu’à ce qu’il trouve un (ASCII 13). Il calcule alors la somme de contrôle et la compare à celle transmise. Si elles sont égales, il déclare valide la donnée. Reste à calculer le décalage pour donner la bonne heure, été comme hiver. Il a recours à une table, qui court jusqu’en 2020, pour

Voici comment se déroule l’acquisition des données GPS. Le module extrait la trame GPRMC (Enable RMC) [4]. L’initialisation prévoit que seule la chaîne de caractères UTC soit envoyée une fois par seconde, les autres sont ignorées (Disable). Le PIC scrute sans arrêt l’arrivée de données dans le tampon RS232. Le chien de garde intégré le surveille et si rien n’est par-

déterminer laquelle est en vigueur. Pour finir, on convertit le temps en notation hexadécimale avec des variables séparées pour les heures, minutes et secondes. Il y a encore dans le logiciel une conversion d’ASCII en BCD pour garder la compatibilité avec d’anciennes versions. En principe, nous avons maintenant le temps GPS correct, mais il subsiste un souci avec les secondes. La transmission de la chaîne GPS est sujette aux conditions locales de réception, qui changent d’un endroit à l’autre, ce qui peut occasionner des ratés. Tant qu’on se contente d’afficher les heures et les minutes, on ne remarque rien, mais avec les secondes, mieux vaut ne pas afficher d’erreur. Pour l’éviter, j’ai décidé de programmer une horloge en temps réel avec un temporisateur interne. On appelle ainsi exactement toutes les 50 ms une routine d’in-

Figure 3. Si l’on excepte le module GPS, tous les composants sont traversants pour une construction facile.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

mai 2016

41

créer

découvrir

partager

Vicissitudes du programmateur Selon Microchip, le PICkit 2 et le PICkit 3 sont destinés à la programmation du PIC18F4420. Lors de la programmation de notre prototype, le PICkit 3 a impeccablement fonctionné. Mais avec le PICkit 2, impossible d’alimenter le contrôleur sur le programmateur. Ce n’est pas insurmontable, rien n’empêche d’utiliser l’alimentation du circuit, mais quand même, pourquoi pas ? Pour faire court, quand le circuit est alimenté de l’extérieur, le PICkit 2 fonctionne bien. Et même, quand il s’est mis en marche, vous pouvez débrancher l’alimentation externe. Il semble donc que le logiciel dans le PICkit 2 soit victime d’un bogue. Microchip ne prend plus en charge ce programmateur et, à vrai dire, nous n’avons pas ratissé la Toile à la recherche d’une solution. Encore une petite astuce : il n’est pas possible de brancher le programmateur directement sur le connecteur ISP : le régulateur 5 V et le condensateur réservoir l’encombrent. Un prolongateur SIL à six contacts et une embase à picots coudés, soudés dessus, vous feront un adaptateur parfait entre l’embase mâle pour ISP et le programmateur, comme à la figure 4.

Figure 4. Pour brancher le programmateur, mieux vaut fabriquer un accessoire avec une barrette à picots coudés et un prolongateur de bus SIL. Tableau 1. Réglage du fuseau horaire

UTC = temps universel coordonné

UTC = 0

UTC+0

UTC = 19

UTC-7

UTC = 1

UTC+1 (valeur standard)

UTC = 20

UTC-8

UTC = 2

UTC+2

UTC = 21

UTC-9

UTC = 3

UTC+3

UTC = 22

UTC-10

UTC = 4

UTC+4

UTC = 23

UTC-11

UTC = 5

UTC+5

UTC = 24

UTC-12

UTC = 6

UTC+6

UTC = 25

UTC+3.30

UTC = 7

UTC+7

UTC = 26

UTC+4.30

UTC = 8

UTC+8

UTC = 27

UTC+5.30

UTC = 9

UTC+9

UTC = 28

UTC+5.45

UTC = 10

UTC+10

UTC = 29

UTC+6.30

UTC = 11

UTC+11

UTC = 30

UTC+8.45

UTC = 12

UTC+12

UTC = 31

UTC+9.30

UTC = 13

UTC-1

UTC = 32

UTC+10.30

UTC = 14

UTC-2

UTC = 33

UTC+11.30

UTC = 15

UTC-3

UTC = 34

UTC+12.45

UTC = 16

UTC-4

UTC = 35

UTC–3.30

UTC = 17

UTC-5

UTC = 36

UTC–4.30

UTC = 18

UTC-6

UTC = 37

UTC–9.30

42

mai 2016

terruption. Comme l’écart entre les deux temps doit rester minimal, le réglage doit être réalisé avec précision par quartz. Il coexiste dans le logiciel l’heure produite par le PIC, PIC_HR, et celle de la chaîne GPS. On retrouve l’impulsion de 50 ms sur RA4, la broche 6 du PIC. L’horloge interne démarre bien sûr de 00:00:00, il faut une réception GPS valide pour la régler. Cela peut prendre un certain temps, mais dès qu’une chaîne valide arrive, le PIC la synchronise et l’horloge tourne au rythme des impulsions. Ensuite, un double mécanisme de vérification entre en jeu pour contrôler la stabilité de la réception GPS. Il analyse chaque chaîne GPS et, si elle est correcte, il la stocke dans un tampon qui peut en contenir dix. L’heure UTC correspond au nombre binaire de secondes écoulées depuis minuit. Le maximum étant de 24 x 60 x 60 = 86 400, 3 octets sont donc nécessaires pour les compter et les inscrire. Le nouveau temps est toujours inséré à la 10e position, ce qui décale d’une place tout le tampon, donc le temps le plus ancien arrive à la 1ère position. Si le débit de données du GPS a été constant, la différence entre ces deux valeurs est exactement de 9 s, auquel cas le drapeau GPS_STABLE est levé. On en déduit que le signal GPS est fiable et on l’emploie pour synchroniser l’horloge du PIC. Cette synchronisation se répète au moins une fois par heure. Quand l’heure du PIC passe à xx:00:30, la routine d’interruption lance une demande de synchro. Si le signal GPS est stable, le PIC est mis à l’heure du GPS. Ce moment de référence est choisi de manière à ce qu’une correction éventuelle ne soit visible que dans les secondes, mais pas plus haut. De toute façon, sur les différentes horloges que j’ai construites, l’écart ne dépasse jamais la seconde, pour autant que la boucle soit réglée précisément sur 50 ms. Pourtant, une synchronisation par heure n’est pas toujours suffisante. Principalement en phase de démarrage, il arrive que le temps validé issu du récepteur, souvent en l’absence d’information de coordonnées, soit totalement déphasé par rapport au temps réel et le reste longtemps. C’est très ennuyeux qu’un temps erronée soit transmis au PIC et affiché pendant près d’une heure.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs

projet de lecteur module GPS (cf. figure 3). Celui-ci est muni de pastilles à souder qu’il faut lier aux pastilles correspondantes du circuit imprimé au moyen de soudure. On le réalise fort bien à l’aide d’un fer à panne fine. Les plans de masse à la face opposée au module ne doivent pas forcément être étamés, on ne le réussit qu’au four à refusion.

Aussi, un second mécanisme de vérification, qui élimine aussi les boucles d’interruption imprécises, sert de moyen préventif du phénomène. Chaque seconde, le temps du PIC est aussi converti en secondes écoulées dans un mot de trois octets. Dès que le signal GPS est stable et tant qu’il le reste, on calcule la différence entre les deux valeurs. Si elle dépasse la valeur arbitraire de 3, le temps du PIC est aligné sur celui du GPS. La méthode peut sembler pointilleuse, mais en pratique, elle s’est révélée infaillible depuis longtemps.

Implantez d’abord les composants les moins hauts, puis les plus grands. Les régulateurs n’ont pas besoin de radiateur. Il faut de la prudence avec les tubes Nixie, ils sont fragiles et leurs fils de connexion sont très fins. Un petit support peut les stabiliser sur la carte, c’est une option. Coupez les fils à des longueurs différentes, en escaliers, mais pas trop courts, pour les introduire plus facilement un à un dans les trous de la carte. N’en soudez qu’un, positionnez alors le tube convenablement, à la verticale, avant de souder les autres.

La fiabilité du signal s’affiche sur l’ampoule au néon entre les heures et les minutes. Si elle clignote ou reste allumée, tout va bien. Mais quand elle s’éteint, c’est que l’horloge ne tourne plus que sur son signal interne, parce que depuis un certain temps, une trentaine de secondes, elle n’a plus reçu de chaîne GPS valide et qu’elle risque donc se dérégler.

Quand tout est correctement installé, branchez un adaptateur secteur, par ex. de 12 V et 1 A. Attendez que le module GPS ait une bonne réception et profitez bien de votre gardetemps attractif ! La tension sur les tubes est suffisamment élevée pour prévoir un boîtier adéquat qui évitera à quiconque un choc électrique.

Mise en service Bien que l’horloge reçoive automatiquement l’heure du module GPS, il y a quelques paramètres à ajuster soi-même. L’interrupteur S1 sert à définir le fuseau horaire et le passage automatique à l’heure d’été. On commence par éteindre l’horloge et la rallumer. On pousse sur S1 pendant 5 s. Le tube Nixie de gauche indique le réglage de l’heure d’été : un 0 signifie pas de passage automatique. Avec S1, on peut le mettre à 1 pour demander le changement d’heure automatique. Attendre ensuite que le premier tube se mette à clignoter et appuyer encore sur S1. Les deux tubes des minutes affichent alors un nombre entre 0 et 37 qui représente la zone horaire sélectionnée, en correspondance avec le tableau 1. S1 permet alors de parcourir les différentes valeurs. Quand on relâche le bouton, la valeur choisie s’inscrit en EEPROM et l’horloge démarre dans cette configuration.

(150189 – version française : Robert

Si vous avez choisi le changement d’heure manuel hiver/été, vous pourrez avancer l’horloge d’une heure en appuyant brièvement sur S1. Après une dizaine de secondes, l’affichage s’adapte.

Construction Le circuit imprimé pour cette horloge à Nixie (disponible dans l’e-choppe [2]) est à la figure 2. Les deux parties sont rassemblées en une seule plaque. C’est moins cher que deux circuits séparés, mais il faut les scinder soi-même. L’implantation des composants n’est pas très difficile, vous pouvez vous aider de la vidéo que nous avons déposée sur [5]. Tous les composants sont à fils, sauf le

Grignard)

Liens [1] Tracé des pistes, code source et hexadécimal : www.elektormagazine.fr/150189 [2] Produits disponibles dans l’e-choppe : www.elektor.fr/150189 [3]  UTC : https://fr.wikipedia.org/wiki/ Temps_universel_coordonné [4] GPRMC : https://fr.wikipedia.org/wiki/ NMEA_0183 [5] Montage vidéo : https://youtu.be/p_rlTXYVsRQ

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

mai 2016

43

créer

découvrir

partager

SDR d’Elektor réinventé sur shield Arduino Burkhard Kainka (Allemagne)

Une radio logicielle, SDR pour Software Defined Radio, est un outil universel de travail en HF, qui permet aussi d’effectuer des mesures. Les caractéristiques du récepteur, c’est le logiciel qui les définit. Pour l’interface de communication, nous disposons à présent de la plateforme Arduino sur laquelle monter un nouveau shield.

Caractéristiques • Tension d’alimentation : 5 V et 3,3 V d’Arduino • Gamme de fréquences : 150 kHz à 30 MHz • Sensibilité : 1 µV • Gain global : 40 dB • Niveau maximal d’antenne : 10 mV • Plage de dynamique : 80 dB

De plus en plus de services de radiodiffusion quittent les ondes longues, moyennes et courtes qui offrent alors un magnifique terrain de jeu pour se lancer dans la chasse aux ondes. Maintenant plus que jamais, on y découvre de nombreuses stations lointaines, enfin débarrassées des signaux puissants qui les noyaient. En ondes courtes, il m’arrive souvent de douter de mon récepteur, tellement le silence est assourdissant. Dans de nombreuses bandes, les signaux les plus forts proviennent de radioamateurs. Vous y trouvez toujours du nouveau, depuis les stations pirates en radiotéléphonie sur SSB jusqu’aux récents développements numériques. De quoi exciter la curiosité ! Elektor a présenté et construit de nombreuses radios et en mai 2007 [1] sortait déjà la radio logicielle à interface USB. Depuis lors, de fréquentes suggestions

50

juillet/août 2016

ont été faites pour un aggiornamento. Or, il se fait que la puce PLL, la boucle à phase asservie, utilisée alors n’est plus fabriquée. Il fallait trouver une solution de rechange. Elle est venue sous la forme de la puce en CMOS Si5351 de Silicon Labs, un générateur d’horloge de 8 kHz à 160 MHz avec bus I²C. Les premières recherches ont eu lieu avec un BoB d’Adafruit. Les logiciels d’exemple actuels ont été rédigés pour Arduino et ont donc servi aux essais préliminaires. Le nouvel oscillateur réglé en tension (VFO) a été simplement relié à l’ancienne carte SDR pour prouver son efficacité (figure 1). Ainsi est née l’idée de construire tout le récepteur sur un shield Arduino. La question de l’alimentation est réglée et l’interface USB du PC, à portée de main. Arduino pilote le VFO et pour ainsi dire,

on peut lui parler en clair (à 6 030 kHz tout de même). Et sans doute le plus important, arriver à construire un récepteur complètement indépendant. Il devrait être relativement simple de faire migrer l’interface utilisateur du PC vers Arduino. Et qui sait, décoder les signaux IQ un de ces jours ?

Comment ça marche ? Reprenons d’abord depuis le début. C’est quoi, au juste une radio logicielle ? Malgré le développement du numérique en électronique, la radio est longtemps restée à la traîne. Quand les ordinateurs domestiques se sont répandus, la plupart des radios étaient encore analogiques. Commence alors un timide développement, du moins avec la numérisation de l’accord.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs

projet de lecteur

ANT

IMixer

L

QMixer

R

Figure 1. Les essais préliminaires pour le SDR « nouvelle génération » : une puce PLL Si5351 raccordée à une Arduino Uno et à l’ancienne carte de récepteur SDR.

Figure 2. L’idée du circuit : l’interface se résume à un double mélangeur direct sur des signaux déphasés de 90°.

Les postes sont généralement équipés d’un synthétiseur à PLL, ce qui simplifie l’accord et garantit le respect de la grille des canaux. Mais le reste des circuits est encore largement analogique. Pendant ce temps-là, l’électronique numérique a débarqué dans la technique HF et chez les radioamateurs. Sans cesse, plus de fonctions analogiques des appareils sont remplacées par du logiciel. Le plus souvent, un processeur de signal numérique (DSP) travaille avec son logiciel à l’insu de l’utilisateur et s’occupe des caractéristiques optimales des filtres, de faire varier la largeur de bande, de décoder des signaux, de déparasiter et plein d’autres choses. Les appareils sont ainsi de meilleure qualité avec moins de dépense en matériel. D’autres exemples de ces développements sont les ordiphones et les terminaux mobiles. Dans cette cour-là, l’électronicien amateur ne peut plus jouer. Mais en réalité, il n’est pas nécessaire de chercher des complications. On utilise un convertisseur A/N rapide auquel on branche directement l’antenne. Tout le spectre est numérisé pour être traité ensuite. Le système peut fonctionner dans tout le domaine de 0 à 30 MHz. Le logiciel épure certaines fréquences et démodule le signal voulu. Peu importe qu’il s’agisse d’émetteurs radiophoniques AM ou DRM, de signaux SSB, d’émetteurs en morse, de téléscripteurs, de télécopieurs météo ou d’autres réceptions, tout est possible et pour tous, il existe un logiciel adapté. Toutefois, le matériel nécessaire pour une aussi grande largeur de bande est vraiment cher et le traitement ultérieur d’un spectre aussi étendu impose des exigences sévères.

de gain et la démodulation, le PC s’en charge. En principe, il suffit d’un simple mélangeur direct à diodes ou le célèbre NE612. Il ne faut y ajouter qu’un VFO stable. Pour des applications spéciales, on utilise un oscillateur à quartz. Mais si l’on veut pouvoir s’accorder sur toute la gamme, il faut un générateur DDS ou une puce PLL. Avec un mélangeur IQ, en bref, on a affaire à un double mélangeur direct avec deux signaux déphasés de 90° l’un par rapport à l’autre. Le signal de l’oscillateur se trouve toujours à proximité de la fréquence de réception. Les signaux de sortie se situent dans le domaine BF généralement entre 0 et 24 kHz. Les deux signaux s’appellent I et Q comme à la

La carte son d’un PC moderne offre déjà une possibilité. Avec un taux d’échantillonnage de 96 kHz courant aujourd’hui, on peut déjà recevoir toute la gamme jusqu’à 48 kHz. Sur l’entrée pour microphone, on branche une grosse bobine comme antenne pour recevoir la gamme TBF. Il y a là beaucoup de signaux intéressants, jusqu’aux émetteurs des sous-marins. Pour utiliser la carte son à de plus hautes fréquences, il faut d’abord effectuer une conversion vers le bas par mélangeur. Le système correspond à celui d’un s u p e r h é t é r o d y n e ave c f ré q u e n c e intermédiaire (FI) plus basse. Les étages FI, le filtrage, le réglage automatique

Figure 3. Le programme SDR# en réception d’un signal AM.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

juillet/août 2016

51

créer

3V3

5V

5V

C2 12 7

11

R2

25MHz

K3 SCL SDA AREF GND IO13 IO12 IO11 IO10 IO9 IO8

2

XA

IC1

4k7

4k7

X1

3

10 9 8 7 6 5 4 3 2 1

SCL

4

XB

SDA

R4 330R

5

SCL

9

C15

SI5351A

CLK2

100n

8

C

R 13

CLK0 CLK1

R3 330R

S

IC2B

14

IC2

IC2 = 74AC74

9 4

6

2

SDA

D

3

S

IC2A C R 1

GND 8

3

5 5 6

100n

11

100n

4u7 16V

IC4 = TS914

C3

R10 100k

3V3

IC3A

T1

L1

R6

10

2200uH

12

2x 1N4148

11

100n R13

2n2

IC3C

R14 10k

R11 6 5

IC4B

7

R15 100k

2

C10

C11 2n2

R18

C8 100n

R12 100k

K1

3

100n

100n

8

IOREF RESET 3V3 5V GND GND VIN

C7

C12

IC3D

IC4C

K2

100n

2n2

9

R8 100R

9

C5

C9 8

10

100n C4

2

BF545B D2

R9 10k

8 7 6 5 4 3 2 1

5V

C6

6 ANT D1

C18

IC3 = 74HC4066

13

L2

GND

100n

C17

2n2

4

R7 100R

1

3V3

IC3B

C19 8 7 6 5 4 3 2 1

7

4

IC4

10

470R

IO7 IO6 IO5 IO4 IO3 IO2 IO1 IO0

C16

7

100uH

K5

14

IC3

10k

1

D

4k7

100n

VDD VDDO R1

R5 100R

10

4k7

C1 4u7 16V

partager

R16 13 12

IC4D

14

IC4A

1

C14 100n 1 2 3 4 5 6

R17 100k

10k

découvrir

C13 100n

K4

150515 - 11

Figure 4. Le schéma de la nouvelle radio logicielle.

Liste des composants Résistances :

IC4 = TI914IDT, SOIC-14

R1, R2, R13, R18 = 4,7 kΩ, 1 %/100 mW, CMS 0603 R3, R4 = 330 Ω, 1 %/100 mW, CMS 0603 R5, R7, R8 = 100 Ω, 1 %/100 mW, CMS 0603 R6 = 470 Ω, 1 %/100 mW, CMS 0603 R9, R11, R14, R16 = 10 kΩ, 1 %/100 mW, CMS 0603 R10, R12, R15, R17 = 100 kΩ, 100 mW, CMS 0603

Divers : K1 = prise pour jack stéréo 3,5 mm encartable K2, K3, K4, K5 = ensemble de connecteurs compatibles Arduino (1×6 broches, 2×8 broches, 1×10 broches)

X1 = quartz 25 MHz (Abracon ABM7) circuit imprimé, réf. 150515-1 ou circuit imprimé avec les CMS installés, réf. 150515-91 (www.elektor.fr)

Condensateurs : C1, C18 = 4,7 µF/16 V, CMS boîtier B C2, C3, C6, C7, C8, C9, C12, C13, C14, C15, C16, C17, C19 = 100 nF/50 V, X7R, CMS 0603 C4, C5, C10, C11 = 2,2 nF/50 V, X7R, CMS 0603

Inductances : L1 = 2 200 µH (Fastron L-1812AF) L2 = 100 µH (Murata LQH32CN101K23L)

Semi-conducteurs : D1, D2 = 1N4148WS, SOD-323 T1 = BF545B, SOT-23 IC1 = Si5351A-B-GT, MSOP-10 IC2 = SN74AC74PW, TSSOP-14 IC3 = 74HC4066, SOIC-14

52

juillet/août 2016

Figure 5. Le circuit imprimé à double face pour le nouveau récepteur SDR prend la forme d’un shield Arduino.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

AD0 AD1 AD2 AD3 AD4 AD5

projet labs figure 2. On les envoie directement aux canaux gauche et droit de l’entrée de la carte son. La suite appartient au logiciel. Un mélangeur simple mélangerait la bande en bas et celle en haut de la fréquence de l’oscillateur dans la même gamme. Il s’ensuivrait la production de fréquence image. Avec le mélange double et le déphasage, le logiciel est en mesure de déduire la fréquence image. On reçoit ainsi un domaine entre −24 kHz et +24 kHz si la carte son dispose d’un taux d’échantillonnage de 48 kHz. La figure 3 montre comment s’y prend un programme comme SDR# (cf. aussi l’encadré Le logiciel pour SDR).

Le schéma Voyez dans le schéma de la figure 4 les groupes individuellement. Le générateur PLL Si5351 (IC1) fournit le signal d’oscillateur, quadruple de la fréquence de réception, au diviseur 74AC74 (IC2B), lequel la divise par quatre pour appliquer le signal déphasé de 90° au mélangeur 74HC4066 (IC3). Ce commutateur analogique est câblé en inverseur et envoie le signal HF alternativement aux entrées inverseuse et non inverseuse de l’amplificateur opérationnel TS914 (IC4B/IC4D). C’est ce qui effectue la conversion vers le bas du signal dans le domaine BF. Après un léger filtrage et une amplification (IC4C/IC4A), le signal aboutit à la sortie audio. L’étage de sortie HF est un tampon à source suiveuse, formé par le JFET BF545B (T1), l’équivalent CMS du BF245B. En comparaison avec l’ancienne version de radio logicielle d’Elektor, on remarque une sérieuse simplification dans le trajet du signal. Les multiples filtres passebas commutables ont laissé place à une entrée à large bande avec deux diodes anti-surtension. L’expérience du passé ayant conclu à un risque de dommages sur l’étage d’entrée en cas d’orage, il est ainsi bien couvert pour la réception des ondes courtes avec un fil d’antenne. Pour des besoins particuliers, il reste possible d’y ajouter un filtre extérieur ou un préamplificateur. Le gain en BF, réglable sur trois niveaux sur l’ancien modèle, reste maintenant moyen, valeur révélée d’usage normal. Avec ces simplifications, il est plus aisé de tout installer sur un shield. Pour les premiers essais, il faut juste raccorder une antenne. L’idéal est un fil d’an-

projet de lecteur

tenne libre haubané d’une longueur d’au moins trois mètres. Si ce n’est pas possible, on peut utiliser un fil plus long n’importe où dans la pièce, mais une antenne intérieure est souvent plus parasitée. La construction optimisée d’antennes fera encore l’objet d’un thème d’article pour Elektor.

réo pour le traitement ultérieur. Bien entendu, on aurait pu essayer de déplacer l’interface vers Arduino et peut-être y ajouter un traitement simplifié du signal, mais ce serait beaucoup demander à un petit système. Ce qui compte d’abord, c’est qu’Arduino reçoive ses commandes du PC et règle le VFO.

La construction

Je ne vais pas décrire maintenant ce qui se trame avec l’EDI d’Arduino, supposons que tout se passe bien. Il faut commencer par charger un programme Arduino adapté. Ce que ce logiciel fait exactement vous sera expliqué dans la suite. Vous préférez sans doute arriver tout de suite à un premier captage, alors laissez de côté ces informations et chargez simplement le logiciel [3]. Sa mission décisive consiste à persuader le Si5351 de délivrer une fréquence appropriée. Cette puce compte deux PLL internes et trois sorties, son diagramme fonctionnel est à la figure 6. Nous n’utilisons ici que la PLL A et la sortie CLK1. Le croquis utilise la bibliothèque d’Adafruit, ce qui rend la chose agréablement simple. Mais avant d’en profiter, il faut que la bibliothèque soit chargée depuis [2] et incluse.

Le circuit imprimé est donc exécuté au format de shield pour Arduino, de manière à se brancher directement sur Arduino Uno. Comme le Si5351 n’est livrable qu’en CMS à dix contacts, il a été décidé de construire l’ensemble en CMS et de proposer dans l’e-choppe la carte assemblée [3], sur laquelle il reste à souder le connecteur compatible Arduino. Si vous préférez fabriquer complètement le circuit, vous pouvez télécharger en [3] le tracé des pistes ou acheter dans l’echoppe le circuit imprimé nu.

Le réglage de fréquence Arduino, de concert avec le shield SDR, sert d’interface entre l’antenne et le PC. Sa tâche se limite au réglage du VFO. Et en plus, il indique au PC quelle fréquence on veut avoir. Entre le PC et Arduino, les informations circulent dans un câble USB. Le signal utile, après son déplacement en fréquence vers le bas, atteint alors la carte son par câble sté-

Le Si5351 a un oscillateur à quartz de 25 MHz et ses deux PLL peuvent être accordées entre

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

juillet/août 2016

53

créer

découvrir

VDD

XA OSC XB

SDA SCL

partager

VDDO

Si5351A 3-Output

PLL A

MultiSynth 0

R0

CLK0

PLL B

MultiSynth 1

R1

CLK1

MultiSynth 2

R2

CLK2

I2C Interface

10-MSOP

GND

Figure 6. Diagramme fonctionnel dans la fiche technique du Si5351A.

Figure 7. Pilotage du générateur d’horloge avec le terminal Arduino.

600 MHz et 900 MHz. Comme les diviseurs des PLL travaillent avec des nombres fractionnaires, on peut obtenir pratiquement n’importe quelle résolution. Les diviseurs MultiSynth qui suivent utilisent également des fractionnaires. On dispose ainsi de deux possibilités (A ou B) pour produire

arriver à la fréquence voulue. Voyons la méthode A. La fréquence du VFO se situe à quatre fois celle du mélangeur, qui se trouve 12 kHz en dessous de la fréquence de réception. Le programme doit recevoir cette fréquence de réception exprimée en kHz au format texte et la

la fréquence voulue : • régler la PLL sur la fréquence fixe de 900 MHz, par exemple, et ensuite diviser par un nombre fractionnaire ; • régler la PLL par tâtonnements, puis diviser par un nombre entier pour

Listage 1. Programme pour un réglage fixe de PLL //SI5351_vfo

PLL fixed at 900 MHz (si5351vfo2.zip)

#include #include <Wire.h> #include Adafruit_SI5351 clockgen = Adafruit_SI5351(); void setup(void) { Serial.begin(9600); Serial.println("Si5351 Clockgen"); Serial.println("");

/* Initialise the sensor */ if (clockgen.begin() != ERROR_NONE) { Serial.print("Error"); while(1); } Serial.println("OK"); clockgen.enableOutputs(true); clockgen.setupPLL(SI5351_PLL_A, 36, 0, 1000); MHz setfreq (6000); } void setfreq (unsigned long freq) { unsigned long f2; unsigned long f3; unsigned long f4; unsigned long f5; unsigned long div2;

54

juillet/août 2016

//900

unsigned int Divider2; unsigned int rdiv; if (freq > 0) { f2=(freq-12)*4; if (f2<1000) { rdiv = 16; f2 = f2 * 16; } else { rdiv = 1; } div2 = 900000000/f2; f4 = div2/1000; f5=div2-(f4*1000); clockgen.setupMultisynth(1, SI5351_PLL_A, f4, f5, 1000); if (rdiv == 16) { clockgen.setupRdiv(1, SI5351_R_DIV_16); } if (rdiv == 1) { clockgen.setupRdiv(1, SI5351_R_DIV_1); } } } void loop(void) { unsigned long freq; if (Serial.available()) { freq = Serial.parseInt(); setfreq (freq); } }

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs convertir. Pour recevoir sur 3 500 kHz, le Si5351 doit produire une fréquence de 4 × (3 500 − 12) [kHz] = 13 952 kHz sur la sortie 1. Le diviseur de la PLL est mis sur 36 (25 [MHz] × 36 = 900 MHz), le diviseur Multisynth sur 900 000/13 952 = 64,506. De cette manière, on descend jusqu’à 1 MHz. Pour aboutir à des fréquences plus basses, on met en œuvre le diviseur R_DIV réglé sur 16. Le listage 1 montre le logiciel correspondant et la figure 7, la conduite avec le terminal Arduino. La méthode A présente l’avantage de pouvoir mettre au point à tout moment le VFO, sans causer d’interruption pendant le changement de fréquence. La méthode B, en revanche, garantit une meilleure pureté de phase, ce qui suffit aussi pour la DRM. Toutefois, chaque changement de fréquence s’accompagne d’une courte interruption d’environ 1 ms qui se manifeste comme parasite en radio logicielle. Cette méthode demande un calcul du diviseur optimal suivant (listage 2) pour que la PLL reste toujours dans le domaine de 600 à 900 MHz. Tout terminal peut diriger chacun des deux programmes. Pour votre confort, on a écrit un programme VB en Visual Studio 2015. Téléchargement en [3] : SDRshield.zip. Il envoie à Arduino la fréquence souhaitée à 9600 bauds au format texte, par ex. 3500. La glissière de réglage (cf. figure 8) va par pas de 9 kHz jusqu’à 1,6 MHz, puis s’en tient au standard de 5 kHz. Comme moyen subsidiaire, on peut donner directement la fréquence voulue ou cliquer sur les boutons à côté de chaque bande de radiodiffusion ou de radioamateurs. N’oubliez pas, lors du premier accès, de choisir le bon port COM.

Le logiciel SDR Voici un aperçu du logiciel SDR utilisable. Pratiquement tous les programmes utilisés avec l’ancienne radio logicielle d’Elektor peuvent servir, ils fonctionnent encore maintenant. • SDRadio reste encore un bon choix • SoDoRa peut aussi décoder la DRM • DREAM fonctionne encore, mais n’utilise pas le signal IQ et nécessite un récepteur comme un mélangeur direct • HDSDR est un logiciel actuel et très puissant • SDRSharp (SDR#) se signale par un maniement simple et une bonne

projet de lecteur

Figure 8. C’est un petit programme VB qui rend le maniement confortable.

présentation. Dans un prochain article, nous examinerons en détail chaque programme et ses possibilités.

Premières expériences de réception À défaut d’une meilleure antenne, on peut faire ses premiers essais avec un fil d’un à trois mètres de long à brancher à l’entrée d’antenne pour recevoir sans difficulté des émetteurs de radiodiffusion dans toutes les bandes d’ondes courtes. L’expérience

montre que le soir, on capte moins que le jour. Et le phénomène se déplace le soir vers les bandes plus basses de 75 jusqu’à 41 m. On peut aussi recevoir les stations de radioamateurs avec une antenne filaire plus courte. Il s’en trouve plus dans la bande de 40 m et avec un peu de chance, on écoute quelques stations CW (morse) et SSB (BLU). On choisit le mode approprié dans le logiciel SDR, réglage de volume, bande passante, contrôle automatique de niveau et bien d’autres paramètres. Avec les bons réglages, on récolte

Le logiciel pour SDR Les étoiles qui brillent actuellement au firmament du logiciel SDR s’appellent SDR# [4] et HDSDR [5]. Tous deux suivent la nouvelle tendance vers des fréquences toujours plus hautes et il est possible de les utiliser avec une simple clé électronique (dongle) comme récepteurs DVB-T. C’est un bon choix quand on veut écouter les gammes VHF et UHF. Des essais ont cours pour leur permettre de descendre sous les 30 MHz. On pourrait mettre en jeu un mélangeur élévateur qui remonte tout le spectre de 50 MHz. On aurait alors un superhétérodyne multiple accompagné des nombreux soucis bien connus de signaux fantômes et d’interférences, ainsi qu’une perte de dynamique. Une radio logicielle dédiée au spectre sous les 30 MHz ne demande qu’une seule conversion de fréquence et procure ainsi une réception très propre et sans sifflements. Sur le PC, il y a deux programmes qui tournent, celui qui réalise l’accord et le logiciel SDR. Chaque programme SDR a sa propre interface de commande. Les premiers pas sont toujours semblables. D’abord, s’assurer que c’est la bonne entrée qui est utilisée. Puis sélectionner la carte son et activer cette entrée-là (Line In). Le logiciel SDR démarre. On voit qu’on a choisi la bonne entrée par une augmentation significative du bruit de fond, qui grimpe encore avec une antenne. Le plus souvent, il faut régler la carte son sur un niveau plus faible, du fait que le récepteur peut fournir jusqu’à 1 V d’amplitude du signal.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

juillet/août 2016

55

créer

découvrir

partager

Listage 2. Programme pour PLL variable Divider2 = 18;

//SI5351_vfo, variable PLL (si5351vfo3.zip) } #include

if (f2 < 45000) {

#include <Wire.h>

}

#include

if (f2 < 30000) {

Adafruit_SI5351 clockgen = Adafruit_SI5351();

}

Divider2 = 20;

Divider2 = 30; void setup(void)

if (f2 < 20000) { Divider2 = 45;

{

}

Serial.begin(9600);

if (f2 < 15000) {

Serial.println("Si5351 VFO"); Serial.println("");

Divider2 = 60; }

if (clockgen.begin() != ERROR_NONE)

if (f2 < 10000) {

{

Divider2 = 90;

Serial.print("Error");

}

while(1);

if (f2 < 6000) {

}

Divider2 = 150;

Serial.println("OK");

}

clockgen.enableOutputs(true);

if (f2 < 4000) {

setfreq (6000);

Divider2 = 220;

}

} if (f2 < 2700) {

void setfreq (unsigned long freq)

Divider2 = 330;

{

}

unsigned long f2;

if (f2 < 1800) {

unsigned long f3;

Divider2 = 500;

unsigned long f4;

}

unsigned long f5;

if (f2 < 1500) {

unsigned int Divider2;

Divider2 = 600;

unsigned int rdiv;

} if (f2 < 1000) {

if (freq > 0)

Divider2 = 900;

{

}

f2=(freq-12)*4;

f2=f2*Divider2;

// f2=freq;

f2=f2*1000/25;

if (f2>120000) {

f3=f2 /1000;

f2=120000;

f4 = f3/1000;

}

f5=f3-(f4*1000);

if (f2<800) {

clockgen.setupPLL(SI5351_PLL_A, f4, f5, 1000);

rdiv = 16;

clockgen.setupMultisynth(1, SI5351_PLL_A, Divider2,

f2 = f2 * 16;

0, 2);

} else

if (rdiv == 16) {

{

clockgen.setupRdiv(1, SI5351_R_DIV_16);

clockgen.setupRdiv(1, SI5351_R_DIV_1);

}

rdiv = 1;

}

}

}

if (f2 >= 100000) { Divider2 = 6; }

void loop(void)

if (f2 < 90000) {

{ unsigned long freq;

Divider2 = 10;

if (Serial.available()) {

}

freq = Serial.parseInt();

if (f2 < 60000) {

setfreq (freq);

Divider2 = 15; }

}

if (f2 < 50000) {

56

juillet/août 2016

}

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs souvent davantage qu’avec un coûteux récepteur analogique à la mode ancienne. Une caractéristique capitale de tous les mélangeurs à commutation est la production de signaux à des multiples impairs de la fondamentale. Quand on veut recevoir un signal à 1 MHz, des harmoniques à 3 MHz, 5 MHz, 7 MHz, etc. peuvent perturber la réception. Aussi, utilise-t-on souvent des filtres passebas commutables. Le shield SDR n’y a pas recour s, donc il est logique d ’u t i l i s e r d e s antennes sélectives, mais il fonctionne étonnamment bien avec une antenne filaire à large bande. La raison en est qu’en cours de journée, des signaux puissants dominent sur différentes bandes et pourtant n’occasionnent pas de soucis. La réception des grandes ondes et des ondes moyennes fait exception, parce qu’elle peut subir l’influence de signaux provenant des gammes d’ondes courtes. Mais avec une antenne ferrite et un condensateur variable, l’embarras s’en va. Il faudra encore approfondir le sujet des antennes, filtres et préamplificateurs, pas juste pour en tirer le plus fort signal possible, mais surtout se prémunir des parasites. Il ne s’agit pas d’une possible longue antenne filaire tendue à distance de la maison, ce n’est pas réalisable partout, alors il faut chercher des compromis. Et en tête de liste, on trouve l’antenne-cadre magnétique. Héritière de l’antenne-cadre à air des pionniers de la TSF, ce genre d’antenne petite et discrète fonctionne à l’intérieur. Nous y reviendrons. Lors des premiers essais avec ce récepteur, notre attention a été attirée par l’influence d’Arduino : cette carte, si proche de l’entrée, peut-elle produire des parasites dans la réception ? D’origine, elle a été l’objet d’une grande attention au sujet

projet de lecteur à céramique dont la déviation peut s’élever jusqu’à 50 kHz. Et effectivement, il y a bien un signal faible à 15 950 kHz, avec même des signaux de bande latérale auxquels le contrôleur contribue. Et quand on approche la carte Arduino du résonateur céramique, on obtient encore une large modulation de fréquence et une autre contrariété qui montre que le résonateur présente une certaine dépendance à la température. Là, il nous faut d’urgence un SDR pour aller tâter le pouls d’Arduino !

du découplage. Elle bénéficie d’un plan de masse étendu à la face inférieure et ses tensions d’alimentation de 5 V et 3,3 V sont découplées par filtres LC. Dans les faits, ces mesures se révèlent fort efficaces. Normalement, il n’y a pas lieu de soupçonner Arduino.

Quand il reste sans antenne, le SDR augmente normalement son amplification pour rendre visibles les signaux les plus faibles. On voit alors autour de la fréquence moyenne de faibles parasites produits par l’USB d’Arduino. Pour faire la distinction entre les signaux qui proviennent d’Arduino et ceux de l’USB, branchons un bloc secteur sur Arduino et, après syntonisation sur la fréquence voulue, retirons le câble USB pendant le fonctionnement.

Arduino à l’écoute À tout le moins, on devrait pouvoir capter l’oscillateur d’horloge à 16 MHz. Sans aucune antenne, c’est bien le cas. Alors, le shield peut nous servir d’appareil de mesure. En fait, il y a deux oscillateurs. L’un est à quartz de 16 MHz sur la puce USB de l’Uno avec une déviation de moins de 1 kHz. Quand on touche l’endroit où le quartz est soudé sous la carte, on a une petite réaction. On sait donc qu’il s’agit bien de ce signal-là. Avec un petit bout de fil comme antenne, le signal est plus fort, mais le bruit de fond aussi. Et à cette occasion, on remarque encore une bizarrerie. Les signaux qui arrivent par l’entrée d’antenne subissent une bonne atténuation de la fréquence image. Mais pour ceux qui se faufilent par la tension d’alimentation sur le chemin du signal, c’est tout différent. Ils apparaissent en double, quoique nettement plus faibles.

Tous les parasites internes sont très faibles. Dès qu’on branche une antenne, le bruit de fond s’élève au point de couvrir totalement ces parasites. Cela montre la haute sensibilité de la radio logicielle. On peut même recevoir des signaux d’à peine 1 µV. La plupart du temps, pareille sensibilité est inutile, puisque le niveau de bruit sur l’antenne est bien supérieur. Avec une longue antenne, on peut même sursaturer le récepteur. Il faut déjà songer à un atténuateur d’entrée.

Il faut aller chercher le signal d’horloge du Mega328. Il travaille lui, avec oscillateur

[5] http://www.hdsdr.de

(150515 – version française : Robert Grignard)

Liens [1] www.elektormagazine.fr/070039 [2] https://github.com/adafruit/ Adafruit_Si5351_Library [3] www.elektormagazine.fr/150515 [4] http://airspy.com/download

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

juillet/août 2016

57

découvrir

créer

partager

judas connecté avec Raspberry Pi

communiquer avec un visiteur via son ordiphone Luc Lemmens (labo d’Elektor)

Une visite inattendue peut être agréable, mais on peut aussi se retrouver face à une personne indésirable et regretter d’avoir ouvert la porte trop vite. Le visiophone est une solution, mais si vous n’êtes pas à la maison... Avec notre projet, vous pourrez communiquer avec votre visiteur, et même lui ouvrir la porte à distance ; du moins, si vous possédez un ordiphone.

Avec un Raspberry Pi (B+, 2 ou 3, peu importe), un module caméra RPi, et la carte HAT GSM pour RPi conçue par notre labo, nous réalisons un interphone qui prend une photo du visiteur dès qu’il sonne. La photo est envoyée dans un MMS vers votre ordiphone, ce qui vous permet de voir qui est à la porte. Vous pouvez ensuite appeler votre « portier connecté » : le module GSM prendra automatiquement l’appel, et vous communiquerez avec le visiteur par microphone et haut-parleur interposés. Nous avons aussi prévu la possibilité d’actionner une gâche électrique, suite à l’envoi d’un SMS à l’interphone. Le SMS contient un mot de passe, et le numéro de l’appareil qui a envoyé le message est aussi contrôlé, pour plus de sécurité. Le système a été avant tout pensé et conçu pour les personnes absentes de

50

octobre 2016

leur domicile, mais il peut aussi s’avérer utile dans des situations où on n’est pas en mesure d’aller voir qui a sonné. Et pourquoi pas pour « filtrer » vos visiteurs ? Il y a des jours où on n’a pas envie de recevoir n’importe qui... Cette idée nous est venue après avoir fini le projet de carte de liaison GSM [1] qui repose sur le module GSM M95 de Quectel. Nous avions les bases nécessaires pour notre interphone, mais il semblait trop difficile d’en faire un ensemble compact. Nous avons donc préféré réaliser une carte HAT (Hardware Attached on Top) pour RPi avec le matériel additionnel nécessaire à l’interphone ; examinons-en maintenant le schéma.

Schéma L’essentiel du schéma provient de la documentation de Quectel, « M95 hard-

ware design » [2]. Le cœur du circuit (fig. 1) est constitué du module GSM M95 (MOD1) avec son antenne, et d’un connecteur pour carte SIM (SIM1). Les résistances R15 à R17, la barrette de diodes D7, et les condensateurs C19 à C22, constituent un dispositif antiparasites et de protection contre les décharges électrostatiques, pour l’interface de la carte SIM. Les condensateurs C6 à C17 et les diodes D3 à D6 remplissent la même fonction pour l’entrée du microphone à électret et la sortie de l’amplificateur audio du M95. L’UART du M95 est connecté au RPi via K5, la communication se fait avec des commandes AT. Le diviseur de tension constitué par R6 et R7 adapte le niveau du signal TxD aux 3,3 V de l’entrée du RPi. Nous aurions pu alimenter la carte

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs GSM en 3,3 V, pour éviter la différence de niveaux logiques, mais cela provoque un problème inattendu : bien que le M95 soit spécifié pour une tension d’alimentation de 3,3 à 4,6 V, il envoie une alerte en continu via son UART dès que l’on approche à moins de 100 mV du minimum ou du maximum. Outre le fait que cette alerte gêne le décodage d’autres

projet de lecteur

3V3

OUT TAB

C2

1000u 10V

100n

JP1 1

LED1

6

POWER R2

R3

C3

C4

C5

100n

100n

100u 16V

5

6

7

8

9

10

D1

R4

1

TXD

Door Opener

T4

1N4148

EE2-5NU

R10 100R

R7

K2

2

RE2

RXD R6 1k5

Raspberry Pi R5

R11

2N7002

MIC1P

8

MIC1N

9

SPK1N

10

SPK1P

PWR

33p R9

2N7002

4

4V4

C8

10p

PGB1010603

32 33 34 AGND

1

MIC2P

2

MIC2N

3

MIC1P

4

MIC1N

5

1

CTS

SPK1N

6

2

RTS

SPK1P

7

3

DCD

LOUDSPKN

8

4

RI

LOUDSPKP

9

5

VRTC

6

PWRKEY

10

EMOFF

11

SIM2_DATA

16

SIM2_CLK

17

SIM2_VDD

18

7

V+

19 TXD

6

RXD

5

SIM2_VDD

4

SIM2_CLK

3

SIM2_DATA

20

AGND

RF_ANT SIM1_GND SIM1_CLK

MIC2N

SIM1_DATA

MIC1P

SIM1_RST

MIC1N

SIM1_VDD

MOD1 SPK1N

RI/PCM_RST

SPK1P

DCD/SIM2_RST

LOUDSPKN

RTS

LOUDSPKP

CTS

PWRKEY

TXD

EMERG_OFF

RXD

SIM2_DATA

M95 GSM Module

SIM2_CLK

DBG_TXD DBG_RXD

SIM2_VDD

NETLIGHT STATUS/PCM_SYNC

VDD_EXT

SIM1_VDD 2

DTR/SIM1_PRESENCE

PCM_IN PCM_OUT

35 36 37 38 40

100n

Doorbell

T3 EE2-5NU

R13 100R

C22

2N7002

33p

PGB1010603 C19

1

39

MIC2P

GND

7

SMA

3

MIC2P

6

K6

SIM1 SIM Card Holder

VRTC

33p

5

GND

33p

33p C18

22R

C11

10p

2 1

R15

33p

LOUDSPKP

31 30

SIM1_CLK

29

SIM1_DATA

LOUDSPKN

C15

33p

10p

C13

C16

LS1

33p

10p

8Ohm 1W5

SIM1_RST

27

SIM1_VDD

C14

C17

26

RI

33p

10p

25

DCD

24

RTS

23

CTS

22

TXD

21

RXD

15

DTXD

14

DRXD

4V4 LED2 NET

STAT

42

D7

41

D6

PGB1010603

13 12

D5

C12

28

R12 1

3

4

5

6

R14

T2

0R

33p

100n

GND

10p

100u 16V

GND

C7

C26

VBAT

C10

MIC2N

C25

GND

33p

C24

VBAT

10p

C23

VRTC

D4

C6

GND

MIC1

C9

RE1

D2

1N4148

ANT1 D3

C21

R16

1k

AGND

7

R17

SIM_VDD

6

C20

T1

R8 100R

SIM_DATA

PWR

SIM1_RST

5

22R

EMOFF

SIM_RESET

STAT

4

SIM1_CLK

3

V+

22R

DRXD

PGB1010603

K4

4

SIM_CLK

DTXD

2

PWRKEY

1

47k

K1

K3

2

3

PWR

43k

C1

Bell Button

4

1

2k2

3

S1

2k2

GND

110k

V+

3k3

MIC29302

IN

R1

5

1k

2

IC1

ADJ

470R

EN

Le bouton-poussoir S1 est un bouton de sonnette ordinaire. Il commande le relais

V+

K5

4V4

V+ 1

light », pourrait laisser croire que le module s’est connecté à un réseau mobile, mais ce n’est pas le cas. Le M95 se met en fait en mode stand-by, et une impulsion à l’entrée « pwrkey » l’allume ou l’éteint.

messages transmis par le M95 au RPi, le M95 peut aussi s’éteindre soudainement. Quectel n’explique pas les raisons de ce comportement, nous avons donc choisi d’alimenter le circuit en 4,4 V via un MIC29302 (IC1), même si cette tension n’est pas usuelle. LED2 clignote dès que le circuit est alimenté. Le nom de cette sortie, « net-

NETLIGHT

2

2

1

copyright

2N7002

SMF05CT2G

150330 - 11

Figure 1. Les composants les plus importants sont le module GSM M95 et le connecteur pour carte micro-SIM.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

octobre 2016

51

créer

découvrir

RE1, qui peut être utilisé pour alimenter (en courant alternatif) une sonnette existante. Le cavalier JP1, que l’on peut remplacer par un interrupteur marche/ arrêt, détermine si le signal de sonnerie est envoyé vers le RPi, auquel cas le processus d’envoi d’une photo démarre. L’envoi d’un MMS n’est pas gratuit, et si on est à la maison, on peut en principe se contenter de la sonnette. RE2 permet la connexion d’une gâche électrique, qui sera actionnée par le RPi

partager via T4 lors de la réception d’un SMS contenant un mot de passe déterminé, et si le numéro de l’appareil envoyant le message est reconnu. Nous ne sommes pas tout à fait convaincus de l’utilité de cette dernière option : il faudrait de toute manière pas mal de matériel pour sécuriser le relais, et empêcher qu’un malfrat ne parvienne à l’actionner ou à le contourner, et à ouvrir la porte. Il appartient à l’utilisateur de choisir quelles mesures de sécurité il appliquera ou non.

Liste des composants Résistances :

Divers :

(CMS 0603, 1% / 0,1 W) R1 = 110 kΩ R2 = 43 kΩ R3 = 470 Ω R4, R12 = 1 kΩ R5, R11 = 2,2 kΩ R6 = 1,5 kΩ R7 = 3,3 kΩ R8, R10, R13 = 100 Ω R9 = 47 kΩ R14 = 0 Ω R15, R16, R17 = 22 Ω

Mod1 = module GSM Quectel M95 SIM1 = connecteur micro-SIM (Molex 78723-1001) ANT1 = connecteur SMA pour circuit imprimé (Molex 73391-0070) + antenne hélicoïdale (RF Solutions ANT-GHEL2R-SMA) K1 = barrette femelle à 10 broches, pas de 2,54 mm (en option) K2, K6 = barrette femelle à 2 broches, pas de 2,54 mm (en option) K3, K4 = barrette femelle à 7 broches, pas de 2,54 mm (en option) K5 = barrette femelle à 2×5 broches à longues pattes (Samtec ESQ-105-14-G-D) S1 = barrette mâle à 2 broches, pas de 2,54 mm, pour bouton de sonnette JP1 = barrette mâle à 2 broches, pas de 2,54 mm, avec cavalier LS1 = barrette mâle à 2 broches, pas de 2,54 mm, pour le haut-parleur (8 Ω / 1,5 W) Mic1 = barrette mâle à 2 broches, pas de 2,54 mm, pour le microphone à électret (ABM-715-RC) Re1, Re2 = relais CMS, DPDT, 2 A, 5 VDC (Kemet EE2-5NU) Raspberry Pi B+, 2 B ou 3 B Module caméra pour Raspberry Pi (rev 1.3) Circuit imprimé réf. 150400-1 ou circuit imprimé avec composants CMS montés réf. 150400-71 (www.elektor.fr)

Condensateurs : C1 = 1000 µF / 10 V, CMS radial C2, C3, C4, C18, C24 = 100 nF, X7R, CMS 0805 C5, C23 = 100 µF / 16 V, CMS 2312 C6, C7, C8, C12, C13, C14, C19, C20, C21, C22, C26 = 33 pF, X7R, CMS 0805 C9, C10, C11, C15, C16, C17, C25 = 10 pF, X7R, CMS 0805

Semi-conducteurs : D1, D2 = 1N4148, SOD-323 D3, D4, D5, D6 = PGB1010603MR, CMS 0603 D7 = SMF05CT2G, SC-88 LED1, LED2 = LED verte, 50 mcd, 2,1 V @ 20 mA, CMS 0805 T1, T2, T3, T4 = 2N7002, SOT-23 IC1 = MIC29302WU TR, TO-263

Circuit imprimé Le circuit imprimé est en figure 2. Comme le module GSM n’est disponible qu’en version CMS, nous avons décidé de n’utiliser que des composants CMS, à l’exception des connecteurs – dont celui de l’antenne. Cela risque de compliquer la tâche des amateurs les moins expérimentés, mais qu’ils se rassurent ! Elektor propose le circuit imprimé avec tous les CMS montés (150400-71). Les électroniciens chevronnés se procureront le circuit imprimé nu, ou le réaliseront euxmêmes ; le dessin est disponible en [4]. Certains connecteurs sont optionnels, c’est mentionné dans la liste des composants. Attention : il faut insérer K5 côté pistes du circuit imprimé et ensuite souder ses pattes côté composants (fig. 3). Ce connecteur sera ensuite enfiché dans le connecteur GPIO du RPi. Avant de souder, vérifiez s’il faut ajuster la hauteur du connecteur par rapport au RPi. Il faut que la carte HAT reste éloignée de la prise USB du RPi.

Préparation du RPi Avec la version actuelle de Raspbian, appelée Jessie, il est relativement simple d’adapter le RPi à notre montage. Il faut d’abord télécharger l’image de la version la plus récente du système d’exploitation sur le site du RPi [3] (version 4.4 du noyau au moment de la rédaction de cet article). Copiez le fichier image (extension IMG) sur une carte SD, à l’aide de Win32 DiskImager ou d’un programme similaire. Ensuite démarrez le RPi avec cette carte SD, ouvrez une fenêtre de terminal et modifiez la configuration après saisie de la ligne suivante : sudo raspi‑config

Figure 2. Le circuit imprimé de la carte HAT pour RPi comporte essentiellement des CMS.

52

octobre 2016

On sélectionne l’option « 6. Enable Camera » pour connecter la caméra RPi. Ensuite on passe à « 9. Advanced Options », puis « A7 Serial », et « No », pour mettre hors service l’accès au loginshell (première instruction à s’exécuter lors d’une ouverture de session) via le port série. On termine avec « Finish », et on redémarre le RPi. N. B. : avec d’anciennes versions de Raspbian, il faut installer la caméra manuellement, et mettre la console série hors service dans les fichiers de démarrage. Il y a de nombreux exemples et des explications sur l’internet. Il faut cependant effectuer une modifica-

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs tion importante dans le script en Python du portier connecté : à la ligne 45, il faut supprimer le caractère « # » avant « port.open » ! Il y a un certain temps que notre prototype est prêt, et lorsque nous avons refait toute l’installation à partir de la dernière version de Raspbian en vue de cet article, le script nous a renvoyé le message d’erreur « Port already open » à la ligne 45. Il semble qu’avec la dernière version du logiciel la commande « open » soit superflue.

projet de lecteur

Figure 3. Attention au montage du connecteur K5 ; le connecteur lui-même est sous le circuit imprimé, et les broches sont soudées sur le dessus.

Connexion du matériel Le Raspberry Pi est fin prêt, mais il reste encore pas mal de liaisons à établir avant de pouvoir passer à la phase de test. Le plus simple est de commencer par la caméra RPi, la limande (Flex Flat Cable – FFC) peut passer sous la carte HAT. Notre carte s’adapte parfaitement au RPi. Il faut à nouveau vérifier que les entretoises sont de longueur suffisante, et qu’il n’y a aucun contact entre le dessous de notre circuit imprimé – surtout les soudures du connecteur d’antenne – et les prises USB. On peut ensuite assembler les deux cartes avec boulons et écrous (fig.4). Connectez ensuite un bouton-poussoir à S1 pour faire office de bouton de sonnette, et placez le cavalier sur JP1. Raccordez le microphone à MIC1, le hautparleur à LS1, et l’antenne à ANT1. Il nous faut encore insérer une carte microSIM dans SIM1, mais ne courez pas tout de suite en acheter une...

entre 20 et 30 s pour recevoir le message sur l’ordiphone, auxquelles il faut encore ajouter le temps de réaction. Conclusion : le système n’aura guère d’utilité avec des visiteurs pressés...

Script en Python et test initial Après avoir configuré le RPi et installé les bibliothèques Python, nous sommes prêts à exécuter le script de gestion de l’interphone. Ce script en Python est téléchargeable en [4] : « MMSautoSend.py » ; il faut aussi le reconfigurer avant de pouvoir passer aux tests. Il est préférable

de connecter un moniteur, un clavier, et éventuellement une souris pendant cette phase, cela facilitera le travail ; nous n’aurons plus besoin de ces accessoires par la suite. Au début du script, quelques constantes sont définies, il faut les modifier. • « ThisNumber » : numéro d’appel de la carte SIM du M95. • « ThatNumber » : numéro d’appel de l’ordiphone vers lequel le MMS est envoyé.

Carte SIM et MMS Le module GSM M95 ne fonctionnera qu’avec une carte SIM sur laquelle il y a suffisamment de crédit (ou un abonnement, bien sûr). Nous avons utilisé deux cartes SIM prépayées différentes, et un avertissement s’impose : comparez bien avant votre achat ! Les MMS sont apparemment peu utilisés, et les opérateurs ne mentionnent donc pas clairement les tarifs de ce service. D’après nos recherches, le coût d’un MMS est fixe chez la plupart des opérateurs, pour autant que l’annexe, une photo au format JPEG dans notre cas, ne dépasse pas 300 Ko. La taille de ce fichier est également importante dans notre application, puisqu’elle conditionnera le temps de transmission du message. Si vous mettez trop de temps à répondre au coup de sonnette, il y a des chances que votre visiteur n’attende pas ! Au labo, il fallait

Figure 4. Utilisez des entretoises suffisamment hautes entre les deux circuits, pour que les broches soudées sous la carte HAT, notamment celle du connecteur d’antenne, ne touchent pas les prises USB.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

octobre 2016

53

créer

découvrir

partager

le son et l’image, identifiez votre visiteur avant de lui parler Données relatives à l’opérateur de la carte SIM du M95 pour l’emploi du service MMS : • APN : Access Point Name • MMSC : Multimedia Messaging Service Centre • MMSproxy : Multimedia Messaging Service proxy server • MMSport : Multimedia Messaging Service port number Vous trouverez ces données sur le site de l’opérateur. Dans le script originel, nous avons repris les données des deux opérateurs néerlandais avec les cartes SIM desquels nous avons effectué les tests au labo. Nous sommes maintenant fin prêts pour le test initial. Ouvrez une fenêtre de terminal RPi, et tapez la commande sudo su ; c’est nécessaire pour obtenir les droits d’accès à la bibliothèque Python du bus GPIO, autrement dit pour pouvoir gérer les entrées/sorties du RPi. Nous démarrons ensuite le script avec python MMSautoSend.py.

Le script est simple à comprendre. Le RPi envoie des commandes AT au module GSM, suivies à chaque fois de « time. sleep », pour laisser le temps au M95 d’exécuter les commandes. Il y a d’abord quelques configurations, dont les paramètres pour la caméra, la sensibilité du microphone et le volume du hautparleur ; vous pourrez les modifier plus tard en fonction de l’environnement de l’interphone. Nous avons désactivé la saisie du code PIN des cartes SIM utilisées, pour plus de facilité ; il suffit d’insérer les cartes dans un téléphone mobile et de supprimer la protection par code PIN. Si vous

souhaitez conserver le code PIN, il y a dans le script un bloc de quatre lignes (en commentaires) qui permettent d’entrer le code de la carte utilisée. Il faudra aussi supprimer le « # » devant « port.write » et « time.sleep ». Ensuite le script entre dans une boucle sans fin, que l’on interrompra par une pression sur les touches « CTRL+C » pour quitter le script. En fonctionnement normal, le RPi vérifie en permanence si la sonnette est actionnée, ou si un SMS est reçu pour l’ouverture de la porte. Lors de la réception d’un SMS, le script vérifie d’abord le numéro appelant ; si ce numéro est correct (« ThatNumber »), le contenu est ensuite comparé au mot de passe qui a été entré comme constante « Very_Secret ». Si c’est le cas, le relais RE2 est excité durant une seconde ; cette durée peut être modifiée dans le script si nécessaire. Mais n’oublions pas qu’une autre action conditionne la réception du SMS : il faut qu’un visiteur ait sonné à la porte ! Le RPi prend alors une photo, prépare un MMS, et l’envoie à votre ordiphone. En sus de la

Liens [1] www.elektormagazine.fr/labs/gsm-breakout-board-150330 [2] www.quectel.com/UploadImage/Downlad/M95_Hardware_Design_V1.3.pdf [3] www.raspberrypi.org/downloads/raspbian/ [4] www.elektor.fr/150400

54

octobre 2016

photo, un petit texte est aussi transmis, avec entre autres le numéro d’appel de l’interphone dans un lien hypertexte. À vous de décider si vous voulez parler au visiteur, en utilisant le lien hypertexte ; le M95 répondra automatiquement à l’appel, et vous mettra en communication avec ce visiteur. Dès que la conversation est terminée, le M95 « replace le combiné sur son support », et se met en attente d’un SMS ou d’une nouvelle pression sur le bouton de la sonnette.

Montage Les aspects mécaniques du montage final constituent sans doute le plus grand défi de ce projet. L’idéal – et sans doute le plus sûr – est de ne mettre à l’extérieur que le microphone, le haut-parleur et la caméra ; le reste de l’électronique sera placé à l’abri à l’intérieur. La caméra peut aussi effectuer ses prises de vue à travers une fenêtre ou un vasistas. Comme nous l’avons mentionné, quelques paramètres de la caméra peuvent être modifiés dans le script. L’orientation et la luminosité seront adaptées en fonction de l’environnement. La résolution sera la plus basse possible, afin de minimiser la taille du fichier JPEG – et donc le temps de transmission. Pendant les essais, mettez l’envoi de MMS hors service dans le script, vous économiserez de l’argent ; vous pouvez juger de la qualité de la photo en ouvrant le fichier « test1.jpg » stocké dans le RPi. (150400 – version française : Jean-Louis Mehren)

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

DÉCOUVRIR

CRÉER

PARTAGER

Tuto Arduino Uno

45 projets électroniques originaux Alarme silencieuse, détecteur de présence, luxmètre, commande de moteur, accès depuis l’internet, commande sans fil… sont quelques-uns des projets Arduino Uno brillants et passionnants de ce livre, vérifiés et testés par l’auteur. Ces 45 projets sont faciles à réaliser et bien décrits (schémas, photos…). Les explications et la description des composants utilisés facilitent l’adaptation des montages à ses besoins.

www.elektor.fr/tuto-arduino-uno

Domotic avec Zelio Logic Le module programmable compact Zelio Logic avec 12 entrées/sorties est une solution technique bon marché et facile à mettre en œuvre, dans un logement, pour automatiser l’éclairage, piloter le chauffage, optimiser la consommation d’électricité ou encore pour se protéger contre les intrusions. Ce livre montre comment exploiter Zelio Logic avec son outil de programmation graphique en LADDER ou FBD (logiciel pour PC Zelio Soft 2). Le premier projet décrit (station de pompage domestique) permet au lecteur de s’initier à ces deux langages. Le dernier chapitre, conforme au thème « Domotique et confort » et complété par des activités pédagogiques, intéressera particulièrement les professeurs.

www.elektor.fr/domo-zelio

36 Expériences de Physique avec Arduino

Ce livre n’est pas un manuel de physique : pas d’équations différentielles ni de courbes abstraites, mais des phénomènes physiques de la vie quotidienne. C’est une approche nouvelle et créative des leçons de physique grâce aux techniques modernes de mesure et de traitement des données. L’électronique utilisée (Arduino) est simple. Ajoutez-y le logiciel gratuit CoolTerm pour enregistrer les mesures et les retravailler ensuite sous Excel.

www.elektor.fr/arduino-36-experiences

Personal Download for François Cariou | copyright Elektor

découvrir

créer

partager

carte de commande Wi-Fi : le retour reliez des objets à votre ordiphone Roy Aarts (stagiaire, labo d’Elektor) et Clemens Valens (labo d’Elektor)

Tout le monde veut des objets connectés. Tout, à l’exception peut-être de l’humeur du chien, se doit de pouvoir être commandé avec un ordiphone ou une tablette et de plus en plus d’objets doivent être capables d’envoyer des données via l’internet. Vous en rêvez, Elektor exauce vos vœux. Notre carte de commande Wi-Fi nouvelle génération vous permettra de commander des charges électriques via l’internet et de recevoir des informations sur leur état. En juin 2013, nous avons publié une carte Wi-Fi de commande à distance capable d’attaquer un ruban à LED RVB, trois relais ou moteurs, ou d’autres charges [1]. Malheureusement, comme c’est courant dans l’industrie électronique, le module Wi-Fi au cœur de cette carte, le WizFi220 de WIZnet, est

32

novembre 2016

devenu plus ou moins obsolète et nous avons été forcés d’arrêter la production de notre carte. Les modules Wi-Fi vont et viennent et, au deuxième semestre 2014, un nouveau venu est apparu : le premier module Wi-Fi à base d’ESP8266, l’ESP-01 (fig. 1).

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs

projet de lecteur

celui de la version précédente, nous avons étendu le port d’extension K4 à huit bits. Les trois sorties de puissance utilisent des transistors MOSFET (T1, T2 et T3), chacun capable de commuter jusqu’à 4 A (RDS(ON) = 100 mΩ), soit bien plus que le 1 A que nous recommandons de ne pas dépasser. Chacune des sorties est dotée d’une diode de roue libre permettant la commande de charges inductives comme des relais. Le module ESP-01 prend place sur le connecteur K5. Attention à bien orienter le module : le connecteur est symétrique et les broches ne sont pas étiquetées. Pour vous aider, nous avons placé le module en bord de carte : il n’y a donc qu’une seule orientation possible pour que le boîtier ferme. La communication avec le module Wi-Fi se fait via un port série. Un signal additionnel est utilisé pour réinitialiser le module si nécessaire. Les autres broches ne sont pas utilisées. Elles doivent toutefois être reliées afin d’empêcher que l’ESP-01 n’entre dans un des modes de reprogrammation de son micrologiciel.

L’ESP8266 est une puce à bas coût fabriquée par l’entreprise chinoise Espressif. Elle comporte une pile TCP/IP complète ainsi qu’un microcontrôleur. Les modules, très vite devenus populaires, sont fabriqués par AI-Thinker, mais on trouve aussi des clones sans marque. Ces modules sont tellement peu chers que nous n’avons pas pu résister à la tentation de redonner vie à notre carte de commande Wi-Fi avec un module ESP-01.

Le circuit À l’origine, la carte de commande Wi-Fi était un projet Arduino avec un logiciel développé pour l’ATmega328 ; ensuite elle a été portée sur un µC PIC18F14K50 pour ajouter l’USB et réduire le nombre de broches. La carte n’utilisait que des composants traversants. La nouvelle carte renoue avec l’ATmega328, mais en version CMS, tout comme les autres composants. Il n’y a plus de port USB (fig. 2). L’alimentation a également été simplifiée : la tension d’entrée est maintenant limitée à 12 V CC au lieu de 24 V CC et le régulateur à découpage a été remplacé par un modèle linéaire (IC1). Cela améliore la CEM en réduisant les émissions et rend la carte plus compacte. Comme le µC (IC2) a plus de broches que

Le logiciel Pour faire fonctionner le système, il faut du logiciel. Ce sera un croquis Arduino dans le µC et une appli Android pour l’in-

Figure 1. L’ESP-01 est un module série -> Wi-Fi bon marché doté de seulement huit broches. Deux des broches se disputent le rôle de la broche n°1 (pastilles carrées).

terface utilisateur. Le croquis se comporte comme un simple serveur web à l’écoute de commandes. Dès qu’il en reçoit une qu’il peut comprendre, une nouvelle valeur pour les sorties R, V, B ou pour l’une des broches du port d’extension par ex., le programme

+12V +3V3

D1

D2

K2

D3 2

S1A

S1A

S1A

1

R6

5

26

6

25

7

24

8

23

9 7

VCC

MOSI

15 1

MISO

16

4

3

SCK

17

6

5

RESET

2

GND

K6

8

ISP

PD7(AIN1) PC5(ADC5/SCL)

ADC6

PC4(ADC4/SDA)

AREF

PC3(ADC3)

ADC7

PC2(ADC2) PC1(ADC1)

PD0(RXD)

PC0(ADC0)

PD3(INT1)

ATMEGA328P-AU PB6(XTAL1/OSC1)

PD1(TXD)

PB7(XTAL2/OSC2) PB3(MOSI/OC2) PB4(MISO)

PD2(INT0) PD4(XCK/T0)

PB5(SCK)

PD5(T1)

GND GND 3

21

AGND 5

RED

14

BLUE

1

19 R7 R8

20 22 30

K5

R10

R3

R2

LED1

T1...T3 =

R5

R4

NDT3055L

2 GND 4 GPIO2

RST

5

6 GPIO0

+3V3

7

8 RX

+12V

ESP8266

32 9

1

CH–PD 3

31

2

R9

TX

1

K1

T3

10k

27

PB1(OC1A)

PB2(SS/OC1B)

GREEN

13

10k

28

4

IC2

PB0(ICP)

10

10k

11

3

PD6(AIN0)

10k

2

PC6(RESET)

T2

10k

12

AVCC

D4

K3

+3V3

LD1117DT33 IC1

S1A

R1 C4

C1

10u 16V

100n

220R

+3V3

1

VCC VCC

10k

K4

2

18

10k

29

6

220R

10k

T1 4

LED2

C2

C3

10u 16V

100n

150402 - 11

Figure 2. Le circuit de notre carte de commande Wi-Fi : un microcontrôleur ATmega328P, trois MOSFET de puissance et quelques autres composants. C’est le module relié à K5, absent du schéma, qui fait le plus gros du boulot.

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

novembre 2016

33

découvrir

créer

Figure 3. Le formulaire de configuration du point d’accès de l’ESP-01 vous permet de configurer le module pour votre réseau.

Figure 4. L’écran principal de l’appli Android. N’oubliez pas de tapoter le bouton Send pour transmettre vos commandes à la carte de commande Wi-Fi par l’intermédiaire du serveur web.

34

novembre 2016

partager extrait les paramètres et les applique. Il retourne ensuite la nouvelle valeur de la sortie. Les sorties R, V et B produisent des signaux MLI dont le rapport cyclique pourra varier entre 0 et 100 %. Les sorties numériques seront, quant à elles, actives ou non. Lorsque la carte est mise sous tension ou réinitialisée, le croquis exécute sa fonction setup. Cette fonction doit tout d’abord s’occuper des données (les ignorer) provenant du module ESP-01 à travers le port série au débit étrange de 76800 bauds avant que le module ne le change pour 115200 bauds. À partir de là, le module Wi-Fi est prêt à être utilisé. Le débit plutôt élevé des données n’est pas vraiment pratique, la tolérance aux erreurs est très mince. Nous avons constaté que chaque module ESP interprète le débit de 115200 bauds à sa façon et nous avons dû créer un algorithme pour nous y adapter automatiquement. L’algorithme démarre la communication un peu au-dessous de 115200 bauds, envoie une commande AT au module et essaye de comprendre la réponse ; si celle-ci n’est pas claire, le µC augmente légèrement la vitesse et tente à nouveau d’établir la communication. Cette boucle est répétée jusqu’à ce que la communication soit établie. Le croquis est aussi à l’écoute des connexions à destination de l’adresse IP spéciale 192.168.4.1. Il s’agit de l’adresse du point d’accès (AP) du module, nécessaire pour configurer l’intégration du module dans votre réseau. Si une requête de connexion arrive à cette adresse, depuis un ordiphone par ex., le croquis retourne un formulaire de configuration où l’utilisateur pourra saisir le SSID et le mot de passe du réseau à utiliser avec la carte de commande Wi-Fi. Une fois ces informations sauvegardées, le module ESP tente automatiquement de se connecter au réseau configuré. Pour exclure le module du réseau, il suffit de vous reconnecter à l’adresse spéciale et de changer les paramètres. Le code source du croquis et celui de l’appli sont disponibles dans l’archive 150402-11.zip (voir [2]) ; bien entendu, adaptez-les à vos besoins.

courant requis par la charge. Mettez-la sous tension. Si vous ne voyez pas de fumée, c’est bon signe ; continuez. Depuis un appareil Android (2.3 ou sup.) doté d’une connexion à l’internet et de connectivité Wi-Fi, rendez-vous sur le Google Play Store et installez l’appli Wi-Fi control (Elektor Team). Connectez l’appareil Android au point d’accès nommé « ESP8266 [...] ». Si vous n’êtes pas sûr(e) de vous, il s’agit du réseau Wi-Fi avec un signal très fort lorsque vous êtes à proximité du module et qui disparaît lorsque vous mettez ce dernier hors tension. Vous n’aurez pas besoin d’un mot de passe pour la connexion. Sur l’appareil Android, démarrez un navigateur web et dirigez-le vers l’adresse 192.168.4.1. Si tout se passe bien, vous devriez voir un formulaire de saisie de paramètres Wi-Fi (fig. 3) apparaître après quelques secondes. Saisissez-y les paramètres du réseau auquel vous souhaitez vous connecter puis sauvegardez-les. La page affichera ensuite l’adresse IP donnée au module par le réseau. Notez-le. Connectez maintenant l’appareil Android au réseau que le module ESP a rejoint. Lancez l’appli et saisissez l’adresse IP que vous avez notée. Vous devriez pouvoir commander vos charges. N’oubliez pas de cliquer sur le bouton Send à chaque fois que vous changez un paramètre (fig. 4). Si vous avez oublié l’adresse IP de votre carte de commande Wi-Fi, vous pourrez très probablement vous connecter à votre routeur Wi-Fi et lui faire afficher la liste des appareils connectés. Vous pouvez également vous reconnecter à l’adresse du point d’accès du module. L’adresse IP actuelle et le SSID sont affichés en haut du formulaire de configuration.

Utilisation Installez la carte de commande Wi-Fi, reliez-la à sa charge et à une alimentation (5 à 12 V CC) capable de fournir le

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

projet labs

projet de lecteur

Liste des composants Résistances (0805) R3,R4,R5,R6,R7,R8,R9,R10 = 10 kΩ R1,R2 = 220 Ω

Condensateurs (0805) C1,C3 = 100 nF C2,C4 = 10 µF 16 V, boîtier A

Semiconducteurs IC1 = LD1117DT33 IC2 = ATmega328P-AU, programmé, réf. 150402-41 (www.elektor.fr)

Pas d’Android ? Et si je n’ai pas d’appareil Android ? Ou si l’appli ne fonctionne pas sur mon téléphone ou ma tablette ? Pas de soucis. Elektor a pensé à tout ! Nous avons préparé une page web [2] pour votre navi-

T1,T2,T3 = NDT3055L D1,D2,D3,D4 = S1A

Divers LED1 = LED jaune LED2 = LED verte K1,K2 = borniers à vis à 2 voies, au pas de 5,08 mm K3 = embase jack 2,5 mm K4 = barrette sécable femelle à 9 voies, au pas de 2,54 mm K5 = barrette sécable femelle double rangée,

gateur web (il devra prendre en charge HTML 4.01 ou sup.). Affichez la page, saisissez l’adresse IP du module (pas celle de son point d’accès) et commandez vos charges. Cela fonctionne même sur

à 8 voies (2×4), au pas de 2,54 mm K6 = barrette sécable mâle double rangée, à 6 voies (2×3), au pas de 2,54 mm

Autres module Wi-Fi ESP8266, réf. 150445-91 (SKU-17326) (www.elektor.fr) circuit imprimé , réf. 150402-1 (www.elektor.fr) micrologiciel ATmega & réglage des fusibles en [2] appli dans Google Play : Wi-Fi control, Elektor Team [3]

les appareils (un peu) fermés tels que les iPhones et iPads (pour peu que vous puissiez y copier nos fichiers HTML).

Conclusion La carte de commande Wi-Fi décrite ici permet de commander jusqu’à trois charges en MLI. Bien qu’elle soit principalement destinée aux rubans à LED RVB, vous pouvez l’utiliser pour d’autres charges (relais, moteurs…). De plus, huit sorties tout ou rien sont disponibles pour commander de petites charges telles que des optocoupleurs. La carte est commandée à distance, via une connexion Wi-Fi, depuis un appareil Android avec notre appli ou n’importe quel appareil (iPhone ou PC par ex.) capable d’afficher notre page web. Amusez-vous bien ! (150402 – version française : Kévin Petit)

Liens [1] www.elektormagazine.fr/120718 [2] www.elektormagazine.fr/150402 [3] https://play.google.com/store/apps/ details?id=com.elektor.Wi-Ficontrol

www.elektormagazine.fr

Personal Download for François Cariou | copyright Elektor

novembre 2016

35

Related Documents


More Documents from "Belhamidi Mohammed Houssame"

March 2021 0
J. Perchat Tome 2
February 2021 5
Technique 2
January 2021 5
Darcis Patisserie
January 2021 1
Livre Recette Ok
January 2021 1