plus de 50 watts à partir d’une

57

Upload: others

Post on 08-Dec-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Elektor 2/2000

L’approche paraissant la plus logiqueconsiste à opter, pour l’amplificateur,pour une tension d’alimentation plusélevée, ce qui est réalisable par l’utili-sation d’un convertisseur rehausseurde tension qui relèvera la tension debatterie à une valeur sensiblementplus élevée. Cette solution présente2 inconvénients : un prix relativementélevé et le fait de constituer une sourcepotentielle (et connue) de parasites. Vula quantité d’électronique sensiblecroissante que l’on trouve dans nosvoitures modernes, cette caractéris-tique est de moins en moins souhai-table et souhaitée.Il existe heureusement aujourd’hui unealternative pour tous les amateurs dewatts. Philips Semiconductors a pré-

14

Le domaine spécifique de cetamplificateur de puissance, qui serésume en fait à guère plus qu’un

unique circuit intégré, est celui del’automobile et autres applications alimen-

tées par batterie de voiture. En dépit de sesdimensions presque ridicules, il détonne par la

puissance qu’il est en mesure de fournir.

choses se compliquent sensiblement.Un calcul élémentaire permet deconstater qu’il ne faut pas espérer, àpartir d’une tension d’alimentation de12 V (14,4 V au maximum lorsque labatterie est chargée à plein), plus de6 W si l’on utilise un amplificateur fai-sant appel à une approche convention-nelle. Le choix d’une approche en pontpermet d’espérer de l’ordre de 20 watts,mais c’est bien là le maximum de puis-sance que l’on puisse atteindre à unetension d’alimentation aussi faible.De nos jours, la jeune garde tient à dis-poser d’une certaine puissance, pourne pas dire d’une puissance certaine,non pas 6 ni même 20 watts, mais bienplus, beaucoup plus. Comment ce sou-hait se laisse-t-il se réaliser ?

Les amplificateurs audio se suivent... etne se ressemblent pas. La grande majo-rité des amplis de puissance ayantl’honneur des colonnes d’Elektor, sontdestinés à rendre des services « intra-muros », dans un salon ou un studio.Ils requièrent des tensions d’alimenta-tion comprises entre 60 et 150 V (répar-ties le cas échéant sur une paire de ten-sions symétriques), de sorte qu’il n’estpas question de les embarquer à bordd’un véhicule.Les amplificateurs alimentables par lebiais d’une batterie de 12 V font partied’une catégorie toute différente. Ils doi-vent être spécifiquement prévus pourpouvoir travailler avec une alimentationaussi faible. Si l’on veut en outre dispo-ser d’une « certaine » puissance, les

plus de 50 watts à partir d’unebatterie 12 V

AUDIO, VIDÉO & MUSIQUE

concept spécifique auto

ampli mono-puce

senté, voici quelques années déjà, unamplificateur audio intégré mono-pucespécialement prévu à cette intention, leTDA1560Q, un composant capable, àpartir d’une tension de batterie de 12 V,de fournir une puissance audio de30 W dans une charge de 8 Ω et cela,cela va de soi, sans nécessiter deconvertisseur (que l’on connaît égale-ment sous la dénomination d’ondu-leur). Il est fait appel, pour cela à ce quel’on appelle un fonctionnement en« classe H », mode auquel nous reve-nons dans un encadré séparé.Nous avons eu l’occasion, dans lenuméro 201 (mars 1995), de vous pré-senter ce composant dans le détail dansun article intitulé « étage de puissanceaudio ». Ce circuit intégré s’est vu accor-der, tout récemment, une cure de jou-vence, de sorte qu’il est réapparu, amé-lioré sous certains points et avec unepuissance de sortie sensiblement plusélevée. La fiche fabricant annonce 70 Wdans 4 Ω à une distorsion de 10%,valeur ne nous paraissant pas réaliste.À une distorsion de 1% nous avonsmesuré, sur notre prototype, une puis-sance de 54 watts dans 4 Ω, valeur pourle moins impressionnante.C’est en particulier cette augmentationde la puissance qui nous a poussé àdévelopper, autour de ce successeur duTDA1560Q qu’est le TDA1562Q, unnouvel amplificateur (à monter dansune voiture ou sur tout autre mobiledoté d’une batterie 12 V). Le nombrede composants externes nécessairesayant, lui, diminué, la platine de cenouvel ampli est encore plus compacteque son homologue de 1995.

L E T D A 1 5 6 2 Q E N 3 M O T SLa structure interne du TDA1562Q esttrès proche de celle de son prédéces-seur. Nous allons l’examiner dans lesgrandes lignes sachant qu’il est fort peuprobable que tout le monde ait encoreen tête l’article de mars 95. La figure 1nous montre le synoptique de

TDA1562Q. Une paire de sous-ensembles méritant que l’on s’y inté-resse sont ceux baptisés « lift-supply ».Ils sont requis par l’approche enclasse H. Le circuit intégré procède àune mesure du signal d’entrée et anti-cipe au niveau de la modulation quedevront, en fonction de cet élément,subir les transistors de puissance (c’est-à-dire de sortie). Si ces derniers risquentd’arriver en saturation la tension d’ali-mentation est augmentée brièvementpar une commutation des condensa-teurs connectés aux broches 3/5 et 13/15.Le TDA1562Q comporte, outre l’am-plificateur d’entrée et l’étage de sortieen classe H, les dispositifs de sécuritérequis pour un fonctionnement sansrisque. Un circuit de protection en cou-rant interne protège le composantcontre tout dépassement de l’intensitémaximale du courant de sortie et lescourts-circuits. La thermoprotection

connaît 2 niveaux. En cas de dépasse-ment de la première limite, le circuitpasse tout simplement d’un fonction-nement en classe H à un mode enclasse B : il n’est plus question d’uneaugmentation quelconque de la ten-sion d’alimentation. En cas de dépas-sement, ensuite, de la seconde limite,le niveau de la modulation des transis-tors de sortie est purement et simple-ment limité.Il existe en outre une protection contreune tension d’alimentation trop élevéeainsi qu’une autre contre une impé-dance de charge trop faible. Lorsquel’impédance tombe en-dessous d’unevaleur limite prédéterminée, le circuitcommence par passer de la classe H àla classe B; une impédance inférieure à0,5 Ω est considérée comme un court-circuit, situation qui se traduit par unemise hors-circuit pure et simple du cir-cuit intégré.

15Elektor 2/2000

1

Figure 1. Structure interne du TDA1562Q. Les différentesprotections dont il est doté rendent ce composant quasi-ment indestructible.

Caractéristiques techniques :Spécifications :– Puissance de sortie élevée (système en classe H)– Dissipation faible en présence de signaux musique– Protégé contre les courts-circuits– Thermo-protection– Commutateur de mise en veille– Absence de plocs de mise en et hors-fonction– Indication optique en cas de problème

Résultats de mesure :(à Ub = 14,4 V)Tension d’alimentation 8 à 18 VSensibilité : 0,76 VeffImpédance d’entrée : 70 kΩPuissance de sortie : 54 Weff dans 4 Ω (f = 1 kHz, THD+N = 1%)Distorsion harmonique totale (THD+N) :

à 1 W/4 Ω : 0,046% (1 kHz)0,29% (20 kHz)

à 35 W/4 Ω : 0,12% (1 kHz)0,7% (20 kHz)

Rapport signal/bruit (à 1 W/4 Ω) : 88 dBABande passante de puissance : 7,5 Hz à 185 kHz (25 W/4 Ω)Courant de repos : 135 mA environ (marche)

0,2 mA environ (en veille)

U N E P O I G N É E D EC O M P O S A N T SComme nous le disions plus haut, unsimple coup d’oeil au schéma (com-plet) de la figure 2 permet de constaterqu’il ne faut que très peu de compo-sants externes au TDA1562Q pourprendre vie, moins de la moitié de ceuxque requérait la version précédente. Iln’est plus question de réseaux de com-pensation pour assurer la stabilité, l’ab-sence de bruits à la mise sous tensionpermettant elle de se passer de tempo-risation de mise en fonction.Les seuls composants requis, hormisceux assurant le découplage de la ten-sion d’alimentation sont les condensa-

teurs électrochimiques de « classe H »,C5 et C6, les condensateurs d’entrée C1et C2, la LED de signalisation D1 et leréseau RC de l’interrupteur S1, R4/C4,pris à l’entrée de sélection de mode(broche 4).Si nous avons déjà parlé des premierscomposants, nous reviendrons à D1 unpeu plus loin. En ce qui concerne C1 etC2, nous pouvons nous contenter designaler qu’il est possible, en raison del’impédance d’entrée élevée du circuitintégré, de se contenter de condensa-teurs de faible valeur.Il nous reste à parler des composantspris à l’entrée de sélection de mode(« mode select »). Cette entrée sert à faire

passer le circuit intégré en mode d’at-tente avec « silencieux » (mute). Lors del’application de la tension d’alimenta-tion le TDA1562Q est automatique-ment d’abord mis en mode silencieuxavant d’être activé. Le réseau R4/C4introduit une temporisation dequelques dixièmes de seconde entre les2 états, ce qui permet, à la mise soustension, d’éliminer les parasites sourcede bruits gênants. L’interrupteur S1permet une mise en mode d’attente(standby) lorsque l’on veut, pour unedurée quelconque, interrompre lesignal en sortie. L’amplificateur estquasi-instantanément prêt à l’emploi,la consommation de courant étant,avec ses 0,2 mA, négligeable. La résis-tance R3 évite, la circulation d’un cou-rant de court-circuit lorsque, à la fer-meture de S1, le condensateur C4 sedécharge.

S I G N A L I S A T I O NV I S U E L L E D E P R O B L È M E SLa sortie de diagnostic (broche 8) duTDA1562 a, elle aussi, évolué sensible-ment depuis la version précédente.Comme le prouve le schéma, elle peutmaintenant être utilisée pour le pilo-tage direct d’une LED, D1, qui sertd’indicateur optique de situation anor-male. Cette LED doit être éteinte enfonctionnement normal. Son allumagepeut avoir 4 raisons :1) Le signal de sortie arrive en butée(surmodulation). Le sous-ensembleinterne responsable est appelé Dyna-mic Distorsion Detector, D3 pour lesintimes (cf. la figure 1). La pratiquenous a appris que cette situation seprésentait à une distorsion de 1,6%(mesurée à 1 kHz). Cette LED remplit,partant, une fonction d’indicateur

16 Elektor 2/2000

TDA1562

PG

ND

2

PG

ND

1

MODE

IC1

SG

NDVREF

OUT+

OUT–

STA

TDIAG

+IN

–IN

C2+C2–

C1+C1–

VP

1

VP

2

1217

16

11

1315

14

1053

4

8 9

6

1

2

7

C54700µ

25V

C6

4700µ25V

C1

470n

C2

470n

C7

100n

C3

10µ63V

C8

4700µ25VC4

10µ63V

R1

1M

R4

10

0k

R2

4k

7

D1

S1

standby

LS+

LS–

000004 - 11

12V

R3

1k

2

Figure 2. L’électronique de notre moduleamplificateur brille par sa simplicité. LaLED sert à la signalisation d’un problème.

000004-1(C) ELEKTOR

C1

C2

C3

C4

C5

C6

C7

C8

D1

H1

H2H3

H4

IC1

R1

R2

R3

R4

LS+

LS

-

0+

S1

Tstandby

00

00

04

-1 000004-1(C) ELEKTOR

3

Figure 3. Pour peu que l’on sache souder,la réalisation de cette platine prend moinsd’une heure.

Liste des composants

Résistances :R1 = 1 MΩR2 = 4kΩ7R3 = 1 kΩR4 = 100 kΩ

Condensateurs :C1,C2 = 470 nFC3,C4 = 10 µF/63 V radialC5,C6,C8 = 4 700 µF/25 V radial

(diamètre max. 18 mm, pas de7,5 mm)

C7 = 100 nF pas de 5 mm

Semi-conducteurs :D1 = LED à haut rendementIC1 = TDA1562Q (Philips)

Divers :interrupteur unipolaire4 languettes auto pour fixation par vis

M3radiateur pour IC1 (Rth<2,5 K/W)

d’écrêtage (clipping).2) Présence d’un court-circuit entre lessorties ou entre l’une des entrées et latension d’alimentation.Dans le premier cas on aura décon-nexion des sorties, le circuit de protec-tion s’assurant, à intervalles réguliers,de la disparition ou non du court-cir-cuit. La sortie DIAG est ainsi, toutes les20 ms, inactivée pendant 50 µs. En casde court-circuit avec la tension d’ali-mentation la ligne DIAG reste activéeen permanence.3) Le capteur interne mesure une tem-pérature de 145 °C ce qui fait entrer laprotection en fonction.4) L’amplificateur se trouve en cours demontée en alimentation. Dès qu’ilpasse en mode actif (« on ») la LEDs’éteint. Si, au cours de ce processus, ily a un problème au niveau de lacharge de sortie, la LED reste allumée.

U N E P L A T I N E C O M PA C T ENous avons dessiné, à l’intention decette réalisation, une platine (simpleface) dont on retrouve le dessin despistes et la sérigraphie de l’implanta-tion des composants en figure 3. Pourun amplificateur complet, ce circuitimprimé est étonnamment compact, àpeine plus de la moitié de la surface dela précédente version. Le nombre decomposants est très faible, une partieimportante de la surface étant occupéepar les 4 connecteurs à languette detype auto auxquels viennent se bran-cher les haut-parleurs et l’alimentation.La compacité de cette platine se paieaussi par un inconvénient. La mise enplace des condensateurs exige un riende doigté si l’on ne veut pas avoir deproblème de placement du circuit inté-gré. Il faudra, partant, commencer parplacer le circuit intégré sur son radia-teur (avec un rien de pâte thermocon-ductrice) et, après avoir placé cetensemble dans un boîtier adéquat, s’as-surer que le côté « pistes » de la platinesoit encore facilement accessible. Unefois que le radiateur et la platine aurontété fixés fermement dans le boîtier onpourra procéder au soudage desbroches du circuit intégré. La figure 4vous montre à quoi devrait ressemblervotre montage une fois terminé. Atten-tion, lors de la mise en boîtier de la pla-tine, à éviter tout court-circuit entrel’une des bornes des haut-parleurs etun contact de masse. Le circuit est bienprotégé il est vrai, mais il est préférablede ne pas tenter le diable. On aura,dans la majorité des cas, à placer unepaire de modules d’amplification dansle boîtier, le premier pour le canalgauche, le second pour le canal droit(ou inversement bien entendu). S’ilvous semble qu’une puissance de 2 x54 watts n’est pas suffisante, vous pou-vez envisager de piloter les paires dehaut-parleurs avant et arrière de votrevéhicule chacune par une paire de

17Elektor 2/2000

Figure 4. Il n’existe que peud’amplificateurs de 50 Wd’aussi petite taille.

Classe HSi les classes A et AB sont des paramétrages d’amplificateurs de puissance connus, lavariante dite classe G l’est moins. Elle a été développée pour permettre l’obtention unepuissance élevée et ce à une dissipation relativement faible des transistors de sortie.Philips est allé plus loin et a imaginé le principe de la classe H. Son but n’est pas deréduire la dissipation (avantage secondaire fort apprécié du reste) mais d’obtenir despuissances importantes à partir de tensions faibles (fournies par les batteries). On uti-lise à cet effet une paire de condensateurs additionnels chargés par la tension de batterie,condensateurs qui sont pris en série avec l’alimentation de 12 V lors de pics de surmo-dulation brefs. La tension d’alimentation se voit ainsi, momentanément, multipliée par 2.Sur notre schéma, les transistors T1 à T4 constituent l’amplificateur « standard », T5 à T8

associés aux condensateurs C1 et C2, constituant l’extension en classe H. Aux puis-sances faibles, T7 et T8 sont passants, les condensateurs C1 et C2 se chargeant ainsi,par le biais des diodes D1 et D2, pratiquement au niveau de la tension d’alimentation.Lorsque, lors de crêtes de surmodulation, la tension V1 ou V2 augmente au point d’ame-ner T1 ou T3 tout près de la saturation, le circuit interne « lift/recharge control » duTDA1562Q détecte cette situation. Il procède au blocage de T7 et T8, et à l’ouverturedes transistors T5 et T6 : C1 et C2 se trouvent pris en série avec l’alimentation, lesdiodes D1 et D2 évitant que la charge des condensateurs ne disparaisse en direction dela batterie.Une fois la crête de surmodulation passée, les condensateurs électrochimiques sontremis à la masse par le biais de T7/T8, ce qui en permet la recharge.

C1 C2

R1

D2D1

T1

T2

T6

T8

T5

T7 T3

T4

LIFT/RECHARGECONTROL

LIFT/RECHARGECONTROL

E1

950024 - 12

V3

V1 V2

V4

modules amplificateurs. Si laconcurrence n’est pasconvaincue, il vousrestera la possibilité depiloter séparément leswoofers et les tweetersdes 4 haut-parleurs. Lenombre de modulesnécessaires passe alorsà 8, la puissance totaleatteignant dans ce cas-làpas moins de400 watts... Attention àl’intégrité des vitres...

(000004)

Technique : Ton GiesbertsTexte : Sjef van Rooij

Elektor 2/2000

Elektor n’a pas attendu pour publierun rapport exhaustif sur les propriétéset les applications des accumulateursion-lithium, la technique de charge ycomprise ; la parution de cet articledate en effet de septembre 1996. Cettetechnique a gagné depuis du terrain,avant tout dans le domaine des ordi-nateurs portatifs et des caméscopes. Lenombre d’unités produites, passé de140 millions (1996) à 385 millions (1999),a donc plus que doublé. Seul le secteurdes accumulateurs ion-lithium destinésà la téléphonie mobile a marqué unléger recul en Europe. La composition

usuelle de l’anode et de la cathode estrestée fondamentalement la même :anode en graphite ou coke, cathode enoxyde de lithium-cobalt ou en oxyde delithium-manganèse baignant dans unélectrolyte liquide comportant un sel delithium. La combinaison graphite/oxyde de lithium-cobalt qui fournit ladensité énergétique et le nombre decycles (durée de vie) les plus élevés estcelle à laquelle la plupart des fabricantsdonnent (encore) la préférence. Lacapacité spécifique est un peu plusfaible avec un oxyde de lithium-man-ganèse, mais cette matière présente des

On aurait pu penser que l’introduc-tion des accumulateurs ion-lithium

depuis… presque 5 ans déjà auraitsonné, ou presque, le glas

des innovations. Unexamen plus appro-fondi de la situation

indique toutefois que,à côté des améliora-tions ponctuelles, de

grands chambarde-ments se préparent,

comme le passage à 42 Vdans l’alimentation élec-

trique des véhicules, l’intro-duction des accus lithium-

polymère dans la téléphoniemobile et la retraite prochaine des

accus nickel-cadmium.

18

progrès ponctuels – révolution toujours possible

INFORMATIONS

ça bouge chez lesaccus et batteries

avantages tant économiques qu’écolo-giques et son importance devraitencore croître à l’avenir. L’oxyde delithium-nickel peut aussi servir dematière constitutive de la cathode ; iloccupe une position intermédiaireentre l’oxyde de lithium-cobalt etl’oxyde de lithium-manganèse.

P E T I T S E T G R A N D SDes batteries ion-lithium rechargeablessont disponibles depuis peu sousforme de piles boutons de très petitetaille (figure 1). Elles servent principa-lement à sauvegarder le contenu de lamémoire d’un ordinateur. L’alimenta-tion de secours de l’horloge en tempsréel (Real Time Clock – RTC) des PC en« consomme » à elle seule environ120 millions par an. L’auto-décharge deces piles boutons est beaucoup pluslente (des années plutôt que des mois)que celle des modèles NiCd ou NiMHet une seule pile bouton ion-lithium de3,6 à 3,8 V remplace avantageusement3 NiCd ou NiMH (1,2 V seulement).Ajoutons que l’utilisation d’oxyde demanganèse comme matière de cathodes’accorde mieux avec l’environnementque lorsque l’accumulateur contient dunickel ou du cobalt, voire du cadmium.Le modèle ion-lithium s’est aussi tailléune place à une vitesse remarquabledans la compétition opposant les bat-teries de grande puissance des véhi-cules électriques et hybrides. EnFrance, les premières Peugeot 106« Vedelic » qui ont fait leur apparitionsur les routes sont équipées d’accumu-lateurs ion-lithium de SAFT qui leurdonnent une autonomie de 200 km etleur permettent de pousser des pointesà 110 km/h. La toute dernière généra-tion de batteries ion-lithium est déjàreprésentée dans des véhicules expéri-mentaux : les accus lithium-polymèrede 3M et Hydro-Québec ont fourni desrésultats prometteurs. De l’avis desfabricants, la filière ion-lithium pré-sente encore un potentiel de croissancequi justifie les investissements derecherche considérables accordés.

L I T H I U M - P O L Y M È R ELe développement d’électrolytessolides sous forme de polymères quis’est poursuivi pendant de nombreusesannées permettra de substituer le filmpolymère microporeux entre l’anode etla cathode des cellules au lithium, quine servait jusqu’ici que de séparateur,

aux électrolytes organiques liquidesconventionnels. L’emploi d’un électro-lyte entièrement polymérisé se heurteà la faible conductibilité des ionslithium qui ne devient acceptable qu’àhaute température (100 °C et plus) et

limite le courant admissible des cellulesà température ambiante. C’est pour-quoi les prototypes d’accumulateurslithium-polymère disponibles actuelle-ment sont basés sur un électrolytepolymérisé dont un électrolyte liquide,

19Elektor 2/2000

Figure 1 Les piles boutons rechargeables ion-lithiumont de bonnes chances de conquérir le marché desbatteries de sauvegarde. Avantages : faible autodé-charge – et 3,6 V par cellule !

2

Figure 2. Principe de la structure d’une batterielithium-polymère. L’utilisation d’une seule épaisseurde feuille de préférence à un enroulement permet deréaliser un accumulateur si plat qu’il peut mêmetenir dans une carte à puce.

Publicité

et non pas le polymère, assure commeauparavant le transport des ions. Il fautpour cela recourir à un « truc » per-mettant au film de polymère d’englo-ber si complètement l’électrolyte qu’ilgarde les propriétés mécaniques d’unfilm plastique (en fait une sorte d’élec-trolyte « mouillé à sec »). Si l’on par-vient aussi à réaliser l’anode et lacathode sous forme de feuillard, ildevient possible de réaliser des cellulesindividuelles très plates que l’on peutcombiner physiquement sous lesformes les plus diverses (figure 2). Lebut des travaux de développementconsiste à atteindre un palier énergé-tique encore plus élevé en ayantrecours au lithium métallique commematière de l’anode. Un pur électrolytepolymérisé permet aussi de se passerde circuit de protection, d’où unemeilleure densité énergétique par rap-port au poids. Il est déjà possible defabriquer industriellement des celluleslithium-polymère hautes de0,5 à 0,7 mm. La première générationd’accumulateurs pour téléphoniemobile est épaisse de 3 à 7 mm pourune capacité de 450 à 700 mAh (parexemple 500 mAh, tension 3,7 V,dimensions 50 mm x 33 mm x 4 mm, etpoids de 15 g seulement !). Outre lavaleur élevée de la densité énergétiqueet l’amélioration de la sécurité (plus defuites, le polymère protège des courts-circuits), la plus grande flexibilité deconception permet d’intégrer l’accu-mulateur dans l’une ou l’autre partiedu boîtier, par exemple au dos de l’af-ficheur d’un ordinateur bloc-notes.Un autre champ d’application de latechnique lithium-polymère est consti-tué par l’alimentation de cartes à pucesau moyen de films d’alimentationextra-plats qui ne sont toutefois pasencore rechargeables.

A D I E U N I C A DOn le sait depuis longtemps, mais onn’ose l’avouer : les jours des accumula-teurs NiCd sont comptés. Un projet dedirective de l’UE prévoit l’interdictiondes accumulateurs NiCd dès 2008 –sans que l’industrie locale ne subisse detraumatisme particulier, d’autant plusque la plupart des accus NiCd sontfabriqués en Asie. Ce n’est toutefois pasuniquement la protection de l’environ-nement qui sonne le glas des accumu-lateurs NiCd, mais aussi le fait qu’ilspeuvent être actuellement remplacéspar des accumulateurs NiMH dans lamajorité des cas. Il en va de mêmepour les alimentations de secours, lestéléphones sans fil et, récemment,même pour les applications avides decourant (tournevis sur accumulateur,perceuses, véhicules électriques, fabri-cation de maquettes). Les piles rondesSub-C (diamètre 23 mm, longueurhors-tout 42,6 mm) très usitées dans ledomaine des courants élevés suppor-

20 Elektor 2/2000

1.5

1.4

1.3

1.2

1.1

1.0

0.9

0.80 5 10 15 20 25 30

990055 - 12

Charge = 220 mA x 14 h à 20°C

Tension [V]

11A(5C)

6.5A(3C)

4.4A(2C)

Temps de décharge [mn]

1.4

1.3

1.2

1.1

1.0

0.9

0.8

0.7

0.6

0.50 0.5 1 1.5 2 2.5 3 3.5 4

1.5

990055 - 13

Tension [V]Décharge à 40 Achargé à 1 C x 72

Durée [mn]

3

a

b

Figure 3. Décharge d’une cellule NiMH (Sub-C) àcourants très élevés (figure 3 a) et en « presquecourt-circuit » de 40 A (figure 3b).

Figure 4. Des accumulateurs NiMH robustesoffrant une capacité de 1 100 mAh constituent unremplacement idéal des accumulateurs NiCd600 mAh dans les téléphones DECT.

tent actuellement des pointes de 40 A(figures 3a et 3b) et atteignent unecapacité de 3 Ah. Le développement decapacité de la filière NiMH semble loind’être terminé. Alors que la plage decapacité normale des mini-piles clas-siques (R6) s’étendait récemment de1 200 à 1 300 mAh, le « standard »actuel atteint 1 500 à 1 600 mAh et l’onprévoit 1 800 mAh dans le courant del’année. Les cellules NiMH ont doncatteint environ le double de la capacitédes cellules NiCd. Même les batteriesprimaires alcali-manganèse prévuespour les courants moyens se font len-tement mais sûrement rattraper. Ladurée de fonctionnement des accumu-lateurs NiMH prévus pour les courantsélevés dépasse toujours celle des batte-ries alcalines de modèle identique.Il faut toutefois noter que la très forteaugmentation de la capacité nominaledes accumulateurs NiMH « gonflés »s’effectue aux dépends du nombre decycles, donc de la durée de vie et dela robustesse. C’est pourquoi ondevrait donner la préférence auxaccus NiMH de plus faible capacité,moins onéreux et plus robustes, dansles applications telles que le télé-phone sans fil où le mode d’attenteou la décharge totale ont tendance àdominer. Pour ne citer qu’un exemple,les accumulateurs « Phone Power » deVarta en technique NiMH qui sontspécialement conçus pour remplacerles R6 NiCd dans les téléphonesDECT (figure 4) offrent « seulement »une capacité de 1 100 mAh, ce quiprolonge leur durée de vie.L’accroissement rapide de capacitéallant de paire avec le maintien descoûts à un niveau modique permetaussi d’expliquer pourquoi les pilesion-lithium n’ont pas (encore) tenuleurs promesses sur le marché GSM(Global System for Mobiles). NiMH amême pu s’imposer dans les appareilshaut de gamme. On a même conçuentre-temps des circuits intégrés spé-ciaux convertisseurs de tension quipermettent de remplacer la cellule aulithium d’un téléphone portatif (3,6 V)par deux cellules NiMH (2,4 V).Le développement de cellules NiMHpouvant fournir une forte intensité enrégime continu a aussi placé les batte-ries NiMH petites mais puissantes enbonne place dans la course à l’équipe-ment des véhicules hybrides. Citons labatterie d’automobile NiMH de Varta

fournissant 250 V/10 Ah qui a fonc-tionné pendant plus de 50 000 km sansproblème dans une « Smart ». Uneéquipe de Varta a même développé unebatterie NiMH pour le véhicule élec-trique « Panoz Q9 » destiné aux rallyesqui délivre la puissance incroyable de90 kW alors qu’elle ne pèse que 100 kg.

A C C U M U L A T E U R S ÀL ’ E A U - D E - V I ENon, ce n’est pas un gag, comme entémoignent les rapports répétés sur lespiles à combustible pour ordinateursportatifs alimentées au méthanol. Bienque les experts fassent preuve d’un cer-tain scepticisme à l’égard des commu-

21Elektor 2/2000

Figure 5. Avec des accus 36 V dans le nouveaumillénaire. Le futur réseau à bord d’une voituresera de 14 et 42 V.

Figure 6. Machine asynchrone dans la transmis-sion : Alterno-générateur/démarreur intégré auréseau de bord à 2 tensions.

M

G

Starter

Générateur

Batterie 2 Batterie 1

36V+ +

DC

DC

Consommateurforte charge

42 V

Consommateur14 V

12V

990055 - 14

5

Réseaude bord

42 V

Réseaude bord

14 V

Batterie 12 V

Alterno-générateur/démarreur

990055 - 15Moteur à explosion

Batterie 36 V

Électroniquede

commande

CAN

Capteur

6

Publicité

niqués du réalisateur Bob Hockaday enprovenance des USA, l’Allemagne peutse targuer de résultats fort concretsbasés sur une réalisation similaire. LeDr Angelika Heinzel de l’InstitutFraunhofer ISE qui se consacre aux sys-tèmes basés sur l’énergie solaire amême reçu le Prix Allemand de l’Ave-nir (Deutscher Zukunftspreis) avec un ex-collaborateur de l’ISE, le Dr RolandNolte. Contrairement aux cellulesempilées des piles à combustiblesusuelles, celles de la pile à combustiblede l’ISE sont disposées côte à côte. Cela

veut dire que cette pile à combustibleest formée d’un ruban extrêmementplat et flexible qui peut être incorporédans des boîtiers de formes les plusdiverses. On peut aussi empiler plu-sieurs rubans, ouvrant ainsi la voie àune fabrication en série dont les maté-riaux et la structure semblent écono-miquement viables. Ces rubans pour-raient bientôt remplacer les batteries denombreux appareils électroniques por-tatifs – une véritable révolution.En 1998 déjà, des chercheurs de Fri-bourg (Suisse) ont réalisé un modèle

expérimental d’ordinateur portatifd’une puissance de 25 W alimenté parune unité de stockage hydrure métal-lique/hydrogène d’une capacité de400 Wh (environ 130 l d’hydrogène).La taille totale des 2 composants – pileà combustible et unité de stockage –équivaut à celle d’un accumulateurordinaire d’ordinateur portatif maisleur capacité donne à la machine uneautonomie de 10 heures par rapport aufonctionnement de 2 à 3 heures pos-sible jusqu’alors. Les rubans de piles àcombustible offrent donc dès à présentune densité énergétique par unité devolume supérieure à celle des accumu-lateurs ion-lithium, sans parler d’uneamélioration de la durée de vie et d’unrecyclage plus commode. Le potentield’innovation est encore largementinexploité : presque tout reste à fairedans le domaine de la miniaturisationdes parties constituantes.

L A V O I T U R E 4 2 VLe passage du réseau de bord de6 à 12 V, il y a de cela environ 35 ans, aconduit peu de temps après à l’intro-duction de l’alternateur triphasé. Ledébut du nouveau millénaire mar-quera entre autre le passage de12 à 36 V (tension nominale de la bat-terie) qui correspondra vraisemblable-ment à l’introduction d’un « alterno-générateur/démarreur ».Quant à latension de bord, elle passera vraisem-blablement de 14 V à 42 V. Le réseau14 V est toutefois conservé pour l’élec-tronique du véhicule et pour les utili-sations électriques à faible puissance(figure 5). Ce choix est basé sur debonnes raisons dont en particulier : élé-vation de la puissance requise par lenombre croissant de dispositifsélectr(on)iques du véhicule, améliora-tion du rendement des systèmes élec-triques et, enfin, économie de poids.L’augmentation de tension entraînecelle du rendement, et le système à2 tensions peut être optimisé en fonc-tion de divers impératifs en faisantappel à 2 accumulateurs. Il existe desaccumulateurs au plomb 12 V et 36 Vprésentant des performances amélio-rées, les batteries à matelas de verreabsorbant AGM (Absorbent Glass Mat)dans lesquelles des microfibres deverre placées entre des plaques depoids, de forme et de compositionappropriés retiennent l’acide captif.Cette construction empêche la disper-sion du contenu de la batterie en cas derupture et rend tout entretien super-flu ; la batterie AGM est plus légère etplus compacte et survit à trois fois plusde cycles de décharge, ce qui la rendparticulièrement apte à jouer le rôle debatterie d’alimentation. La batterie 36 Vpourra aussi être constituée d’un accu-mulateur nickel-hydrure métallique ouion-lithium.Le concept des 2 tensions allié à celui

22 Elektor 2/2000

1.7

1.5

1.3

1.1

0.9

0,7

0.5

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

1.9

990055 - 16

Tens

ion

[V]

Durée [h]

cycle 25 10 5 1

7

Figure 7. Courbe caractéristique de la tensiond’une cellule alcaline R6 rechargeable pour uncourant de décharge de 125 mA (Accucell) et25 cycles.

10 20 50 100 200 60000.0

0.2

0.4

0.6

0.8

1.0

1.2

50

100

150

200

990055 - 17Cycles

Cap

acité

par

cyc

le [A

h]

Capacité par cycle

Cap

acité

cum

ulée

[A

h]

Capacité cumulée

Figure 8. Relation entre la décharge totale, lenombre de cycles et la capacité cumulée (cellulerechargeable RAMTM, taille R6). La cellule estdéjà inutilisable au bout de 10 cycles lorsque ladécharge s’effectue à 1 000 mAh.

8

de l’alterno-générateur/démarreur pré-sente des perspectives intéressantes dediminution d’énergie et de poids(figure 6). L’alterno-générateur/démar-reur est une machine asynchrone tri-phasée très compacte, servant dedémarreur et d’alternateur, intégréeentre le moteur et la transmission. Unboîtier électronique gère toutes lesfonctions de commande et d’asservis-sement. Ce boîtier contient l’onduleurde démarrage triphasé capable decommuter 68 kVA, le régulateur de lagénératrice, le régulateur de charge des2 batteries et un convertisseur DC/DCbidirectionnel 42 V/14 V de 3 kW. Lerendement total en régime d’alterna-teur dans le domaine de puissance nor-male qui atteint 4,2 kW peut dépasser90 %, ci-inclus les pertes causées parl’électronique. Compte tenu du coupleélevé que l’alterno-démarreur KSGdoit exercer au démarrage, il peut four-nir plus de 20 kW en régime d’alterna-teur et servir aussi à assurer dynami-quement la marche régulière dumoteur et à amortir les oscillations dela transmission (« à-coups »). Si la capa-cité de l’accumulateur le permet, l’al-terno-démarreur KSG peut aussi servird’appoint au moteur à combustioninterne au démarrage et lors des accé-lérations, ouvrant ainsi la voie auconcept hybride.

E N G U I S E D EC O N C L U S I O N : A L C A L I N E S A V E C E TS A N S C H A R G ECommençons par les batteries nonrechargeables : le marché accueille unenouvelle génération de batteries alcali-manganèse de capacité plus élevée etdont les propriétés sont nettementsupérieures lorsque le courant estélevé. Les nouveaux modèles « High-Power » de marques réputées commeVarta, Panasonic et Philips marquentune amélioration indubitable par rap-port à leurs prédécesseurs alcali-man-ganèse. La durée de fonctionnement àcharge élevée a été prolongée jusqu’à45 %, ce qui correspond à un temps dedécharge de presque 1,5 heures (aulieu d’une heure) dans les applicationsà courant extrêmement élevé(1 000 mA fournis par une pile R6). Ondépasse largement 2 heures de fonc-tionnement à 600 mA, on en atteintenviron 14 à 150 mA et on dépasse18 heures à 120 mA.

Les facteurs d’amélioration détermi-nants sont basés sur la diminution dela résistance interne par l’utilisation deconteneurs frottés avec du graphite etl’usage d’une forme pulvérulente trèsconductrice de ce dernier pour lacathode, par l’emploi de gel de zincpour l’anode et d’une matière de rem-plissage plus efficace au dioxyde demanganèse en augmentant le volumeinterne.Les batteries alcalines rechargeables(contrairement aux cellules NiMH lesplus récentes) ne peuvent, elles, pré-tendre à de telles performances. Les« véritables » 1,5 V fournis par la batte-rie au dire des fabricants deviennentaussi un peu moins crédibles lorsqu’onconsidère que la tension décroît plusou moins rapidement selon la chargeet que sa valeur moyenne prise surtoute la durée de la décharge nedépasse pas 1,2 V. La résistance interneétant relativement élevée, la capacitédécroît rapidement lorsque le courantde décharge est élevé. Une pile rondeR6 rechargeable atteint déjà sa capaciténominale (1 800 mAh) lorsque ladécharge n’est encore que de l’ordre de30 mA ; elle n’est plus que d’environ1 500 mAh à 125 mA et 1 200 mAh à300 mA (décharge jusqu’à 0,9 V dansles 3 cas). Mais ces valeurs de la capa-cité ne s’appliquent qu’aux premièresdécharges d’une batterie flambantneuve. La décroissance de la capacitéen fonction du nombre de rechargesest illustrée dans la figure 7 dans le casd’une décharge à 125 mA. Pour aug-

menter le nombre de cycles, il faut quela décharge se termine lorsque la ten-sion dépasse encore 0,9 V ; unedécharge plus poussée réduit aucontraire le nombre de cycles de façondrastique.L’auto-décharge plus faible est unavantage incontestable par rapport auxaccus NiMH, tandis que la meilleurecompatibilité avec l’environnement,une batterie alcaline rechargeable, restediscutable. La pollution causée par unecellule (fabrication et élimination) peutêtre plus faible que celle d’une batterieNiMH, mais cela ne change rien au faitqu’il faut plusieurs cellules alcalinespour assurer la même dépense d’éner-gie (voir la figure 8). En résumé, unecellule alcaline ronde R6, même lors-qu’elle n’a pas subi de décharge plustotale que 0,5 Ah par cycle, atteint unecapacité cumulative de 75 Ah si l’ons’en tient au dire du fabricant. Même sil’on n’atteint pas toujours en pratiquele nombre de cycles >1 000 indiqué parle fabricant, une cellule NiMH de lamême taille atteint au moins 500 Ah (etcela en moins de 500 cycles), tandis quece n’est pas 10 à 50 batteries (nonrechargeables) alcali-manganèse qu’ilfaut remplacer mais bien 100 à 500 enpratique. Où se trouve la plus grandecontribution à l’environnement ?

(990055)

Texte: Ernst Krempelsauer

23Elektor 2/2000

Littérature :

les accus modernes & leurs techniques derecharge, Elektor n°198, décembre 1994,page 16 et suivantes

piles alcalines au manganèse rechargeables,Elektor n°204, juin 1995, page 32 et sui-vantes

recharge de piles alcalines, Elektor n°204, juin1995, page 52 et suivantes

les accus & leurs technologies, Elektor n°219,septembre 1996, page 12 et suivantes

LM3420-xxx, contrôleur de charge pour accuslithium-ions, Elektor n°219, septembre1996, page 12 et suivantes

régénérateur pour piles alcalines, Elektorn°222, décembre 1996, page 20 et suivantes

chargeur d’accus Li, Elektor n°253/254,juillet/août 1999, pages 40 et 41

Liens intéressants :

http://www.varta.de

http://www.saft.fr

http://www.ise.fhg.de

http://www.conti.de/cas/isad

http://www.lithiumpolymerbattery.com

http://www.valence-tech.com

http://www.gaia-akku.com

http://www.electrochem.org

http://www.energyrelatedevices.com

http://www.eveready.com

http://www.accucell.de

http://www.bti.ca/corp.htm

http://www.rayovac.com/products/recharge/

recharge.shtml

Publicité

Elektor 2/2000

La bande des 2 mètres pour radioama-teurs est toujours la bande la plus popu-laire dans le monde. Elle s’étend de 144 à146 MHz dans la plupart des pays euro-péens, et de 144 à 148 MHz dansd’autres pays comme les États-Unis oul’Australie. Traditionnellement, cettebande est associée aux communicationsproches, d’une distance maximum d’àpeu près 80 km, utilisant une modula-tion de fréquence à bande étroite(NBFM = Narrow-Band Frequency Modu-lation) et des niveaux de puissance d’auplus 50 watts. Ceci est aussi appelé « tra-fic local » par certains radioamateurs.Grâce aux relativement faibles dimen-sions des antennes et à la profusiongénérale de mâts japonais bon marchéde haute technologie et de kits radio pri-vés reconvertis, la bande des 2 mètres estaussi la bande favorite pour les commu-nications à partir d’engins mobiles etportables, il n’est qu’à voir la présence destations répétitrices créées et gérées pardes amateurs dans beaucoup de pays.La partie inférieure de la bande des2 mètres est réservée pour les modes

de communication à bande étroitecomme le morse et les bandes latéralesuniques (BLU). Grâce aux plus petiteslargeurs de bande et donc auxmeilleurs taux de réponse signal/bruitpour les faibles signaux, ces modesoffrent de plus grands rayons d’actionque la modulation NBFM. Le « son »de la section de bande entre parexemple 144,000 et 144,400 MHz n’estdonc pas très éloigné de celui d’unebande à ondes courtes comme celle des10 mètres (28 MHz). Sous réserve quevous utilisiez une bonne antennedirectionnelle (comme une Yagi), vousdevriez être en mesure de capter lesidentifiants morse de balises de faiblepuissance aussi bien que les signauxmorse et BLU de stations bien au-delàdu champ des ondes NBFM.

P O U R Q U O I U NC O N V E R T I S S E U R ?Beaucoup de débutants en radio com-mencent avec un récepteur à ondescourtes d’occasion. Il s’agit générale-ment d’un récepteur de couverture

Si vous êtes en pos-session d’un récep-

teur à ondes courtesde couverture univer-

selle, et souhaitezétendre sa fréquence

vers la bande radio-amateur des

2 mètres, le circuit ci-dessous est fait pour

vous. Facile àconstruire à partir de

composants bon mar-ché, le convertisseurdevrait être un excel-lent exercice d’initia-tion pour des radio-amateurs débutantsenthousiastes. C’est

aussi un parfait com-pagnon du mini-

récepteur O.C. décritl’année dernière dans

ces colonnes.

24

Projet : G. Baars

pour capturer les signaux longuedistance (DX) sur 144 MHz

CIRCUITS HF, RADIO

convertisseur pour la bande des 2 mètres

universelle pour les réceptions d’ondesCW/USB/LSB/AM/RTTY (CW = Conti-nuous Wave, ondes entretenues -morse, USB = Upper Side Band, bandelatérale supérieure, LSB = Lower SideBand, bande latérale inférieure, AM =Amplitude Modulation, modulationd’amplitude, RTTY = Radio TeleTypeWriter, telex) entre 150 kHz et 30 MHz.Le Yaesu FRG-7 est un parfait exemplede ce type de récepteur, et bien que saconception date de quelques 25 ans, ilest toujours très demandé dans le com-merce radioamateur. Les mêmes débu-tants n’auront pas toujours non plusles fonds (ni la licence) pour acheter unémetteur-récepteur universel à trèshaute fréquence VHF (VHF = VeryHigh Frequency), aussi pourquoi ne pasajouter une réception de la bande des2 mètres à la capacité du récepteurd’ondes courtes disponible ? Avec unpeu de chance, celui-ci disposera enmême temps d’un mode NBFM, vouspourrez donc aussi écouter le trafic« local » et faire la connaissance desradioamateurs de votre région.Il faut noter que la réception dessignaux DX (longue distance) dans labande des 2 mètres requiert une bonneantenne directionnelle disposant d’ungain d’au moins 10 dB et d’un câblecoaxial à faibles pertes pour l’entrée durécepteur (ou du convertisseur). Quelque soit le préamplificateur à faiblebruit que vous ayiez en tête, l’expé-rience prouve qu’il est nettementmoins efficace qu’une bonne antennepositionnée à une hauteur suffisante.Respectant une tradition bien établiedans le monde des radioamateurs, leconvertisseur présenté mélange lessignaux les amenant de la bande des2 mètres jusqu’à celle des 10 mètres(28,0-29,7 MHz).

C O M M E N T Ç A M A R C H ELe schéma du circuit du convertisseurde la bande des 2 mètres est présentéen figure 1. Comme vous le voyez, iln’utilise que cinq composants actifs,tous de la variété la plus courante.Sa conception comporte quatre sec-tions : un oscillateur local, un mélan-geur, un palier d’entrée et un palier desortie, qui sont expliquées successive-ment ci-dessous.

L’oscillateur local (LO = Local Oscillator)Le transistor T1 et le quartz X1 sontconfigurés pour former un oscillateurdont la fréquence de sortie est de38,667 MHz. Le quartz travaille enmode « 3e harmonique » (third-over-tone). Le condensateur ajustable C1permet d’ajuster l’oscillateur. Le signalde sortie de l’oscillateur est fourni autripleur de fréquence T2 dont le circuitcollecteur de sortie est ajusté sur116 MHz par L3 en combinaison avecle condensateur ajustable C7. Le signal

local de l’oscillateur, quia un niveau crête acrête d’environ 100 mV, est couplé parinduction (via L4) au mélangeur.

Le mélangeurLe mélangeur du convertisseur est untransistor MOSFET à double grille detype BF961, T4. Le signal de l’oscilla-teur local est appliqué à la grille 2 (G2)et le signal radio d’entrée à la grille 1(G1). Notez que G2 est conservé à unpotentiel fixe d’environ 2,9 V par lesrésistances R6 et R7, cependant que G1est mis à la masse en continu. Ceci estla configuration traditionnelle, avec lesrésistances de G2 déterminant le gainde conversion. Les résultats du mélan-geur sont obtenus au drain du transis-tor BF961. Ces résultats sont, en prin-cipe : 144+116 = 260 MHz,144 –116 = 28 MHz et le signal résiduelde l’oscillateur local LO à 116 MHz. Lacombinaison L8/C16/C17 est réglée à28,8 MHz et sert à supprimer le com-posant 116 MHz de l’oscillateur localLO – étant donnée la différence de fré-quence entre les composants, il n’estpas difficile d’obtenir une suppressionsuffisante.

Le palier d’entréeLe signal de l’antenne des 2 mètres est

couplé parinduction à la

base du transistor T3, un transistorVHF/UHF (UHF = Ultra High Fre-quency, ultra haute fréquence) de faiblebruit de type BFR91. La paire debobines d’entrée L5-L6 est réglée exac-tement à 144 MHz au moyen descondensateurs ajustables C10 et C11.Le filtre de bande en entrée sert à sup-primer les fréquences images de116–28 = 88 MHz et, en même temps,à faire coïncider le transistor à l’impé-dance du câble de 50 Ω. Le signalamplifié est couplé par capacité à lagrille 1 du mélangeur via le condensa-teur C13.

Le palier de sortieLa fonction principale du palier depilotage autour du transistor T5 est deprocurer une bonne correspondanceavec l’entrée du récepteur (50 Ω). Legain de ce palier est rendu réglable parl’ajustable P1 pour contrôler qu’aucunesuralimentation ne se produise avecdes récepteurs trop sensibles aux ondescourtes.Le convertisseur est alimenté par unealimentation régulée et bien découpléeavec une sortie entre 9 et 12 volts. Laconsommation de courant est del’ordre de 20 mA.

25Elektor 2/2000

T1

BF494

T2

BF494

T3

BFR91

T5

BFR91T4

BF961

R1

15

0k

R3

18

0k

R2

2k

2

R41

50

k

R7

10

0k

R6

47

k

R8

1k

R5

56

R11

56Ω

R10

15

0k

R9

2k

2

1k

P1

C3

10p

C2

27p

C20

100n

C22

100n

C4

15p

C13

4p7

C15

1n

C17

22p

C23

100n

C24

100n

C25

100n

C1

22p C5

40p

C7

22p

C8

22p

C11

22p

C10

22p

C14

22p

C16

40p

X1

X1 = 38.667MHz

C21

10µ63V

C9

10p

C12

10p

C6

10p

C18

10p

C19

1n

L1

0µH22

L2

0µH33

L3 L4

L5 L6

L7

L8

0µH56

+9...12V

* *

*

*

000013 - 11

9V

9VBF494

BCE

BF961

G2

G1

D

S

*(3)

(2)

BFR91B C

E

zie tekst*see text*siehe Text*voir texte*

6V0

9V0

7V3

0V7

9V

2

100mV

0V7

7V8

0V

2V9

0V6

9V

3V4

8V

92

V7

50Ω

20mA

t t

50Ω

1

Figure 1. Schéma du circuit duconvertisseur 2 m vers 10 m.

C O N S T R U C T I O NLe convertisseur est construit sur uneplatine de circuit imprimé à simple facedont le schéma est fourni en figure 2.Cette platine est disponible auprès desadresses habituelles.Avant de commencer les soudures,nous vous conseillons de réaliser lesbobines L3 à L7. Ceci n’est pas difficile.Prenez un crayon ou un forêt d’un dia-mètre de 4,5 mm et enroulez autour delui 5 tours de fil de cuivre argentéSWG20 (d’un diamètre approximatifde 0,8 mm). Étirez ensuite régulière-ment les enroulements jusqu’à ce quela bobine atteigne une longueur d’àpeu près 10 mm. Sur L5 seulement,dérivez la bobine deux tours avant lecôté que vous voulez connecter à lamasse (regardez le schéma d’implanta-tion des composants). La dérivation estréalisée avec un petit morceau de filmis à nu. Faites attention qu’il ne court-circuite pas les boucles adjacentes ! Lesbobines couplées L5-L6 et L3-L4 doi-vent être espacées d’1 mm.Ensuite, installez les éléments sur laplatine, sauf les transistors T3, T4 et T5.Rappelez-vous qu’un travail de sou-dure soigneux et précis vous apporteraen retour un circuit fonctionnantcomme une horloge.Pour réduire le plus possible les capa-cités parasites, les transistors BFR91 etBF961 sont fixés sur la face de soudurede la platine. Ceci est indiqué par leursilhouette en pointillés sur la sérigra-

phie de l’implantation des compo-sants. Regardez avec attention les indi-cations d’orientation sur ces transistorspour contrôler qu’ils sont montés dansle bon sens. Sur le BFR91, le collecteurest la patte la plus longue ; sur leBF961, la source a une petite marque etle drain est la patte la plus longue.Une fois complétée, la platine doit êtreinsérée dans une boîte métallique. Pournotre prototype, nous avons utilisé unepetite boîte en aluminium moulé dechez Hammond. L’entrée et la sortie duconvertisseur radio peuvent être dessupports de style BNC ou SO239, selonce que vous avez sous la main. Lesconnexions entre les supports et lesbroches correspondantes de la platinedoivent être réalisées en câble coaxial,par exemple, des câbles RG174 ouRG58.

U N O U T I L D E R É G L A G ENous sommes sûrs qu’une simplesonde radio telle que celle présentée enfigure 3 vous sera très utile pour leréglage des circuits radio. Construisez-la et vous vous demanderez commentvous avez pu vous en passer jusqu’ici.La sonde consiste en un boîtier de styloen aluminium (un stylo feutre, nettoyé,bien sûr), dans lequel est installé unpetit détecteur à diode. Le bout du filde cuivre ou de soudure est soigneu-sement limé pour obtenir une pointeaiguë. Le choix de la diode n’est pasdécisif. Alors que les diodes hyperfré-

quences SHF (SHF = Super High Fre-quency) comme la 1S99 permettent deréaliser des mesures jusqu’au milieu dela gamme des GHz, une banale BAT82convient aux circuits VHF comme leconvertisseur présenté.La sonde est uniquement prévue pourdonner des indications relatives, enapportant un moyen simple de « pous-ser » les bobines à leur fréquence derésonance. Elle ne chargera que légè-rement le circuit testé et ne nécessitepas une mise à la masse. La tension desortie est fournie aux entrées d’un volt-mètre – de préférence analogique defaçon à constater la « tendance ». Dansnotre cas, les mouvements de l’aiguilled’un antique instrument à bobine

26 Elektor 2/2000

000013-1(C) ELEKTOR

C1C2

C3

C4

C5

C6

C7

C8

C9C10

C11

C12

C13

C14

C15

C16

C17

C18

C19

C20

C21C22

C23C24 C25

H1 H2

H3H4 H5

H6H7

H8

L1

L2

L3L4

L5

L6

L7

L8

P1

R1

R2 R3

R4 R5 R6

R7

R8

R9 R10

R11

T1

T2

X1

000013-1

+9..12V

0

T

T

T3

T4

T5

000013-1(C) ELEKTOR

Figure 2. Dessin des pistes etsérigraphie de l’implantationdes composants de la platinesimple face. 3 transistorssont montés côté « pistes » !

Liste des composants

Résistances :R1,R4,R10 = 150 kΩR2,R9 = 2kΩ2R3 = 180 kΩR5 = 560 ΩR6 = 47 kΩR7 = 100 kΩR8 = 1 kΩR11 = 56 ΩP1 = ajustable 1 kΩ horizontal

Condensateurs :C1,C7,C8,C10,C11,C14 = ajustable

22 pFC2 = 27 pFC3,C6,C9,C12,C18 = 10 pFC4 = 15 pFC5,C16 = ajustable 40 pFC13 = 4pF7C15,C19 = 1 nF, au pas de 5 mmC17 = 22 pFC20,C22-C25 = 100 nF céramiqueC21 = 10 µF/63 V radial

Selfs :L1 = self miniature 0µH22L2 = self miniature 0µH33 L3-L7 = 5 spires de fil de cuivre

argenté de 0mm8 de diamètre(SWG20), diamètre intérieur de4,5 mm et de 10 mm de longécartement de 1 mm entre les selfscouplées, prise intermédiaire à2 spires de la masse

L8 = self miniature 0 µH56

Semi-conducteurs :T1,T2 = BF494T3,T5 = BFR91T4 = BF961

Divers :X1 = quartz 38,667MHz

(3e harmonique)boîtier : 56×107×25 (dimensions

intérieures) tel que, par exemple,Hammond 1590B

mobile sont plusutiles que deschiffres dérouléssur un voltmètrenumérique.

R É G L A G ECommencez par régler tous lescondensateurs ajustables de la platineà leur course maximum, sauf C1 quisera placé à mi-parcours. Connectez leconvertisseur au récepteur et branchezl’alimentation. Réglez P1 à mi-par-cours. Mesurez la consommation decourant. Si elle correspond à ce qui estattendu, continuez le processus deréglage comme indiqué ci-dessous.« Chaud » signifie présence d’ondesradio, « froid » absence d’ondes radio,c’est-à-dire alimentation neutre oupositive. « Pousser à la crête » signifierégler pour une lecture maximum levoltmètre connecté à la sonde, ou pourune lecture maximum le S-mètre durécepteur. À propos de la sonde, lavaleur maximum que vous lisez n’estpas significative en soi, c’est la crêteque vous devez rechercher.

Placez la pointe de la sonde sur lecôté chaud du condensateur ajus-table C5 et réglez celui-ci pour obtenirla valeur maximum sur le voltmètre.

Connectez la sonde à environ untour du côté froid de L3 et poussez àla crête C7. Vous cherchez la pre-mière crête à partir de la pleinemesure. Si vous ne la trouvez pas,changez la sensibilité de fosc x 3 àfosc x 4.

Connectez la sonde à un tour du côtéfroid de L4 et poussez à la crête C8.Utilisez la première crête en partantde la pleine mesure. Si vous ne latrouvez pas, changez la sensibilité defosc x 3 à fosc x 4.

Positionnez C10, C11 et C14 à mi-par-cours.

Réglez le récepteur à 28,800 MHz etajustez C16 pour le bruit maximum.

Assurez-vous qu’un signal relative-ment fort est reçu dans une fré-quence située entre 144,800 et

145,000 MHz (généra-teur radio, sinondemandez à un radio-amateur local). Poussez

à la crête C10, C11 et C14 pour lameilleure réception. Réduisez lesignal d’entrée selon le besoin pourêtre sûr de toujours trouver unecrête.

Ajustez C1 de façon à ce que la lec-ture de la fréquence sur le récepteurcorresponde à la fréquence du

signal, par exemple144,800 MHz = 28,800 MHz.

Supprimez le signal d’entrée et ajus-tez P1 de façon à ce que le S-mètredu récepteur commence juste à bou-ger.

Réglez sur un faible signal dans labande des 2 mètres et ajustez soi-gneusement C10, C11 et C14 pour laplus forte indication du S-mètre.

Ceci termine le réglage du convertis-seur.

L A B A N D E D E SS A T E L L I T E S M É T É OEn modifiant la fréquence injectéedans l’oscillateur local LO à 109 MHz,il devrait être possible d’utiliser leconvertisseur pour recevoir les signauxdes satellites météo en orbite bassedans la bande des 137 MHz. Un quartzde 36,333 MHz (à nouveau, en 3e har-monique) est nécessaire, de mêmequ’un nouveau réglage de tous lescondensateurs ajustables pour les fré-quences légérement inférieures.

(000013-1)

27Elektor 2/2000

Cartographie de la bande des 144–146 MHz (recommandation de l’IARU-International Radio Amateur Union)

144,000 – 144,500 MHzRéservé au trafic radio. Quelques sous-bandes importantes : 144,000 – 144,025 : EME (earth-moon-earth, terre-lune-terre ou « rebondissement » sur

la lune)144,050 : appel morse144,100 : dispersion Meteor en morse144,150 : fréquence morse longue distance144,300 : appel bande latérale unique BLU144,400 – 144,490 : Balises144,490 – 144,500 : Bande limite des balises, pas de transmissions

144,500 – 144,800 MHzTous modes, comprenant :144,500 : Appel bande latérale TV (SSTV)144,600 : Appel télex (RTTY)144,700 : Appel fax144,750 : Appel TV haute définition (ATV)

144,800 – 144,990 MHzModes numériques (Paquets Radio)

145,000 0 – 145,187 5 MHzFréquences d’entrée de répéteurs (trame 12.5 kHz, décalage 600 kHz)

145,200 0 – 145,587 5 MHzCanaux simplex, FM, trame 12,5 kHz.

145,600 0 – 145,787 5 MHzFréquences de sortie de répéteurs (trame 12,5 kHz, décalage 600 kHz)

145,800 0 – 146,000 0 MHzServices satellite

6p8

6p8

10nBAT82

vers lemultimètre

vers lemultimètre

2x

10n

000013 - 12

BAT82

BAT82

corps de gros feutreélectrode desoudure à l'arc

3

Figure 3. Construisez cettesimple sonde radio et leréglage du convertisseursera un jeu d’enfant.

Elektor 2/2000

n’y perd que la faculté de programmerla puce, comme sur le modèle original.Celui qui a un jour essayé de marier unsystème à 80535 ou 80537 à l’interpré-teur BASIC52 en EPROM se souvient àcoup sûr de la cuisante déception àlaquelle il s’est exposé, à cause de pro-fondes disparités lors de l’initialisationdu port sériel entre le 8052 et les deuxhéritiers en question. En cause, le tem-porisateur 2 qui est incompatible aveccelui du 8052.Remplacer la routine de mise à zérosuffit à se débarrasser du problème.L’interpréteur BASIC52 prévoyait déjàl’appel d’une routine particulière d’ini-tialisation au moyen de ses propres ins-tructions. Rien n’empêche doncd’écrire des modifications pour l’adap-ter aux nouveaux microcontrôleurs. Ils’agit en particulier de la mettre en adé-quation avec les cartes qui ont étépubliées par Elektor, la mono-carte à80C537 et la nouvelle « 537-Lite ».

Le BASIC du 8252AHne suffit plus, tel quel,au bonheur des héri-

tiers de la famille8051. Permettez-nousde vous présenter uninterpréteur modifié,

qui gère aussi les80535 et 537, comme

vous avez pu leremarquer dans les

récents projetsd’Elektor, la

mono-carte à 80C537et la « 537-Lite ».

28

Burkhard Kainka

langage évolué pour 80535 ou 537

À l’origine, l’interpréteur du BASIC52d’Intel était livré sous la forme d’unmicrocontrôleur programmé parmasque, immatriculé 8052AH-BASIC.Au démarrage, l’interpréteur mesuraitd’initiative la RAM disponible et lavitesse de transmission du terminal quilui était connecté. En outre, la puce dis-posait de la fonction de démarrageautomatique (autostart), capable de lan-cer l’exécution du logiciel dès la misesous tension. Il est encore réalisablemaintenant de programmer uneEPROM, pour qui dispose toujours dela puce Intel d’origine.Parce que depuis lors, la puce8052AH-BASIC n’est plus fabriquée,mais le logiciel est entré dans ledomaine public, si bien que le graverdans une EPROM est aujourd’hui par-faitement légal. C’est d’ailleurs lemeilleur moyen de se constituer un sys-tème BASIC respectueux de l’énergie,en partant d’un processeur 80C32. On

MICROPROCESSEURS

BASIC-537

Le BASIC-537 offre les caractéristiquessuivantes :

débit de données de 9 600 baudsà 12 MHz

une RAM de 32 Koctets six nouvelles commandes interrogation directe des convertis-

seurs A/N attaque d’affichage LCD (adresse

FFC0H) démarrage automatique.

L’interpréteur BASIC couvre ledomaine d’adresses de 0000 à 403FH enEPROM et considère que la RAM de32 K commence, elle aussi, en 0000H.Sur les platines à 80 537, il y a quelquescavaliers à positionner, mais pourdéterminer les domaines d’adressescomme il faut, le tableau 1 vous yaidera.

En principe, l’utilisation de l’interpré-teur BASIC ne requiert qu’un logicielde terminal à 9 600 bauds. Après lamise en marche, le BASIC se manifestepar un message de présentation :

MCS-51™ BASIC V1.1 / ES537READY>

On peut alors saisir normalement lesinstructions en BASIC avec numérosde lignes. À la fin de chacune d’elles,l’interpréteur traduit l’instruction com-plète en langage machine et la sauve-garde en RAM. La commande RUNlance le logiciel, tandis que Ctrl C per-met à tout moment d’en interromprel’exécution. LIST expédie le pro-gramme complet au terminal. NEWefface la mémoire.En lieu et place d’un simple terminal,on peut aussi charger sous environne-ment Windows le logiciel BASIC.EXEdisponible également sur la disquette.Il s’agit d’un programme qui combine

les fonctions d’un terminal à cellesd’un éditeur spécialement destiné auBASIC-537. Sur la disquette(EPS996029-1), vous trouverez aussi unsynoptique des instructions(BASIC52.HLP), un fichier d’initialisa-tion (SBASIC.INI), le contenu binairede l’EPROM (BASIC537.BIN), ainsi quedes exemples de programmes affectésde l’extension BAS.

L ’ É D I T E U RD E P R O G R A M M ELors du premier démarrage, notreBASIC.EXE est prévu pour travaillervia COM2. Dans le menuOptions / RS232, vous avez le moyen demettre en action une autre interface.Les options en usage en fin de sessionseront sauvegardées dans le fichierSBASIC.INI.À la mise sous tension de la mono-carte, le BASIC-537 s’annonce par lemessage de départ. On peut alors char-ger le premier programme et le lancer.Le programme de démonstrationTest1.bas exécute la routine « Port desortie » par le Port P1 et se sert de l’ins-truction PORT1 du BASIC52.

10 REM Sorties par port20 FOR N=0 TO 25530 PORT1=N40 FOR I=1 TO 200 : NEXT I50 NEXT N60 GOTO 20RUN

BASIC.EXE affiche deux fenêtres detexte. Celle du haut travaille en éditeurde texte et dispose de toute une sériede fonctions en ce sens. Celle du basdraine tous les caractères émis par lemicrocontrôleur. Chaque fois qu’enédition on actionne la touche<RETURN>, une ligne complète estenvoyée au contrôleur.Elle revient en écho dans la fenêtre duterminal. L’opérateur peut éditer à saguise chaque ligne avant de la transfé-rer. C’est valable également pour leslignes situées plus haut dans le texte etqui peuvent subir ainsi des modifica-tions ultérieures. Dans la fenêtre duterminal, il est à tout moment possibleobserver si une instruction a été accep-tée ou si elle a suscité un message d’er-reur. Mais l’opérateur peut aussi acti-ver la fenêtre du terminal et y saisir dutexte qui sera transmis sous forme decaractères. On dispose, par l’intermé-diaire du menu Program, de différentesfonctions spéciales du logiciel, RUN,LIST, BREAK, CONTINUE et NEWcomme commandes de l’interpréteur àbord du microcontrôleur et de CLSpour effacer le contenu de la fenêtre determinal. On y visionne le programmeachevé par la commande LIST et de là,il est loisible de le sauvegarder sur lesupport choisi.Bien sûr, outre les lignes d’instruction

du programme, on peut envoyer par leclavier des commandes directes tellesque NEW, LIST ou RUN. Pour effectuerdes vérifications, on peut tout autantadresser des requêtes comme parexemple PRINT PORT1. Une particula-rité du procédé réside dans le faitqu’un programme en cours de charge-ment ne remplace que les lignes demême numéro dans le programme quiy résidait auparavant. Voilà qui permetaisément de compléter le logiciel d’unenouvelle routine, sans détruire le pro-gramme existant. Et puis quand onveut tout remettre à plat, il y a la com-mande NEW qui efface tout pourmieux recommencer.Charger un logiciel se fait parFichier / Ouvrir, mais au préalable, ilfaut arrêter tout programme éventuel-lement en cours d’exécution par Pro-gram / Break et l’éliminer de la mémoirepar Program / New. Le texte du nou-veau logiciel s’affiche alors dans l’édi-teur ainsi que dans la fenêtre du termi-nal, si l’interpréteur était déjà actif. Onpeut ouvrir plusieurs fenêtres d’éditionsimultanément, cela aide quand ondésire copier et coller des fragments dulogiciel entre des parties éloignéesl’une de l’autre.

S U R V O LD E S I N S T R U C T I O N SLe tableau 2 mentionne les principalesinstructions et fonctions du BASIC-537.De nombreuses fonctions particulièresont été adaptées spécialement à l’envi-ronnement des microcontrôleurs. Àl’inverse, certaines instructions pré-sentes à l’origine dans le BASIC52n’ont pas été reprises parce que désor-mais inutiles. Ajoutées aussi, spécifi-quement pour le 80537, 4 nouvellesinstructions.Le domaine de mesure des 12 entréesanalogiques possibles, qui s’étend nor-malement de 0 à 5 V, peut être modifiépar l’instruction DAPR, laquelle inscritun octet dans le registre ad hoc. Pourchaque mesure, on a l’occasion de don-ner un paramètre de commande dequatre bits grâce auquel on peut défi-nir une limite haute et un seuil, ce quiforme un octet en tout. Les bits 0 à 3fixent le seuil en pas de 5/16 de volt etde la même manière les bits 4 à 7 déci-dent du plafond. Les deux référencesde tension doivent respecter au moins1,25 V de distance entre elles. À titred’exemple, l’octet de paramétrage 84Hdéfinit de la sorte une plage de mesureentre 1,25 V et 2,5 V, tandis que lavaleur 00H rétablit la gamme d’originede 0 V à 5 V.Les instructions SFR et WrSFR permet-tent d’exécuter toutes les fonctionsmatérielles particulières du 80C537,l’accès aux deux ports sériels, les tem-porisateurs, tous les ports supplémen-taires, etc. Garantir un accès aisé à l’in-tégralité des registres à fonctions spé-

29Elektor 2/2000

Mono-carte à 80C537 l’EPROM BASIC-537 (EPS996532-1)

prend place dans IC2. IC4 prend la forme d’une RAM de

32 Koctets IC5 et IC5 restent libres Tous les 6 cavaliers de J1A sont

reliés à J1C (mode autonome (standalone))

Paramétrage de la mono-carte « 537-Lite » J7:1–2 (12 MHz) J1A à 1C: 1–2 (mode autonome) inverseur S1: RUN

Tableau 1. Paramé-trages requis par lescartes à 537.

ciales (SFR) est une vraie gageure pourun interpréteur, du fait que tous lesdérivés du 8051 n’y permettent quel’accès direct, quelque chose commemov 90h, A. Il n’est donc pas pos-sible de se servir d’un autre registrepour y mémoriser l’adresse des SFR.

Ce n’est pas une difficultépour un compilateur,puisque l’adresse y estcodée symboliquement,mais un interpréteur doit larestituer immédiatement.L’embarras est tel que si laversion d’origine duBASIC52 permet l’accès illi-mité à la RAM interne,externe autant qu’audomaine de programme,elle n’en fait rien pour lesSFR. Mais une EPROM de32 K dispose d’une placesuffisante pour une petiteextension, aussi a-t-on faitappel à l’astuce suivante.Pour toute adresse com-prise dans la fourchette de128 à 255, il y a deux petitesroutines, une de lecture,l’autre d’écriture. Quandl’interpréteur tombe surune instruction SFR ouWrSFR, il calcule uneadresse de transfert,laquelle pointe précisémentsur la sous-routine adé-quate.Voici donc un atout indé-niable dont dispose notreinterpréteur étendu, déve-loppé pour ce contrôleur-ci,

mais probablement utile aussi pourceux qui n’existent pas encore et serontappelés à lui succéder.

C O M M A N D E D ’ U N L C DLe BASIC52 est capable de diriger lesinformations en provenance de l’inter-

face sérielle vers une rou-tine de sortie particulière.Cette faculté a été mise àprofit en BASIC-537 pour lacommande d’un afficheurLCD, mais en élargissantconsidérablement le champd’action par rapport auxinstructions normales. Uneseule nouvelle commandesuffit à l’initialisation desLCD (LCDINIT) et uneautre à positionner les don-nées à afficher (CURSOR).La nouvelle mono-carte« 537-Lite » possède un rac-cordement pour moduleLCD. La communications’effectue dans undomaine d’adresses quidébute en FFC0H. L’affi-cheur est d’abord initialisépar la commande LCDI-NIT. Il existe ensuite diffé-rentes possibilités d’y ins-crire des caractères. Cha-cune des positions estindiquée par CURSOR. Lacommande PRINT@ écritdirectement dans l’affi-

30 Elektor 2/2000

CommandesRUN Ctrl-C CONT LIST NEW

Opérateurs+ - / * = > >= < <= <> .AND. .OR. .XOR. ABS() NOT() INT() SGN() SQR() RND LOG()EXP() SIN() COS() TAN() ATN()

InstructionsCALL DATA READ RESTORE DIM DO-WHILE DO-UNTIL END FOR-TO-STEP NEXT GOSUB ON-GOTO ON-GOSUB IF-THEN-ELSE INPUT LET ONERR PRINT REM STOP

Instructions étendues du BASIC-537ONEX1 Appel d’une routine après interruption numéro 1ONTIME Appel du temporisateur d’interruptionRETI Fin d’une routine d’interruptionPH0., PH1. Sortie d’un nombre hexadécimal sans/avec zérosPUSH, POP Données vers ou en provenance de la pile d’argumentSTRING Réservation de mémoire pour chaînes de texteIDLE Attendre une interruption

Opérateurs pour fonctions spécifiques et variables-systèmeCBY() DBY() XBY() GET IE IP PCON T2CON TCON TIME TIMER0 TIMER2 PI XTAL MTOP LENFREE

Traitement des E/S du 80C537AD (canal) (lecture seule) C = AD (0) valeur analogique (0 à 5V) à l’entrée AD0

C = AD (11) valeur analogique (0 à 5V) à l’entrée AD11DAPR (écriture seule) DAPR = 128 faire passer la plage de mesure à 2,5 V SFR (lecture seule) print SFR (90H) lectures des registres à fonction spéciale (SFR)WrSFR (écriture seule) WrSFR 90H,255 écriture des registres à fonction spéciale (SFR)

Tableau 2. Panoramades instructions duBASIC-537.

Figure 1. Modificationde la mono-carte« 537-Lite »

chage. Pour vous aider à utiliser cesinstructions, il y a, sur la disquette, unprogramme de démonstration, dispo-nible également par Internet (sur lesite d’Elektor s’entend).Le logiciel peut aussi bien transmettredes informations par PRINT vers le ter-minal et par PRINT@ vers l’afficheurLCD. Toutes les données seront misesau format voulu par l’intermédiaire deUSING. Le saut de ligne n’est cepen-dant pas prévu sur l’afficheur LCD. Ilfaudra donc, au besoin, renvoyer à labonne position les données de sortiepar une instruction CURSOR. On peutindifféremment utiliser des afficheursà une, deux ou quatre lignes. Le pro-gramme exemplatif LCD1.BAS indiquela manière de placer les caractères audébut de chaque ligne.Mais il existe une autre méthode d’en-voyer un état de sortie complet surLCD. Elle fait appel à la commandeUO 1. Il suffit ensuite d’envoyer la com-mande inverse UO 0 pour commuterde nouveau la sortie vers le terminal.

D É M A R R A G EA U T O M A T I Q U ELe BASIC52 d’origine vérifie, lors dudémarrage, la totalité de la RAM, l’ef-face et lance le programme qu’il recon-naît dans l’EPROM additionnelle. Lesdeux mono-cartes à 80C537 sont équi-pées d’une pile tampon pour l’alimen-tation permanente de la RAM, si bienque le dernier programme chargé s’ytrouve encore au moment de la misesous tension de la carte. Il faut doncmodifier l’initialisation du BASIC demanière à lancer spontanément unprogramme disponible.Pour ce faire, il n’y a qu’à charger leprogramme dans la mémoire du sys-tème, débrancher le cordon sériel duPC et laisser la mono-carte travaillerseule. À chaque démarrage, le pro-gramme s’exécute, pour peu que la pileau lithium de la RAM fournisse encoreune tension suffisante pour en retenirle contenu. Et si vous ne voulez plusrejouer le même morceau lors du pro-chain démarrage, vous n’aurez qu’àenvoyer une commande NEW.

P O U R L E 80 535 A U S S I !N’oublions pas qu’il existe aussi dessystèmes à 80535, largement répandus,ne pensons qu’à l’impériale à 80C535proposée par Elektor (octobre 1992).Ces systèmes-là peuvent aussi bénéfi-cier du nouvel interpréteur, moyen-nant quelques adaptations.Le système doit travailler à 12 MHz, cequi résulte en un débit binaire de9 600 bauds. Les autres sont possibles,mais il faut alors disposer du logicielqui s’en accommode. Le convertisseurA/N ne possède que huit canaux, maisest compatible. Naturellement, le80 535 ne possède pas autant de tem-porisateurs, de ports, etc.

Le BASIC52 d’Intel s’attend à trouverune RAM à partir de l’adresse 0000.Rien d’autre ne vient troubler l’initiali-sation. L’impériale à 80C535 répartittoutefois son domaine d’adresses endeux segments, de 4000 à 7FFF et deC000 à FFFF. Une logique un peu par-ticulière veille à ce que la RAM puisseemmagasiner également des codes deprogramme dans ces domaines.La transformation est toute simple, onextrait IC2 (une quadruple porteNAND 74HC00) de son support et onle remplace par trois petits ponts decâblage :

broches fonction destination3 à 4 OE\ RAM directement à RD\

11 à 12 CE\ RAM directement à A147 à 8 CS\ EPROM à la masse.

Dans cette configuration, le systèmedispose de 16 Ko de RAM à partir del’adresse 0000. Le BASIC-537 s’encontente. Il faut cependant lui indiquerqu’il n’a que 16 Ko de mémoire à sadisposition, c’est ce qui se fait par ladéclaration :

MTOP = 16383

Cette ligne devra figurer également aucommencement de chaque pro-gramme, sinon l’interpréteur fera l’ini-tialisation sur 32 Ko à la prochaine miseen marche. Comme toutes les variablessont répertoriées en commençant parle bout de la RAM, le BASIC-537 doitabsolument en connaître la dimensionprécise, sous peine de renverser tout àcôté.Qui préfère utiliser la RAM complètede 32 Ko devra encore prévoir deuxautres modifications.

La broche 1 de la RAM (A14) ne serapas insérée dans le support, maisreliée au fil d’adresse A14, parexemple la broche 12 du support deIC2.

La broche 20 de la RAM (CE\) doitégalement être tenue à l’écart dusupport et reliée au fil A15, dispo-nible sur le même support, c’est labroche 1 qui vient d’être libérée.

À présent, le système voit la totalité des32 Ko de RAM, sans interruptiondepuis l’adresse 0000 et la déclarationde la mémoire disponible MTOP n’estplus nécessaire.L’impériale à 80C535 n’est pas équipéede batterie tampon, mais rien n’em-pêche de choisir une RAM avec pileintégrée, ce qu’on appelle de la RAMZeropower. Elle se comportera dèslors comme la nouvelle platine à80C537 et assurera le démarrage auto-matique des programmes qu’ellecontient. Mais sans avoir recours à celuxe, le BASIC étendu peut vous offrirla fonction autostart. Si la tension reste

présente lors d’une mise à zéro, leprogramme installé peut redémarrertout de suite, un avantage appréciableau cours de la mise au point d’un logi-ciel. Au lieu d’un BREAK suivi deRUN, on pousse simplement sur lebouton de mise à zéro.Autre différence, les modèles d’affi-cheurs LCD utilisables. La platine à 535n’est pas dotée de la logique de déco-dage pour LCD. Il lui faudra donc unmontage auxiliaire ou bien lui consa-crer un port et y travailler en mode àquatre bits. L’attaque demande aussiun supplément de codage en BASIC.Tous les ports du 80 535 ne peuventd’ailleurs pas être adressés directe-ment, ni par l’intermédiaire d’un SFR.Les commandes P3, P4 et P5 ne fonc-tionnent qu’en sortie. On peut leurenvoyer des messages de sortie immé-diats, du style P4=255. En entrée, lescommandes InP3, InP4, InP5 et InP6sont hélas moins pratiques, puisque lesvaleurs doivent être lues via la pile deregistres. L’état d’entrée transite alorspar une variable :

InP4 : POP A : PRINT A

Les instructions immédiates pour lesports sont également acceptées par le80C537, mais seulement jusqu’au portP6. Le BASIC52 n’autorise qu’unnombre limité de nouveaux mots-clés.C’est pourquoi il est impossible deconférer un nom individuel à toutes lesnouvelles fonctions. Aussi va-t-oncontinuer à programmer le matérielspécialisé du contrôleur avec l’aide desregistres d’adresse. Précisément dansle cas des opérations de collecte d’in-formation, le passage par un registred’adresse est souvent plus élégant(Print SFR(OE8h)) que l’utilisation descommandes de port immédiates.Il est assez facile de rédiger soi-mêmeles routines de mise à zéro et l’exten-sion des commandes, parce que leBASIC52 possède déjà des interfacesappropriées. La littérature proposéen’est d’ailleurs pas avare de descrip-tions précises des différentes étapes àfranchir pour réaliser ce travail.

000018

LittératureB. Kainka/H.-J. Berndt - Je pilote les inter-

faces de mon PC sous Windows.K.-H. Dietsche/M. Oshmann - Automate

Programmable MATCHBOX

D’autres renseignements, exemples deprogrammes, y compris pour le pro-cesseur 535, ainsi qu’un terminal sousDOS pour le BASIC52 sont égalementdisponibles via la page d’accueil Inter-net du site de l’auteur :http://home.t-online.de/home/B.Kainka

31Elektor 2/2000

Elektor 2/2000

accompa-gnant certaines cartes-son (les plus sophistiquées). Il existeaussi des synthétiseurs logiciels qui nesont pas fournis en complément d’untype de carte-son donné, Generator deNative Instruments ou Rebirth de Propel-lerhead par exemple. Ces logiciels simu-lent les fonctions et émulent lesorganes de commande d’un synthéti-seur : un écran débordant de potentio-mètres à glissière, de boutons en tousgenres, tous pilotables par le biais de lasouris, et qui constituent une sorte denoeud gordien indéchiffrable pourtoute personne désirant s’essayer àplus qu’à uniquement déplacer l’un oul’autre organe de commande.Le montage que nous nous proposonsde décrire ici facilite très sensiblementl’utilisation d’un synthétiseur logiciel. Ilmet à contribution la faculté qu’ont lessynthétiseurs logiciels de recevoir descodes MIDI et de les utiliser pour lacommande de certains types de contrô-leurs. Ceci permet de réduire la partiematérielle à la partie congrue : unmicrocontrôleur scrute, par le biais d’unconvertisseur analogique/numérique à8 canaux, successivement, les positionsde 8 potentiomètres ordinaires. En casde modification de la position de l’unou de plusieurs des potentiomètres, lemicrocontrôleur transmet cette infor-mation, sous format MIDI, à l’entréeMIDI de la carte-son. Le synthétiseurlogiciel convertit les codes MIDI enpositions réactualisées des organes decommande correspondants.

L A Y E RE T S U P E R - L A Y E RSi l’on a affaire à MIDI, on se trouveconfronté régulièrement à la notionquelque peu nébuleuse de Layer. Il nes’agit en fait que de groupes compor-tant chacun 8 fonctions du synthétiseurassociées aux 8 potentiomètres présentssur la Knobbox; ce sont donc une sortede niveaux de fonctions superposés(strates) des potentiomètres. La Knob-box comporte des touches permettantde choisir l’un des 6 niveaux dispo-nibles. En fonction du niveau choisi, lemême potentiomètre (ou le contrôleur)envoie des codes MIDI différents.L’attribution des niveaux pour les fonc-tions spécifiques n’est pas la mêmed’un synthétiseur à l’autre; on peut eneffet définir différents groupes de syn-thétiseurs. Ces différentes catégoriessont appelées des super-niveaux(Super-Layer). Le logiciel de la Knobboxconnaît les 3 groupes les plus courantset adapte les codes MIDI en fonction dela situation.Le tableau 1 donne le contenu des6 niveaux « inclus » dans les 3 super-niveaux.

L E M A T É R I E LOn a vite fait d’identifier, dans leschéma représenté en figure 2, les com-posants les plus importants du matérielévoqués au cours des lignes précé-

Les manipulationscomplexes, par lebiais du clavier

et de la souris,que requiert le

réglage desons, sur l’écran

d’un PC, à l’aided’un synthétiseur logi-

ciel, rendent ce dernieron ne peut plus « bar-

bant ». C’est alors que,telle une brise rafraî-

chissante, passe laMIDI-Knobbox.

32

projet : Thorsten Klose

synthétiseur logiciel facile d’utilisation

AUDIO, VIDÉO & MUSIQUE

MIDI-Knobbox

Tout PC (multimédia) moderne pos-sède sa carte-son. La plupart des utili-sateurs de PC s’en servent uniquementpour la génération des sons requis parle système d’exploitation, la lecture deCD audio ou la génération des effetssonores qui accompagnent les jeux etles présentations. Ils n’utilisent en faitque les possibilités standard offertes parle logiciel accompagnant la carte-son,bien qu’il existe tant de programmesqui permettent, même à une personnene connaissant rien à la musique, d’ex-ploiter les multiples possibilités d’unecarte-son moderne, nous voulons par-ler des synthétiseurs logiciels.Il arrive même que ce type de synthé-tiseur fasse partie du set de logiciels

dentes : les 8 potentiomètres attaquentles canaux 0 à 8 du convertisseur A/N,IC1. Le MAX186, un circuit intégré quenous avons déjà eu l’occasion d’utiliserdans d’autres réalisations décrites dansElektor, dispose d’une interface vers lemicrocontrôleur, IC2, par le biais delaquelle circulent la ligne de donnéesen sortie, DOUT, celle de l’horloge,SCLK, et celle du paramétrage du mul-tiplexeur, DIN. Le pilotage du conver-tisseur se fait par le biais des lignesSSTRB et CS, et ce au rythme du signald’horloge SCLK.Le microcontrôleur utilisé est unPIC16F84 (Microchip) cadencé à10 MHz. Outre les positions des poten-tiomètres, il prend également encompte les paramètres du niveau (S1 àS6), du canal MIDI (S9 à S12) et l’étatde 2 touches additionnelles, à savoirMEMO et RESET. Le tableau 2 récapi-tule les fonctions des différents sélec-teurs et touches.La communication MIDI avec la carte-son se fait par le biais de la ligne RB7.La LED D2 (qui clignote) permet uncontrôle optique des signaux MIDI. Cen’est pas sans raison que nous avonsprévus à ce niveau 2 variantes de

connexion. La MIDI-Knobbox devra impéra-tivement être reliée à lacarte-son par le biaisd’une véritable interfaceMIDI à isolation optique. La carte-sonAWE-64 est, par exemple, accompagnéed’une interface à isolation optique, maison peut également la commander sépa-rément. Cela devrait vous coûter moinsde 200 FF, mais on peut également envi-sager de réaliser l’un des nombreuxmontages publiés dans Elektor prévusà cet effet, l’interface MIDI du numérodouble de 1995, en page 81, parexemple. Moins élégant, mais onpourra, en l’absence de connexion d’unautre appareil MIDI, envisager deconnecter la MIDI-Knobbox directe-ment du microcontrôleur à l’interfacepour manette de jeux à 15 broches duPC, sachant que celle-ci possède égale-ment une entrée MIDI-IN. À ce niveau,une résistance-série de 220 Ω prise dansla ligne de données sert de protectioncontre un court-circuit.Cette approche présente un avantage :l’alimentation de la Knobbox peut sefaire par le biais de la connexion pourmanette de jeux (joystick), ce qui per-

met de suppri-mer D3, C17, C18et IC3.Ceci nous amèneà parler de l’ali-

mentation. Ce module est, dans le casd’une interface MIDI digne de ce nom,indispensable et ce sous la forme d’unadaptateur secteur externe sachantqu’il est impératif de réaliser une isola-tion galvanique entre le PC et les appa-reils MIDI y étant reliés. Un simpleadaptateur secteur, fournissant unetension de +12 V attaquant lescondensateurs C17 à C19 et le régula-teur IC3, fournit alors les +5 V régulésrequis. D3 évite tout dommage auniveau de l’électronique que pourraitentraîner une inversion malencon-treuse de la polarité de la tension d’ali-mentation.

O N N E P E U T P L U SC O M P A C TNous avons, pour vous simplifier la vieau maximum, dessiné un circuitimprimé de la taille d’un paquet decigarettes, platine dont la figure 2 vouspropose le dessin des pistes et la séri-graphie. Il ne faut guère plus d’une

33Elektor 2/2000

PIC16F84

OSC2

IC2

OSC1

MCLR

RA4

RA0

RA1

RA2

RA3

RB0

RB1

RB2

RB3

RB4

RB5

RB6

RB7

17

18

13

12

11

10

16 15

14

1

3

9

8

7

6

2

4

5

MAX186

REFADJ

SSTRBIC1

DGNDAGND

DOUT

SCLK

SHDN

VREF

VSS

CH0

CH1

CH2

CH3

CH4

CH5

CH6

CH7

DIN

20

13 14

17

15

19

16

18CS

10

11

12

9

1

2

3

4

5

6

7

8

C15

33p

C16

33p

X1

10MHz

R3

10Ω

C10

100n

C9

10µ63V

C13

10µ63V

C17

10µ63V

C19

10µ63V

C14

100n

C18

100n

C11

100n

C12

100n

K3

C8

K5

R4

10

k

K4

R1

1k

5

7805

IC3

D1R21k

470Ω

P9

R15

10

kR

141

0k

R13

10

k

R16

10

kR

111

0k

R10

10

kR

91

0k

R12

10

k

D31N4001

8x 100n

C7 C6 C5 C4 C3 C2 C1

R6

22

R8

1k

5

D2

R7

10

k

T1

BC547BK1

R5

22

2

3

1

5

4

K2

K7

10

11

12

13

14

15

1

2

3

4

5

6

7

8

9

K6

P1 P2 P3 P4 P5 P6 P7 P8

K9

K10

S9 ... S12

3

S1 S2 S3 S4 S5 S6 S7 S8

1

2

4

8

5V

5V5V

5V

INITVALUE

MIDIDATA

MIDI CHANNEL

1

1 2 3 4 5 6 7 8

CV CV CV CV CV CV CV CV2 3 4 5 6

LAYER

MEMORY RESET

+5V

P1...P8 = 8x 47k

-10/P

K10

K9

K6

K5

K3

*

*

see text*zie tekst*siehe Text*voir texte*

990087 - 11

12V

CV

1 2 3 4

K4

1

Figure 1. Le microcontrô-leur lit les états destouches/sélecteur ainsi que,successivement, les valeursdes 8 potentiomètres.

demi-heure pour le doter de ses com-posants. Attention à respecter la pola-rité des condensateurs électrochi-miques, des LED et des circuits inté-grés et à ne pas oublier d’implanter lepont de câblage à proximité de K5. Ilest temps ensuite de passer à la réalisa-tion de l’unité de commande. Lestouches, potentiomètres et sélecteurseront fixés dans la face avant du cof-

fret dans un ordre aussi logique quepossible, tel celui que nous proposonsen figure 3 par exemple, l’intercon-nexion entre les organes de commandeet la platine se faisant à l’aide de mor-ceaux de câble en nappe. On peut éga-lement envisager de les monter sur unmorceau de platine d’expérimentationà pastilles et de les câbler en wrapping.Pourquoi n’envisageriez-vous pas de

dessiner votre propre platine à ceteffet. Les morceaux de câble en napperequis seront coupés à la longueurrequise.

L E S P R E M I E R S E S S A I SIl nous faut absolument, pour un testexhaustif de la MIDI-Knobbox, unmoniteur MIDI à fonction MIDI-THRU pour PC de manière à pouvoir

34 Elektor 2/2000

Tableau 1. Association des potentiomètres aux niveaux (layer) et super-niveaux (super-layer).

Layer P1 P2 P3 P4 P5 P6 P7 P8

super-layer1 (synthétiseurs AWE, EMU8000 et EMU10k-1)

layer1 Controller 10..17

layer2 Controller 18..1F

layer3 volume Pan. expr. mod. LP cutoff LP reson. Chorus Reverb

layer4 LFO1 delay LFO1 freq. LFO1 pitch LFO1 vol. LFO2 delay LFO2 freq. LFO2 pitch LFO2 vol.

layer5 Env1 delay Env1 attack Env1 hold Env1 decay Env1 sustain Env1 release Env1 pitch Env1 cutoff

layer6 Env2 delay Env2 attack Env2 hold Env2 decay Env2 sustain Env2 release -, -

super-layer2 (synthétiseur XG)

layer1 Controller 10..17

layer2 Controller 18..1F

layer3 volume Pan expr. mod. portamento reverb chorus variation

layer4 attack Decay release vib. Delay vib. Rate vib. Depth cutoff resonance

layer5 pitch init Pitch attack pitch rel. p.r. time vel. lim. L vel. lim. H -, -

layer6 ben. Pitch Ben. Filter ben. ampl.ben. LFO

PMODben. FMOD

Dben. AMOD

super-layer3 (synthétiseur logiciel)

layer1 Controller 00..07

layer2 Controller 08..0F

layer3 Controller 10..17

layer4 Controller 18..1F

layer5 Controller 20..27

layer6 Controller 28..2F

Tableau 2. Fonction des organes de commande.

Composant Dénomination Fonction

LED D2 Message MIDI Clignote lors de la transmission, par le biais du port MIDI-OUT, d’un message MIDI. Clignote aussi lorsqu’un potentiomètre se trouve précisément à mi-chemin entre 2 niveaux de quantification.

LED D1 Init ValueClignote après mise sous tension, pour indiquer qu’il faut opter, par le biais de S1 à S3, pour l’un des 3 super-niveaux, est allumée en cas d’application, au dernier potentiomètre manipulé, de la valeur d’initialisation.

Sélecteur S1 à S4 Canal MIDI Sélecteur à bouton-poussoir à 4 positions actives : sélection du canal MIDI (codage binaire).

Potentiomètres P1 à P8 Fader Potentiomètres servant à ajuster les valeurs requises.

Touches S1 à S6 LayerServent à la sélection des niveaux 1 à 6, S1 à S3 servant également, après une mise sous tension, à la sélection des super-niveaux.

Touche S7 Memo Mémoriser la dernière valeur modifiée dans le cadre du niveau actuel.

Touche S8 Reset Écraser les valeurs actuelles par les valeurs d’initialisation prédéfinies.

visualiser à l’écran les données MIDIémises et ajuster correctement lespotentiomètres. Un encadré distinctvous propose une information addi-tionnelle à ce sujet. Il est temps, aprèsun dernier coup d’oeil critique à sessoudures, d’interconnecter les diffé-rents sous-ensembles, avant deconnecter la Knobbox au PC, de mettreles mettre, elle et PC, sous tension etde lancer le moniteur MIDI. Vu que,lorsque le PIC est encore vierge, toutesles valeurs se trouvent, avant initiali-sation, à FFH; une action sur la touchede RAZ (Reset) les met à une valeurvalide selon le protocole MIDI. Onopte ensuite, par une double actionsur S1, pour les niveaux Super-Layer1et Layer1 (par défaut).Voici venu l’instant de vérité : uneaction sur l’un des potentiomètresdevrait se traduire par le clignotementde la LED D2 et l’apparition, sur lemoniteur MIDI, de codes de com-mande dont les valeurs peuvent varier

entre 0 et 127.Il faudra, si cela n’est pas le cas, revéri-fier soigneusement sa réalisation, lecâblage et le paramétrage du moniteurMIDI, et si, en dépit de cela rien nemarche on pourra mettre en cause soitWindows soit la carte-son.Si le moniteur MIDI visualise les pre-miers événements MIDI (Event), tout vabien. Notons que l’ajustable P9, présentdans le circuit, offre une possibilité deréglage de manière à ce que les valeursrestent bien entre 0 et 127. On vérifieraqu’il est possible de changer, par le biaisde S9 à S12, en binaire, de canal MIDIet ainsi que le niveau (layer). On a, encas de changement de niveau, émissionsystématique, par le biais de l’interfaceMIDI, des valeurs de potentiomètres

stockées en tout dernier lieu. Cettefaçon de faire a l’avantage de réinitiali-ser les paramètres, tant du synthétiseurque de la carte-son, qui reprennent leséléments tels qu’ils avaient été stockésprécédemment. Supposons que nousjouions, en niveau 3, sur le volume,pour ensuite passer à un autre niveauet, plus tard, revenir à ce fameuxniveau 3; le volume reprend alors savaleur d’origine. Il faudra, si l’on veutbloquer ce processus, appuyer unique-ment sur la touche MEMO avant lechangement de niveau. Par cette action

35Elektor 2/2000

990087-1(C) ELEKTOR

C1

C2

C3

C4

C5

C6

C7

C8

C9

C10

C11

C12

C13

C14

C15 C16

C17

C18C

19

D1 D2

D3

H1 H2

H3H4

IC1

IC2

IC3

K1

K2

K3K4

K5

P9

R1

R2R3 R

4

R5

R6R7

R8

R9

R10

R11

R12

R13

R14

R15

R16

T1

X1

3

1

990087-1

2

4

+

0

990087-1(C) ELEKTOR

2

Figure 2. L’électronique insuf-flant la vie à la Knobbox prendplace sur cette petite platine.

Liste des composants

Résistances :R1,R8 = 1kΩ5R2 = 1 kΩR3 = 10 ΩR4,R7,R9 à R16 = 10 kΩR5,R6 = 220 ΩP1 à P8 = potentiomètre 47 kΩ linP9 = ajustable 470 Ω

Condensateurs :C1 à C8,C10 à C12,C14,C18 =

100 nFC9,C13,C17,C19 = 10 µF/63 V radialC15,C16 = 33 pF

Semi-conducteurs :D1,D2 = LED haut rendementD3 = 1N4001T1 = BC547BIC1 = MAX186BEPP (Maxim)IC2 = PIC16F84-10/P (programmé

EPS996521-1)IC3 = 7805

Divers :K1 = embase mâle à 1 rangée de

4 contactsK2 = 2 picotsK3,K6 = embase mâle à 1 rangée de

10 contactsK4,K9 = embase mâle à 1 rangée de

5 contactsK5,K10 = embase mâle à 1 rangée

de 6 contactsK7 = embase Sub D châssis à

15 broches mâle *K8 = embase châssis DIN à

5 contacts à 180 ϒK11 = embase jack d’alimentationS1 à S8 = bouton-poussoir

unipolaire à contact travail (toucheDigitast par exemple)

S9 à S12 = sélecteur à bouton-poussoirs (roue codeuse)

X1 = quartz 10 MHz boîtier 216 x 130x 77 mm tel que, par exemple,TEKO 363

on ne mémorise que les valeurs ayantchangé après le dernier changement deniveau. (990087)

Texte: Rolf GerstendorfTechnique: Karel Walraven

36 Elektor 2/2000

M R P CMIDI REMOTE PARAMETER CONTROL

0 1273

0 1275

0 1277

0 1271

2

LAYER

MEMORY1

MIDIDATA

INITVALUE

RESET2 3 4 5 6

CHANNEL

0 1274

0 0 01276

1278

127

990087 - F

+

-

Moniteurs MIDIIl existe, pour le PC, toute une ribambelle de moniteurs MIDI parfaitementfonctionnels. MIDI-OX, dont on peut télécharger la version 6.0, gratuitementdepuis Internet à l’adresse www.members.xoom.com/ MIDIOX/index.htm,est un excellent programme en la matière. Après installation et démarragedu programme il faut commencer, par le biais du Menu Options/MIDIDevices ou par un clic sur le bouton bleu foncé doté d’un connecteur DIN à5 contacts, par sélecter les appareils MIDI (figure A). Sur le présent PCl’entrée MIDI-IN et la sortie MIDI-OUT de la SoundBlaster SB16 sont actives.La fenêtre « MIDI Port Activity » de la figure B apparaît en cas d’action surl’icône DIN vert clair du second groupe d’icônes. Chaque entrée et sortieMIDI se voit attribuer une rangée de LED propres, ce qui permet de voir surlequel des canaux MIDI il se passe quelque chose.Le contenu des données émises apparaît dans la fenêtre « Monitor -Output ». La première colonne reproduit le tampon horodateur (généré parMIDI-OX) du message MIDI, la seconde le port MIDI par lequel elles sontarrivées (le port MIDI 1 de la SB16 dans le cas présent). L’octet suivant0BFH regroupe à la fois un Control Change (rendu par le « B ») et le numérodu canal MIDI concerné (le « F » identifie le canal MIDI numéro 16). DATA1rend les numéros d’ordre du contrôleur (0 à 127 dans le cas présent),DATA2 les valeurs qui leur sont attribuées. Ici encore, comme dans le cas deDATA1, on n’utilise que les 7 bits de poids faible (LSB) ce qui se traduit parune plage allant de 0 à 127. CHAN identifie (lui aussi) le canal MIDIconcerné. On notera que les normes MIDI connaissent les numéros decanal allant de 1 à 16, nombre de programmes préfèrent eux aller de 0 à 15.En cas d’activation d’autres super-niveaux ou de changement de niveau, lesmessages affichés par le moniteur varient. Ceux qui aimeraient en savoirplus sur tout ce qui concerne MIDI, trouveront, par exemple, chez Eddie’sHome - MIDI - RPN and NRPN à l’adresse :http://members.delosnet.com.tlc/nrpn.htm, une littérature fort intéressante.La fonction principale de MIDI-OX est de permettre le contrôle du fonction-nement d’appareils MIDI. Il existe, pour ceux qui aimeraient entrer dans les arcanes de MIDI, des programmes puissants très confor-tables tels que Generator de Native Instruments, adresse : http://www.native-instruments.com/0_start/index.html ou Rebirth de Propel-lerhead, adresse : www.propellerheads.se/x-home.htm.Il existe des versions de démonstration gratuites de chacun de ces programmes, à la durée de vie (fortement) limitée et ne comportantpas de fonction de sauvegarde, mais qui conviennent parfaitement si l’on veut se faire la main sur la « Knobbox ». Notons que l’auteur possède sa propre page d’accueil sur Internet à l’adresse : http://mabuse.phil.uni-passau.de/~klose/midibox.html.

3

Figure 3. L’un des positionnementsles plus logiques des organes decommande sur la face avant (repro-duite ici à 70% de sa taille réelle).

53Elektor 2/2000

Le vrai nom de Nick est Nicola Asuni; il habite en Sardaigne.On trouve, sur son site, toutes les informations d’électroniquepratique (sans jeu de mot) dont peut avoir besoin l’amateurd’électronique au quotidien. On peut, depuis la page d’accueilsituée à l’adresse : (http: //www.nickhardware.da.ru) accéder àplusieurs départements qui ont chacun une adresse propre :Circuits (www.circuits.da.ru) – une collection de petits sché-mas en tous genres, subdivisés en rubriques telles que infra-rouge, téléphone, son, cartes à puce, filtres. Ce dernierdomaine est particulièrement étoffé.Pinouts (www.pinouts.da.ru) – les initiés prétendent que Nickpossède l’une des plus grandes collections de tableaux de bro-chages que l’on puisse trouver sur Internet. Si nous ne pou-vons ni confirmer ni infirmer cette affirmation il nous fautcependant reconnaître qu’elle est impressionnante. On ytrouve les types de connecteurs, de câbles d’interconnexionet d’adaptateurs les plus impossibles.Guides – un certain nombre de manuels qui traitent dessujets électroniques les plus divers, allant de la gravure de cir-cuits imprimés aux unités SI et dérivées, en passant par uncours de soudage, le code des couleurs des composants pas-sifs, sans oublier la sécurité en électricité.News – une section rassemblant les derniers potins dans diversdomaines, celui de la micro-informatique en particulier.Links – une liste d’autres adresses sur Internet offrant desinformations utiles, réparties en une division ordinateurs/élec-tronique et un secteur de liens vers les standards.Ce site comporte en outre une section permettant le télé-chargement de programmes gratuits (programmes en C++et manuels pour ce langage, et des programmes écrits parNick lui-même).On pourra toujours utiliser le moteur de recherche présentsur le site pour tenter de trouver un sujet quelconque.Le site de Nick est un joyau que ne manqueront pas d’ap-précier tous les électroniciens, qu’ils soient amateurs ou pro-fessionnels. Cette adresse mérite de se trouver dans la listedes vos sites favoris !

(005013)

Texte : Harry Baggen

Les amateurs d’électronique ont sou-vent besoin de l’une ou l’autre infor-

mation : code des couleurs des com-posants, schémas d’applications de

toutes sortes, brochages de connec-teurs voire un manuel décrivant com-ment graver ses propres platines. On

trouvera toutes ces informations surle site de Nick, une adresse à retenir !

Nick’s hardware areaune boîte à questions électronique universelle

électronique en ligneélectronique en ligne

Elektor 2/2000

gramme en cours de développementdu PC-hôte vers la mono-carte. Le lan-cement du programme se fait, dans cemode, depuis le PC de développe-ment.L’EPROM comporte le Moniteur, laRAM fait elle office de mémoire de pro-gramme et de données combinée. Lecavalier JP7 doit toujours, lorsque l’onse trouve dans ce mode, se trouver enposition « 12 MHz », sachant que sinonle paramétrage du taux de transfert(baudrate) des données est incorrect.Une fois le programme transféré versla carte, on pourra placer JP7 en posi-tion « 16 MHz », ce qui se traduira,après une RAZ, par une exécution 33%plus rapide du programme. Il ne fau-dra pas oublier alors que tous les pro-cessus chronologiques tant au niveaudu système que du programmes seferont eux aussi plus rapidement.Le programme Moniteur se trouvantdans l’EPROM permet une saisiedirecte d’instructions en assembleur etun débogage aisé au niveau assem-bleur. L’instruction help a commeréponse une énumération des fonc-tions disponibles.Le mode Exécution permet, pour finir,

de lancer, aprèsune RAZ, lep r o g r a m m e

d’application transféré en dernierlorsque le système se trouvait en modeTéléchargement. Ceci signifie, qu’aprèsune RAZ, le programme s’exécutedepuis la mémoire de RAM. La RAM secomporte alors comme le ferait unemémoire de programme en EPROM,de sorte qu’il n’est plus nécessaire degriller son EPROM pour pouvoir fairetourner le programme en mode Auto-nome. La RAM sert à la fois demémoire de programme (instructions)et de mémoire de données.Ce mode implique l’utilisation d’unepile-tampon sachant que la RAM est,comme vous n’êtes pas sans le savoir,une mémoire volatile qui, si elle n’estpas alimentée par un accu de sauve-garde, perd son contenu dès la dispari-tion de la tension d’alimentation.En mode de fonctionnement numéro 2(avec EPROM Moniteur), le pro-gramme moniteur met automatique-ment l’interface sérielle SS0 au para-métrage correct, à savoir 9 600 bauds,un bit d’arrêt pas de bit de parité, desorte que la communication avec le PCne devrait pas poser le moindre pro-blème. Lorsque l’on travaille dans les2 autres modes (Autonome et Exécu-tion), cette initialisation d’interface n’estpas faite. Il faudra partant intégrer sapropre routine de paramétrage de SS0 sil’on veut assurer une communicationcorrecte avec le PC.

L A P R O G R A M M A T I O NIl vous faudra, avant de pouvoir vouslancer dans la programmation, vousfaire une idée de la cartographie demémoire de la mono-carte « 537-Lite »,vu que les instructions et les donnéesse partagent le même circuit demémoire de RAM, IC7. Ce domained’adresses commun va de 0000 à7FFFH, soit 32 Koctets.Il faut, dans l’environnement de pro-grammation (compilateur ou interpré-

Une fois la construction du noyau à 537 et lespremières vérifications de son fonctionnementet de sa capacité de communiquer effectuées,

nous pouvons passer à sa programmation. Ilfaudra cependant tenir compte d’un certain

nombre de spécificités.

54

projet : Prof. Dr. B vom Berg et Peter Groppe

2e partie : programmation et mise en oeuvre

Nous verrons en outre comment, parl’adjonction d’extensions et de compo-sants additionnels, utiliser cette mono-carte gigogne dans la pratique.

M O D E S D E F O N C T I O N -N E M E N T D E L A M O N O -C A R T E « 5 3 7 - L I T E »L’une des caractéristiques importantesde cette mono-carte, à laquelle elle doiten fait sa puissance remarquable estl’existence de 3 modes de fonctionne-ment, Autonome (Stand-alone), Télé-chargement (Program-download) et Exé-cution (Run).Le tableau 1 donne les cavaliers àimplanter et les positions dans les-quelles les mettre eux et l’inverseur S1.Le mode Autonome est celui que l’onchoisira lors de l’utilisation finale de lacarte dans son application après s’êtreassuré d’un fonctionnement impec-cable du programme de l’application.Le programme d’application est alors,après une remise à zéro (Reset)démarré instantanément depuisl’EPROM.En mode Téléchargement il est pos-sible, par le biais d’un programme« terminal » de transférer le pro-

Mode Cavalier Inverseur EPROM RAMde fonctionnement J11,J12,J13 S1 IC2 IC7

Autonome 1-2 sans objet Programme d’application Données*Téléchargement 2-3 LOAD RAM Moniteur Programme d’application et données*Exécution 2-3 RUN non actif Programme d’application et données*

*: Circuit de 32 Koctets, domaine des adresses 0 à 7FFFH

Tableau 1. Positions du cavalier et de l’inverseur S1en fonction des 3 modes de fonctionnement.

MICROPROCESSEURS

mono-carte « 537-Lite »

teur 8051) définir avec précision ledomaine attribué au code de pro-gramme d’une part et celui laissé audonnées, pour éviter tout recoupementdes espaces de programme et de don-nées aux conséquences catastro-phiques (mutilation).Il faut en outre se rappeler que le pro-gramme Moniteur présent en EPROM,chargé, entre autres, du pilotage dumode de Téléchargement, a besoin, luiaussi, pour pouvoir travailler d’un riende mémoire qui ne doit pas être écraséni par des instructions ni par des don-nées. Le domaine en question s’étend,dans la RAM, de 7F00H à 7FFFH.Cet état de choses a bien entendu desconséquences lors d’écriture d’unprogramme : Le domaine de RAM mis à la disposition

55Elektor 2/2000

7FFF Fin de l’ensemble du domaine de mémoire RAM (fixe) : 32 Koctets

taille : 256 octets

7F00 Adresse de début fixe du domaine d’adresses destiné au

programme Moniteur

7EFF Fin du domaine de mémoire de données (fixe)

taille : 7,75 Koctets

6000 Début du domaine de mémoire de données (début)

5FFF Fin du domaine du code de programme Taille : 24,0 Koctets

0000 Début du domaine destiné au code du programme (variable)

(* p2: Saisie de valeurs de mesure analogiques avec la mono-carte « 537-Lite » *)program p2;(* Définition des variables *)const(* Pour le CAN *)adcon0 = $d8;addat = $d9;dapr = $da;busy = $dc;

var(* Convertisseur A/N *)adu:byte;

(* Divers *)i,zw: byte;

(* Routine Saisie *)(* Programme principal *)begin

(* Effacer l’écran *)write(chr($1a));

(*** Texte du message ***)writeln(‘Programme p2: Saisie de valeurs de mesure analogiques avec la mono-carte « 537-Lite »);

writeln;writeln(‘ Saisie des valeurs de mesure en cours .....’);writeln;

(* Boucle principale *)repeat (* Début de la boucle sans fin *)

(* Saisir les valeurs de mesure et les afficher *)for i:=0 to 2 do (* Conversion de 3 valeurs de mesure *)beginadu:=reg(adcon0); (* lire adcon *)adu:=adu and %11000000; (* conversion unique,

Start interne *)adu:=adu or i; (* Choix du canal *)writereg(adu,adcon0); (* Transfert de la valeur dans SFR *)writereg(0,dapr); (* Début de la conversion *)repeat until (bit(busy)=false); (* Attendre la fin *)zw:=reg(addat); (* lire la valeur convertie *)

write(‘Entrée AN’,i,’: ‘,zw); (* Visualisation àl’écran *)

writeln(‘ = ‘,(zw*5)/256,’ V’);(* Conversion en volts et affichage *)end;

writeln; (* Afficher ligne vide *)

(* Attendre : de l’ordre de 1 000 ms jusqu’à la mesure suivante *)wait 25ms(40);

until false; (* Fin de la boucle sans fin *)

end.

Figure 1. Listage duprogramme ps.pas.

du programme et desdonnées s’étend de0000H à 7EFFH et a, partant, une taille de32 512 octets.

Le domaine de la mémoire de programmecommence toujours à l’adresse 0000H, ledomaine de la mémoire des données yétant adjacent.

Il est impératif de faire attention àl’adresse de début du domaine de lamémoire de données.

Le domaine de la mémoire de données nedoit pas interférer avec le domaine demémoire attribué au Moniteur. Le

Tableau 2. Cartographie de la mémoire RAM.

tableau 2 rend cette car-tographie de lamémoire.

Un petit exemple vouspermettra de mieux comprendre cedont il faut tenir compte lors de la pro-grammation.Un programme d’une vingtaine deKoctets requérant une mémoire dedonnées de 5 Koctets environ est encours de mise au point et nécessite par-tant un rien de mémoire additionnelle.Il faudra donc faire savoir au compila-teur/interpréteur que la mémoire decode débute à 0000H et la mémoire desdonnées à 6000H.On dispose partant de 24 576 octets demémoire de programme (24 Koctets) etde 7 936 octets (7,75 Koctets) demémoire de données.Il faudra donc faire attention, lorsd’une reprise du développement duprogramme, à ce que le programmen’aille pas au-delà de la limite de5FFFH et que les données n’aillent ellespas au-delà de 7EFFH, sachant quesinon les 2 fichiers de données corres-pondants se détruisent l’un l’autre.La programmation de la mono-carte sefait en 4 étapes :

Le programme d’application est saisisous l’égide d’un langage de program-mation classique pour 8051, Assem-bler51, C51, Basic52, PL/M51 ou autrePascal51. Pascal51 et Basic52 permettentde créer rapidement des applicationspuissantes. Le produit généré doit entous les cas être un fichier en formatIntel-Hex, un fichier doté de l’extension*.hex ou encore un fichier ASCII com-portant les mots-clés (tokens) Basic. Ce fichier est transféré par le biais de

l’une des interfaces sérielles du PCvers la mono-carte « 537-Lite ».

Le programme peut ensuite être testéen association avec le matériel-cible.

Une fois que l’onaura éliminé toutesles erreurs et quepartant le pro-

gramme marchera comme il faut, onaura le choix entre 2 options pour letransfert de la version définitive duprogramme dans le système :

Programmer une EPROM et la sub-stituer à l’EPROM Moniteur. Le sys-tème travaille alors en mode Auto-nome (mode de fonctionnement 1),de sorte que l’on dispose de 32 Koc-tets de mémoire de données etautant de mémoire de programme.

Une fois le programme téléchargé onbascule l’inverseur S1 en positionRUN (mode de fonctionnement 3),de sorte que le programme s’exécuteen RAM. En cas de présence d’unaccu-tampon, le contenu de la RAMreste sauvegardé même après cou-pure de la tension d’alimentation.Une pile au lithium fournit l’énergienécessaire pendant un certainnombre d’années. L’intérêt de cetteseconde approche est qu’elle nerequiert pas la fabrication d’uneEPROM, et partant ne vous obligepas à disposer d’un effaceur et d’unprogrammateur d’EPROM.

A P P L I C A T I O N S D A N SL A P R A T I Q U ELe noyau à 537 n’est bien entendu pasdestiné à se joindre à la longue rangéede mono-cartes à microcontrôleur auchômage; il pourra servir à nombred’applications pratiques. Exempletypique : le pilotage d’un système à busCAN, tel celui décrit ailleurs dans cenuméro.On pourra trouver d’autres expé-riences et applications telles que sous-ensembles pilotés sériellement (conver-tisseur N/A à 3 canaux, capteur de tem-

pérature, affichage LED), connexion declaviers, générateur de parole, cartesd’E/S numérique et analogiques, trans-fert de données par IrDA, radio, etc,dans les ouvrages déjà parus et donnésdans la bibliographie ou à paraître pro-chainement. En dépit du peu de placedont nous disposons ici, nous vou-drions, par un exemple, expliquer com-ment programmer la mono-carte « 537-Lite » sous la houlette de la versionDOS de Pascal51. Cet environnementde développement de programmeintégré tourne gentiment sous Win-dows95/98 à l’intérieur d’une fenêtreDOS. Après avoir lancé l’Éditeurnilied.exe, il faut commencer par définir,une fois pour toutes le modèle demémoire, ce que l’on fait par le biais del’option NiliPascal-Parameter du menu(figure 1). Le paramétrage minimumconsiste à définir le début desdomaines attribués aux mémoires deprogramme et de données, la fré-quence d’horloge du microcontrôleuret la vitesse de transmission (baudrate)des données entre le PC et la mono-carte. Une fois ce paramétrage sauve-gardé le menu est refermé.On peut ensuite saisir un programmepar le biais du clavier voire, si l’on veutse simplifier la vie, charger l’un de ceuxqui se trouvent sur la disquette(EPS 976008-1). Le programme servantd’exemple, p2.pas, prend en compte,une fois par seconde, les tensionsappliquées aux 3 premières entrées,AN0, AN1 et AN2, du convertisseuranalogique/numérique embarqué àbord de la puce du 80C537. On pourraappliquer aux broches 3, 4, 5 et 15 duconnecteur K3 différentes tensionscomprises entre 0 et +5 V et vérifiersur l’écran la numérisation des valeurscorrespondantes.La touche Shift/F9 assure une conver-sion sans erreur du programme p2.pas,la sortie de l’Éditeur de programme sefaisant par un ALt+X classique; on seretrouve en DOS. On transfert ensuitele programme vers la mono-carte« 537-Lite » comme indiqué plus hautet on en lance l’exécution. On devraitvoir apparaître à l’écran un affichageproche de celui représenté en figure 2.

(990054-2)

N.B. Le numéro de l’EPROM moniteur estbien EPS 976510-1 et non pas 996510-1.

Texte : Rolf GerstendorfTechnique : Hans Bonekamp

Bibliographie :[1] Bernd Vom Berg, Peter GroppeJe programme en Pascal les microcontrôleurs dela famille 8051 – Publitronic/Elektor 1998

[2] O’Nile V. SomCompilateur croisé PASCAL pour les µC de lafamille 8051 – Publitronic/Elektor 1998

56 Elektor 2/2000

Programme p2: Saisie de valeurs de mesure analogiques avecla mono-carte « 537-Lite »======================================================

Saisie des valeurs de mesure en cours.....

Entrée AN0: 118 = 2.3046875e0 V

Entrée AN1: 122 = 2.3828125e0 VEntrée AN2: 118 = 2.3046875e0 V

Entrée AN0: 66 = 1.2890625e0 VEntrée AN1: 56 = 1.0937500e0 VEntrée AN2: 29 = 5.6640625e-1 V

Entrée AN0: 75 = 1.4648437e0 VEntrée AN1: 91 = 1.7773437e0 VEntrée AN2: 109 = 2.1289062e0 V

Entrée AN0: 107 = 2.0898437e0 VEntrée AN1: 112 = 2.1875000e0 VEntrée AN2: 111 = 2.1679687e0 V

Figure 2. Recopied’écran des résultats demesure produits par leprogramme p2.pas.

57Elektor 2/2000

posées en forme de 2 coeurs entrelacésdont le clignotement ne manquera pasd’attirer l’attention. D’un caractèredécoratif indéniable, ce montagemérite sans aucun doute d’être offert àune personne vous tenant à coeur.Il ne faut pas s’attendre à découvrirune électronique révolutionnaire aucoeur de ce montage.Comme le montre le schéma, il nes’agit en fait de rien de plus que d’unmultivibrateur astable constitué de2 petits transistors de la famille BC,dans les lignes de collecteurs desquelssont prises 7 rangées de 4 LED cha-cune. Les LED LD1 à LD12 constituentle coeur intérieur, les LED LD13 à LD25le coeur extérieur. Ces 2 coeurs battent(s’illuminent) alternativement.Les résistances de limitation de courantR1 à R7 limitent à la partie congrue laconsommation de courant des LED (àhaut rendement). De ce fait, la consom-mation de courant n’atteint quequelque 8 mA, ce qui permet à une pile

de 9 V de tenir de l’ordre d’une journée.Ceux d’entre vous qui aimeraient per-sonnaliser leur coeur pour la St Valen-tin pourront envisager d’utiliser desLED de couleur différente pour chacundes coeurs, le jaune étant indubitable-ment une couleur « chaude ». Il faudra,dans ce cas-là, vu la chute de tensionimportante qu’introduisent les LED decouleur jaune, faire passer la valeur desrésistances de limitation à de l’ordre de820 Ω (sous peine sinon d’une lumino-sité trop faible).Nous ne savons pas si Velleman donneune garantie sur ce montage. Nous nepensons pas que son fonctionnementrisque de poser un problème. Nous nepouvons pas non plus, de notre côté,vous garantir que ce cadeau toucherala corde sensible de la personne à quivous le destinez. Vu le prix très abor-dable de cette réalisation, le risquemérite d’être couru...

(000031)

Texte : Sjef van Rooij

Il est possible, en peu de temps, presque sans effort etpour pas bien cher, de réaliser un montage électro-nique original que l’on pourra offrir comme cadeau.Velleman est l’une des sources de ce type de kits etnous nous sommes fait plaisir en réalisant notre coeurde la St Valentin, reste à savoir à qui l’offrir incognito.

un cadeau original

DESCRIPTION DE KIT

Les amateurs d’électronique sont, enrègle générale, des gens sérieux prati-quant leur violon d’Ingres avec les plusgrands respect et assiduité. Il leurarrive même d’être trop sérieux. Lescritères de sélection d’un projet à réali-ser soi-même sont son application pra-tique et ses performances. Ils ne par-lent que de distorsion, de rapportsignal/bruit, de capacité de mémoire etde fréquence d’horloge, disséquant cesparamètres jusqu’au dixième de déci-bel voire le millième de pourcent.Rien à redire à ce sujet bien entendu,mais il nous arrive de nous demandersi l’on ne perd pas ainsi une partie del’essence du plaisir de l’art de souder. Iln’y a aucune raison d’affubler l’élec-tronique d’un carcan de sérieux qu’ellene mérite pas; elle peut également êtreludique, amusante, attrayante et sansprétention. Il est possible aussi, à peude frais et avec de petits moyens, decréer des « babioles » originales, unesonnette de porte amusante, un che-nillard, voire un « bijou »aguichant.Il n’est pas exclu que votre entourageadore encore plus ce genre de montageplus qu’il n’apprécie tous ces appareilscomplexes, vu que ces derniers reste-ront toujours pour eux, sans aucundoute, un mystère de l’électronique.

C L I G N O T A N TLe numéro double « Hors-Gabarit »d’Elektor met toujours un point d’hon-neur à vous proposer l’une ou l’autrede ces réalisations ludiques. Mais nousne sommes pas les seuls à « subvenir àce besoin », la preuve : tous les kits dece genre proposés par nombre d’autressociétés vendant des kits.C’est ainsi que nous découvrîmes,dans le programme de la société Velle-man, un coeur de (ou pour) la St Valen-tin. Un montage ludique très présentconstitué de quelques LED rouges dis-

T2

BC547B

T1

BC547B

R8

33

k

R9

33

k

C1

22µ

C2

22µ

LD12

LD11

R3

1k

2

LD10

LD9

LD8

LD7

R2

1k

2

LD6

LD5

LD1

LD2

R1

1k

2

LD3

LD4

LD13

LD14

R4

1k

2

LD15

LD16

LD20

LD19

R5

1k

2

LD18

LD17

LD24

LD23

R6

1k

2

LD22

LD21

LD25

LD26

R7

1k

2

LD27

LD28

E1

9V

000031 - 11

coeur de la St Valentin

Elektor 2/2000

minée. S’il n’y a qu’uneseule ligne logique àdevoir être suivie, celasignifie que le programme s’exécutelinéairement, de son début à sa fin.On a exécution concurrente, c’est-à-dire simultanée, lorsqu’il semble quel’on a plusieurs « fils » logiques s’exé-cutant, à ce qui semble être le mêmeinstant. « Comment puis-je fairecela ? » pouvez-vous vous demander.Dans le cas du processeur BasicStamp II de Parallax, cela est possiblepar l’utilisation de 2 sections de codeindépendantes appelées modules(modules), ou dans notre cas, routines(subroutines) qui seront rappelées àplusieurs reprises avant d’avoir rem-

pli leur fonction. Ilvous faudra, pour cela,savoir exactement où

vous vous trouvez dans votre routinede manière à savoir où redémarrerlorsque vous y retournez. L’une desmeilleures solutions pour la résolutionde ce problème est ce que l’on appellela MEF (Machine d’État Fini ou FSMpour Finite State Machine). Vu quevotre routine ne doit exécuter qu’unnombre faible d’actions et qu’à unmoment donné elle a accompli satâche, on parle d’une liste finie. Il existeplusieurs formes de MEF, le présenttype de MEF est un hybride que nousutiliserons spécifiquement pour la pro-grammation robotique. Cette MEF de

58

6e partie : introduction du concept de MEF (FSM)

par Dennis Clark

Le Boe-Bot (Board of Education RoBot)de Parallax est un robot tout ce qu’il ya de plus simple, monté sur un châssisen aluminium supportant une paire deservo-commandes Fubata. Lesdites ser-vos ont été modifiées de manière à per-mettre une rotation continue et ce àdifférentes vitesses.Le BoE comporte une petite zone deprototypage pouvant recevoir de petitsmontages expérimentaux. Il va vousfalloir, si vous voulez pouvoir réaliserle potentiel fascinant du BoE-Bot quantà sa capacité de se comporter en robot,apprendre à le programmer ! Dans leprésent article, et les suivants, nousallons voir comment obtenir du robotun déplacement aléatoire, voire ulté-rieurement « réfléchi » en vue de détec-ter et d’éviter les obstacles se trouvantsur son chemin. Nous verrons égale-ment comment programmer votreBoE-Bot de manière à ce qu’il paraisseremplir simultanément toutes ces fonc-tions. Nous verrons en outre commentinduire votre robot à des comporte-ments que vous ne lui aurez pas mêmeinculqués !

E X É C U T I O N L I N É A I R EC O N T R E E X É C U T I O NC O N C U R R E N T EE T L A M E FDans un programme, l’exécution desdifférentes instructions est séquen-tielle, c’est-à-dire que l’instruction sui-vante ne peut être lancée qu’une foisque l’instruction précédente est ter-

0 1

2

3

4

mettre 2 piècesd'un franc

francs = 2

choix = aucun

choix = Fanta

choix = Orangina

990050 - 6 - 11

choix = Coca

francs < 2

traiterle choix

donner Fanta

donnerOrangina

donner Coca

21

Figure 21. Conceptd’une machine d’étatfini pour la distribu-tion de boissonsfraîches.

MICROPROCESSEURS

cours de programmationBASIC Stamp (6)

comportement (behaviour FSM) estune sorte de machine d’état ne four-nissant pas de sorties, se contentantde changer d’état en fonction de l’en-trée et de l’état présent. Chaque acti-vité que la MEF entreprend est unétat, unique dans son déroulement etdistinct, de par sa définition, de tousles autres états.Si ces notions vous paraissent quelquepeu confuses, essayons-nous à unesorte d’application réelle pour tenterde comprendre la MEF, un distributeurde boissons fraîches. Nous allons, pourne pas trop compliquer la structure denotre distributeur, imaginer unemachine relativement simplette, dontles spécifications techniques sont lessuivantes :

n’accepte que des pièces de un franc ; requiert 2 francs pour donner une

boisson ; ne rend pas l’argent que vous y avez

mis ; ne rend pas la monnaie, ni de pièce

qui ne serait pas un franc ; propose du Coca-Cola, de l’Orangina

et du Fanta ; son stock de boissons est illimité et

partant, elle ne se trouve jamais à sec.

Comme vous le constatez, nous avons,pour simplifier cette explication, éli-miné toutes les exceptions (exceptions)ou conditions de problème qu’un dis-tributeur de boissons « normal » pour-rait connaître, approche artificielle,pour une raison au moins : nous nefabriquons pas de distributeurs de bois-sons. Il n’en reste pas moins qu’il nousfaudra, lors de la conception de nospropres MEF, penser aux exceptions etconditions d’erreur ! La figure 21 vouspropose le synoptique de notre MEFde distribution de boissons. Lesnombres soulignés à l’intérieur descercles représentent le numéro d’étatpour l’état concerné. Une ligne se ter-minant par une flèche indique unetransition d’un état à un autre (la flèchedonnant le sens de cette opération). Siune ligne de transition comporte une

étiquette (label), cette dernière est lerésultat de la fonction de transition etdéfinit la condition requise pour cechangement d’état. Une ligne sanslabel, est une transition ayant toujourslieu dès que la fonction de l’état cor-respondant est terminée. Les lignes quiretournent à un état indiquent une ité-ration, ou signifient que la MEF gardecet état en effectuant une opérationjusqu’à ce que soit atteinte une condi-tion finale, moment auquel se fera unetransition étiquetée. Dans le présentexemple nous constatons que notreMEF de distribution restera à l’état 0jusqu’à ce qu’elle ait reçu 2 pièces de1 franc, instant à partir duquel notreMEF passer à l’état 1. Là, nous allonspasser notre temps à surveiller les bou-tons par le biais desquels se fera lasélection. Une fois cette sélection faite,notre MEF passera à l’état 2, 3 ou 4, enfonction du choix ayant été fait par leclient assoiffé. Depuis ces derniersétats, la MEF retourne à l’état 0, unefois le processus de distribution ter-miné. C’est là le procédé de définitionet de représentation généralement uti-lisé dans le cas des MEF et que nousutiliserons également pour définir lescomportements de notre BoE-Bot.On appelle état de sauvegarde (savingstate) le fait de se rappeler où l’on setrouve à l’intérieur d’une routine; il estessentiel si l’on veut pouvoir reprendrecette routine à l’endroit où l’on avaitquitté au cours de sa dernière exécu-tion. Chaque état de notre MEF decomportement sera exécuté lors del’appel de sa routine et il quittera laroutine lorsque l’état concerné est ter-miné. Les appels ultérieurs à cette rou-tine exécuteront l’état correct suivantdéfini. À quoi cela peut-il servir ?Jetons un coup d’oeil à 2 petits mor-ceaux de code repris dans le listing 9;ils vont nous montrer pourquoi l’en-semble du programme peut tournerplus vite. Ces 2 morceaux de code pilo-tent les servos qui servent à faire bou-ger notre robot; ne vous en faites pas(trop) si vous n’en comprenez pas ledétail, nous verrons en cours de route

la fonction de ce code. Ce qu’il faut quevous sachiez est qu’une servo-com-mande, telles celles utilisées ici, requiertde recevoir une impulsion de 1 à 2 mstoutes les 20 à 30 ms sous peine de nepas fonctionner correctement. Si la fré-quence est trop rapide (7 ms) parexemple, la servo entrera en oscillation(jitter), si elle est trop lente (toutes les50 ms par exemple), la servo s’arrêtera.Ces impulsions doivent arriver conti-nuellement et régulièrement pour quela servo fonctionne sans heurts, uneimpulsion unique ne présente pas degrand intérêt pour elle.Le code proposé à gauche paraît trèssimple et rapide, mais les apparencespeuvent être trompeuses. Les instruc-tions pulsout servent à produire uneimpulsion de la largeur requise pourobtenir la rotation des servos. Commenous le disions plus haut, cette impul-sion doit se répéter toutes les 20 à30 ms pour que la servo réponde cor-rectement. Il faut également une répé-tition de cette impulsion pour que lemoteur tourne et conserve sa rotation.L’instruction pause se traduit, au niveaudu Stamp II, par une pause de 20 ms,chacune des impulsions envoyées auraune longueur de 2 µs * 750 = 1,5 ms.Dans ces conditions, chaque passagedans cette boucle for/next nécessitera3 ms + 20 ms = 23 ms au minimum,10 boucles requérant 230 ms. Pendantce quart de seconde il ne peut rien sepasser d’autre !Jetons maintenant un coup d’oeil aucode de droite qui implémente uneMEF à 2 états servant à mouvoir lesservos. Nous voyons que la routine dedroite effectue, à un moment quel-conque, l’une ou l’autre des 2 opéra-tions. La première opération consiste àfournir des impulsions aux servos et àdéfinir la variable aDur. La secondeopération consiste elle tout simple-ment à décrémenter la variable aDur.Quel que soit le cas, nous quittons laroutine une fois l’opération effectuée.Chacune de ces opérations est définiecomme un état (state) pour l’acte (act)de comportement.

59Elektor 2/2000

Routine de commande de servo à base delinéaire

act:for I = 1 to 10

pulsout LEFT,750Pulsout RIGHT,750pause 20

next

return

Routine de commande de servo à base de MEF

act: if aDur > 0 then aDec

aDur = 5pulsout LEFT,750pulsout RIGHT,750goto aDone

aDec: aDur = aDur - 1

aDone:

return

Listing 9. Programmation linéaire contre MEF.

Nous entrerons dans le détail de la des-cription et de la conception demachines d’état en vu de comporte-ments robotiques en utilisant desexemples et des programmes que vousécrirez pour votre Boe-Bot dans desarticles ultérieurs.Revenons à nos exemples de code;essayons de calculer le temps requispar l’exécution de la routine de gauche.Sachant que le Stamp II exécute del’ordre de 4 000 lignes de code à laseconde, cela signifie que l’exécutionde chaque instruction prend quelque250 µs. Les instructions pulsout ont,nous le savons, besoin de 1,5 ms pourleur exécution sachant que c’est là lalongueur de l’impulsion émise. Il faut,dans l’état 1, 3 ms pour les instructionspulsout + 750 µs pour les 3 autres ins-tructions, ce qui nous donne 3,75 ms.Dans l’état 2, notre seconde routinenécessitera de l’ordre de 750 µs detemps de calcul pour chacune de sesexécutions.Au lieu des 230 ms de temps processeurrequis par la routine gauche il nous fau-dra cette fois 5 * 750 µs + 3,75 ms =7,5 ms de temps processeur total (sou-venez-vous que nous y passons 5 foisaprès l’impulsion de sortie initiale) pourobtenir le même résultat. Si nous necomptons qu’une unique boucle de23 ms pour chacun des passage dans lapremière routine, nous aurons écono-misé 15,5 ms de temps processeur, cequi, à 4 000 instructions par seconde,correspond à 62 instructions pouvantêtre exécutées ailleurs tout en assurantexactement la même activité au niveaudes moteurs de nos servos. Si nouscomptons le temps total de 230 ms pourla boucle gauche, nous gagnons 226 msce qui revient au nombre impression-nant de 904 instructions !Mais pourquoi cela est-il important ?Un robot ne se contente pas de se pro-mener sans but dans son environne-ment; il a, normalement, l’une oul’autre tâche à accomplir. Qu’il lui failletrouver un feu à éteindre, des ordures àramasser voire un autre robot à atta-quer, il s’occupe à quelque chose deplus important que de juste piloter sesmoteurs.Si nous utilisons la routine de pilotagede moteur proposée plus haut àgauche, le robot ne fait rien d’autre quede se concentrer à commandes lesmoteurs pendant 230 ms. Au cours decet intervalle de temps il n’a pas letemps de s’intéresser à un capteur, deramasser une ordure ou d’éteindre unfeu. S’il rencontre un obstacle il s’ybloque jusqu’à ce qu’il en ait terminéavec sa boucle et qu’il puisse passer àautre chose. Chacun des comporte-ments additionnels que nous implé-mentons dans notre robot constitueune certaine activité qu’il lui faudraexécuter dans un ordre convenable. Àquoi cela nous sert-il de détecter un

objet après l’avoir percuté !Supposons que notre robot ait à exécu-ter, pour atteindre un objectif donné,les comportements suivants énumérésici dans l’ordre inverse de leur priorité :

aller vers le nord jusqu’à être rentréà la maison (choix d’une direction àsuivre) ;

éviter toute collision par l’utilisationde la détection de proximité à IR (encas de danger potentiel, opter pourune autre direction) ;

en cas de collision, faire marchearrière et tourner à gauche (nouveauchoix d’une autre direction où aller) :

arrêter et émettre un signal lorsqu’ilest rentré à la maison (ne pas choisirde direction, s’arrêter sans plus) ;

choisir la direction où aller ayant lapriorité la plus élevée et prendre lesmesure requises pour l’implémenter.

Nombre de ces comportementsdemanderont aux moteurs d’exécuterune action ou une autre : faire marchearrière, tourner à gauche, etc... Chacunde ces comportements nécessitera dese tourner vers les capteurs en vued’effectuer ses actions. Chacun de cescomportement (basé sur le systèmeproposé) sera une MEF implémentéedans des routines qui seront appeléesdepuis l’une ou l’autre boucle du codeprincipal (nous définirons certains deces comportements ultérieurement).Dans l’action (act) de la routine de pilo-tage du moteur donnée dans l’extraitde code de droite, on a définitiond’une variable aDur. Lors du premierappel à la MEF d’action, aDur est mis à5. Ceci signifie que les instructions depulsout seront exécutées une fois, les5 fois suivantes où l’on aura appel à laroutine d’action il ne se passera rienexception faite d’une décrémentationde aDur avant de quitter la routine.Ceci signifie qu’elle perdra le moins detemps possible dans la routine. À quoicela peut-il bien être utile ? Cela estutile vu que l’action peut se contenterd’envoyer les dites actions pulsout unefois toutes les 20 ou 30 ms. Notre robotpeut s’intéresser à ses capteurs et choi-sir l’action moteur suivante pendantqu’il est en train d’attendre d’émettrela série d’impulsions de sortie suivante.De cette façon, nous utilisons le tempsrequis par la lecture des capteurs et laprise de décision dans ces 4 autres rou-tines comme temporisation à respecterimpérativement entre les impulsionsenvoyées aux moteurs des servos, plu-tôt que de perdre ce temps par le biaisd’une instruction pause !En fait, cela donne l’impression quetout se passe simultanément en nonpas séquentiellement, une chose aprèsl’autre. Si nous avions opté pour unmodèle de programmation linéaireplutôt que pour des MEF pour implé-menter tous les comportements et

actions requis, nous ne serions pas enmesure de jeter un coup d’oeil à laboussole ou de tenter de détecter unobstacle, tant que les 230 ms requisespar l’extrait de code de gauche ne seseront pas écoulées. Au cours de cetintervalle, notre robot pourrait fortbien ne pas avoir « vu » la chaise setrouvant devant lui avant qu’il n’ait letemps de changer de direction. Notonsque le chiffre 5 adopté pour aDur n’arien d’impératif, il sert uniquement devaleur de base. Cette valeur s’est avé-rée être celle se traduisant par la chro-nologie la plus souple. Nous avons uti-lisé cette valeur sur notre robot etl’avons diminuée au fur et à mesure del’adjonction de nouveaux comporte-ments. Ainsi, avec 4 comportementsactifs, la routine d’action met aDur à 2seulement.Si nous implémentons tous nos com-portements comme des MEF, ceci apour effet d’interlacer le code à exécu-ter pour chacune des routines demanière à ce qu’aucun des comporte-ments n’ait à attendre que le compor-tement précédent ait terminé poureffectuer une partie au moins de latâche qu’il doit exécuter au cours de sapropre routine. Ceci améliore le tempsde réponse du robot par rapport à sonenvironnement. Cela se traduit, dansle cas de la routine d’action ci-dessus,par une réponse plus souple dumoteur et une réaction plus rapide enface d’obstacles et d’objectifs.Avant d’utiliser la méthode de MEFd’implémentation de comportement,nous avions constaté que le robot hési-tait de plus en plus longtemps au fur età mesure de l’adjonction de nouveauxcomportements et de comportementsplus complexes. La méthode de MEFélimine pratiquement cette hésitation.Elle est plus complexe à concevoir et àcoder que la programmation linéaire,mais les résultats sont, à notre avis, enrelation avec la complexité. Essayez deprogrammer vos robots tant en linéairequ’en MEF et nous pensons que vousne manquerez pas d’admettre quel’utilisation de MEF améliore les capa-cités de votre robot et nous permet detirer le meilleur de notre Stamp II. Il sepeut, le cas échéant, qu’une série decomportements devienne tellementcomplexe que même l’utilisation deMEF n’empêchera pas une certainehésitation, mais nous pouvons allerbien plus loin en utilisant des MEFcomme modèle de programmationplutôt que la programmation linéaireavant que nous n’en arrivions là.

(990050-6)

Nous poursuivrons, le mois prochain, parune méthode dite de Programmation Inclu-sive (Subsumptive) qui nous aidera à déve-lopper un plan par étape, destiné à la miseen oeuvre d’un comportement robotisé.

60 Elektor 2/2000

Elektor 2/2000

Permettez-nous, une fois n’est pas cou-tume, de commencer par l’aspect his-torique de cette réalisation plutôt quepar sa technique.J’ai découvert, nous dit l’auteur, sur lesite Internet « The Minidisk Commu-nity Pages », à l’adresse :http://www.amulation.com/minidiscdes informations très intéressantes sur latechnique de télécommande des fonc-tions du Sony MZ-R30, à savoir l’appli-cation de valeurs de résistances diffé-rentes entre une paire de conducteurs.Au départ j’ai mis la main sur un émet-teur « HomeCall » et son récepteur tra-vaillant à 173 MHz et ne requérant pas

Le lecteur/enre-gistreur MZ-R30

est livré accompa-gné de sa propre

télécommandepar câble prévue

principalementpour être utiliséedans un environ-nement de bala-deur classique.Mais l’utilisation

que voulait enfaire notre auteur,Mr Brian Hough-

ton, à savoir l’enregistrement de répétitions d’unchoeur, impliquait une possibilité de télécom-mande de la fonction marche/arrêt qu’il étaitimpossible de réaliser à l’aide de la télécom-

mande câblée. Nous vous proposons sa solutionà ce problème, élégante et abordable.

62

projet : Brian Houghton G4BCO

extension pratique pour un lecteur populaire

AUDIO, VIDÉO & MUSIQUE

télécommande IRpour le baladeur MiniDisc MZ-R30 de Sony

de licence, le récepteur étant montédans un boîtier de commande conte-nant un rien de logique CMOS. Ce sys-tème HF fonctionnait correctement jus-qu’à une centaine de pieds (rappelez-vous, nous sommes en GrandeBretagne), mais présentait une certaineinertie de réponse (5 s) et ne permettaitqu’une unique fonction, à savoir« Pause ». Vous pouvez, si le sujet vousintéresse, trouver les informationsconcernant cette télécommande àl’adresse :

http://www.amulation.com/minidisc/mzr30_remote_radio/index.html.

J’ai reçu un certain nombre d’E-mailsconcernant ce concept au nombre des-quels un envoyé par un étudiant quivoulait réaliser une télécommande IRcomplète dont le prix ne devait pasdépasser 50 £. Ceci incita l’auteur à ten-ter une nouvelle approche.

L E C O N C E P TCe projet se subdivise, logiquement, en2 parties :– Le transmetteur de poing doté d’unesérie de boutons-poussoirs de sélectionde fonction, un encodeur et l’émet-teur IR.– Le récepteur/décodeur comportant lerécepteur IR, le décodeur et une sériede commutateurs analogiques servantà la sélection de l’échelle de résistances.Le connecteur de la télécommandeprésent sur le Walkman MD de Sonyest spécifique et ne se vend malheu-reusement pas séparément dans lecommerce et comme la télécommandeà câble complète vaut, à elle seule, déjà50 £, il fut décidé de faire subir uneopération mineure au câble existant.

M O D I F I C A T I O N S D EL A T É L É C O M M A N D EP A R C Â B L ELe mini-boîtier de la télécommande futouvert en douceur et le câble existantdéconnecté. J’ai doté l’extrémité ainsilibre du câble d’origine d’une embasemini-XLR à 5 contacts. Dès lors, cecâble peut être utilisé pour connecterl’unité de commande IR au Walkman.La figure 1 montre la modification àlaquelle il a été procédé.L’auteur fabriqua un nouveau câble uti-lisant 5 conducteurs très fins récupéréssur un câble multibrin quelconque etun morceau de gaine thermorétrac-table de 3 mm; l’une des extrémités futdotée d’un connecteur mini-XLR à5 contacts, l’autre venant se fixer auboîtier d’origine de la télécommande.Ceci permet d’avoir les fonctions detélécommande par câble d’origine par

le biais de ce « câble adap-tateur ». La figure 2illustre cette opération.

L E T R A N S M E T T E U RD E P O I N GLa figure 3 vous propose le schéma duboîtier de commande à tenir dans lamain. Le composant-clef est un circuitencodeur de télécommande HT12A deHoltek. Nous vous proposons, ailleursdans ce magazine, sous la dénomina-tion d’Infocartes, les fiches de caracté-ristiques (condensées) de ce circuitintégré très intéressant et utilisable àtoutes les sauces.Toute action sur un bouton mettra à0 volt la (ou les) diode(s) concernée(s)pour forcer au niveau bas les entréesde données de l’encodeur. Toute entréede donnée passant auniveau bas « réveille »l’encodeur, démarre

l’oscillateur 455 kHz, le flux de donnéescodées quittant la sortie Dout(broche 17) et attaquant les 2 transistorset partant les 2 diodes IR d’émission.La valeur faible des résistances-série(2,2 Ω) fait que les diodes IR sont pilo-tées par des impulsions de courantd’une intensité relativement élevée, lecourant moyen par transistor nedépassant pas quelque 10 mA lui. Lecondensateur électrolytique de fortecapacité C1 est essentiel si l’on veutpouvoir passer outre la résistanceinterne relativement élevée de la pairede piles R6 ou R14. Nous vous propo-sons, sous la forme d’un tableau pré-

sent dans le schéma,la correspondanceentre le numéro du

63Elektor 2/2000

3 2

54 1

Embasemini-XLR

2 3

51 4

Fichemini-XLR

MD

Brochage de la télécommande1 blanc Canal Droit

990075 - 11

2 jaune Ctl broche 43 gris Ctl broche 24 rouge Canal Gauche 5 marron Commun

4 1

53 2

MiniSocket

(Vu de l'arrière)

(Vu de l'arrière)

1Figure 1. Modification ducâble de télécommandefourni avec leWalkman MD de Sony.

R5

10M

X1

455kHz

C2

100p

C3

100p

R1

10k

R2

10k

R3

2

R4

2

D26 D27

T1

T2

BC550

C4

100n

D4

D3

D2

D1

S1 S2

D7

D6

D5

S3

D10

D9

D8

S4

D12

D11

S5

D16

D14

D13

S6

D18

D15

S7

D19

D17

S8

D20

S9

D23

D22

D21

S11

D25

D24

S10

Bt1

3V

C1

100µ16V

"0" "1" "2" "3" "4" "5" "6" "7" "8" "9"

"Shift"

2x

"0""1""2""3""4""5""6""7""8""9"

Spare

Prev/Back

PAUSE

STOP

Volume –

Volume +

MARK (Rec)

MODE (Play)

RECORD(in stop or pause)

CODE FUNCTION

Next/FWD

990075 - 13

HT12A

ADOUT

IC1

AD11

AD10

OSC2 OSC1

AD9

AD8

17

18

13

15 16

12

11

10

14TE

A0

A1

A2

A3

A4

A5

A6

A7

9

8

7

6

5

1

2

3

4

D1 ... D25 = 1N4148

D26, D27 = LD271

Figure 2. On pourra réutiliser le mini-boîtier de la télécommande pour peuqu’on le dote d’un nouveau connecteur.

Figure 3. Schéma de latélécommande de poing.

2

3

bouton-poussoir, le code transmis et lafonction associée au niveau de l’enre-gistreur MD. On notera qu’il faut

64 Elektor 2/2000

HT12D

ADOUT

IC1

OSC2 OSC1

D3

D2

D1

D0

17

18

13

15 16

12

11

10

14TE

A0

A1

A2

A3

A4

A5

A6

A7

9

8

7

6

5

1

2

3

4

4028

IC2

X/Y

14

11

12

13

1015

8

3

2

6

7

4

5

9

1

0

1

2

3

4

5

6

7

8

9

1

4

2

R1

56k

R3

10k

R4

4k7

R5

2k

2

R2

10

k

R7

27Ω

R8

1k

5

R9

1k

3

R10

1k

3

R11

56Ω

R12

1k

8

R14

15

R13

1k

5

R15

1k

5

R16

2k

R17

2k

R18

10

R19

5k

6 R20

4k

7

R21

68

1k

P1

IC3b

5

3

4

IC6a

13

2

1

IC3c

12

10

11

IC5a

13

2

1

IC6b

5

3

4

IC6d

6

9

8

IC6c

12

10

11

IC3d

6

9

8

IC5d

6

9

8

IC3a

13

1

2

JP2

JP2

T2

BC547

T1

BC550

D1

JP1

C3

100n

LP2950CZ5.0

IC4

C2

4µ716V

C1

2µ225V

R6

2k

2D3

K3

D21N4001

IC5b

5

3

4

IC5c

12

10

11

IC3

14

7

IC5

14

7

IC6

14

7

C7

100n

C6

100nIC2

16

8

C7

100n

TEST

SFH506SFH505A

IS1U60

5V

5V

5V

990075 - 14

5V IC3, IC5, IC6 = 4016

CV

K232

1 45

XLR-Socket

4

appuyer simultanément sur les bou-tons-poussoirs S10 et S11 pour déclen-cher la fonction RECORD (enregistre-

ment). Ceci a pour but d’éviter unesélection, par inadvertance, du modeenregistrement.

L ’ U N I T ÉR É C E P T E U R /D É C O D E U RLe MZ-R30 requiert, pourreconnaître un certainnombre de fonctions sélec-tées par le biais de sonconnecteur d’entrée detélécommande, l’une oul’autre valeurs de résis-tance spécifiques : letableau 1 vous proposeune correspondance entrelesdites valeurs et les fonc-tions réalisées. Le code dela troisième colonne repré-sente la valeur décimale dela donnée à 4 bits utiliséepar les encodeurs/déco-deurs IR.La mise en oeuvre de com-mutateurs électroniquesdu type 4016, intégrés dansIC3, IC5 et IC6, associés àun réseau de résistances,R7 à R20, constitue uneméthode simple et bon

Figure 4. L’électronique durécepteur/décodeur de la télécommande.

marché de choix de la valeur de résis-tance nécessaire.Un circuit intégré récepteur IR du typeIS1U60 (Sharp) détecte la porteuse IR;le signal présent à sa sortie subit uneinversion au niveau de T1 avant d’at-taquer le décodeur HT12D qui stocke

65Elektor 2/2000

(C) ELEKTOR

990075a

C1C2

C3

C4C5C6C7

D1

D2

D3

H1 H2

H3H4

IC1

IC2IC

3

IC4

IC5

IC6

JP1

JP2

P1 R1 R2

R3R

4

R5

R6

R7R8 R9

R10

R11

R12

R13R14

R15R16R17R18 R19

R20R

21

T1

T2

V2

0+

tes

t

+ T

990075a

+

(C) E

LEK

TOR

9900

75a

5

(C) ELEKTOR

990075b

C1

C2

C3

C4

D1

D2D3

D4

D5

D6 D

7

D8

D9D10

D11

D12

D13

D14

D15

D16

D17

D18

D19

D20

D21

D22

D23

D24 D

25 D26

D27

H1

H2H3

H4

IC1

R1

R2

R3

R4

R5

S1S2 S3

S4S5S6 S7

S8S9S10

S11

T1

T2

X1

+-

990075b

(C) E

LEK

TOR

9900

75b

Liste des composants

Récepteur/décodeur (Platine990075a)

Résistances :R1 = 56 kΩR2,R3 = 10 kΩR4,R20 = 4kΩ7R5,R6 = 2kΩ2R7 = 27 ΩR8,R13,R15 = 1kΩ5R9,R10 = 1kΩ3R11 = 56 ΩR12 = 1kΩ8R14 = 150 ΩR16,R17 = 2 kΩR18 = 100 ΩR19 = 5kΩ6R21 = 680 ΩP1 = ajustable 1 kΩ horizontal

Condensateurs :C1 = 2µF2/25 V radialC2 = 4µF7/16 V radialC3 à C7 = 100 nF

Semi-conducteurs :D1,D3 = LED faible courantD2 = 1N4001T1,T2 = BC550IC1 = HT12D (Holtek)IC2 = 4028IC3,IC5,IC6 = 4016IC4 = LP2950-CZ5.0 (National

Semiconductor)JP1 = SFH506-36

Liste des composants

Émetteur (Platine 990075b)

Résistances :R1,R2 = 10 kΩR3,R4 = 2Ω2R5 = 10 MΩ

Condensateurs :C1 = 100 µF/16 V radialC2,C3 = 100 pFC4 = 100 nF

Semi-conducteurs :D1 à D25 = 1N4148D26,D27 = LD271 ou LED IR

similaireT1,T2 = BC550IC1 = HT12A (Holtek)

Divers :S1 à S11 = bouton-poussoir

encartable Multimec ou D6-R-RDBT1 = 2 piles R6 (AAA) ou R14 (AA)X1 = résonateur céramique 455 kHz

(SB455E par exemple)

les 4 bits de donnée originaux. Cettedonnée est ensuite présentée à undécodeur BCD/décimal, un 4028 (IC2),

qui sélecte l’un des 9 commutateursanalogiques. Ces derniers définissentalors le point correspondant sur une

Figure 5. Dessin des pistes et sérigraphie de l’implanta-tion des composants. Il faudra séparer les 2 modulesconstituant cette réalisation.

échelle à résistances qui sera utilisé parle MZ-R30 pour exécuter la fonctionchoisie.Un commutateur analogique commun,IC3a, piloté par la broche VT du déco-deur IR sert à valider la sortie sachantque la donnée de 4 bits est verrouilléepar le décodeur et qu’elle sélecte tou-jours le dernier commutateur utilisé.La valeur de résistance la plus faibleutilisable, « Preview/Back » est de1 000 Ω, pour ce faire, un ajustable de1 kΩ, mis à une valeur de l’ordre de700 Ω, est pris en série avec la résis-tance totale de 300 Ω des 2 commuta-teurs électroniques. Une LED de forteluminosité, D1, s’allume au même ins-tant pour signaler un fonctionnementcorrect.

La valeur de résistance associée à cha-cun des codes de commande est indi-quée au niveau de JP2, la sortie du cir-cuit. Le schéma vous suggère un bro-chage vers une embase mini-DIN. Onpeut également opter pour uneembase mini-XLR. Le brochage est,dans ce cas-là, le suivant :

Broche 1: Audio GaucheBroche 2: broche 1 de IC3aBroche 3: ajustable P1Broche 4: Audio DroitBroche 5: Audio Commun

Le IS1U60 peut être remplacé par unSFH505A ou SFH506 (tous deux de Sie-mens). Leurs brochages différant decelui du IS1U60, il faudra faire atten-

tion leur de leur connexion à la platine.La sortie du récepteur de la télécom-mande est connectée à une embaseminiature qui, à son tour, est reliée, parle biais d’un morceau de câble de faiblelongueur à l’entrée de télécommandedu MD30-RZ.Nous reviendrons à la fonction ducavalier de test JP2.L’alimentation du récepteur/décodeurpourra se faire par le biais de tout adap-tateur secteur capable de fournir uncourant de l’ordre de 100 mA à une ten-sion continue comprise entre 8 et 12 V.

L A C O N S T R U C T I O NNous vous proposons, en figure 5, lecircuit imprimé dessiné pour ce projet.Il faudra commencer par séparer lerécepteur de l’émetteur à l’aide d’untrait de scie.Il faudra, comme il s’agit d’une platinesimple face, commencer par l’implan-tation d’un certain nombre de ponts decâblage.La mise en place des composants, enrespect avec la liste des composants et lasérigraphie, ne doit pas poser de pro-blème. Assurez-vous du respect de lapolarité de tous les composants enayant une, diodes, LED, transistors,condensateurs électrolytiques et cir-cuits intégrés. Les HT12 seront, de pré-férence, montés sur (de bons) supports.La platine de l’émetteur comporte uncertain nombre de diodes à montercôté « pistes ». Les diodes de l’émet-teur IR pourront être dotées d’unréflecteur pour en accroître la directi-vité. L’auteur a monté sa télécom-mande de point dans un boîtier HH1(Maplin) qui dispose de suffisammentde place pour recevoir un connecteurpour 2 piles R6 alcalines rechargeables.

R É G L A G ELe seul réglage requis consiste au posi-tionnement de l’ajustable P1 en vue decompenser la résistance induite par lescommutateurs analogiques. Voici com-ment procéder :a) Installer le cavalier JP2. Ceci intercon-

necte la résistance de 4kΩ7 du railcommun du réseau à la masse (0 V).

b) Brancher un multimètre numériquemis dans le calibre lui permettant demesurer une résistance de 7 050 Ωentre les broches de sortie 2 et 3 duconnecteur XLR. Alimenter le récep-teur/décodeur et choisir le code 4« Stop » de la télécommande de poing.

d) Jouer sur l’ajustable pour lire 7 050 Ωsur le multimètre.

e) Couper l’alimentation, débrancher lemultimètre et enlever le cavalier JP2.

f) Connecter le récepteur/décodeur auMZ-R30 et tester l’ensemble desfonctions.

(990050-1)

Texte : J. BuitingTechnique : L. Lemmens

66 Elektor 2/2000

Tableau 1. Code de la télécommande pour le Walkman MiniDisc.Fonction: Résistance: Code:

Preview/Back 1 000 Ω 1Next/Forward 3 627 Ω 2Pause 5 156 Ω 3Stop 7 050 Ω 4Volume (–) 8 400 Ω 5Volume (+) 9 900 Ω 6Mark 11 900 Ω 7Mode 14 000 Ω 8Record 19 500 Ω 9

INFOCARTE 2/2000

HT12D

Circuits intégrésFonction spéciale

HT12A

Circuits intégrésFonction spéciale

INFOCARTE 2/2000

67E

lektor2/2000

HT12Aencodeur de la série 212

FabricantHoltek Semiconductor Inc.

Internet: http://www.holtek.com.tw

Caractéristiques (HT12A seul) : Tension de service : 2,4 à 5 V Technologie CMOS faible puissance et bonne

immunité au bruit Faible courant de veille (standby) : 0,1 µA (typique)

à VDD = 5 V Porteuse à 38 kHz en tant que médium de trans-

mission IR Complémentaire des décodeurs de la série 212

d’Holtek Transmission minimum : 1 mot L’oscillateur intégré se satisfait de résistances à

tolérance de 5%

Le code de données présente une polarité positive Ne requiert qu’un nombre minime de composants

externes Disponible en boîtier DIP à 18 broches ou SOP à

20 broches

Exemple d’applicationTélécommande IR pour Walkman MiniDisc MZ-R30de Sony, Elektor n° 260, févier 2000

Description généraleLes encodeurs de la série 212 HT12A et HT12E sontdes composants CMOS LSI (Large Scale Integration)

HT12Ddécodeur de la série 212

FabricantHoltek Semiconductor Inc.

Internet: http://www.holtek.com.tw

Caractéristiques (HT12D seul) : Tension de service : 2,4 à 12 V Technologie CMOS faible puissance et bonne

immunité au bruit Faible courant de veille (standby) Peut décoder 12 bits d’information Complémentaire des encodeurs de la série 212

d’Holtek Paramétrage binaire de l’adresse Triple vérification des codes reçus Combinaison numérique adresse/donnée 8 bits d’adresse et 4 bits de données L’oscillateur intégré se satisfait de résistances à

tolérance de 5% Indicateur signalant une transmission valide Interfaçage aisé avec un moyen de transmission

HF ou IR Ne requiert qu’un nombre minime de composants

externes

Exemple d’applicationTélécommande IR pour Walkman MiniDisc MZ-R30de Sony, Elektor n° 260, février 2000

Description généraleLe décodeur HT12D est un composant CMOS LSI(Large Scale Integration) destiné aux applications detélécommande. Il travaille en tandem avec les enco-deurs de la série 212 d’Holtek. Il faut, si l’on veutgarantir un fonctionnement correct du système,

Description des broches (HT12A seul)

Dénomination E/S Connexion interne Description

A0 à A7 E CMOS IN, pull-highBroches d’entrée pour le paramétrage de A0 à A7. Elles peuvent être forcées de l’extérieur soit à VSS soit laissées en l’air.

D8 à D11 E CMOS IN, pull-highBroches d’entrée pour le paramétrage des données D8-D11 et de validation de la transmission. Elles peuvent être forcées de l’extérieur soit à VSS soit laissées en l’air.

DOUT S CMOS OUT Sortie de transmission des données sérielles de l’encodeur.

L/MB E CMOS IN pull-highBroche de sélection du format momentané/verrouillé des données. Verrouillé : flottant ou VDD. Momentané : VSS.

OSC1 E OSCILATOR 1 Broche d’entrée de l’oscillateur.

OSC2 S OSCILLATOR 1 Broche de sortie de l’oscillateur.

X1 E OSCILLATOR 2 Broche d’entrée de l’oscillateur à résonateur 455 kHz.

X2 S OSCILLATOR 2 Broche de sortie de l’oscillateur à résonateur 455 kHz.

VSS E — Ligne d’alimentation négative (GND = Masse).

VDD E — Ligne d’alimentation positive.

Description des broches

Dénomination E/S Connexion interne Description

A0 à A11 E NMOS TRANSMISION GATEBroches d’entrée pour le paramétrage de A0 à A11. Elles peuvent être forcées de l’extérieur soit à VDD soit à VSS.

D8 à D11 S CMOS OUT Broches de sortie de données.

DIN E CMOS IN Broche d’entrée de données sérielles.

VT S CMOS OUT Transmission valide, active au niveau haut.

OSC1 E OSCILLATOR Broche d’entrée de l’oscillateur.

OSC2 S OSCILLATOR Broche de sortie de l’oscillateur.

VSS E — Ligne d’alimentation négative (GND = Masse).

VDD E — Ligne d’alimentation positive.

BrochageBrochage

HT12D

Circuits intégrésFonction spéciale

HT12A

Circuits intégrésFonction spéciale

INFOCARTE 2/2000INFOCARTE 2/2000

68E

lekt

or2/

2000

destinés aux applications de télécommande. Ils sontcapables d’encoder une information consistant deN bits d’adresse et de 12 N bits de données. Chaqueentrée d’adresse/donnée peut être mise dans l’un des2 états logiques. Les adresses/données program-mées sont transmises accompagnées de bits d’entê-te (header) par le biais d’un véhicule de transmissionsoit HF soit IR à la réception d’un signal de déclen-chement. La possibilité d’opter pour un déclenche-ment sur données (DATA Trigger) du HT12A accroît laflexibilité des encodeurs de la série 212 qui peuventainsi être utilisés pour de nombreuses applications.Le HT12A met à disposition une porteuse de 38 kHzpour les systèmes faisant appel à l’infrarouge.

Description fonctionnelleFonctionnementL’encodeur HT12A démarre un cycle de transmissionde 4 mots à la réception d’un signal de validation detransmission (D8 à D11, actif au niveau bas). Cecycle s’auto-répète tant que le valideur de transmis-

sion (D8 à D11) est maintenu au niveau bas. Dèsque le valideur de transmission repasse au niveauhaut la sortie de l’encodeur complète son cycle finalpuis s’arrête, comme l’illustre le chrono-diagrammede transmission représenté ci-contre.

Mot d’informationSi L/MB=1 le composant se trouve en mode de ver-rouillage (pour une utilisation avec les décodeurs dedonnées du type à verrouillage (latch)). En cas delevée de la validation de transmission en cours d’unetransmission la broche DOUT complète l’émissiond’un mot et s’arrête ensuite. À l’inverse, si L/MB=0,le composant se trouve en mode Momentané (pourune utilisation avec les décodeurs de données dutype momentané).En cas de levée de la validation de transmission encours d’une transmission la broche DOUT complètel’émission d’un mot pour ajouter ensuite 7 motscomportant tous le code de donnée « 1 ».

opter pour une paire encodeur/décodeur ayant lemême nombre d’adresses et aux formats de donnéeidentiques.Les décodeurs reçoivent les adresses et données sousforme sérielle fournies par un encodeur programmé dela série 212, informations transmises par le biais d’uneporteuse travaillant en HF ou en InfraRouge (IR). Ilsprocèdent, continuellement, à une triple comparaisondes données sérielles en entrée avec leur propreadresse locale. En l’absence de codes erronés ouincompatibles, les codes des données d’entrée sonttransférés vers les broches de sortie.La broche VT (Valid Transmisssion) passe au niveauhaut pour signaler la validité de la transmission.Le décodeur HT12D est en mesure de décoder uneinformation consistant en N bits d’adresse et 12 N bitsde données. Le paramétrage du HT12D est tel que cecircuit fournit 8 bits d’adresse et 4 bits de données.

Description fonctionnelleFonctionnementLe décodeur HT12D reçoit des données qui lui sonttransmises par un encodeur et interprète les N pre-

miers bits des périodes de code comme desadresses et les 12 N derniers bits comme des don-nées, le facteur N représentant le nombre du coded’adresse. Un signal sur la broche DIN active l’oscil-lateur qui, à son tour, décode les adresses et don-nées entrantes.Les décodeurs vérifient ensuite, 3 fois, à la suite, lesadresses reçues. Si les codes d’adresse reçus col-lent avec le contenu de l’adresse locale du décodeurles 12 N bits de données sont décodés en vue d’acti-ver les broches de sortie, la broche VT étant mise auniveau haut pour signaler la validité de la transmis-sion. Ceci restera le cas jusqu’à la réception d’uncode d’adresse incorrect ou l’absence pure et simplede signal.La sortie de la broche VT ne reste au niveau haut quesi la transmission est valide; elle se trouve sinon auniveau bas pour le reste du temps.

Type de sortieLe HT12D possède 4 broches de données du typeverrou dont les données ne changent pas jusqu’àréception de nouvelles données.

Synoptique du HT12ASynoptique du HT12D

Chrono-diagramme de transmission du HT12A (L/MB = VSS) Chrono-diagramme du HT12D

69Elektor 2/2000

Le site Elektor nouveauJe trouve qu’il est temps qu’Elek-tor renouvelle son site Internet.J’ai été heureusement surpris dedécouvrir une nouvelle page d’ac-cueil. Belle présentation. Je trouveplus important encore la créationd’un forum (newsgroup) et d’unechatroom. Il m’arrive de temps entemps de souhaiter communiqueravec d’autres amateurs d’électro-nique. Et c’est justement auniveau de l’électronique quenombre de projets capotentlorsque l’on se trouve confronté àdes problèmes dont on ne connaîtpas la solution. Une page deforum et une possibilité de dis-cussion seraient des extensionsfort appréciées.

R. Manthei (par E-mail)

La rédaction ne peut qu’opineraffirmativement de la tête.(La rédaction)

FAQs concernant le nouveau site Internet

Quelle est l’adresse de la nou-velle page d’accueil ?Nous avons ouvert l’accès au siteElektor nouvelle mouture le 13décembre dernier. Depuis lors, leserveur dont l’adresse estwww.elektor.presse.fr présente lapage d’accueil nouvelle version.Si vous continuez de voir appa-raître sur votre écran l’ancienneprésentation (page bleue) il estfort probable que votre browser astocké la page d’accueil du siteElektor dans son cache et qu’il lacherche à cet endroit. Pour actua-liser le site, vous pouvez cliquersur le bouton « Reload » voire« ». Si ceci ne change rien à l’as-pect de la page, il vous faudraeffacer le contenu du cache. Cetteoption se trouve dans le menu« Options » de la plupart desbrowsers.

Où puis-je, en tant qu’abonné àElektor, trouver le code d’accèset le mot de passe pour entrerdans la rubrique « Télé-charge-ment » ?Si vous ouvrez la page « Réservé

vous vous soyez trompé lors deleur entrée. Cela peut égalementêtre dû à une surcharge du ser-veur (nous l’avons constaté uneunique fois lors de nos tests defonctionnement), mais peu detemps après tout était à nouveauO.K. Cela peut également être dûà Votre browser, encore que celane soit guère probable, sachantque nous avons testé l’accès auserveur tant sous Netscape quesous l’Internet Explorer et cela jus-qu’à la version 3 de ces produits.Si vous avez des problèmes d’ac-cès persistants, faites-nous savoirpar E-mail à l’adresse [email protected] la versiondu browser que vous utilisez.

Le logiciel de dessin deFPGA d’AtmelJe me suis beaucoup réjoui detrouver un CD-ROM d’Atmel avecvotre numéro de novembre. J’aimalheureusement dû constater,après l’installation du programme,que le fichier de licence qui s’ytrouve est périmé à partir du1.10.99 et que les Tools d’Everestcessent de coopérer. Que s’est-ilpassé ?

Stefan Falcke (par E-mail)

Il nous faut reconnaître qu’ilsemble que lors de la produc-tion de ce CD-ROM, Atmel n’apas pensé à la date de validitéde ce fichier. Il est possible detélédécharger un fichier d’ac-tualisation (update) des Toolsd’Everest à l’adresse Atmel.com-> FPGA -> software qui per-met une utilisation plus longue.Il n’est malheureusement paspossible de faire autrement quede chercher cette actualisationd’EDS jusqu’à l’apparition d’unnouveau CD-ROM d’Atmel avecla version 7.0 d’IDS (ce CD-ROMcomportera également la versionla plus récente de Everst-EDS).La source de ce nouveau CD-ROM (lorsqu’il sera disponible)sera la même que celle du Star-ter Kit (www.kanda.com, voirewww.ineltek.com). (La rédaction)

LE COIN DU LECTEUR

Nous ne pouvons malheureusement pas répondre in extenso à toutes les lettres relevant des questions techniques. Danscette rubrique nous répondons à des lettres pouvant présenter un intérêt général et concernant des montages âgés de moinsde 2 ans. Vu le nombre de lettres qui nous arrivent mensuellement, nous regrettons de ne pas pouvoir répondre séparémentà chacune d'entre elles et sommes dans l'impossibilité de donner suite à des souhaits individualisés d'adaptation de mon-tages publiés ou de réalisation de montages à publier ni même de répondre à des demandes d'information additionnelleconcernant un montage décrit dans Elektor.

aux abonnés » vous trouverezdans le texte en haut de page lesindications où trouver les élémentsrequis pour l’accès à cetterubrique réservée aux abonnés :les abonnés à Elektor trouverontsur la page « Abonnement » deleur magazine les code d’accès etmot de passe requis; ils sontvalables jusqu’à la fin du mois depublication du magazine concer-né. Chaque nouveau numéro don-nera une nouvelle paire de coded’accès + mot de passe.

À quel moment dois-je entrer lecode d’accès et le mot de passepour le téléchargement ?La page « Réservé aux abonnés »montrant les fichiers téléchar-geables est accessible librement.La question du code d’accès et dumot de passe ne se pose quelorsque vous voulez effectuer untéléchargement de l’un (ou de plu-sieurs) des fichiers proposés à cetendroit et que vous activez à ceteffet le bouton « Download » situéà la droite du fichier concerné.

Ne trouvez-vous pas qu’unevitesse de téléchargement légè-rement inférieure à 1 Kb/s estsur le bord faible ?Indiscutablement ! Mais celadépend également de la vitesse devotre modem, celle de votrepropre fournisseur d’accès (pro-vider) et de l’heure à laquelle voussurfez. Si vous avez un modem33k6 ou 56k, vous devriezatteindre des vitesses de transfertsensiblement plus élevées. Cepen-dant, lors du lancement de notrenouveau site, le nombre de lec-teurs d’Elektor curieux (ce dontnous nous réjouissons bien enten-du) n’a pas manqué d’avoir uneconséquence sensible sur la vites-se du serveur. Depuis lors la situa-tion s’est stabilisée bien que lademande soit encore très impor-tante.

Dès lors que je tente de télécha-ger le fichier d’une platine monbrowser affiche une page vide etil ne se passe plus rien. Avez-vous un problème ou les télé-chargements ne sont-ils pasencore prêts ?

Les téléchargements sont parésen ce qui nous concerne, et sontparfaitement fonctionnels. Le pro-blème que vous rencontrez peutavoir différentes causes :1. Le serveur peut avoir, tout audébut, été surchargé par unedemande trop importante. Votrepage vide aurait dû, au bout d’uncertain temps, se remplir. Depuislors les temps de transfert doiventêtres redevenus standards.2. Le Plug-In du Reader d’Acrobatne fonctionne pas comme il ledevrait sur votre ordinateur. Vouspouvez le vérifier à l’aide de la pro-cédure suivante : cliquer le bou-ton droit de votre souris sur l’undes boutons « Download » etchoisissez l’option « Save targetas ». Vous pouvez ensuite dési-gner un répertoire quelconque oùstocker le fichier. Si cette opéra-tion se fait correctement il est fortprobable que votre ordinateur nesache pas quoi faire des fichiersà l’extension .pdf et qu’il se plan-te à ce niveau. Il vous faut dans cecas-là, réinstaller Le Readerd’Acrobat et vérifier le paramétra-ge de votre browser.

Ne serait-il pas possible de pré-voir une possibilité de téléchar-gement de la table des matièrestelle qu’elle apparaît dans lenuméro de décembre au format.pdf ?Nous avons prévu cette possibili-té dès la seconde semaine dedécembre. Vous trouverez cettetable des matières annuelle dansla rubrique « Télé-chargements »que dans celle baptisée « Numé-ros actuels » à la position corres-pondante du sommaire du numérode décembre 1999 (12/99). Nousprévoyons de mettre en route, trèsprochainement, sous le bouton« Index des magazines » notremoteur de recherche EIT (ElektorItem Tracer) permettant unerecherche au niveau des nomsd’articles et bien d’autres repères.

Pourquoi ai-je affichage d’unmessage d’erreur lors de la sai-sie du code d’accès ?Il se peut que vous ayez interver-ti le mot de passe et le code d’ac-cès et le mot de passe ou que

À la rédaction

d'Elektor

Elektor 2/2000

Lorsque, il y a plus d’une douzained’années, les ingénieurs de dévelop-pement travaillant chez Intel présen-tèrent au public l’interpréteur BASIC8052-AH sur microcontrôleur pro-grammable par masquage utiliséjusque là à titre expérimental, la com-munication par bus I2C faisait toutjuste ses premiers pas. On a donc biensûr omis de se pencher sur les instruc-tions de commande d’un bus I2C.Il est bien sûr possible de programmerla communication avec le bus I≈ C en seservant des instructions disponibles carle cahier des charges du bus I2C ne spé-cifie pas de fréquence d’horloge mini-male. S’il ne s’agit que de communiqueravec quelques composants I≈ C, il estfacile d’inclure les sous-programmesSend Byte, Get Byte, Start et Stop du lis-tage 1 dans un programme. Ces sous-programmes se servent du port P1.6comme liaison sérielle de données SDAet du port P1.5 comme liaison sérielled’horloge SCL. Les circuits externes dumicrocontrôleur se limitent aux 4 com-posants de la figure 1. Mais la vitesse deces « instructions » laisse fortement àdésirer.Le jeu d’instructions de BASIC MCS-51,débarrassé entre-temps de la carapacerigide du microcontrôleur spécial, etdont de nombreuses variantes ont étéutilisées à maintes reprises dans des

74

projet : Hans-Jürgen Böhling

nouvelles instruction pour BASIC MCS-51

BASIC MSC-51 jouit d’une grande faveur mais trahit son âge parl’absence d’instruction de pilotage du bus I2C. Il est heureuxque cette variante de BASIC permette d’incorporer facilementdes instructions « maison ».

10 REM *****************************************20 REM * I2C-Communication with MCS-51-BASIC *30 REM * over Ports 1.5 (SCL) and 1.6 (SDA) *40 REM * *50 REM * (C) H.-J. Boehling 07.29.99 *60 REM * www.germany.net/teilnehmer/101.107378 *70 REM * www.isis.de/members/~boehling *80 REM *****************************************90 REM100 CLKL=0DFH : CLKH=20H : DATL=0BFH : DATH=40H110 REM +++ I2C Test ++++++++++++++++++++++++++++120 REM This test sends out value 0 to 255 to a PCF8574 and read it back130 ADDR=040H : REM I2C address140 FOR BYTEOUT=0 TO 255150 GOSUB 270160 IF (ACK.OR.OUT)>0 THEN 220170 GOSUB 350180 IF (ACK.OR.OUT)>0 THEN 220190 PRINT ”Read back:”,BYTEIN200 NEXT 210 GOTO 130220 REM +++ I2C Transmission error ++++++++++++++230 GOSUB 810 : REM Stop condition240 IF ACK>0 THEN PRINT ”ACK failed!”250 IF OUT>0 THEN PRINT ”Time out!”260 GOTO 150270 REM *** Send Data to I2C ********************280 GOSUB 730 : REM Start condition290 BOUT=ADDR.AND.0FEH : REM Set write mode300 GOSUB 420 : REM Send address out310 BOUT=BYTEOUT320 GOSUB 420 : REM Send byte out 330 GOSUB 810 : REM Stop condition340 RETURN 350 REM *** Read Data from I2C ******************360 GOSUB 730 : REM Start condition 370 BOUT=ADDR.OR.1 : REM Set read mode380 GOSUB 420 : REM Send address out390 GOSUB 580 : REM read byte in 400 GOSUB 810 : REM Stop condition410 RETURN 420 REM === I2C Send Byte =======================430 BIT=80H : WERT=0.5440 FOR I=1 TO 8450 SDA=(BOUT.AND.BIT)*WERT : REM Set data to bit of byte460 BIT=BIT/2 : WERT=WERT+WERT : REM Set pointer to next bit470 GOSUB 860 : REM Make clock low480 PT1=PORT1.AND.DATL : PORT1=PT1.OR.SDA : REM Send bit out490 GOSUB 890 : REM Make clock high500 NEXT 510 REM —- Get ACK ——————————————-520 GOSUB 860 : REM Make clock low530 GOSUB 950 : REM Make data high540 GOSUB 890 : REM Make clock high

MICROPROCESSEURS

implémentationdu bus I2C

projets Elektor, peut être étendu plusfacilement que celui de la majorité deslangages évolués. L’auteur a donc puimplémenter les mêmes sous-pro-grammes sous forme d’instructionsBASIC MCS-51, ce qui permet d’at-teindre une fréquence d’horloge d’en-viron 40 kHz. L’utilisation des 4 nou-velles instructions : I2CPUT, I2CGET,I2CSTART et I2CSTOP constituepresque un jeu d’enfant et se trouve àl’adresse 40H de la partie « communi-cation avec un PCF8574 » du listage 2I2C Communication Test. Le programmeécrit les valeurs de 0 à 255 dans le com-posant E/S et les relit par l’intermé-diaire du bus I≈ C.Le listage du reste des instructionssource qui se trouve sur la disquetteEPS006006-1 ou dans la zone de télé-chargement du site Elektor (www.elek-tor.presse.fr) doit être assemblé dans unfichier HEX au moyen d’un pro-gramme d’assemblage croisé avant depouvoir être gravé dans une EPROMde 16 Ko avec l’assembleur BASICd’origine. Nous recommandons le pro-gramme d’assemblage croisé dudomaine public (Freeware) ASEM-51 deW. W. Heinz. L’EPROM peut aussi êtregravée directement sur la carte (onboard) lorsque le matériel du systèmeBASIC MCS-51 le permet. Il faut dis-poser alors du programme EPROM-MER.LIS. Ces deux programmes sontdisponibles gratuitement sur le siteInternet de l’ordinateur de commandeBASIC 80C32www.isis.de/members/~boehling. Ceux oucelles qui ne désirent pas affronterl’épreuve de la gravure d’EPROM peu-vent en commander un exemplairedéjà gravé (27C128 ou 27C256) conte-nant l’interpréteur BASIC étenduauprès des adresses habituelles; ellerépond à la désignation EPS 006505-1.

(000024)

Texte : Rolf GerstendorfTechnique : Karl Walraven

Bibliographie :Le manuel du bus I2CÉditions Publitronic/Elektor, 1995

75Elektor 2/2000

550 ACK=PORT1.AND.DATH : REM If data is high ACK failed560 GOSUB 860 : REM Make clock low570 RETURN 580 REM === I2C Get Byte ========================590 BYTEIN=0 : WERT=0.5600 FOR I=1 TO 8610 GOSUB 860 : REM Make clock low620 GOSUB 950 : REM Make data high630 GOSUB 890 : REM Make clock high640 SDA=(PORT1.AND.DATH)/WERT : REM Read data...650 BYTEIN=BYTEIN.OR.SDA : REM ...to bit of byte660 WERT=WERT+WERT : REM Set pointer to next bit670 NEXT 680 REM —- Do ACK ——————————————-690 GOSUB 860 : REM Make clock low700 GOSUB 920 : REM Make data low to set ACK oK710 GOSUB 890 : REM Make clock high720 RETURN 730 REM === I2C Start condition ================740 OUT=0 : REM Reset time out counter750 GOSUB 950 : REM Make data high760 GOSUB 890 : REM Make clock high770 IF OUT=3 THEN 800 : REM Wait 3 times for clock and data high 780 IF (PORT1.AND.60H)<>60H THEN OUT=OUT+1 : GOTO 770790 GOSUB 920 : REM Make data low (start condition) 800 RETURN 810 REM === I2C Stop condition =================820 GOSUB 920 : REM Make data low830 GOSUB 890 : REM Make clock high840 GOSUB 950 : REM Make data high850 RETURN 860 REM —- Set Port 1.5 (SCL) to Low —————870 PT1=PORT1.AND.CLKL : PORT1=PT1880 RETURN 890 REM —- Set Port 1.5 (SCL) to High ————-900 PT1=PORT1.OR.CLKH : PORT1=PT1910 RETURN 920 REM —- Set Port 1.6 (SDA) to Low —————930 PT1=PORT1.AND.DATL : PORT1=PT1940 RETURN 950 REM —- Set Port 1.6 (SDA) to High ————-960 PT1=PORT1.OR.DATH : PORT1=PT1970 RETURN

10 REM *******************************20 REM * I2C Communication Test *30 REM * (C) H.-J. Boehling 08.29.99 *40 REM ******************************* 50 ADDR=40H60 FOR I=0 TO 25570 PRINT I,80 REM ===== I2C Write ===============90 I2CSTART 100 IF DBY(18H)=0 I2CPUT (ADDR) ELSE 260110 IF DBY(18H)=0 I2CPUT (I) ELSE 260120 I2CSTOP 130 REM ===== I2C Read ================140 I2CSTART 150 IF DBY(18H)=0 I2CPUT (ADDR.OR.1) ELSE 260160 IF DBY(18H)=0 I2CGET B ELSE 260

170 PRINT B180 I2CSTOP 190 NEXT 200 REM ===== Wait for key ============210 K=GET : IF K>0 THEN 210220 PRINT ”Weiter?”230 K=GET : IF K=0 THEN 230240 GOTO 60250 REM ===== I2C Error ===============260 STATUS=DBY(18H)270 FOR J=1 TO 3 : I2CSTOP : NEXT 280 IF STATUS.AND.2=2 THEN PRINT ”Time out error!”290 IF STATUS.AND.4=4 THEN PRINT ”Busy error!”300 IF STATUS.AND.8=8 THEN PRINT ”No acknowlege error!”310 GOTO 90

1N4148

1N4148

3k

3

330Ω

000024 - 11

5V

P1.5P1.6

Figure 1. Connexionsde port vers les lignesde bus I2C.

Listage 1. I2C avec MCS-51-BASIC.

Listage 2. Utilisation des 4 nouvelles instructions.

1

Notre N64C2PC, permet, comme l’in-dique sa dénomination cryptique, laconnexion d’un contrôleur de Nin-tendo 64 (N64C), combinaison d’unmanche de commande et d’une sériede boutons, extrêmement populaire etd’une qualité inégalée et au prix éton-namment abordable, au port jeux d’unPC (d’où le 2PC qui se dit to PC) –ouencore à celui dont sont dotés la plupartdes cartes-son actuelles– sans qu’il nesoit nécessaire d’installer quelque piloteadditionnel que ce soit. Vous pourrez dèsalors, jouer à vos jeux préférés en utilisantun contrôleur N64 tombant parfaitementdans la main plutôt qu’en vous abîmantles doigts sur un clavier et/ou les poignets(Attention : MRI !) sur une souris de PC.

Ce que proposele contrôleur de N64...

On découvre au coeur dudit contrôleur,outre une série de commutateurs à filmplastique, une unité optique analogiqueprécise dont le fonctionnement estproche de celui d’une souris. L’ensemblede commande donne, sur interrogation,les états des commutateurs et de l’unité

analogique, la communication se fai-sant de façon bidirectionnelle par lebiais d’une ligne unique qui présente, aurepos, un niveau haut. Cela signifie quecette ligne sert tout autant à l’émissiond’instructions vers le contrôleur qu’à laréception des données requises en pro-venance de ce dernier. Il faut, pour quele contrôleur fournisse des données,commencer par lui envoyer un octet decommande. On peut, si la ligne de liai-son est libre, ce qui, nous le disions, setraduit par l’existence prolongée d’unniveau haut, procéder à la transmissionde l’octet de commande; le contrôleurrépond à l’émission d’un $01, en don-nant les informations d’état de tous lesboutons et la position du manche decommande analogique. La transmissiond’un bit requiert, tant à l’émission qu’à laréception, 4 µs, un niveau bas prenantla forme de 3 µs de niveau bas + 1 µsde niveau haut, un niveau haut le formatinverse à savoir 1 µs de niveau bas sui-vie de 3 µs de niveau haut. On peut, sil’on veut, lors de l’émission d’un octet decommande, retarder quelque peu laréponse, laisser le dernier bit transmis traî-ner quelque peu au niveau bas, le pro-

chain niveau haut se traduisant ensuitepar une réponse dans les 2 à 3 µs quisuivent. Cette durée de réponse n’estpas constante sachant que le contrôleuret notre N64C2PC, disposant chacun deleur horloge propre, travaillent en modeasynchrone. Un premier prototype àbase de 8051 cadencé à 12 MHz (cequi se traduit par une durée de cycle de1 µs) apparut ne pas être suffisammentrapide pour s’accommoder de la chro-nologie critique du contrôleur N64. Cene fut qu’avec un microcontrôleur dutype AT89C2051-24PC de l’écurie Atmel,cadencé à 24 MHz lui, que la commu-nication put se faire de façon stable.Puisque nous en sommes à parler dumatériel, dont on retrouve d’ailleurs leschéma en figure 1, on constate que lereste de l’électronique se résume àquelques résistances de limitation decourant et à une paire d’horloges. La rai-son en est simple : les seuls quartz24 MHz que l’on puisse trouver, sont , enrègle générale, des modèles à réso-nance-série. Un tel quartz, qui ne travaillepas à sa fréquence fondamentale, estinutilisable dans le présent montage ! Onpourra, s’il s’avérait impossible de mettrela main sur un quartz 24 MHz travaillantà sa fondamentale, utiliser un moduled’oscillateur à quartz 24 MHz (cf. la listedes composants).Revenons à la communication : laréponse à un $01 prend la forme d’unesérie de 4 octets constituant l’informationd’état du contrôleur, bit de poids fort(MSB = Most Significant Bit), commel’illustre le tableau 1, en premier.

... n’est pas ce qu’attend le port jeux

Une manette de jeu de PC dans saforme la plus simple ne requiert pasd’élément de commutation actif, les

X-2 - 2/2000 Elektor EXTRA ——————————————————— PC-PLUS

Des commandes par touches emberlificotées et un pilotage par sourisalambiqué peuvent faire perdre toute envie de jouer aux plus beauxjeux que connaisse le PC. L’idéal serait de combiner une manipulationévidente « à la Nintendo 64 » à la puissance du PC. Cet article nousmontre comment connecter un contrôleur N64 au port jeux d’un PC.

projet : Kurt Schuster

N64C2PC pilotez vos jeux PCpar manette de Nintendo 64

2 boutons prenant la forme de contactssimples vers la masse. Le port jeux du PC–ou la carte-son qui s’y substitue– pro-cède à une interrogation rudimentairepour savoir si lesdits boutons se trouventau niveau haut ou au niveau bas.Dans le cas d’une manette de com-mande analogique les choses se com-pliquent quelque peu. La manetteprend la forme physique d’une pairede potentiomètres (X et Y) dont la résis-tance est de l’ordre de 100 kΩ, cespotentiomètres se trouvant à la tensiond’alimentation. On charge, par le biaisde ces potentiomètres, des condensa-teurs se trouvant sur la carte, compo-sants montés de façon à déterminer lapseudo-période de multivibrateursmonostables dont ils font partie. Onpeut, à partir du rapport cyclique dumonostable, déterminer les positionsdes potentiomètres. On a, selon le cas,commande ou interrogation simulta-née de toutes les unités analogiques.Un port jeux de PC classique permet laconnexion de 2 manettes de jeu, cequi se traduit par la présence de4 entrées « numériques » et autantd’entrées analogiques. Il arrive, rare-ment d’ailleurs, qu’il ne soit possible dene brancher qu’une manette de jeu auport jeux de certains PC.

La conjonction de2 mondes

Il n’est pas sorcier de se rendre compteque ces 2 mondes ne sont pas faits, audépart, pour s’entendre sans autreforme de procès. L’interrogation desvaleurs d’état du contrôleur N64 et leurtraitement ne devrait pas poser de pro-blème, mais comment faire, sans avoirbesoin d’une électronique complexe,pour commander le port jeux du PC ?La commande des boutons peut, elle,se faire relativement facilement, vu qu’ilsuffit de placer, à intervalle régulier, lesbits importants du contrôleur N64 surdes lignes du microcontrôleur.Comment les choses doivent-elles sepasser dans le cas des valeurs numé-riques du manche de commande ana-logique ? Une astuce peut nous sortird’embarras : le microcontrôleur (de l’in-terface) attend un niveau bas decourte durée sur l’une des lignes despotentiomètres ce qui correspond à ladécharge cyclique du condensateurde la carte de port de jeux du PC. Àpartir de cet instant, le microcontrôleurforce toutes les lignes des potentio-mètres au niveau bas, ce qui bloquetoute charge des condensateurs etdémarre son temporisateur (timer).En fonction de la position du mancheanalogique du contrôleur N64 les dif-

férentes lignes des potentiomètres pas-sent l’une après l’autre, à un momentdonné, au niveau haut, le condensa-teur correspondant se chargeant rapi-dement par le biais de la sortie dumicrocontrôleur. Le multivibrateur cor-respondant donne la position imagi-naire du potentiomètre. On pourrait, àl’aide d’un oscilloscope, découvrir auxsorties correspondantes du AT89C2051,un signal MLI (à Modulation en Largeurd’Impulsion, PWM pour Pulse WidthModulation en anglais) d’une périodede quelque 840 µs et possédant unrapport cyclique variant, en fonctionde la position du potentiomètre, entre50 et 90%. La position médiane d’unpotentiomètre se traduit par un rapportcyclique de 70%.

Du détail au programme

Le programme, code-source compris,vous sera proposé sous peu, sur le siteInternet d’Elektor, à l’adresse www.elek-tor.presse.fr, dans la rubrique télé-chargements. Il vous est égalementpossible, si vous ne voulez pas vous frot-ter à la programmation du microcon-trôleur, de l’acheter tout programméauprès des adresses habituelles (dontPublitronic).Une fois la pile du microcontrôleur etles 2 temporisateurs initialisés, démar-rés et l’inhibition de leurs interruptionslevée, on se trouve au coeur de la

boucle principale du programme. Oncommence par fixer la chronologie dumanche A (unité analogique) dans laroutine prepajoyt et du manche B dansprepbjoyt (respectivement croix et bou-tons C). Les temporisateurs T0 et T1concernent la chronologie dumanche A, T0 pour l’axe des X, T1 pourcelui des Y. T0 se charge en outre dumode Timeout qui évite que le pro-

PC-PLUS —————————————————— Elektor EXTRA X-3 - 2/2000

K1

10

11

12

13

14

15

1

2

3

4

5

6

7

8

9

AT89C2051-24PC

P3.2

P3.3

P1.0

P1.1 P3.0

P3.1

P3.4

P3.5

IC1P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

P3.7

RST

X1 X2

20

10

12

13

14

15

16

17

18

19

11

5 4

2

3

1

6

7

8

9

R11

4x 10k

1

5 4 3 2

R8

220Ω

R7

220Ω

R6

220Ω

R5

220Ω

R4

470Ω

R3

470Ω

R2

470Ω

R1

470Ω

C5

100µ 16V

X1

24MHzC4

27p

C3

27p

C2

100n

joyax

joyay

joybx

joyby

joyb2

joyb1

joya2

joya1

C1

10µ16V

R9

10

k

R10

2k

2

D1

XO1

EN1 5

4

8

OSC

24MHz

5V*

voir texte*

002007 - 11

5V

vu du devant

Figure 1. Un microcontrôleur, quelques résistances et un oscillateur, voici la recette denotre « intercalaire ».

Tableau 1. Information d’étatsérielle du contrôleur N64.

Byte 1Bit 7 bouton ABit 6 bouton BBit 5 bouton ZBit 4 bouton StartBit 3 Up de la croixBit 2 Down de la croixBit 1 Left de la croixBit 0 Right de la croix

Byte 2Bit 7 inconnu, toujours à 0Bit 6 inconnu, toujours à 0Bit 5 bouton LBit 4 bouton RBit 3 Up du combiné CBit 2 Down du combiné CBit 1 Left du combiné CBit 0 Right du combiné C

Byte 3X du manche analogique

Byte 4Y du manche analogique

gramme ne se plante dans une boucled’interrogation sans fin en cas dedéconnexion brutale du contrôleur N64ou d’un mauvais contact (intermittent).Si cette situation se présentait, il devien-drait impossible de réinitialiser uncontrôleur N64 rebranché sans avoirauparavant procédé à une réinitialisa-tion manuelle du microcontrôleur.La totalité du programme est synchro-nisée avec l’ensemble le plus lent et lemoins flexible, le port jeu du PC. L’ins-truction jnb JOYAX,* attend la déchargedu condensateur. Lorsque la carte desports jeux a terminé ce processus, lemicrocontrôleur remet les 4 lignes despotentiomètres JOYAX/Y et JOYBX/Y auniveau bas et démarre les temporisa-teurs T0 et T1 pour JOYAX/Y qui sont attri-bués au manche analogique.À ce niveau aussi, ce sont des valeursanalogiques que l’on attend, de sortequ’en l’absence de temporisateursadditionnels dans le microcontrôleur,c’est la routine joybtiming qui prend lachronologie à son compte. Le port jeuxreçoit, au travers de quelques NOP (NoOPeration) et boucles imbriquées, lesinformations dont il a besoin.Les lignes JOYBX/Y sont remises auniveau haut après mesure du temps. Ilest également prévu, par le biais d’unelogique bouton-on/bouton-off simple,la définition d’un déplacement en Y quine connaît pas moins de 3 niveaux. Onpourra ainsi, s’il faut, pour un jeudonné, utiliser, respectivement la croixet les boutons du combiné C pour lesdéplacements avant et arrière, et parle biais du bouton L, opter pour l’un des3 modes de déplacement, à savoirlent, normal et rapide. La plage durapport cyclique passe ainsi d’un 58 à78% (valeur par défaut) à 48 à 88 et 40à 97% dans le dernier cas.On attend, une fois les 2 temporisateurs

logiciels écoulés, que les temporisa-teurs matériels T0 et T1 aient, par lebiais d’une interruption, fait leur travail.Lorsqu’ils sont eux-mêmes écoulés, laligne JOYAX/Y se retrouve au niveauhaut. Vu que le programme pourraitmaintenant se planter facilement dansla partie de programme qui suit en rai-son de la chronologie critique de cettedernière, l’interruption du temporisa-teur 0 se voit déclarée, dans la routineinittom, comme étant un signal dedétresse de dépassement de durée(time-out). Si le contrôleur N64 nerépond pas dans un intervalle detemps déterminé, le programme redé-marre. La routine sendbyteA envoiel’instruction $01-informations d’état,l’instruction qui suit, getbytes lit ensuiteles 4 octets d’état du contrôleur N64.Les octets 1 à 4 atterrissent dans lesregistres R4 à R7 pour un traitementultérieur. Avant la lecture de chaqueoctet on procède à une synchronisa-tion précise au niveau du bit, proces-sus suivi d’une nouvelle désactivationdu mode timeout du temporisateur 0,les valeurs tout juste saisies étantensuite traitées à l’intérieur de la routinehandlebuttons. On respecte lecâblage défini dans le tableau 2.Une action répétitive sur le bouton L setraduit par un changement, en3 étapes, de la vitesse de déplace-ment des boutons C/B-up/down. Unefois les boutons sont évalués et leursétats transmis au port jeux du PC, on aredémarrage de la boucle à son débutavec évaluation des valeurs de lamanette analogique prises en compte.La routine calctiming convertit et éche-lonne ces valeurs en cycles de pro-cesseur, pour les fournir aux temporisa-teurs matériels et logiciels au cours ducycle suivant, qui débute par ladécharge du condensateur.

Gam(in)e(rie)s

Il faut, pour pouvoir utiliser la nouvellemanette de jeux sous Win95/98 ladéclarer au système. Vous devriez trou-ver, dans le module Program/System,une icône représentant la manette dejeux. Il vous faudra, si tel n’est pas lecas, installer le module concernant lamanette de jeux (Joystick). La solutionla plus simple consiste à ajouter (Add)une nouvelle manette de jeux (à 4 axeset 4 boutons).On vérifie ensuite, par une calibration(Calibration), que les boutons Up/Downde la croix et les boutons correspon-dants du combiné C permettent, parune action sur le bouton L, de passer àla vitesse la plus élevée (reconnais-sable par le « débattement » maximumà l’écran). On sauvegarde ensuite

X-4 - 2/2000 Elektor EXTRA ——————————————————— PC-PLUS

002007-1

C1

C2

C3 C4

C5

D1

F3F4

IC1

K1

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

X1 XO

1

T

+0

02

00

7-1

00

20

07

-1

Figure 2. La platine de l’adaptateur N64/PC.

Liste des composants

Résistances :R1 à R4 = 470 ΩR5 à R8 = 220 ΩR9 = 10 kΩR10 = 2kΩ2R11 = réseau SIL de 4 x 10 kΩ

Condensateurs :C1 = 10 µF/16 V verticalC2 = 100 nFC3,C4 = 27 pF (*)C5 = 100 µF/16 V vertical

Semi-conducteurs :D1 = LED à faible courantIC1 = AT89C2051-24PC (programmé,

EPS006504-1)

Divers :K1 = embase sub D à 15 broches

encartable mâle en équerreX1 ou XO1 = quartz 24 M MHz

(fondamentale) ou oscillateur à quartz24 MHz (Seiko-Epson SG531P-24MHz) (*)

Figure 3. Voici comment contourner desproblèmes de connexion.

cette configuration en lui donnant ladénomination, par exemple, de N64. Ilarrive que l’on ait besoin de ce nompour la configuration de l’un ou l’autrejeu. Il suffit, pour jouer à des pro-grammes ludiques (jeux) d’une géné-ration plus ancienne et tournant sousDOS, de procéder à une calibration dela manette de jeux.Certains jeux, Unreal pour ne pas enciter, proposent des configurationscomplexes pour les manettes de jeuxet tiennent à ce qu’on les essaie. Dansd’autres cas, comme avec HalfLife, ona besoin d’un petit fichier de configu-ration de manette qui comporte leparamétrage défini. Le jeu cherche àtrouver ce fichier dans un sous-réper-toire donné (c:\Sierra\Half-Live\valve parexemple). Les fichiers Readme des jeuxdonnent un certain nombre d’informa-tions. Le tableau 3 vous propose 2fichiers de configuration typiques.

Conseils de réalisation

La réalisation du montage en s’aidantde la platine représentée en figure 2ne devrait pas poser de problème. Lemicrocontrôleur prend place sur unsupport de bonne qualité. Nous avonsévoqué, en début d’article, la possibi-lité de choix entre un quartz et un oscil-lateur à quartz intégré. Dans le cas del’utilisation d’un oscillateur intégré onn’implantera ni C3, ni C4 (ni X1 bienévidemment). On risque de rencontrerun problème d’approvisionnement auniveau des connecteurs (différents) descontrôleurs, les embases correspon-dantes étant difficiles à trouver. Il existe3 solutions envisageables : on récupèrecette embase sur une console N64défectueuse, on coupe le câble deliaison et on réalise un câble d’adap-tation doté d’un connecteur DIN ouMini-XLR à 3 broches (et de l’autre del’embase femelle correspondante). Onpeut aussi, comme l’illustre la figure 3,s’aider de 3 picots (diamètre 1,3 mm)auxquels on connecte une petite lon-gueur de câble trifilaire ce qui permetd’attaquer les entrées du AT89C2051.Il est recommandé, pour éviter touteinversion de polarité, de souder lespicots à un intervalle de 3,75 mm surun morceau de platine d’expérimenta-tion à pastilles et de les placer dansune contre-fiche (cf. la photo où nousavons utilisé un morceau de tube deplastique de 3/4”); il est impossible ainside se tromper lors de la prise del’adaptateur dans la ligne reliant lecontrôleur au PC tout en garantissantl’intégrité du câble d’origine.

(002007)

PC-PLUS —————————————————— Elektor EXTRA X-5 - 2/2000

Tableau 2. Câblage des signaux entre le N64 et le port jeux du PC.

contrôleur N64 Port de jeux du PC Ligne

bouton A bouton 1 du manche A JOYAB1bouton B bouton 2 du manche A JOYAB2bouton Z bouton 1 du manche B JOYBB1

bouton Start/R bouton 2 du manche B JOYBB2axe des X analogique X analogique du manche A JOYAAXaxe des Y analogique Y analogique du manche A JOYAAY

C/B left/right X analogique du manche B JOYBAXC/B up/down Y analogique du manche B JOYBAY

C = croix, B = boutons du combiné C

Tableau 3. 2 fichiers de configuration de manche de commande typiques.

// name joystick.cfg// analog turn and look version//// x analog turn left/right// y analog look up/down// C move left/right// C move forward/backward// configure in game: A alternate fire, B duck, Z fire, R/Start jump//joyname ”N64”joyadvanced 1joyadvaxisx 4joyadvaxisy 2joyadvaxisz 1joyadvaxisr 3joyadvaxisu 0joyadvaxisv 0joyforwardsensitivity -1.0joysidesensitivity 1.0joypitchsensitivity -1.0joyyawsensitivity -1.0joyforwardthreshold 0.1joysidethreshold 0.1joypitchthreshold 0.1joyyawthreshold 0.1joyadvancedupdate

Une seconde variante :

// name joystick.cfg// analog turn and move version//// x analog turn left/right// y analog move forward/backward// C look up/down// C move left/right// configure in game: A jump, B alternate fire, Z fire, R/Start duck//joyname ”N64”joyadvanced 1joyadvaxisx 4joyadvaxisy 1joyadvaxisz 2joyadvaxisr 3joyadvaxisu 0joyadvaxisv 0joyforwardsensitivity -1.0joysidesensitivity 1.0joypitchsensitivity 1.0joyyawsensitivity -1.0joyforwardthreshold 0.1joysidethreshold 0.1joypitchthreshold 0.1joyyawthreshold 0.1joyadvancedupdate

Sur le schéma de la figure 1, SW1 estun octuple interrupteur DIL (à16 broches donc) monté sur un supportDIL à 16 broches. Le point commun decet interrupteur est relié à la masse, lessorties commutables étant elles forcéesau +5 V par le biais d’un réseau SIL de8 résistances de 4kΩ7, R1. Ces lignesattaquent ensuite, après avoir égale-ment été dérivées vers K1, qui peutprendre la forme d’une double barrette

autosécable de 10 contacts ou d’uneembase DIL à 20 contacts, les entréesde IC1, un 74LS245, monté en tampon.Les sortie de IC1 sont reliés et à l’em-base K2 et aux entrées de IC2, unULN2801A, un circuit de commande à8 Darlington dotés de sorties à collec-teur ouvert. Les sorties de IC2 sont ame-nées sur l’embase K3.L’activation des contacts de SW1 se tra-duit par la présence de signaux de sor-

tie TTL sur K2, ou d’une sortie à collecteurouvert sur K3. Comme nous l’apprend letableau 1, les brochages des embasesK2 et K3 sont pratiquement identiques,à la présence près, sur K3, d’un contactsupplémentaire, la broche 11.Le ULN2801A, IC2, est doté de diodesde protection internes qui lui permet-tent la commande de charges induc-tives telles que des relais. Le point com-mun de ces diodes internes est amené

X-6 - 2/2000 Elektor EXTRA ——————————————————— PC-PLUS

Ce circuit doit sa naissance au besoin qu’eût, unjour, un concepteur d’appliquer manuellement descodes numériques à un circuit de conversion numé-rique/analogique. Cette électronique fut, ultérieure-ment, modifiée pour le test d’un interrupteur protégépar un opto-isolateur requérant un circuit de com-mande à transistors à collecteur ouvert. Le circuitprésenté ici combine les avantages de ces2 « ancêtres ».

projet : Adrian Grace

74LS245

IC1

3EN2

3EN1

11

12

13

14

15

16

17

18

19G3

2

3

4

7

8

9

5

6

1

1

2

2801A

IC2

VEE

+VS

ULN

11

12

13

14

15

16

17

18I1

I2

I3

I4

I5

I6

I7

I8

O1

O2

O3

O4

O5

O6

O7

O8

10

1

2

3

6

7

8

4

5

9

12345678

K2

910

K3

10 111 2 3 4 5 6 7 8 9

D1 D2 D3 D4 D5 D6 D7 D8

K1

10

11

12

13

14

15

16

17

18

19

20

1

2

3

4

5

6

7

8

9

R1 8x 4k7 1

2 3 4 5 6 7 8 9

SW1

K4

1

2

3

R2 8x 470Ω

1

2 3 4 5 6 7 8 9

16 15 14 13 12 11 10 9

1 2 3 4 5 6 7 8

002005 - 11

générateur d’octetspour la mise à l’épreuve de CNA et de commandes numériques

Figure 1. L’électronique du générateur d’octets.

à la broche 10 de IC2, ce point devantêtre relié à la tension d’alimentation dela charge. Cette approche renvoievers l’alimentation de la charge toutecrête inductive qui pourrait naître de lacommutation de la charge, proté-geant ainsi le reste de l’électronique.L’alimentation du circuit pourra se faire,en fonction de l’application, par lebiais des broches 1 (+5)V) et 2 (0 V) deK2 ou K3, ainsi que la broche 11 de K3.L’électronique centrale comporte unindicateur logique rudimentaire. En casde connexion à K1 du circuit à sur-veiller, la série de 8 LED connectéesaux sorties à collecteur ouvert de IC2visualisent l’état dudit circuit. L’em-base K4 permet de choisir le moded’alimentation des LED. On mettra un

cavalier entre les broches 2 et 3 pourune alimentation en +5 V et entre lesbroches 1 et 2 pour une alimentationpar source extérieure.

Extensions

Une extension simple permet à ce cir-cuit de travailler avec une source designal d’horloge externe, cf. le schémade la figure 2.Si l’on a sorti l’octuple interrupteur DILde son support (ou que l’on s’est assuréde l’ouverture de tous ses contacts), lecircuit principal pourra être piloté parune source d’horloge plutôt quemanuellement.La source d’horloge externe est reliéeau circuit principal par le biais d’uncâble en nappe à 20 conducteurs.L’auteur a trouvé plus simple d’utiliser unconnecteur à 2 rangées de10 contacts même si cela se traduitpar une doublure des 10 lignes designal, plutôt qu’un connecteur à une

rangée de 10 contacts. Le câble platest doté d’une paire de connecteurscorrespondant aux embases montéessur les 2 platines.La source d’horloge fait appel à un74HCT4040, IC1. Il s’agit de la versionà sortie TTL du 4040 CMOS standard.8 sorties séquentielles, Q0 à Q7 (CT0 àCT7), sont véhiculées par le câble plat,les sorties Q8 à Q11 (CT8 à CT11)n’étant pas utilisées. Le réseau R1/C1effectue une remise à zéro à la misesous tension de IC1, la diode D9 per-mettant la décharge de C1 une fois latension d’alimentation coupée.La source d’horloge (de niveau TTL) estbranchée entre les points GND etCLOCK. On pourra, en fonction de lafréquence requise, envisager deconnecter un morceau de câble aupoint CLOCK en tant que source d’hor-loge rustique fournissant un signaldérivé du secteur par induction.

(002005-1)

Texte : Jan Buiting

PC-PLUS —————————————————— Elektor EXTRA X-7 - 2/2000

Tableau 1. Brochage & fonctions

K1 broche # Fonction K2 broche # Fonction K3 broche # Fonction1,2 + 5 V 1 + 5 V 1 + 5 V3,4 DI-1 2 0 V 2 0 V5,6 DI-2 3 D0-1 3 D0-17,8 DI-3 4 D0-2 4 D0-29,10 DI-4 5 D0-3 5 D0-311,12 DI-5 6 D0-4 6 D0-413,14 DI-6 7 D0-5 7 D0-515,16 DI-7 8 D0-6 8 D0-617,18 DI-8 9 D0-7 9 D0-719,20 0 V 10 D0-8 10 D0-8

11 V+

CTR12

IC1

CT=0

4040HCT

10

11

13

15

14

12

11

10

CT74

16

4

2

3

5

6

7

9

1

+ 9

8

7

6

5

4

3

2

1

0

8

K5

10

11

12

13

14

15

16

17

18

19

20

1

2

3

4

5

6

7

8

9

C2

100n

C1

100n

D9

1N4148

R1

4k

7

CLOCK

002005 - 12

Figure 2. Extension d’horloge optionnelle à brancher sur l’embase K1 du générateur.

Liste des composants

Résistances :R1 = réseau SIL de 8 résistances de

4KΩ7R2 = réseau SIL de 8 résistances de

470 Ω

Semi-conducteurs :IC1 = 74LS245 ou 74HCT245IC2 = ULN2801A (Sprague)

Divers :D1 à D8 = LED à haut rendement5 x 2 mmK1 = embase femelle DIL à 2 rangées de10 contactsK2 = embase autosécable SIL à1 rangée de 10 contactsK3 = embase autosécable SIL à1 rangée de 11 contactsK4 = embase autosécable SIL à1 rangée de 3 contacts + cavaliersupport tulipe à 16 broches

Liste des composants de l’extensiond’horloge

Résistances :

R1 = 4kΩ7

Condensateurs :C1 = 100 nF

Semi-conducteurs :D9 = 1N4148IC1 = 74HCT4040

Divers :K5 = embase femelle DIL à 2 rangées de10 contacts K6a, K6b = câble en nappe à20 conducteurs doté de 2 connecteursmâles DIL à 2 rangées de 10 contacts(en fonction des embases sur les cartes)

Un clavier d’ordinateur personnel, dis-ponible partout et ce à un prixmodique, est d’un emploi familier et,lorsqu’il est relié directement à un sys-tème à microcontrôleur, présente enoutre l’avantage important de nenécessiter qu’un nombre restreint debroches d’accès aux ports par rapportà un clavier composé de touchesséparées. Un clavier d’ordinateur per-sonnel, qui fournit un signal sériel,constitue donc le complément idéal

d’un projet à base de microcontrôleur.La structure du signal d’un clavier d’or-dinateur personnel comporte bienentendu quelques particularités.La transmission sérielle des signaux dedonnées est assurée par deux liaisons.L’une d’elle (data) assure le transfert desdonnées proprement dites, l’autre(clock) celui de la fréquence d’hor-loge. Le protocole de transmission dedonnées sérielle, complexe, est décriten détail dans la section suivante.

Codes du clavierLe clavier le plusrépandu est le MF2 (cla-vier MultiFonctions ver-sion 2), développé àl’origine par IBM pour lesordinateurs des séries XT,AT et PS/2. Ce clavier estdevenu entre-temps unenorme industrielle ;presque tous les ordina-teurs personnels en sontéquipés. Le clavier lui-même contient uncontrôleur qui engendrele code et communiqueavec l’interface de l’or-dinateur personnel. Ils’agit généralementd’un microcontrôleurprogrammable par mas-quage. Les donnéessont transmises et reçuesselon le protocole IBM.Les instructions compor-tent, entre autres, lacommande des LED, letaux de répétition et letemps de réponse des

touches ainsi que le choix des codes descrutation dont le clavier MF2 offre troisversions. Le Set (de codes) 1 est utilisépar les ordinateurs compatibles PC/XT etPS/2-30 et le Set 2 par les ordinateurscompatibles AT et le reste des ordina-teurs compatibles PS/2. Le Set 3 estprévu pour les stations de travail etl’émulation de terminaux sur PC. Lepilote du clavier spécifique au pays dusystème d’exploitation « traduit » la pres-sion sur une touche par un caractère.

X-8 - 2/2000 Elektor EXTRA ——————————————————— PC-PLUS

...sans jamais le trouver, vous le découvrirez dans cette contribu-tion en exclusivité dans Elektor (où d’autre ?). La question ne sepose pas, elle s’impose : on a par exemple souvent recours à unclavier dans les applications sur microcontrôleur pour introduiredes commandes ou réagir à des événements. Mais pourquoiinvestir un grand effort dans la réalisation d’un clavier quand ondispose (à très bon compte) d’un clavier d’ordinateur personnel ?Il n’y a qu’un problème : il faut connaître exactement les signauxfournis par le clavier d’un ordinateur personnel.

codage du clavier PCtout ce que vous avez toujours voulu savoirsur les signaux d’un clavier de PC...

La pression sur une touche du clavierengendre un « code de travail » (makecode). Ce code correspond au codeclavier de la touche. La fonction derépétition envoie régulièrement le codede travail tant que la touche est enfon-cée. Le temps de réponse et le taux derépétition de cette fonction sont pro-grammables.Quand la touche est relâchée, le clavierengendre un « code de repos » (breakcode). Le set 3 de codes clavier ne com-porte pas de code de repos et la fonc-tion de répétition est désactivée. Aprèsune réinitialisation, le clavier choisit impli-citement le set 2 de codes clavier.Notons qu’un clavier d’ordinateur per-sonnel XT n’est pas programmable carle contrôleur interne n’est pas conçupour recevoir des données. Les claviersne sont devenus plus faciles à utiliserqu’avec l’introduction de l’ordinateurAT, car on peut adapter par logiciel leurcomportement aux besoins de l’utilisa-teur. La description qui suit se réfère àun clavier configuré en mode AT.

Émission et réception

La figure 1 représente le brochage des2 connecteurs de clavier les plus usités(connecteur DIN 5 broches et connec-teur PS/2 6 broches). La tension d’ali-mentation de 5V est fournie au clavierpar le PC, la consommation n’atteintqu’environ 200 mA.Le signal d’horloge, généralementdéfini par le clavier, se situe entre 10 et16,7 kHz. Les données envoyées secomposent d’un bit de départ (tou-jours 0), de 8 bits de données (bit 0 entête), d’un bit de parité et d’un bit d’ar-rêt (toujours 1). La figure 2 représentele chronodiagramme de la transmissionsérielle des données.Le contrôleur du clavier identifie latransmission de données par un appa-reil ou système externe (normalementl’ordinateur personnel) en direction duclavier au fait que la ligne de trans-mission de données de l’appareil (l’or-dinateur personnel) est mise à lamasse. Le clavier émet de ce fait unsignal d’horloge et attend les donnéesen synchronisme avec ce signal. Laliaison des données doit alors se trou-ver au niveau haut en tant que bit d’ar-rêt. Si cela n’est pas le cas, la synchro-nisation continue jusqu’à ce que cettecondition soit remplie. La com-mande FEH est ensuite émise commedemande d’un nouveau paquet dedonnées. Les données sont copiéeslorsque le flanc du signal de synchro-nisation croît. Après la reconnaissancedu bit d’arrêt, le contrôleur du clavierplace la ligne de transmission des don-

nées au niveau bas pour la durée d’unbit. Le clavier répond à chaque com-mande reçue (hormis ECHO et RESEND)au bout de 20 ms au plus par l’octet deconfirmation FAh (ACK).

Déroulement si le clavier transmetdes données en format AT à unappareil externe :Avant d’émettre des données, le claviercontrôle la liaison d’horloge et la liaisondes données pour voir si elles se trou-vent à la masse. Il est possible de blo-quer la communication en figeant laliaison d’horloge au niveau bas. Dansce cas, les données à transmettre fontl’objet d’une mémorisation interne. Cen’est que lorsque la liaison d’horloge etla ligne de transmission des donnéessont placées au niveau haut que le cla-

vier peut transmettre des données. Laligne de transmission des données estplacée au niveau bas (bit de départ) etun signal d’horloge est engendré. Lesdonnées sont valables lorsque le flancdu signal de synchronisation décroît etsont modifiées après le flanc croissantdu signal de synchronisation.

L’implémentation d’un clavier MF2 dansun système basé sur un microcontrôleurrequiert en outre les informations ci-dessous sur les commandes et lescodes de réponse principaux d’unclavier AT. Les codes du clavier, c’est-à-dire les codes émis selon le groupe decodes clavier quand une touche estpressée, sont présentés dans letableau.

PC-PLUS —————————————————— Elektor EXTRA X-9 - 2/2000

DATA

CLK

GND +5V

DIN 5

DATA

GND +5V

CLK

PS-2

43

1 2

65

2

31

54

002008 - 11

clavier clavier

1horloge clavier

données clavier

donnéesexternes

2 3 4 5 6 7 8 9 10 11

StartBit Stop

BitLSB MSB Parity

StartBit LSB MSB Parity Stop

Bit

clavier passe au niveau bas 002008 - 12

Figure 1. Attribution des broches d’un connecteur de clavier PC usuel (vue frontale).

Figure 2. Chronogramme de la transmission sérielle des données entre le clavier et le PC.

Commandes principales

SET/RESET MODE INDICATORS Code EDHCette instruction de 2 octets détermine le comportement des LED.Commande : EDHCommande : 0000 0xxxBit 0 : Scroll LockBit 1 : Num LockBit 2 : Caps Lock1 = allumer LED, 0 = éteindre LED

ÉCHO Code EEHLe clavier répond à cette commande par EEh ce qui permet de vérifier qu’il estprésent.

Exemple de programmationTerminons par un petit exemple indi-quant comment adresser un clavier ATà partir d’un système (microcontrôleur) :Plaçons le clavier sous une tensiond’alimentation de +5 V. Le contrôlerdes touches contenu dans le claviereffectue alors un auto-test. Le clavierenvoie AAH si l’auto-test a réussi.Le set de codes clavier est ensuitechoisi. L’exemple, basé sur le set 3,comporte les commandes CHOIX DECODES CLAVIER et le code clavier 3 :

1. Placer la liaison des données à la

masse2. Envoyer la commande F0H en syn-

chronisme avec l’horloge du clavier3. Le clavier confirme par FA H (ACK)4. Placer la liaison des données à la

masse5. Envoyer la commande 03 H en syn-

chronisme avec l’horloge du clavier6. Le clavier confirme par FA H (ACK)

Il est alors possible de presser unetouche dont le code, tiré du set 3de codes clavier (consulter letableau), sera reçu :

7. Presser la touche « G » du clavier8. Le clavier envoie le code 34 H

Un exemple d’application pratique d’unclavier de PC à un système basé sur unmicrocontrôleur est proposé ailleursdans ce magazine, sous le titre de« écriture lumineuse par clavier dePC ». Le clavier de PC sert à introduirele texte d’un affichage LED à écriturelumineuse. Le clavier est décodé par unmicrocontrôleur COP-8 et la transmissionà l’affichage à écriture lumineuse esteffectuée par une liaison à infrarouges.La photo au début de l’article montred’ailleurs la petite platine comportant ledécodeur du clavier et l’émetteur IR.

002008-1

CHOIX DE CODES CLAVIER Code F0HCes 2 octets de commande permettent de choisir legroupe de codes clavier. Après une réinitialisation, le cla-vier choisit implicitement le set 2 de codes clavier. Il estplus facile de se servir du set 3 pour les applications surmicrocontrôleur car presque aucune touche n’émet uncode d’interruption et la fonction de répétition n’est pasen service.Commande : F0HCommande : 0000 00xx01 = Code clavier 110 = Code clavier 211 = Code clavier 3

LECTURE DU CODE D’IDENTIFICATION Code F2HAprès cette commande, le clavier transmet 3 octets codéspar le fabricant.Premier octet = FAH (ACK)Second octet = xxxx xxxxTroisième octet = xxxx xxxx

VITESSE/DÉLAI DE RÉPÉTITION AUTOMATIQUE (TYPEMATIC RATE/DELAY) Code F3HCes deux octets ajustent le taux de répétition des toucheset le délai précédant le début de la répétition.Commande : F3HCommande : 0xxx xxxx

Bit 6 Bit 5 Délai (±20 %)0 0 150 ms0 1 500 ms1 0 750 ms1 1 1 s

Les bits 0 à 4 définissent la fréquence de répétition de 2 à30 Hz. Les 3 fréquences suivantes serviront d’exemple :

Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Fréquence (±20 %)0 0 0 0 0 30 Hz0 1 1 1 1 8 Hz1 1 1 1 1 2 Hz

CONFIGURER TOUTES LES TOUCHES Codes F7H/F8H/F9H/FAHCes commandes donnent aux touches les attributs sui-vants :

F7H Fonction de répétition pour toutes les touchesF8H Toutes les touches fournissent un code de travail

(make) et un code de repos (break)F9H Toutes les touches ne fournissent qu’un code de tra-

vailFAH Toutes les touches comportent la fonction de répéti-

tion et fournissent un code de travail ainsi qu’un codede repos

Ces commandes ne fonctionnent que si le set 3 de codesclavier a été sélectionné au préalable.

RÉINITIALISATION Code FFHCette commande restaure toutes les valeurs implicites dela configuration du clavier.

Principaux codes de retour

ABOUTISSEMENT DE BAT Code AAHCet octet est envoyé au système externe lors de l’applica-tion de la tension d’alimentation ou de la reconnaissancede la commande RÉINITIALISATION (FFH). Indique la réussitede l’auto-test.

RENVOI D’UN NACK (accusé de réception négatif) Code FEHCet octet est envoyé lors de la détection d’une erreur detransmission.

ACK (accusé de réception) Code FAHCet octet est envoyé à l’appareil externe en réponse àchaque commande reçue.

DÉPASSEMENT (OVERRUN) Code 00H/FFHToutes les touches pressées sont mémorisées dans le cla-vier jusqu’à ce que leurs codes puissent être transmis à l’ap-pareil externe par la liaison sérielle. Un dépassement decapacité mémoire provoque l’envoi de l’octet 00H dans lecas des codes clavier 2 et 3 et de l’octet FFH dans le casdu code clavier 1.

PRÉFIXE DU CODE DE REPOS Code F0HLe code de repos des codes clavier 2 est précédé de l’oc-tet F0H

X-10 - 2/2000 Elektor EXTRA ——————————————————— PC-PLUS

PC-PLUS —————————————————— Elektor EXTRA X-11 - 2/2000

Tableau de codes fournis par un clavier pour chacune des touches en fonction du set de Scan-Code.

Symbole Scan-Code-Set 1 Scan-Code-Set 2 Scan-Code-Set 3

Make Break Make Break Code Type

^ 29 A9 0E F0-0E 0E T

1 02 82 16 F0-16 16 T

2 03 83 1E F0-1E 1E T

3 04 84 26 F0-26 26 T

4 05 85 25 F0-25 25 T

5 06 86 2E F0-2E 2E T

6 07 87 36 F0-36 36 T

7 08 88 3D F0-3D 3D T

8 09 89 3E F0-3E 3E T

9 0A 8A 46 F0-46 46 T

0 0B 8B 45 F0-45 45 T

ß (-) 0C 8C 4E F0-4E 4E T

‘ (=) 0D 8D 55 F0-55 55 T

← Back 0E 8E 66 F0-66 66 T

|← →| Tab 0F 8F 0D F0-0D 0D T

Q 10 90 15 F0-15 15 T

W 11 91 1D F0-1D 1D T

E 12 92 24 F0-24 24 T

R 13 93 2D F0-2D 2D T

T 14 94 2C F0-2C 2C T

Z (Y) 15 95 35 F0-35 35 T

U 16 96 3C F0-3C 3C T

I 17 97 43 F0-43 43 T

O 18 98 44 F0-44 44 T

P 19 99 4D F0-4D 4D T

Ü ([) 1A 9A 54 F0-54 54 T

+ (]) 1B 9B 5B F0-5B 5B T

CapsLock 3A BA 58 F0-58 14 M,B

A 1E 9E 1C F0-1C 1C T

S 1F 9F 1B F0-1B 1B T

D 20 A0 23 F0-23 23 T

F 21 A1 2B F0-2B 2B T

G 22 A2 34 F0-34 34 T

H 23 A3 33 F0-33 33 T

J 24 A4 3B F0-3B 3B T

K 25 A5 42 F0-42 42 T

L 26 A6 4B F0-4B 4B T

Ö (;) 27 A7 4C F0-4C 4C T

Ä (,) 28 A8 52 F0-52 52 T

# 2B AB 5D F0-5D 53 T

Return 1C 9C 5A F0-5A 5A T

Shift l. 2A AA 12 F0-12 12 M,B

< 56 D6 61 F0-61 13 T

Y (Z) 2C AC 1A F0-1A 1A T

X 2D AD 22 F0-22 22 T

C 2E AE 21 F0-21 21 T

V 2F AF 2A F0-2A 2A T

B 30 B0 32 F0-32 32 T

N 31 B1 31 F0-31 31 T

M 32 B2 3A F0-3A 3A T

, 33 B3 41 F0-41 41 T

. 34 B4 49 F0-49 49 T

- (/) 35 B5 4A F0-4A 4A T

Shift r. 36 B6 59 F0-59 59 M,B

Strg l. 1D 9D 14 F0-14 11 M,B

Alt l. 38 B8 11 F0-11 19 M,B

Space 39 B9 29 F0-29 29 T

NumLock 45 C5 77 F0-77 76 M

7 Nb 47 C7 6C F0-6C 6C M

4 Nb 4B CB 6B F0-6B 6B M

1 Nb 4F CF 69 F0-69 69 M

/ Nb E0-35 E0-B5 E0-4A E0-F0-4A 77 M

8 Nb 48 C8 75 F0-75 75 M

5 Nb 4C CC 73 F0-73 73 M

2 Nb 50 D0 72 F0-72 72 M

0 Nb 52 D2 70 F0-70 70 M

* Nb 37 B7 7C F0-7C 7E M

9 Nb 49 C9 7D F0-7D 7D M

6 Nb 4D CD 74 F0-74 74 M

3 Nb 51 D1 7A F0-7A 7A M

Entf Nb 53 D3 71 F0-71 71 M

- Nb 4A CA 7B F0-7B 84 M

+ Nb 4E CE 79 F0-79 7C M

Enter E0-1C E0-9C E0-5A E0-F0-5A 79 T

Esc 01 01 76 F0-76 08 M

F1 3B BB 05 F0-05 07 M

F2 3C BC 06 F0-06 0F M

F3 3D BD 04 F0-04 17 M

F4 3E BE 0C F0-0C 1F M

F5 3F BF 03 F0-03 27 M

F6 40 C0 0B F0-0B 2F M

F7 41 C1 83 F0-83 37 M

F8 42 C2 0A F0-0A 3F M

F9 43 C3 01 F0-01 47 M

F10 44 C4 09 F0-09 AF M

F11 57 D7 78 F0-78 56 M

F12 58 D8 07 F0-07 5E M

PrtScE0-2A-E0-37

E0-B7-E0-AA

E0-12-E0-7C

E0-F0-7C-E0-F0-12

57 M

Scroll Lock 46 C6 7E F0-7E 5F M

PauseE1-1D-45-E1-9D-C5

no Break-code

E1-12-77-E1-F0-14-F0-77

no Break-code

62 M

Insert E0-52 E0-D2 E0-70 E0-F0-70 67 M

Delete E0-53 E0-D3 E0-71 E0-F0-71 64 T

← E0-4B E0-CB E0-6B E0-F0-6B 61 T

Home E0-47 E0-C7 E0-6C E0-F0-6C 6E M

End E0-4F E0-CF E0-69 E0-F0-69 65 M

↑ E0-48 E0-C8 E0-75 E0-F0-75 63 T

↓ E0-50 E0-D0 E0-72 E0-F0-72 60 T

PgUp E0-49 E0-C9 E0-7D E0-F0-7D 6F M

PgDn E0-51 E0-D1 E0-7A E0-F0-7A 6D M

→ E0-4D E0-CD E0-74 E0-F0-74 6A T

Nb = bloc numérique M = Make code lors de l'action sur une touche. B = Break code correspondant au relâchement d'une touche. T = Typematic fonction de répétition avec retard + Make

Symbole Scan-Code-Set 1 Scan-Code-Set 2 Scan-Code-Set 3

Make Break Make Break Kode Type

Les valeurs entre parenthèse () concernent un clavier international (UK + US).

Ce projet répond aux critères de réali-sation et de fonctionnement évoquésdans le sommaire de cet article. On asciemment renoncé à réaliser une zoned’affichage aussi grande que possibleoffrant une pléthore de modes dereprésentation, car cela nécessiteraitun microcontrôleur puissant ou un ordi-nateur monocarte. L’électronique quenous présentons est commandée parun microcontrôleur peu coûteux deNational Semiconductor comportant4K de ROM et n’est constituée que decomposants disponibles partout.Les dispositifs d’écriture lumineusesont habituellement munis d’un cla-vier intégré à l’unité d’affichage. Ladisposition des touches de ces cla-viers n’est généralement pas stan-dard, ce qui complique la program-mation. La matrice requiert en outreune platine de grande surface muniede touches coûteuses, ce qui va àl’encontre des objectifs d’un projetde réalisation « maison ». Le conceptdécrit ici est basé sur l’emploi d’unclavier pour PC AT qui envoie les don-nées à l’unité d’affichage par infra-rouges. L’emploi d’un clavier stan-dard de PC permet de programmercommodément l’écriture lumineuse àdistance (jusqu’à 10m).Il est possible de réutiliser l’émetteur etson clavier dans d’autres projets poursimplifier l’utilisation et la constructiond’appareils. Le décodage des infor-mations fournies par 128 touches ou

X-12 - 2/2000 Elektor EXTRA ——————————————————— PC-PLUS

Il existe actuellement une variété innombrable d’écri-tures lumineuses pour vitrines, panneaux indicateursà contenu variable ou tout simplement destinées àattirer l’attention. Les appareils se prêtant à cetemploi sont toutefois relativement coûteux et leurréalisation dépasse le niveau du simple bricolage. Leprojet d’écriture lumineuse présenté ici, aussi simpleà réaliser qu’à utiliser a, en outre, l’avantage d’êtrepeu coûteux.

écriture lumineuse par clavier de PCavec commande par microcontrôleur COP8

Caractéristiques techniquesMémorisation limitée à 508 caractères6 caractères visibles simultanément sur unematrice 7x35 de diodes luminescentesPortée de l’émetteur : environ 10 mAlimentation 12V de l’émetteur et du récepteur

moins ne nécessite qu’une broche d’unport du microcontrôleur du récepteur.

L’émetteur

Le microcontrôleur de l’émetteur dontle circuit est représenté dans la figure 1reçoit le signal sériel numérisé du cla-vier du PC et le convertit en un proto-cole envoyé par infrarouges à l’unitéd’affichage. L’évaluation du signal duclavier (son décodage) est décrit dansun article séparé de ce numéro. Lemicrocontrôleur de l’émetteur active legroupe 3 de codes clavier après uneréinitialisation, allume la LED de ver-rouillage du défilement (Scroll Lock) duclavier comme indicateur, bloque lecode de repos de la touche majusculeet transmet le code de la touche àl’unité d’affichage.Le cavalier JP1 (à la broche 7 du

PC-PLUS —————————————————— Elektor EXTRA X-13 - 2/2000

R4

1M

X1

10MHz

C1

33p

C2

33p

C4

220µ16V

7805

IC2

5V

R2

10

0k

R1

10Ω

R3

47

T1

ZTX603

D1

TSUS5201

IC32

1

3

ZSM560

DATA

5V

9V

9V

C3

100n

990090 - 12

2

3

1

5

4

K1

CLK

GND

+5V

43

1 2

65

DIN 5

1 DATA

3 GND

4 +5V

5 CLK

PS-2

COP8782

G7/CKO

G3/TIO

G0/INT

RESET

G5/SK

G4/SO

G6/SI

IC1

CKI

19

L0

L714

15

L1

L2

L310

L411

L613

16

20

G118

G2

17

L512

6

7

54

8

9

2

1

3

JP1

*

voir texte*

vu de l'arrière

vu de l'arrière

CLAVIER

CLAVIER

990090 - 13

bit de début 6 ms H,6 ms L

bit de donnée "1"2 ms H, 4 ms L

bit de donnée "0"2 ms H, 1 ms L

bit d'arrêt2 ms H

Figure 1. L’émetteur de saisie ne se compose que d’un microcontrôleur COP8 et d’unétage d’émission d’infrarouge.

Figure 2. Télégramme de l’émetteur qui modulera la porteuse de 36 kHz. Exemple : 88H.

Le microcontrôleurLe microcontrôleur de National Semiconductor utilisé dans les unités d’émission et deréception est parfait pour ce projet ; qu’on en juge :

EPROM OTP 4096 x 8 128 octets de RAM Temps de cycle de 1 µs à 10 MHz Temporisateur 16 bits à modes de fonctionnement Temporisateur à auto-rechargement,

Temporisateur compteur d’événements externes ou Temporisateur avec fonction de saisie

16 ports E/S dont 14 individuellement programmables comme entrée ou sortie Choix des broches de configuration Tri-State, push-pull ou pull-up Interface Microwire Sources d’interruptions : interruption externe à sélection du flanc, interruption par tem-

porisateur ou interruption par logiciel

Le type COP8782 a acquis entre-temps un successeur, le COP8SAC7, qui possède descaractéristiques plus poussées mais qui est compatible pour l’essentiel au niveau desbroches et des fonctions. Un kit d’initiation ne permettant malheureusement pas d’effec-tuer d’émulation en temps réel offre des possibilités de programmation pour OTP, sansoublier un aperçu exhaustif de cette famille de microcontrôleurs peu coûteux mais inté-ressants du point de vue technique. Dans le cas de projets plus complexes qui requièrentdes tests de comportement du contrôleur en temps réel, il faut se procurer un émulateursous peine de voir le projet dégénérer en une série interminable d’essais.

Liste des composants(Émetteur)

Résistances :R1 = 10 ΩR2 = 100 kΩR3 = 470 ΩR4 = 1 MΩ

Condensateurs :C1,C2 = 33 pFC3 = 100 nFC4 = 220 µF/16 V

Semi-conducteurs :D1 = TSUB8201 (Temic), alternative :SFH485, LD274T1 = ZTX603 (Zetex)IC1 = COP8782 (programméEPS996527-1)IC2 = 7805IC3 = ZSM560 (Zetex)

Divers :K1 = embase DIN 180° à 5 broches ouembase PS2X1 = quartz 10 MHz

contrôleur) permet de choisir entre unclavier QWERTY (implanté) ou QWERTZ(non implanté).La transmission des données est effec-tuée par modulation d’une porteuse de36 kHz pour éviter les perturbations. Lesdonnées envoyées se composent d’unbit de départ, de 8 bits de données,d’un bit de parité et d’un bit d’arrêt. Lemicrocontrôleur est cadencé à 10 MHz,ce qui est relativement rapide, pourpouvoir décoder correctement le fluxde données en provenance du clavieret générer par logiciel la porteuse de36 kHz destinée à la diode à rayonne-ment infrarouge. La figure 2 montrepar exemple un télégramme conte-nant le caractère 88H avant modula-tion. La diode à infrarouges D1 est atta-quée par un transistor Darlington T1. Lavaleur de la résistance R1 limitant lecourant est intentionnellement basse

pour augmenter la portée et une LED àforte intensité de rayonnement a étéchoisie dans le même but. Mais il estpossible d’utiliser en principe n’importequelle LED IR. La faible longueur despaquets de données, qui réduit letemps de commutation du transistor,l’empêche de s’échauffer. Le compo-sant de réinitialisation IC3 assure le bondémarrage du microcontrôleur. Laconsommation de l’émetteur, claviercompris, est d’environ 110 mA. On peutse dispenser de bloc d’alimentationsecteur vu le caractère sporadique del’utilisation de l’appareil et se rabattresur un bloc d’alimentation 9 V.

Le récepteur

Les informations transmises sont démo-dulées par le récepteur de signal IR,IC34 de la figure 3. Ce circuit intégré

X-14 - 2/2000 Elektor EXTRA ——————————————————— PC-PLUS

TFMS5360

IC342

3

1

MATRIX 3

IC14

14

1013

2

7

1

5

8

9

643

MATRIX 3

IC20

14

1013

2

7

1

5

8

9

643

MATRIX 3

IC17

14

1013

2

7

1

5

8

9

643

MATRIX 3

IC16

14

1013

2

7

1

5

8

9

643

MATRIX 3

IC15

14

1013

2

7

1

5

8

9

643

MATRIX 3

IC19

14

1013

2

7

1

5

8

9

643

MATRIX 3

IC18

14

1013

2

7

1

5

8

9

643

74164IC21

CLK CLR

121110 13

QA

QB

QC

QD

QE

QF

QG

QH

14

1

6543

2

A B

8 9

7 74164IC22

CLK CLR

121110 13

QA

QB

QC

QD

QE

QF

QG

QH

14

1

6543

2

A B

8 9

7 74164IC23

CLK CLR

121110 13Q

A

QB

QC

QD

QE

QF

QG

QH

14

1

6543

2

A B

8 9

7 74164IC24

CLK CLR

121110 13

QA

QB

QC

QD

QE

QF

QG

QH

14

1

6543

2

A B

8 9

7 74164IC25

CLK CLR

121110 13

QA

QB

QC

QD

QE

QF

QG

QH

14

1

6543

2

A B

8 9

7

93C66CB1

IC33

DO

DI

CS

SK

X

X2

1

4

8

5

3 6

7

R8

1M

X1

10MHz

C1

33p

C2

33p

T1R10

750Ω

R2

47Ω

T2R11

750Ω

R3

47Ω

T3R12

750Ω

R5

47Ω

T4R13

750Ω

R6

47Ω

T5R14

750Ω

R1

47Ω

T6R15

750Ω

R7

47Ω

T7R16

750Ω

R4

47Ω

R9

10

0k

R17

10

C4

100n

C5

10µ

B1

C6

2000µ

C7

2000µ

8x BC557

5V5V5V

5V

5V

5V5V5V5V5V

990090 - 11

1A

IC35

7805

IC272

1

3

ZSM560

COP8782C

G7/CKO

G3/TIO

G0/INTRESET

G5/SK

G4/SO

G6/SI

IC26

CKI

19

L0

L714

15

L1

L2

L310

L411

L613

16

20

G118

G2

17

L512

6

7

54

8

9 2

1

3

ULN2803

IC28

1112131415161718

I1 I2 I3 I4 I5 I6 I7 I8

O1 O2 O3 O4 O5 O6 O7 O8

10

1 2 3 6 7 84 5

9 ULN2803

IC29

1112131415161718

I1 I2 I3 I4 I5 I6 I7 I8

O1 O2 O3 O4 O5 O6 O7 O8

10

1 2 3 6 7 84 5

9 ULN2803

IC30

1112131415161718

I1 I2 I3 I4 I5 I6 I7 I8

O1 O2 O3 O4 O5 O6 O7 O8

10

1 2 3 6 7 84 5

9 ULN2803

IC31

1112131415161718

I1 I2 I3 I4 I5 I6 I7 I8

O1 O2 O3 O4 O5 O6 O7 O8

10

1 2 3 6 7 84 5

9 ULN2803

IC32

1112131415161718

I1 I2 I3 I4 I5 I6 I7 I8

O1 O2 O3 O4 O5 O6 O7 O8

10

1 2 3 6 7 84 5

9

Figure 3. Circuit du récepteur et de la matrice LED à 7 positions.

broche L6

broche L5

broche L4

broche L3

broche L2

broche L1

broche L0

42h

41h

49h

49h

66h

990090 - 14

Figure 4. Représentation du chiffre 3 surun élément matriciel 5x7

extrêmement sensible, conçu spéciale-ment pour la fréquence porteuse de36 kHz, se compose d’une photodiode,d’un étage amplificateur, d’un filtre etd’un démodulateur. R17 et C5 consti-tuent aussi un filtre passe-bas qui éli-mine les erreurs de réception. Le micro-contrôleur IC26 scrute le signal toutesles 400 µs et un algorithme spécial éli-mine les perturbations de courte durée(s’il en reste). La durée des impulsions etdes interruptions est estimée, puis toutesdeux sont comparées à des valeurs deréférence. Le logiciel calcule ensuite laparité du signal reçu et la compare àl’état du bit de parité de la transmission.Les caractères sont représentés par desmatrices de 7x5 LED qui sont, certes, unplus coûteuses que 35 diodes lumines-centes séparées, mais bien plus facilesà monter. Comme il n’est pas possiblede commander simultanément toutesles diodes luminescentes, il faut les allu-mer successivement par multiplexagede façon à ce que l’utilisateur nes’aperçoive de rien. Le nombre de LEDqui s’allument simultanément est limitéà 7, c’est-à-dire une colonne. L’inertiede notre vision nous fait voir une imageunique de 7× 35 = 245 points.Un cycle d’affichage débute par unniveau haut à l’entrée des données du

premier registre à décalage IC21 quidure le temps d’une impulsion d’hor-loge. Les 5 registres à décalage encascade sont cadencés simultané-ment par une interruption toutes les400 µs, de sorte que la colonne activese déploie de QA de IC21 à QH deIC25. IC28 à IC32 sont de simples cir-cuits intégrés d’attaque qui se contentde fournir un courant suffisant auxmatrices. Chaque colonne d’unematrice correspond à une cellule de laRAM du microcontrôleur. L’information àreprésenter dans la colonne adresséeapparaît pendant 400 µs aux sorties L0à L6 du microcontrôleur IC26. Les tran-sistors (T1 à T7) sont ici aussi intercaléscomme étages d’attaque. Le multi-plexage doit fournir un courant suffisantaux LED pour qu’elles soient assez lumi-neuses même de jour. Il faut doncabsolument utiliser des éléments matri-ciels dont l’intensité lumineuse dépasse3 mcd/20 mA.Les informations sur l’écriture lumineusesont mémorisées en permanence dansles 512 octets de l’EEPROM sérielle IC33.L’accès aux données est accéléré enadressant l’EEPROM par le bus Microwiredu microcontrôleur à une fréquenced’horloge de 500 kHz. Le clavier du PCfournit le code clavier d’une touche parl’entremise du signal à infrarouges ; lenombre 3 fournit par exemple lecode 26H. On fait appel à une table deconversion pour représenter le nombresur une matrice 7x5 comme dans lafigure 4 de sorte que, dans le cas duchiffre 3, on obtient les valeurs 42H, 41H,49H, 59H, 66H qui seront attribuées suc-cessivement aux colonnes. IC36 estaussi un ZSM560 comme dans le circuitde l’émetteur et produit une impulsionde réinitialisation du microcontrôleur lorsde la mise sous tension. Le récepteurconsomme environ 25 mA lorsque tousles affichages sont éteints et environ100 mA (moyenne) ou 200 mA (courantde pointe) en fonctionnement. Il estdonc préférable de renoncer à utiliserune batterie ou un petit accumulateurcomme alimentation. Mieux vaut recou-rir à un bloc d’alimentation secteur de

12 V ou, faute d’alimentation par leréseau, à un accumulateur au plombou un accumulateur de voiture de 12 V.

Utilisation

Le texte de l’écriture lumineuse saisi endernier apparaît automatiquement lorsde la mise sous tension. L’inscriptionELEKTOR est affichée si rien n’a encoreété programmé. Brancher alors un cla-vier de PC à l’émetteur avant de lemettre en marche. La LED de ver-rouillage du défilement s’allume si toutfonctionne correctement. L’affichageest effacé et le curseur apparaît lors-qu’on presse la touche F2. C’est lemoment d’introduire le texte. Presserbrièvement la touche des majusculespour passer des minuscules aux majus-cules. Le curseur changera de forme.Les saisies erronées peuvent être effa-cées jusqu’au premier caractère de lasurface d’affichage en se servant de latouche de rappel arrière (Backspace).Il n’est pas possible d’effacer les carac-tères précédents : il faut interrompre leprocessus d’introduction en cours enpressant ESC et recommencer en pres-sant F2. Toujours terminer la saisie parRETURN. L’écriture lumineuse se metautomatiquement en marche.Une fois le texte parcouru, l’heure estautomatiquement affichée pendantenviron 15 s. Mettre à l’heure en pres-sant F1. Si cet affichage alterné n’estpas désirable, on peut modifier la fonc-tionnalité en pressant F3/F4. Letableau 2 indique la correspondancedes touches du clavier. Comme lemicrocontrôleur ne possède pas d’hor-loge à quartz en temps réel 32 kHzséparée, le rythme élevé et la tolé-rance du quartz rendent la mesure dutemps relativement imprécise. Un petitcondensateur d’appoint remplaçantC1 y remédiera dans une certainemesure.

(990090)

Texte : Rolf Gerstendorf

PC-PLUS —————————————————— Elektor EXTRA X-15 - 2/2000

Fonctions des touches du clavier

Touche ESC : interruption de la saisieTouche F1 : introduction de l’heureTouche F2 : introduction de l’écriture lumineuseTouche F3 : écriture lumineuse activée ou désactivéeTouche F4 : heure activée ou désactivéeTouche SHIFT : commutation majuscules/minusculesTouche RETURN : fin d’un processus de saisie Mise en marche de l’écriture lumineuse.

Touche ← : effacement de caractères dans la fenêtre de saisie

Liste des composants(Récepteur)

Résistances :R1 à R7 = 47 ΩR8 = 1 MΩR9 = 100 kΩR10 à R16 = 750 ΩR17 = 100 Ω

Condensateurs :C1,C2 = 33 pFC4 = 100 nFC5 = 10 µF/16 VC6 = 2 000 µF/25 V (ou 2 200 µF/25 V)C7 = 2 000 µF/16 V(ou 2 200 µF/16 V)

Semi-conducteurs :B1 = pont B80C1000T1 à T7 = BC557IC14 à IC20 = OM1001C (Opto Devices)IC21 à IC25 = 74164IC26 = COP8782C (programmé EPS

996527-2)IC27 = ZSM560 (Zetex)IC28 à IC32 = ULN2803 (Sprague)IC33 = 93C66CB1 (ST-Microelectronics)IC34 = TFMS5360 (Temic), alternative :

TSOP1736IC35 = 7805

Divers:embase basse tensionradiateur pour IC35X1 = quartz 10 MHz

En effet on peut substituer, à cettetouche qui serait requise par la ligneATX Power Switch/Soft Power Switch(PWR), une électronique compacte etétonnamment simple, mais parfaite-ment testée sur différentes machines.On en retrouve le schéma ci-contre. Ladiode zener sert de protection tantcontre une surtension que contre uneinversion de polarité, sachant qu’elleproduit, en cas d’une inversion depolarité, une mise hors-fonction de l’ali-mentation ATX au bout de quelque 5 s,étant donné le courant de court-circuithors-normes de 1 A qui s’établit. Onpourrait, le cas échéant, opter pour uncondensateur de capacité plus faible,

mais il faudra, dans ce cas-là, vérifiersoi-même le fonctionnement de sonpropre montage. Il faudra, si l’on nedispose pas d’une documentationtechnique complète de sa carte-mère,s’assurer, à l’aide d’un testeur de conti-nuité, de l’identité du contact de

masse. La présence de la résistance(dessinée en pointillés) ne se justifie quesi l’on veut pouvoir redémarrer le PCdans les 10 s qui suivent son arrêt etque, partant, le condensateur puisse sedécharger suffisamment vite. Une résis-tance de 1 kΩ définit une constante detemps de l’ordre de 0,5 s. On pourraitégalement envisager, vu que lecondensateur remplit en outre unefonction de régulation de la tension,d’utiliser ce montage au cas où l’ali-mentation ATX se met hors-circuit sansqu’on ne le veuille et ceci en raison devariations de la tension véhiculées parla ligne PWR Supply On.

(002004)

X-16 - 2/2000 Elektor EXTRA ——————————————————— PC-PLUS

Le (petit) montage présenté ici permet, lors du montage,dans un boîtier AT, d’une alimentation ATX et d’une carte-mère AT dotée de connecteurs d’alimentation ATX et AT,d’économiser la mise en place d’un bouton additionnel.

projet : Rolf Freitag

1k

5V1470µ10V

002004 - 11

PWR_SW

GND

(PWR Supply On)

ersatz d’interrupteur ATX

AI D E S À L A R É A L I S AT I O NElektor ne fait pas la vente de composants. Ceux-ci sont normalement à trouver chezun revendeur de composants. Il nous a cependant semblé nécessaire, suite à de nom-breuses lettres, de résumer sur cette demi-page les informations cruciales pour la lec-ture et la compréhension des articles publiés dans Elektor. Nous utilisons, pour l'indi-cation des valeurs de composants, les préfixes (classiques) suivants :

E (exa) = 1018 a (atto) = 10-18

P (peta) = 1015 f (femto) = 10-15

T (tera) = 1012 p (pico) = 10-12

G (giga)= 109 n (nano) = 10-9

M (mega) = 106 µ (micro) = 10-6

k (kilo) = 103 m (milli) = 10-3

h (hecto) = 102 c (centi) = 10-2

da (deca) = 101 d (deci) = 10-1

Dans certains schémas et dans la liste des composants nous préférons utiliser, contrai-rement aux recommandations IEC et BS, le préfixe + symbole comme caractère déli-miteur en remplacement de la virgule. 2 exemples :

3kΩ9 = 3,9 kΩ 4µF7 = 4,7 µF

Sauf mention contraire, la tolérance des résistances est ±5% et leur wattage 1/3 à1/2 watt. La tension de service des condensateurs est de ≥ 50 V.

Lors de la mise en p lace des composants on commencera en règle généralepar l'implantation des composants passifs de la taille la plus faible, c'est-à-dire lesponts de câblage, les résistances et les petits condensateurs; on passera ensuite auxsupports pour circuits intégrés, aux relais, aux condensateurs de for te capacité telsque les électrolytiques et aux connecteurs et autres embases. Les semi-conducteursvulnérable et les circuits intégrés fragiles seront montés en dernier.

Le soudage. On utilisera un fer à souder d'une puissance de 15 à 30 W doté d'unepointe fine et de la soudure à âme de résine (60/40). On enfiche les connexions ducomposant concerné dans les orifices prévus à cette intention, on les replie légère-ment, on les coupe à la bonne longueur et on procède à leur soudure; on attend de 1à 2 secondes jusqu'à ce que l'alliage étain/plomb devienne liquide et vienne souderrelier la connexion au métal de l'orifice. On peut alors enlever le fer à souder. Attentionà éviter de surchauffer le composant en par ticulier les circuits intégrés et les semi-conducteurs. S'il faut désouder un composant on utilisera de préférence un fer à des-souder à pompe aspirante ou un appareil spécialement prévu à cet effet.

Le dépannage. Si le circuit ne fonctionne pas correctement, il faudra comparer soi-gneusement les composants mis en place sur la platine avec la sérigraphie de l'im-

plantation des composants et vérifier leurs caractéristiques à l'aide de la liste des com-posants. Tous les composants se trouvent-ils à leur place (celle prévue sur la sérigra-phie)? Les polarités des composants en ayant une a-t-elle bien été respectée. N'avez-vous pas fait d'erreur dans le branchement des lignes d'alimentation ? Toutes les sou-dures faites sont-elles « saines » ? N'avez-vous pas oublié de pont de câblage ? Si leschéma de la réalisation en cause compor te des valeurs de mesure, les élémentsmesurés sur le circuit imprimé correspondent-ils à ces valeurs – on peut accepter unedérive de ±10% des dites valeurs.

La valeur d'une résistance est indiquée à l'aide d'un code de couleurs qui défini commesuit :

couleur 1er chiffre 2ème chiffre facteur multiplicateur tolérancenoir -- 0 -- --marron 1 1 x101 ±1%rouge 2 2 x102 ±2%orange 3 3 x103 --jaune 4 4 x104 --vert 5 5 x105 ±0,5%bleu 6 6 x106 --violet 7 7 -- --gris 8 8 -- --blanc 9 9 -- --or -- -- x10-1 ±5%argent -- -- x10-2 ±10%rien -- -- -- ±20%

Exemples :marron-rouge-marron-or = 120 Ω, ±5%jaune-violet-orange-marron = 47 kΩ, ±1%

Il arrive que nous ayons à publier des corrections éventuelles concernant l'une oul'autre réalisation, ce que nous faisons dans les plus brefs délais dans l'un des maga-zines publiés ultérieurement. On notera que la rubrique « le coin du lecteur » contientde temps à autre des commentaires ou/et des informations additionnelles concer-nant des montages publiés dans un numéro précédent.