Elektor N°300 - Juin 2003 - doctsf

77

Transcript of Elektor N°300 - Juin 2003 - doctsf

Page 1: Elektor N°300 - Juin 2003 - doctsf
Page 2: Elektor N°300 - Juin 2003 - doctsf

MICROCONTRÔLEUR

8 Elektor 6/2003

Bien que le schéma de la carte soit pour lemoins touffu, le laboratoire d’Elektor a réussile tour de force à tout faire rentrer sur unecarte au format simple Europe (100 x160 mm), et en respectant les exigences depositionnement du connecteur PC/104 8 bits

et des trous de fixation associés.Chapeau bas, messieurs...Bien évidemment, étant donnée ladensité de la carte, l’utilisation d’uncircuit double face à trous métallisésest incontournable.

Réalisation

Nous vous en proposons le dessindes pistes et la sérigraphie de l’im-plantation des composants enfigure 1. L’installation des différents

CaDAU2ème partie : réalisation et utilisationBenoît Bouchez

Dans le premier article nous avons abordé l’aspect théorique de cettecarte de développement universelle à base de XA de Philips. Nous allonsdans le second terminer ce grand-œuvre en abordant les aspectsréalisation et logiciels.

Page 3: Elektor N°300 - Juin 2003 - doctsf

lez pas vous exposer à des problèmes à plusou moins long terme.

Les EPROM du moniteurLes EPROM 27C128, IC8 et IC9, comportentle programme de moniteur permettant ledéveloppement et la mise au point de pro-grammes personnels. Une remarque à leursujet. Ces circuits de mémoires sont dispo-nibles préprogrammées auprès des sourceshabituelles sous la dénomination EPS010103-21 et EPS010103-22 (il s’agit ici de 27C256 enraison des problèmes d’approvisionnementévoqués plus haut). Si vous souhaitez les pro-grammer vous-même, sachez qu’il vous fau-dra un outil de programmation d’EPROMdans lequel vous pourrez transférer chacundes fichiers HEX disponibles sur la disquetted’accompagnement EPS010103-11 en vued’une programmation de chacune des 2EPROM (nous vous les proposons en 4 ver-sions, EPS010103-21 et EPS010103-22,comme évoqué plus haut, au cas où vous tra-vailleriez avec des 27C256 et EPS010103-23et EPS010103-24 au cas où vous utiliseriezdes 27C128). Attention à bien choisir lesfichiers correspondant au type d’EPROM quevous utilisez et à bien identifier chacuned’entre elles pour éviter de vous tromper lorsde leur mise en place sur le circuit imprimé.Il est absolument impératif que IC8 et IC9

composants ne pose pas de réelsproblèmes, mais certains points,notamment le connecteur PC/104 sedoivent d’être clarifiés. Comme d’habitude, nous vousrecommandons très chaudementl’utilisation de supports pour les cir-cuits intégrés, surtout les mémoires.

Pour le XA en boîtier PLCC44, c’estmême une obligation, car nous nevoyons pas comment il serait pos-sible de souder ce composant à44 broches en carré aux 2 rangées depistes concentriques prévues sur laplatine. Utilisez des supports tuliped’excellente qualité, si vous ne vou-

MICROCONTRÔLEUR

96/2003 Elektor

BAT

1

C1

C2

C3

C4

C5

C6

C7

C8

C9

C10

C11

C12

C13

C14

C15

C16

C17

C18

C19

C20

C21

C22 C23

C24

C25

C26

C27

D1

D2

HH1

H2 H3

IC1

IC2

IC3

IC4

IC5

IC6

IC7

IC8

IC9

IC10

IC11

IC12

IC13IC14

IC15

IC16

IC17

IC18

JP1

JP2JP3

K1

K6

R1

R2

R3R4

R5

R6

S1

010103-1

CANL

CANH

TP1TP2

TP3TP4

-5V

-12V

+12V

T

+0

Figure 1a. Sérigraphie de l’implantation des composants de la platine dessinée à l’intention de CaDAU.

Liste des composants

Résistances :R1 à R3,R6 = 4kΩ7R4 = 1kΩ5R5 = 1kΩ

Condensateurs :C1 à C5,C10 à C21,C24 = 47 nFC6 à C9 =1 µF/25 V radialC22,C27 = 100 nFC23 = 2nF2C25 = 220 nFC26 = 10 µF/35 V radial

Semi-conducteurs :D1 = 1N4001 D2 = LED faible courant (low current)IC1 = PXAC37KBA (Philips, cf. texte)IC2,IC3 = 74HCT573IC4,IC5 = 74HCT245IC6 = 74HCT244IC7 = MAX232 (Maxim)

IC8,IC9 = 27C128 -90 ou C256 (si programmées EPS 010103-21 et010103-22)

IC10,IC11 = 62256 –55 (RAM)IC12 = GAL16V8 (programmée EPS

010103-31)IC13 = 74HCT14IC14 = ADM691AIC15 = PCA82C250TIC16 = L7805CPIC17 = bloc oscillateur 16 MHzIC18 = bloc oscillateur 1,843 2 MHz

Divers :BAT1 = pile au lithium 3V6JP1 à JP3 = cavalierK1 = embase Sub-D 9 points femelle

en équerre encartableK6 = connecteur PC104 à 1 rangée

de 64 contacts (cf. texte)S1 = octuple interrupteur DIPradiateur SK104 pour IC16

Page 4: Elektor N°300 - Juin 2003 - doctsf

soient du type 27C128 (et surtout pas des27128, faute de quoi la carte ne fonctionnerapas). De même, tous les circuits logiques doi-vent être du type 74HCT. Ne mélangez enaucun cas sur la carte des circuits logiquesde familles différentes.

Pour conclure, il nous faut revenir surun problème inattendu, qui a surgirécemment. Les mémoires de type27C128 sont de plus en plus difficilesà approvisionner. Heureusement, ilest possible de faire appel à des

27C256 (faciles à trouver et moinschères, c’est d’ailleurs le type decomposant que nous proposons)sans la moindre modification du cir-cuit imprimé. L’astuce est que labroche PGM de la 27C128 est rem-

MICROCONTRÔLEUR

10 Elektor 6/2003

(C) ELEKTOR010103-1

Figure 1b. Dessin des pistes de la platine dessinée à l’intention de CaDAU.

Page 5: Elektor N°300 - Juin 2003 - doctsf

rents de ce connecteur : non traversant et tra-versant. Le modèle traversant est en fait un connec-teur que l’on pourrait qualifier d’hermaphro-dite, car il est à la fois mâle et femelle. La par-tie femelle est normalement placée « côtécomposants ». Quant à la partie mâle, elle esten fait formée par des broches qui passent àtravers le circuit imprimé. Ces broches vien-nent s’encastrer dans la partie femelle duconnecteur de la carte située en dessous.Il existe une version simplifiée du connecteur,formée uniquement de la partie femelle, quel’on rencontre généralement sur les cartescontrôleurs (ou maîtres).Notre carte s’accommode aussi bien duconnecteur complet que du connecteur sim-plifié ; c’est l’approche que nous avons choisie(cf. la photo en tête d’article).La hauteur standard de la partie femelle estde 0,6 pouce (soit 1,52 cm). Avec les compo-sants installés sur supports, il est possible(mais rare) que la partie supérieure des com-posants dépasse cette limite, gênant alorsl’insertion des cartes d’extension sur la facesupérieure de la carte de développement.Dans ce cas, les cartes d’extension pourrontêtre installées de l’autre côté de la carte dedéveloppement, cette dernière étant placéedans ce cas “ en haut de la pile “.Il peut être difficile de se procurer desconnecteurs PC/104 traversants. Sachez qu’ilest alors possible d’utiliser de simples bar-

placée par la ligne A14 sur les27C256. Or, sur notre circuit, cettebroche est ramenée au +5V. Lors dela programmation de l’EPROM, il suf-fit de mettre les données dans lamémoire à partir de l’adresse $4000au lieu de $0000. La plupart des pro-grammateurs d’EPROM acceptent cegenre d’opération en direct. Sinon, ilsuffit de générer un fichier de 32 Koc-tets dont les 16 premiers Koctetscontiennent $FF, et les 16 Koctetssuivants contiennent l’image dumoniteur. Cette opération demandeà peine quelques secondes avec unéditeur hexadécimal.ATTENTION : pour l’instant, lemoniteur proposé par Elektor neconvient que pour les processeursXA-G3. Il n’est pas compatible avecles XA-C3. Une version spécifique aété développée et est en cours devalidation. Nous vous informeronsdès que possible de sa disponibilité.La GAL IC12 est elle aussi dispo-nible programmée en s’adressantaux adresses habituelles sous ladénomination EPS010103-31. Au casoù vous disposeriez d’un program-mateur de GAL, le fichier sourceGAL_IC12.SRC et le fichier compiléGAL_IC12.JED sont disponibles autéléchargement sur le site Internet

d’Elektor (www.elektor.fr) sous cettemême dénomination. Pour ceuxd’entre nos lecteurs qui n’ont pasaccès à Internet, nous les proposonségalement sur une disquette, dont ladénomination est cette foisEPS010103-11, disquette disponibleauprès des adresses habituelles.Le moniteur XA est configuré de tellefaçon à utiliser les cycles de bus lesplus lents, ce qui autorise l’utilisationde mémoires 250 ns. Rien ne vousempêche de modifier le contenu desregistres BTRH et BTRL par la suitepour accélérer la carte, si lesmémoires installées le permettent.Si vous décidez d’implanter unXA-C3 (avec le moniteur adéquat), ilvous faudra installer l’adaptateurIC15, le PCA82C250T, pour vousconnecter aux lignes du bus CAN. Lecircuit imprimé est prévu pour rece-voir une version DIL8. Cette versionétant très difficile à trouver, n’hésitezpas à vous rabattre sur une versionCMS SO8, installée sur un supportadaptateur.

PC/104Le point particulier le plus délicatconcerne le connecteur PC/104. Ilexiste en fait deux modèles diffé-

MICROCONTRÔLEUR

116/2003 Elektor

Figure 2. Photo de l’un de nos prototypes. Sur la version définitive, les boîtiers des oscillateurs seront moins serrés.

Page 6: Elektor N°300 - Juin 2003 - doctsf

rettes mâles HE10 au pas de 2,54 mm. Dansce cas, il faut les souder côté cuivre, de façonà pouvoir installer les cartes d’extension par-dessous de la carte de développement.Dans le cas d’un connecteur PC/104 non tra-versant, celui-ci s’installe de façon tout à faitclassique « côté composants ».

Quant à l’opération d’implantationdes composants proprement dite,elle n’appelle que peu de remarques.Tous les circuits intégrés sont orien-tés dans le même sens… L’espaceentre les supports où doivent se glis-ser les condensateurs est relative-ment restreint, il faudra partant uti-liser des condensateurs de faibleépaisseur, de préférence du typeSibatit. Les condensateurs C1 et C2sont à monter, comme l’illustre legros-plan de la figure 3, sur le des-sous de la platine, son « côté pistes »

Utilisation de la carteLes informations données précé-demment vous auront déjà permisde comprendre comment exploiter lacarte d’un point de vue matériel.Toutefois, un microcontrôleur sanslogiciel est réduit à l’impuissance, etavant d’écrire vos premiers pro-grammes autonomes pour le XA, ilvous faudra très probablementprendre vos marques.Pour faciliter cette étape indispen-sable, nous avons écrit un logicielmoniteur, simplifié mais puissant,qui permet de tester vos pro-grammes en condition réelle.Pour communiquer avec ce moniteur,il suffit de disposer d’un programme

émulateur de terminal, capable dedialoguer sur une ligne série à9 600 bauds, 8 bits de donnée, sansparité (Paramétrage de la transmis-sion : 1 bit d’arrêt, no flow control).Un logiciel comme Hyperterminal ouProcomm fera parfaitement l’affaire(connecter la carte à un port COMlibre par le biais d’un câble RS-232sans interversion de ligne, un 1 : 1).Après avoir vérifié une dernière foisvotre carte, vous pourrez la relier auport série du PC émulateur de termi-nal, et la mettre sous tension. Vousdevriez alors voir apparaître surl’écran un message de bienvenue(*** XA-G3 Monitor V1.03 *** etc),suivi d’un signe d’invite (« > »). Lacarte n’attend alors plus que vosordres.Les commandes du moniteur sontpeu nombreuses et ne devraient pasposer de problèmes aux lecteurshabitués aux développements surcartes à microprocesseur. Elles sontreprises dans le tableau 1.

Programmation en assembleur XAAvoir une carte performante etflexible, c’est bien, mais pouvoir l’uti-liser, c’est mieux. L’un des points lesplus redoutés, tant par les amateursque par les professionnels, lors duchoix d’un nouveau microcontrôleur,est l’achat des outils nécessaires,tant logiciels que matériels.Du point de vue matériel, la carteprésentée ici montre qu’il est pos-sible d’atteindre des possibilités dedéveloppement très souples, sansnécessiter de gros investissements(pour avoir une meilleure flexibilité,il faudrait faire appel à des émula-teurs ICE, dont le prix est considéra-blement plus élevé).Au niveau logiciel, le prix deschaînes de développement (assem-bleur/compilateur/éditeur de liens/gestionnaire de librairies/ simula-teur) peut atteindre des sommetsvertigineux. Pour notre carte, il n’enest rien, du moins tant que vousprogrammerez en assembleur, carPhilips propose une chaîne de déve-loppement semi-professionnelle,pour un prix on ne peut plusmodique : 0 Euros !Cette chaîne de développement,appelée XADEV, comprend unassembleur absolu, un simulateur et

MICROCONTRÔLEUR

12 Elektor 6/2003

Figure 4. Cette recopie d’écran vous montre ce à quoi vous pouvez vous attendre avecl’environnement de développement XADEV.

Figure 3. Gros-plan sur l’implantation descondensateurs C1 et C2 sur le dessous de laplatine.

Page 7: Elektor N°300 - Juin 2003 - doctsf

assembleur mises à disposition, afin de com-prendre comment fonctionne le pavé.À ce sujet, commencez par lire (et com-prendre !) le programme SKEL.ASM, livréavec l’environnement XADEV, qui contient lesquelette minimal d’un programme Assem-bleur XA. N’oubliez pas que les XA n’ont plusgrand chose en commun avec leurs cousins8 bits, et qu’il faut prendre de nouvelles habi-tudes de programmation, faute de quoi lessurprises sont nombreuses.

(010103-2)

un environnement de développe-ment, le tout d’excellente qualité. Celogiciel n’est cependant plus sup-porté par Philips (car écrit à l’originepour Windows 3.1), mais il fonc-tionne toujours parfaitement sous lesversions 32 bits actuelles (au moins95 et 98, nous n’avons pas vérifiésous NT4, XP et 2000).Nous avons obtenu de Philips ledroit tacite -après des contacts répé-tés ils ne nous ont pas interdit de lefaire et comme leur disquette origi-nelle comporte explicitement la men-tion d’une autorisation de recopie-de diffuser cet outil sur une dis-quette d’accompagnement, mais ilest également disponible en télé-chargement libre sur les sites Inter-net de l’auteur et d’Elektor(www.elektor.fr). Ce programme,XADEV.zip, se trouve sous formecomprimée sur la disquette ; il fau-dra partant le décomprimer sur unedisquette ou dans un sous-répertoirepour pouvoir l’installer.Seul reproche que nous aurions pufaire au sujet de cet environnementde développement : aucun manuelutilisateur n’est joint au logiciel, laseule assistance disponible étantl’aide en ligne (et elle est un peulégère...). Heureusement, l’auteur aretrouvé un manuel écrit par l’un desingénieurs d’applications de chezPhilips Semiconductors, manuel qu’ila scanné et met à votre dispositionau téléchargement depuis son site(http://benoit.bouchez.free.fr) sous ladénomination XADEV_manual.zip.Comme le montre la copie d’écran dela figure 4, XADEV n’a rien à envieraux environnements de développe-ment actuels, malgré son âge : unefois le programme source écrit dansl’éditeur intégré, l’assemblage se faiten cliquant sur un bouton dans labarre de menu. Le programme peutalors être exécuté dans le simulateurinterne, en continu, pas à pas (répé-titif ou classique), les variables etregistres peuvent être modifiés àvolonté... Bref, rien que du bon !À noter ici une différence importanteentre les XA et leurs cousins 8 bits : iln’y a pas de distinction entre la RAMinterne au circuit et la RAM externe.Sur les XA, toute la RAM est consi-dérée comme unifiée entre l’adresse0000HEX et FFFFHEX. La RAMinterne du processeur commencetoujours à l’adresse 0000HEX (atten-

tion, autre différence : les registresR0 à R15 résident dans une zonespécifique, différenciée de la RAM !).Selon les versions, cette RAMs’étend sur 512 octets à 1 Koctet.L’activation des mémoires externesse fait automatiquement lorsque leprogramme accède à une adressesupérieure à la limite de la mémoireinterne.Une autre remarque importanteconcerne l’accès aux SFR (SpecialFunction Register) : les commandesdu moniteur ne permettent ni de lire,ni d’écrire le contenu de cesregistres. En effet, l’accès à cesregistres nécessite l’utilisation d’unmode d’adressage spécifique, incom-patible avec l’adressage indexé uti-lisé dans les instructions D et M dumoniteur.Si vous avez besoin de déverminerun programme au niveau de l’accèsà un de ces registres, vous devrezécrire dans votre programme uneinstruction MOV spécifiquementadressée au SFR visé, ce qui est loind’être complexe, rassurez-vous.Une fois le programme testé, onpourra récupérer le fichier HEXgénéré par XADEV et le téléchargerdans la carte de développement, viaun simple logiciel d’émulation de ter-minal (Hyperterminal ou Procommpar exemple), configuré pour destéléchargements en ASCII.Bien entendu, rien ne vous empêchepar la suite d’acquérir des outils dedéveloppement plus complexes(comme un assembleur relatif et/ouun compilateur C).Avant de vous attaquer à l’écriturede votre premier programme en XA,nous ne saurions trop vous recom-mander de télécharger sur le site dePhilips (http://www.philips-semi-conductors.com, rubrique Microcon-trôleurs/XA) les différentes sources

MICROCONTRÔLEUR

136/2003 Elektor

Tableau 1. Commandes du moniteur XA

Commande Fonction? Affiche l’aide sur les commandesP Affiche le contenu de la mémoire ProgrammeD Affiche le contenu de la mémoire DonnéesM Modification de la valeur d’un oude plusieurs octetsG Appel d’un programme utilisateurH Téléchargement d’un fichier HEX

Tableau 2. Contenu de la disquette EPS010103-11

– GAL_IC12.SRC : Fichier source de la GAL– GAL_IC12.JED : fichier compilé– Mon_g3.asm : fichier source du moniteur– Mon_g3.hex : fichier assemblé du moni-

teur– 010103-21.hex : contenu de l’EPROM IC8

(27C256)– 010103-22.hex : contenu de l’EPROM IC9

(27C256)– 010103-23.hex : contenu de l’EPROM IC8

(27C128)– 010103-24.hex : contenu de l’EPROM IC9

(27C128)– XADEV.zip :Logiciel d’environnement

XADEV à décomprimer

Liens InternetSite de l’auteur :http://benoit.bouchez.free.fr

Philips : www.philips-semiconductors.com

Raisonance : version de démo pour le XAwww.raisonance.com/download/index.php

Page 8: Elektor N°300 - Juin 2003 - doctsf

PC&AUDIO

14 Elektor 6/2003

Il est, dans bien des cas, problématique d’in-tégrer une carte-son externe à un systèmeexistant. Il faut, si l’on veut transférer numéri-quement des données audio vers le PC, que lacarte-son soit dotée d’une interface S/PDIF, vuque sinon la seule ressource dont on disposeest d’effectuer de « l’audiograbbing » à partir

du lecteur de CD-ROM. Pire encore, sil’on dispose d’un ordinateur portableet que l’on tient à effectuer des enre-gistrements, il faudra se contenter del’entrée microphone sans prétentionou se payer une carte-son PCMCIAau prix astronomique.

Le bus USB (Universal Serial Bus)présent sur tous les PC récents estune interface extrêmement puis-sante à laquelle on pourra égalementfaire appel pour la transmission designaux audio. La réalisation objetde cet article est une carte-son dehaut niveau pouvant travailler enmode full duplex, et tournant sousnombre de systèmes d’exploitation,Windows (à partir deWindows 98SE), MacOS ou mêmeLinux. Avec son UDA1335/1325 Phi-lips propose un circuit intégré quiintègre, outre cette fameuse inter-face USB, également un convertis-seur analogique/numérique (CAN),son complément, un convertisseurnumérique/analogique (CNA), uneinterface I2S sans oublier, bienentendu un microcontrôleur compa-tible 8052. Il existe plusieurs ver-sions de ce composant : UDA1335(sans ROM), UDA1325 (progiciel(firmware) N106), UDA1325 (progi-ciel N104). Sachant que dans le casprésent le microcontrôleur est tou-jours utilisé en mode sans ROM(EA=0), la variante de progiciel uti-

Enregistreur audioUSBCarte-son complète pour le bus sériel universel

Projet : Genio Kronauer et Thomas Zepf

Nombre de cartes-mères actuelles ne possèdent, en raison de leurcompacité, qu’un nombre restreint de connecteurs d’extension destinésà recevoir une carte ou une autre. Les puces-son qu’elles intègrent neconviennent guère, en règle générale, aux enregistrements de qualité. Lasolution à cette situation est une carte-son externe reliée au système parle biais du port USB.

Page 9: Elektor N°300 - Juin 2003 - doctsf

resse sachent que l’on peut trouver la fiche decaractéristiques, il serait plus exact de parlerde recueil de caractéristiques vu le volume dela documentation en question, à l’adresseInternet ci-après :www.semiconductors.philips.com/acro-bat/datasheets/UDA1325 N 1.pdfainsi que /TDA1315H 5.pdf pour le secondcomposant.La source du signal d’horloge est un quartzde 48 MHz, ce qui se traduit par une horlogeCPU de 24 MHz. Le réseau LC constitué parC32 et L1 force le quartz à osciller à 48 MHzet non pas à 16 MHz. Le condensateur pris àla broche VREFDA (broche 40) du UDA1325remplit une double fonction : d’une part ilassure une impulsion de remise à zéro (reset)correcte pour le microcontrôleur et de l’autrefournit une tension de référence à l’intentiondu CNA interne. Le transistor T2 assure lacommutation de la résistance R10 prise dansla ligne D+ de la liaison USB, ce qui permetà l’hôte de détecter une connexion USB etl’amène à tenter d’effectuer une initialisationdu périphérique.L’alimentation de notre carte peut se faire toutaussi bien par le biais du port USB que defaçon autonome. Comme les paramètres deconfiguration diffèrent selon le mode adopté, lecavalier JP1 permet une commutation de laligne d’adresse A14 (opération qui se feraimpérativement montage hors-tension !).

Le progiciel (firmware)Le progiciel proposé par Philips ne supporte niune commutation de la source de signal àenregistrer ni le rehaussement de la sensibi-lité d’entrée en mode de fonctionnement ana-logique. Ces « déficiences » constituèrent uneraison supplémentaire de développement

lisée n’a pas la moindre importance.Nous avons opté à dessein pour unmode de fonctionnement sans ROM(ROM-less) parce que les progicielsdes versions à ROM sont tellementverminés (pleins de bugs) qu’ils nesont pas utilisables si l’on veut êtreassuré d’un fonctionnement correctdu système. Comme les auteurs dece montage se sont intéressés dès lamise sur le marché de ce composant,ils ont pu identifier, laborieusementil est vrai, les nombreux bugs et par-tant pu les contourner. Le résultat deces efforts vaut la peine : cet enre-gistreur audio USB, alias carte-sonUSB, fonctionne de façon bien plusstable que la totalité des cartes-sonUSB du commerce basées elles aussisur le UDA1325.Nous utilisons, pour la conversiondes données S/PDIF vers I2S, leTDA1315H sachant que ce derniercomposant possède déjà 2 entréesS/PDIF. Il est possible, par son biais,de réaliser une commutation entreS/PDIF-RCA (Cinch) et TosLink(optique) sans avoir besoin de péri-phérique additionnel, opérationconfiée directement au UDA1325. Ildevient possible, dans ces condi-tions, de connecter non seulementles lecteurs de CD les plus modernesdotés d’une sortie optique, maisaussi les lecteurs plus anciens necomportant aucune autre sortiequ’une sortie Cinch. Une EPROMépaulée par son incontournable ver-rou d’adresse, sans oublier l’indis-pensable régulateur de tension 3,3 Vchargé de l’alimentation duUDA1325 complètent le tableau (dechasse) électronique.

Le schémaLe récepteur S/PDIF est activé enmode matériel (hardware mode). Ilreçoit ses données directement deK1 (Cinch) ou de IC1 (Toslink), lignesde signal qui attaquent directement,comme l’illustre le schéma de lafigure 1, selon le cas, soit la brocheIECIN0 soit la broche IECIN1.En cas de présence d’un signal surl’une des 2 entrées, la PLL (PhaseLocked Loop = boucle à verrouillagede phase) du récepteur essaie de severrouiller sur le dit signal. Le niveauappliqué à la broche 7 de IC2, IEC-SEL, détermine l’entrée utilisée.Après verrouillage de la PLL, les

3 LED D1 à D3 visualisent le tauxd’échantillonnage (sample rate). Ondispose alors à la sortie I2S du signalaudio numérique qui arrive auUDA1325 par le biais des bornes DA,WS et BCK de ce dernier. Le compo-sant met également à disposition,par le biais des condensateurs dedécouplage C28 et C29, une entréeanalogique, sous la forme des lignesVINR et VINL. La sélection de l’en-trée se fait par l’intermédiaire dupilote d’enregistrement de Windows.Nous y reviendrons un peu plus loin.Les données d’enregistrement d’au-dio numérique arrivent, par le biaisdu canal Wave In, au PC au traversdu port USB, les données de repro-duction audio étant elles transmisesdu PC vers le canal Wave Out. Leréglage du volume se fait à l’aide duDSP dont est doté le UDA1325.Après une conversionnumérique/analogique on dispose,au travers des condensateurs dedécouplage C37 et C38, sur K4, dusignal à un niveau de 0 dBu. Onpourra brancher à cet endroit uneentrée Ligne (Line) mais aussi uncasque d’écoute à haute impédanceprovenant, par exemple, d’un bala-deur CD (Discman).Le bus d’adresses/de données de laCPU 80C52 intégrée dans leUDA1325 est, comme cela est le casavec de type d’unités centrales inté-grées, relié directement, par le biaisdu verrou IC4, à l’EPROM IC5. PSENest le signal d’échantillonnage(strobe) de lecture à destination del’EPROM. Le signal ALE différencieles données des adresses au niveaude P0. Nous avons forcé la ligned’adresse A15 à la tension d’alimen-tation positive de manière à pouvoirutiliser, pour l’EPROM, tout autantune 27C256 qu’une 27C512. Il faudraveiller, en cas d’utilisation d’une27C512, à ce que le code soit « miro-risé » (se retrouve en double) àcompter de l’adresse 0x8000. Leslignes RD et WR n’étant pas acces-sibles de l’extérieur, il est totalementimpossible de connecter des compo-sants externes au bus de la CPU. Aucoeur de la puce, les signaux RD etWR servent à l’adressage de diffé-rents registres matériels. Il ne nousparaît pas judicieux d’entrer ici dansle détail du fonctionnement internede ce composant complexe qu’est leUDA1325. Que ceux que le sujet inté-

PC&AUDIO

156/2003 Elektor

Caractéristiques :– Compatible avec USB Spec à partir de 1.0– Compatible avec USB Audio Spec à partir

de 1.0– Entrée analogique (ajustable de –3

à+27 dB)– Entrée S/PDIF Cinch coaxiale– Entrée numérique optique (TosLink)– Sortie analogique (plage de 60 dB)– Taux d’échantillonnage en analogique : 8 à

48 kHz– Taux d’échantillonnage en numérique : 32,

44,1 et 48 kHz– Possibilité de fonctionnement en mode full

duplex– Supporte fonctionnement Plug&Play

Page 10: Elektor N°300 - Juin 2003 - doctsf

PC&AUDIO

16 Elektor 6/2003

74HC

573

IC4

12 13 14 15 16 17 18

19

EN

11C

1

1D234789 56

1

AD

0

AD

1

AD

2

AD

3

AD

4

AD

5

AD

6

AD

7

AD

0

AD

1

AD

2

AD

3

AD

4

AD

5

AD

6

AD

7

AD

0

AD

1

AD

2

AD

3

AD

4

AD

5

AD

6

AD

7

A0A1

A2

A3

A4

A5

A6

A7

A8

A9

A10

A11

A12

A13

A0

A1

A2

A3

A4

A5

A6

A7

A8

A9

A10

A11

A12

A13

C42

100n +5

V

X1

48MH

zC

31

10p

C30

10p

C32

10nL1

1µH5

C35

100n

C33

100n

C36

10µ2

5V

C34

47µ2

5V

R24

10k

R25

10k R261

00Ω

R271

00Ω

C37

47µ

25

V

C38

47µ

25

V

C39

10p

C40

10p

K4

K3

C28

47µ

25

V

C29

47µ

25

V

R17

220k

R18

220k

C14

100n

C13

10µ2

5V

R19

1 Ω

R152

R162

R14

22k

R13

22k

VD

DE

VD

DX

VD

DI

VD

DO

VD

DA

1V

DD

A2

VD

DA

3

R12

22k

R822kR922k

R10

1k5R1122k

T2BC

557B

T1BC

547B +3

V3

L4

L5

K2

3

2

4

1

R54k7

R64k7

R74k7

C10

100n

C8

100n

C9

10µ2

5V

IC4

2010

R41 Ω

L3

C7

100n

C6

100n

+5

V

C5

100n

TO

RX

173IC

1

1

24

3

56

L2

47µH

+5

V

K1

C1

10n

R1

75Ω

D2

D1

D3

R36

80Ω

+5

V

C4

100n

C2

10µ2

5V

C3

2n2

R2470Ω

US

B-B

LINE

LINE

S/P

DIF

C41

100n

+5

V

78

05

IC7

LE

33CZ

IC6

+5

V

27

C5

12

EP

RO

M

IC5

A10

A11

A12

A13

A14

A15

OE

10A

0

A1

A2

A3

A4

A5

A6

A7

25A

824

A9

2123

1422

20

CE

28

11D

012

D1

13D

215

D3

16D

417

D5

18D

619

D7

26

27

987654321

R28

10k

C47

470µ2

5V

C45

10µ6

3V

D4

1N

40

02

C46

100n

C44

100n

C43

100n

JP

1+

5V

L6

C15

100n VD

DX

C16

100n

L7

C17

100n VD

DI

R20

1 Ω

C19

100n

VD

DA

1

C18

10µ2

5V

R21

1 Ω

C21

100n

VD

DO

C20

10µ2

5V

R22

1 Ω

C23

100n

VD

DA

3

C22

10µ2

5V

R23

1 Ω

C25

100n

VD

DA

2

C24

10µ2

5V

+3

V3

+3

V3

C11

22p

C12

22p

UD

A1325H

GP

0/BC

KI

BC

KO

/GP

4

GP

5/WS

I

WS

O/G

P3

SC

L/G

P6

SD

A/G

P7

VR

EFA

DX

TAL

2BX

TAL

1B

XTA

L1A

XTA

L2A

GP

1/DI

DO

/GP

2

VR

EFD

A

VO

UT

R

VO

UT

L

VSSA1

VSSA2

VSSA3

SH

TCB

VDDA1

VDDA2

VDDA3

IC3

P0.0

P0.1

P0.2

P0.3

P0.4

P0.5

P0.7

P0.6

P2.0

P2.1

P2.2

P2.3

P2.4

P2.5

P2.7

P2.6

VSSI

VSSE

VSSO

VSSX

VIN

L

VIN

R

RTC

B

VDDE

VDDX

VDDI

VDDO

PS

EN

CLK

AL

E

BC

K

VR

N

VR

P

3734

27

565860626414161820222330 2950

4126

2510

1133

2439

4455

5453

17 151363

DA

57

DS

5961

D–

D+

49 51 43 47

40

1921

TC3536

1228

3238

4252

31

EA

48 37 5

1 26 8

4

9

TD

A1315H

CT

RL

MO

DE

INVA

LID

SY

SC

LK

I

SY

SC

LK

O

UD

AVA

IL

IEC

IN0

IEC

IN1

UN

LOC

K

CH

MO

DE

IEC

OE

N

IEC

SE

L

ST

RO

BE

CL

KS

EL

I2SS

EL

I2SO

EN

VDDD1

VDDD2

LAD

DR

VSSD1

VSSD2

RC

INT

RC

FIL

TE

STA

TE

ST

B

TE

ST

C

LM

OD

E

LDA

TA

SD

AU

X

RE

SE

TIC

2

VDDA

MU

TE

DE

EM

CO

PY

FS

32

FS

44

FS

48

IEC

O

VSSA

VR

EF

LCLK

SC

K

22

4217

321231302913141516

4118

44281011

2324253421394019

PD

20

SD

35

WS

36372726433338

6

3

589

4

12

7

C26

100n

C27

100n

L8

+5

VV

DD

E

+5VU

SB

+5VU

SB

+UA

14

+UA

14

US

B

EX

T

PO

WE

R

> 9V

012013 - 11L

3...L8 = B

LM

31A601S

Figure 1. L’électronique se résume en fait au récepteur S/PDIF TDA1315 et au UDA1325 qui intègre lui l’interface USB et un DSP.

Page 11: Elektor N°300 - Juin 2003 - doctsf

tisseur de taux d’échantillonnage ou leCAN.

Dans ce cadre, la matériel centré sur le DMA(Direct Memory Access) se charge, sans lamoindre intervention extérieure, de la trans-mission de données d’audio numérique desorte que l’on n’a pas besoin de logiciel pourcela.En USB, les périphériques audio travaillantavec ce port sont des extensions dites coum-pount, ce qui signifie qu’elles comportent plu-sieurs interfaces. Dans le cas présent il s’agitdes 3 interfaces Control, Wave Out et WaveIn. Pour chacune de ces interfaces, Windowsinstalle un pilote (driver) spécifique. Il est trèsfacile ainsi d’intégrer de nouvelles interfacesdans la liste des descripteurs (HID parexemple).

d’un progiciel propre. En raisond’une erreur au niveau du piloteaudio de Windows 98, cette commu-tation d’entrée ne fonctionne qu’àpartir de Windows 98SE (SecondEdition). Il vous suffira de faire untour dans les propriétés système devotre machine pour découvrir quelleest la version de Windows souslaquelle tourne votre machine. Lapremière version de Windows 98 secontente de valider que les signauxanalogiques. La seule solutionconsiste à passer à la version SE98de Windows, réactualisation que l’on

peut télécharger sans le moindreproblème depuis Internet (et cela entoute légalité même) pour quelquespoignées d’euros seulement.Le progiciel remplit 4 fonctionsmajeures :– Pilotage du noyau (core) USB– Traitement des demandes (request)

de l’interface USB 1.0 Std (GET-Descriptor par exemple)

– Traitement des demandes declasse de l’USB Audio 1.0 (levolume par exemple)

– Pilotage des périphériques embar-qués sur la puce comme le conver-

PC&AUDIO

176/2003 Elektor

(C) ELEKTOR012013-1

C1

C2C3

C5C8

C9

C10

C11

C12

C13C16

C18

C20

C22

C24

C26

C28

C29

C30

C31 C32

C34

C36C37C38

C39C

40

C41

C42

C43C44C45

C46

C47

D1D2D3D4

H1H2

H3 H4

IC1

IC4 IC5

IC6

IC7

JP1

K1

K2

K3

K4

L1

L2

L7

L8

OU

T1

R1R2

R3R4

R5

R6

R7

R8

R9

R10

R11

R12

R13

R14

R15R16 R17

R18

R19

R20

R21

R22

R23

R24

R25R26

R27

R28

T1

T2

X1

EXT

USB

0

+

012013-1

C4C6

C7

C14

C15

C17

C19

C21

C23

C25

C27

C33C35

IC2

IC3

L3

L4

L5

L6

(C) ELEKTOR012013-1

Figure . Dessin des pistes et sérigraphie de l’implantation des composants de la platine de l’enregistreur Audio USB.

Structure du descripteur deconfiguration d’unpériphérique audio USB :

ConfigInterface0 pipe (control)AC Control audio (Topologie)....Interface (alt0) pipeInterface (alt1) pipe (waveout)ACInterface audio (streamformat)Endpoint ISOACEndpoint audio (samplerates)….Interface (alt0) pipeInterface (alt1) pipe (wavein)ACInterface audio (streamformat)Endpoint ISOACEndpoint audio (samplerates)

Page 12: Elektor N°300 - Juin 2003 - doctsf

Il faut, si l’on veut qu’un périphériqueUSB soit reconnu par le système d’ex-ploitation comme étant un appareilaudio, que le descripteur de configu-ration une série de descripteurs ayanttrait aux interfaces et Endpoint spé-cifiques de l’Audio Class (AC).Selon la taille de la topologie et lenombre de paramètres de configura-tion (Interface Alternate Settings) laquantité de données recueillie a vitefait d’atteindre le kilooctet. On défi-nit, dans le descripteur AC-Control,les caractéristiques de la carte-son(entrées, sorties, liaisons, réglages).Le DDK de Microsoft comporte unoutil baptisé grapher.exe. Cet outilpermet, de définir facilement une

topologie USB. Chaque canal (pipe)audio doit disposer d’un paramètredit Alternate Setting 0 pour éviter lespertes inutiles de bande passantelors de la clôture du canal.

Implantation des composantsUn premier coup d’oeil au dessin despistes de la platine double face àtrous métallisés représenté enfigure 2 aura vite fait de nousapprendre que nous nous trouvonsen présence, dans le cas de IC2 et deIC3 (de même d’ailleurs de celui decertains des composants passifs), decomposants CMS. Vu le nombre

PC&AUDIO

18 Elektor 6/2003

Liste des composants

Résistances :R1 = 75 ΩR2 = 470 ΩR3 = 680 ΩR4,R19 à R23 = 1 ΩR5 à R7 = 4kΩ7R8,R9,R11 à R14 = 22 kΩR10 = 1kΩ5R15,R16 = 22 ΩR17,R18 = 220 kΩR24,R25,R28 = 10 kΩR26,R27 = 100 Ω

Condensateurs :C1,C32 = 10 nF céramique RM5C2,C9,C13,C18,C20,C22,C24,C36 =

10 µF/25 V radial RM5C3 = 2nF2 céramique RM5C4,C6,C7,C14 à C17,C19,C21,C23,C25 à

C27,C33,C35 = 100 nF (CMS1206)C5,C8,C10,C41 à C44,C46 = 100 nF

céramique RM5C11,C12 = 22 pFC28,C29,C34,C37,C38 = 47 µF/25 V radialC30,C31,C39,C40 = 10 pFC45 = 10 µF/63 V radialC47 = 470 µF/25 V radial

Inductances :L1 = 1µH5L2 = 47µHL3 à L8 = BLM31A601S (Murata CMS1206

chez Farnell 581-094)

Semi-conducteurs :D1 à D3 = LED 3 mmD4 = 1N4002T1 = BC547BT2 = BC557BIC1 = TORX173IC2 = TDA1315H/N2 (Philips)IC3 = UDA1325H/N106 (Philips)IC4 = 74HC573IC5 = 27C512-10 (EPROM programmée :

EPS 012013-21)IC6 = LE33CZ (ST, chez Farnell par

exemple) ou LP2950CZ-3.3 (NationalSemiconductor)

IC7 = 7805

Divers :JP1 = embase mâle à 1 rangée de 3 contacts

+ cavalierK1 = embase Cinch encartable telle que,

par exemple, T-709G (Monacor)K2 = embase USB de type B encartableK3,K4 = embase jack 3,5 mm stéréoX1 = quartz 48 MHz 3ème harmonique

résonance parallèle

Téléchargements :Dessin de la platine et code hexadécimal de

l’EPROM (mais pas le code-source) à :www.elektor.fr/dl/dl.htm

Page 13: Elektor N°300 - Juin 2003 - doctsf

important de pattes des dits compo-sants il est difficile de parler de jeud’enfant en ce qui concerne la miseen place des composants.Si vous n’avez pas encore eu l’occa-sion de vous faire la main sur cegenre de composants nous vousrecommandons de faire appel à un« spécialiste » en la matière vu quel’on a vite fait de « griller » l’un de cescomposants coûteux surtout si l’onutilise un fer à souder ordinaire. Unestation à souder spécialement prévuepour les composants CMS telle celleprésentée dans le cadre des 2 articles« Les CMS ? Pas de panique ! » serad’un immense secours dans le casprésent. Le coût d’une telle station desoudage est important de sorte quel’achat d’un tel équipement ne se jus-tifie que si l’on doit implanter souventdes composants CMS.Comme d’habitude, une fois que les2 circuits intégrés et les 21 conden-sateurs et selfs CMS auront été sou-dés correctement en place, il seratemps de s’intéresser à l’implanta-tion des composants classiques.Après l’étape délicate de la mise enplace des CMS, cette opération neprésente aucune difficulté, tant quel’on ne fait pas d’erreur au niveau dela polarité des condensateurs élec-trochimiques. Les circuits intégrésDIL, l’EPROM et le verrou, pourrontêtre mis sur support. Les LED neseront montées que plus tard,lorsque l’on saura exactement oùelles devront se trouver sur le boîtier.La dernière étape de l’opération desoudage consiste à la mise en placedes embases et connecteurs :2 embases mini-DIN, les embasesTosLink, Cinch et USB. Dès lors quevotre platine ressemble comme unegoutte d’eau à celle représentée surla photo, et que vous vous serezassuré de l’absence de pont de sou-dure ou de toute autre erreur demontage, vous pouvez estimer quel’étape de mise en place des compo-sants est terminée avec succès.

Mode d’emploiLe cavalier JP1 est mis en positionextPwr (external Power, comme vousl’avez sans doute déduit de vous-même) et l’alimentation assurée parun module d’alimentation. Laconsommation de courant devrait sesituer aux alentours de 110 mA. Mais

PC&AUDIO

196/2003 Elektor

Courbes de mesureLa première courbe de mesure, lacourbe A, représente l’évolution del’amplitude lorsque les CAN et CNAsont montés en série. Nous avons uti-lisé, pour cette mesure, un pilote mul-timédia ASIO spécial de CubaseVST/32 (faire un tour surhttp://www.usb-audio.com), pilote quipermet un fonctionnement en modefull duplex vu qu’il retarde le signal dugénérateur de mesure une petiteseconde. La bosse en extrémité de laboucle est sans doute due au filtre desortie; la fiche de caractéristiques nesouffle mot ce sujet. Si l’on ne mesureque le CNA cette bosse ne dépassepas 0,5 dB de hauteur.La courbe B rend le facteur distorsion+ bruit en relation avec la fréquence.Cette fois encore, les convertisseurssont montés en série, les distorsionsétant principalement dues au CAN.Les valeurs sont pratiquement 2 foissupérieures à ce que la fiche de carac-téristiques donne comme maximum(mesure en numérique).La courbe C illustre la réponse enfréquence du CNA à pleine modula-tion (0 dB), mesurée à l’aide d’unsignal de 997 Hz échantillonné à unefréquence de 46 kHz. Le signal desortie se situe à quelque 0,66 V. Lasomme distorsion + bruit est, à unebande passante de 22 kHz, de l’ordrede 0,008%. Aucune des harmoniquessituées à l’intérieur de la bande pas-sante audio ne dépasse –90 dB. Bienque le bruit augmente au-delà de20 kHz (ce qui est typique de la miseen forme du bruit, le noise shaping, dans le cas des convertisseurs Delta-Sigma) les distor-sions ne vont pas au-delà de 0,03%, lorsque l’on augmente à 80 kHz la bande passante àlaquelle la mesure est faite.

Valeurs de mesure (alimentation via le bus)

Consommation de courant (via le bus) 96 mAConsommation de courant (autonome) 109 mACNATension de sortie nominale (0 dB) 0,66 VPlage de fréquences (–3 dB) 23,9 kHz (fech = 48 kHz)Amplitude (20 kHz) +0,38 dB (fech = 48 kHz)Impédance de sortie 110 WRapport signal/bruit >96 dBADHT+B (THD+N) (1 kHz) 0,008% (B = 22 kHz)

,03% (B = 80 kHz)Diaphonie >100 dB (1 kHz)

87 dB (20 kHz)CANSensibilité d’entrée maximum 58 mVSensibilité d’entrée minimum 1,42 VImpédance d’entrée 12 kWDHT+B (THD+N) (1 kHz, –0,5 dBFs) 0,02% (B = 24 kHz)Diaphonie >69 dB (1 kHz)

47 dB (20 kHz)

-5

+1

-4.5

-4

-3.5

-3

-2.5

-2

-1.5

-1

-0.5

-0

+0.5

dBr A

20 20k50 100 200 500 1k 2k 5k 10k012013 - 12Hz

0.001

10

0.002

0.005

0.01

0.02

0.05

0.1

0.2

0.5

1

2

5

%

20 20k50 100 200 500 1k 2k 5k 10kHz 012013 - 13

-150

+0

-140

-130

-120

-110

-100

-90

-80

-70

-60

-50

-40

-30

-20

-10

dB

20 90k50 100 200 500 1k 2k 5k 10k 20k 50kHz 012013 - 14

A

B

C

Page 14: Elektor N°300 - Juin 2003 - doctsf

il est également possible, contrairement à cequi avait été le cas de la mini-carte-son USBdécrite dans le n° 294 (décembre 2002), d’en-visager une alimentation de ce montage àl’aide d’un hub USB à condition bien entendud’avoir mis le cavalier dans la position cor-respondante. On devrait découvrir un signalde quelque 4 MHz sur la broche 11 de IC4; sitel n’est pas le cas il faudra examiner l’oscil-lateur centré sur X1, à la recherche d’erreursde soudure ou d’implantation de composants.Les utilisateurs de Windows 98SE/Medevront, avant de passer à l’installation, ins-taller les patchs correspondants proposés parMicrosoft. Les raisons et le mode opératoiresont expliqués dans un encadré. Plug&Playsimplifie très sensiblement l’installation del’enregistreur audio. Dès que l’appareil estconnecté à un port USB du PC Windows lereconnaît automatiquement et installe lespilotes pour l’enregistreur audio USB,SNDREC10.INF pour le mode autonome etSNDREC11.INF pour le mode à alimentationpar le bus (les fichiers sont placés dans lerépertoire INF). Il est bon d’avoir à portée demain le CD-ROM d’installation de Win-dows 98SE au cas où l’on en aurait besoin.Une fois l’installation effectuée et après avoirredémarré l’ordinateur l’appareil est reconnuet le gestionnaire de matériel est redémarréune seconde fois. Cette fois on a installationdes pilotes pour USB Audio.Si l’on a installé les patches le gestionnairePnP découvre la présence, dans le dossier despilotes, de nouvelles versions de VDM Audio.Il faut veiller à ne pas écraser par une opéra-tion ultérieure ces nouvelles versions. Si l’ins-tallation s’est faite correctement on devraittrouver dans le gestionnaire système l’appa-reil Audio USB dans la rubrique Audio Vidéo,Contrôleur de manette. Il est possible dès lorsd’enregistrer et de reproduire des donnéesaudio par n’importe quel logiciel de son sup-portant les pilotes multimédia de Windows.L’un des avantages de l’enregistreur AudioUSB par rapport à la mini-carte-son USB estqu’il permet une sélection par menu de lasource d’entrée. Il est possible, dans le menuWave In du paramétrage de l’enregistrement,de choisir, parmi les 3 entrées proposées, Digi-tal Audio Interface pour l’entrée S/PDIFcoaxiale, SPDIF Interface pour l’entrée optiqueet Line pour l’entrée analogique. Dans le casdes entrées numériques les LED visualisent letaux d’échantillonnage, le niveau n’étant bienentendu pas réglable lui. Le réglage de niveaude l’entrée ligne bat la plage d’amplificationdu préamplificateur interne qui va de –3 à+27 dB (dans le cas de la mini-carte-son iln’était possible de définir que 2 niveaux etcela matériellement et non pas par logiciel).

(012013)

PC&AUDIO

20 Elektor 6/2003

Déverminage de WindowsWindows, par le biais de Sndvol32.exe, ne pilote pas correctement les appareilsaudio USB servant à l’enregistrement ou à la reproduction sachant que ce sys-tème d’exploitation (SE) ne différencie pas des appareils portant la même déno-mination. Cette situation peut avoir des conséquences diverses. Après l’installa-tion de l’appareil Audio et le redémarrage du SE on ne dispose plus d’une possi-bilité de réglage du volume du lecteur de CD. La dénomination du régleur devolume est erronée et si l’on se trouve en présence de plus d’un unique sélec-teur d’entrée les 2 se trouvent baptisés USB Audio Device et ne peuvent pasêtre commandés séparément. Le matériel tel que cette carte-son qui supportel’enregistrement et la reproduction en mode full duplex est représentée defaçon erronée lui aussi. Les options Line In et Mic sont visualisées sous la formede USB Audio Device, il est impossible de choisir l’un des sélecteurs d’entrée. Lepotentiomètre de volume maître de la reproduction est identifié en tant queUSB Audio Device.

Il existe, sous la dénomination Q269601.EXE et Q280127.EXE, des programmesde réparation (bug fix) de ces imperfections, programmes disponibles sur le site :www.media-assistance.com/English/index english.htmlwww.pcsound.philips.com/driverfiles/patch269601usa8/269601 usa8.exe(pour Windows 98SE uniquement).Sur le site Web de Microsofthttp://support.microsoft.com/?scid=KB;en-us:280127on trouvera également le patch pour Windows Me.

Si l’on procède à l’installation des programmes de réparation après l’installationde l’enregistreur Audio USB audio ou que l’on rencontre des problèmes de visua-lisation des appareils audio on pourra tenter de les éliminer par une suppressiondu USB Audio Device du Registry en s’aidant de l’outil RegEdit. Cette opérationrequiert un minimum d’expérience sachant qu’une modification erronée à ceniveau, qu’il s’agisse d’une adjonction ou d’une suppression, peut avoir des consé-quences fatales quant à la stabilité voire au fonctionnement du système.Le premier pas consiste à chercher la KeyHKEY_LOCAL_MACHINE\Enum\USB. Si le système est (ou a été) connecté àplusieurs appareils USB, ces derniers sont classés par identificateur fabricant(Vendor ID) et identificateur produit (Product ID). L’entrée d’identification del’enregistreur Audio USB commence par VID_0C7D.... On interrompt ensuite laliaison USB vers l’appareil et on vire toutes les Keys du Registry concernant l’ap-pareil en question. On quitte RegEdit et on reconnecte l’enregistreur Audio USBau port USB. Tous les pilotes sont à nouveau installés. L’installation ne pose parcontre pas le moindre problème sous Windows XP, MacOS et, bien évidemmentdiront ses défenseurs irréductibles, Linux.

Page 15: Elektor N°300 - Juin 2003 - doctsf

INFORMATIONS

22 Elektor 6/2003

Le radiateur ne constitue plus la solution uni-verselle qu’il constituait auparavant, mais sonutilisation reste fréquente. L’efficacité de n’im-porte quel concept dépend de l’aire des ailet-tes et du coefficient de transfert de la chaleur(l’efficacité de dissipation de la chaleur par lasurface). Le problème de l’utilisation de l’airà cet effet est que l’air est un assez bon iso-lant. Il n’en reste pas moins que ce fluide pré-sente des avantages certains -dans ledomaine des applications grand public enparticulier.D’habitude, les ailettes de radiateur sont min-ces et plates. Plus récemment cependant, onmis sur le marché des ailettes galbées faitesde feuilles de métal extrudé, fixées par sou-dage ou autre technique à la surface de basedu radiateur.Ce concept a été introduit à l’origine dans les

applications militaires et aérospatia-les où l’on avait grand besoin degrandes surfaces sous un poids fai-ble; il s’est rapidement répandudans les autres domaines de l’élec-tronique. Dans le cas de flux d’airomnidirectionnels la transformationd’ailettes plates en sections deforme cylindrique se traduit par uneamélioration de près de 20% par rap-port aux ailettes bi-directionnelles.De nouvelles techniques soit ajou-tent un galbe au bord d’attaque ouau bord de fuite vertical des ailettesséparées (ailette torse) ou découpentet recourbent les ailettes pour leurdonner la forme d’un diapason demanière à créer une certaine turbu-lence; cette approche améliore le

transfert calorifique par fragmenta-tion, au niveau des ailettes, de lacouche d’air au déplacement lent,décrochage causé par la frictionentre les particules d’air et le métal,région connue sous la dénominationde couche-limite. Les ailettes enaiguille (colonnes rondes elliptiquesou hexagonales) produisent le mêmeeffet -et peuvent toujours encore ren-dre d’excellents services par con-vection naturelle dans le cas d’unemasse d’air se mouvant à faiblevitesse.La plupart des radiateurs sont fait enaluminium. On utilise également lecuivre lorsque sa meilleure conduc-tion pèse plus lourd que les aug-mentations de poids et de coût

Refroidissement de composants électroniquesDes développements vraiment « cools »

Reg Miles [email protected]

Si l’est un facteur qui peut caractériser l’industrie électronique depuis sonpassage des tubes aux semi-conducteurs, c’est que tant les composantsque les produits ont vu leur taille diminuer énormément. La conséquenceinévitable de cet état de fait est, qu’en fonctionnement, les composantsvoient leur température augmenter et que l’on dispose de moins en moinsd’espace pour le refroidissement. Le présent article voudrait passer enrevue certains des développements et innovations récents ayant marquéla technologie du refroidissement.

Page 16: Elektor N°300 - Juin 2003 - doctsf

mosiphon prend la forme d’un tube fermé, laplupart du temps en cuivre, contenant unepetite quantité de fluide, très souvent del’eau. Comme le fluide se trouve dans le vide,l’application de chaleur se traduit par savaporisation aisée, transition qui permetd’absorber une quantité importante de cha-leur, la valeur montant vers l’autre extrémitédu tube où se fait l’évacuation de la chaleuret où prend place la condensation de la valeursur la paroi intérieure du tube, de sorte quele liquide redescend et le cycle reprend audébut. Il suffit d’une faible chute de tempéra-ture pour obtenir la condensation de lavapeur de sorte que le système est très effi-cace.L’intérieur d’un caloduc est recouvert d’unecouche poreuse qui entraîne une recirculationdu liquide par capillarité vers l’extrémitéchaude. Plus la structure des pores est fine,mieux la capillarité sera en mesure de vain-cre la gravité : des tubes à structure internestriée et à écran fin ne permettent qu’unelégère inclinaison du dispositif, l’évaporateurne se trouvant que très légèrement au-dessusdu condenseur, alors que des tubes dotésd’un revêtement interne à base de poudremétallique peuvent s’accommoder de n’im-porte quelle orientation.Les thermosiphons et les caloducs devien-nent de plus en plus intéressants en raisonde leur efficacité et de leur fonctionnementpassif. Ils ont également des dimensionscompactes, 3 à 4 mm de diamètre, des versi-ons miniaturisées plus fines font leur appari-tion et, de plus, à la longueur adaptée à l’ap-plication. Un téléphone mobile par exemplepourra se contenter d’un caloduc de petitetaille et d’ici qu’il utilise l’antenne commecondenseur...Dans un ordinateur portable, le caloduc seraun peu plus grand et utilisera une plaquetted’aluminium placée sous le clavier ou unradiateur comme condenseur. Plusieurs calo-ducs pourront être utilisés en vue du trans-fert de la chaleur produite par plusieurs com-posants vers un unique radiateur.

qu’entraîne son utilisateur. Le car-bure silicique d’aluminium (AlSiC),apparu récemment sur le marché,constitue une alternative; il est léger,solide et bon conducteur, mais restecoûteux pour le moment.Le graphite naturel est un autre nou-veau-venu; il présente la conduc-tivité du cuivre tout en ayant unedensité plus de 4 fois moindre. Legraphite pyrolytique et les matériauxbasés sur les fibres de graphitevoient leurs propriétés de conduc-tivité s’améliorer sans cesse; leurfabrication requiert des températu-res supérieures à 3 000 °C, ce qui estcoûteux et partant réservé, pour l’in-stant, aux applications aérospatialeset aéronautiques. Notons au passageque les matériaux à base de graphiteprésentent de fortes propriétés ani-sotropes avec des conductivités dif-férentes selon les axes directionnels,ce qui limite leurs domaines d’appli-cations.

Pâtes pour radiateurOn a coutume, en vue de maximiserla conduction entre le(s) compo-sant(s) et la base du radiateur, d’ap-pliquer, sous une forme ou une autre,un produit thermoconducteur ser-vant à combler les interstices dusaux inégalités des surfaces, demanière à éviter la présence d’unecouche d’air à l’effet isolateur. Leproduit le plus couramment utiliséest une pâte thermoconductrice àbase de silicone; il existe cependantbien d’autres produits de ce genre.L’un des développements récentsdans ce domaine est l’utilisationd’un matériau à changement d’état(dit PCM pour Phase Change Mate-rial). Ce matériau est solide à unetempérature prédéterminée, seliquéfiant lorsque sa températuredépasse cette valeur, le forçant à serépandre et à combler les intersticeslibres.On peut également utiliser ce typede matériau pour éviter que descomposants ne dépassent une cer-taine température de fonctionne-ment voire pour refroidir des compo-sants travaillant en mode transitoire.Il se dilate lorsqu’il change de phaseet se liquéfie, absorbant ainsi l’excé-dent de chaleur (cf. figure 1); lorsquela température retombe, le matériause resolidifie prêt à entrer à nouveau

en action lorsque la températureregrimpe. Il existe des radiateursremplis de PCM, sachant que l’onpeut fixer des réservoirs de PCM àdes platines ou à des composantsspécifiques.

Ventilateurs et jetsLorsque l’on se trouve en présencede composants chauffant beaucoupla solution prend probablement laforme d’un ventilateur. Le pulseurd’air (jet actuator) est un développe-ment récent. Ce dispositif prend laforme d’une cavité dite chambreassociée à un petit diaphragmepiloté électromagnétiquement et quipar ses mouvements aspire de l’airpour le rejeter ensuite. Cette appro-che impulsionnelle permet d’éviterles problèmes de couche-limite évo-qués plus haut, vu que la couched’air va s’amincir entre les jets. Uneversion miniaturisée de ce produitbaptisée Micro-Jet Array a été miseau point; le pulseur peut être placéjuste en dessous du composant surlequel il « souffle » de l’air à unevitesse de l’ordre de 70 km/h.

Thermosiphon & Co.Une autre méthode pour éviter lespoints chauds, plus efficace audemeurant, consiste à évacuer lachaleur produite par le composantvers un endroit où il est possible derefroidir à proximité de la sortie(voire même à l’extérieur du boîtiersi tant est que cela soit réalisable).Cela peut être réalisé à d’aide d’unthermosiphon ou heat-pipe (caloducsemble être meilleur que la traduc-tion pipe à chaleur proposée parGoogle) sans qu’il n’y ait besoin dela moindre énergie externe. Un ther-

INFORMATIONS

236/2003 Elektor

Figure 1. Représentation du stockage de l’énergie par changement de phase (avecl’autorisation du Consortium de recherche sur les technologies du refroidissement)

Page 17: Elektor N°300 - Juin 2003 - doctsf

Une nouvelle approche du thermosiphon etdu caloduc est d’en faire un tore. La vapeurva de l’évaporateur au condenseur et leliquide condensé retourne par un prolonge-ment du tube vers l’évaporateur. L’avantagede l’approche en tore est de permettre d’uti-liser pour les lignes de vapeur et de liquidedes éléments flexibles et que leur longueurpeut être sensiblement plus importante -dépassant le mètre linéaire. Une nouvellevariation sur le thème caloduc est le caloducà pulsion doté d’un serpentin interne danslequel les phénomènes d’expansion et decontraction induits respectivement par lavaporisation et la condensation produisent unmouvement pulsateur repoussant la vapeurvers la partie froide et le liquide vers la par-tie chaude.

Température contre tailleLe problème du refroidissement des compo-sants électroniques fonctionnant sous destempératures de plus en plus élevées est sou-vent exacerbé par leur petite taille. C’est par-ticulièrement vrai dans des applicationscomme les télécommunications, où les radia-teurs nécessaires pour refroidir des unitéscomme les amplificateurs HF sont plusgrands que ce qu’ils refroidissent. En résul-tat, on constate un point chaud juste au-des-sus de l’unité, causé par une « résistancethermique rampante » -seule cette partie duradiateur remplit sa tâche. La taille et lavitesse du ventilateur peuvent être aug-mentées pour y répondre, ou l’aluminiumremplacé par du cuivre ou d’autres matériauxplus exotiques (un dépôt de vapeur chimiquede diamant -CVD, Chemical Vapour Diamond-est utilisé comme dissipateur de chaleur lor-sque la température est critique). Mais cesalternatives ont leurs inconvénients en termede bruit, de poids et de coût.Une solution séduisante consiste à incluredes caloducs dans la base d’un radiateur enaluminium. Ceci élimine la plus grande par-tie de la résistance, et dissipe relativementuniformément la chaleur. Une solution encoreplus efficace consiste à utiliser une chambre àvapeur, enceinte sous vide avec une mècheen tissu fonctionnant exactement sur lemême principe que les caloducs : partout où lachaleur se manifeste, le fluide contenu à cetendroit dans la mèche est vaporisé ; et part-out où la vapeur rentre en contact avec unepartie plus fraîche, sa chaleur latentes’échappe et se recondense dans la mèche.Un projet de la DARPA (US Defence AdvancedResearch Projects Agency = agence des pro-jets de recherche avancés de la Défense desEtats-Unis), conduit par l’Université interna-tionale de Floride, travaille sur un dissipateur

de chaleur similaire, mais qui conti-ent une micro-pompe commandéepar un quartz piézoélectrique pourtransférer le fluide dans un échan-geur de chaleur, le tout intégré à lafin dans un seul module.Lorsqu’il n’y a pas d’objections pra-tiques ou esthétiques, une plaquefroide (ou une poche d’eau) repré-sente une alternative très efficace àla ventilation, aux caloducs et auxchambres à vapeur. On entre dans ledomaine du surcadençage des ordi-nateurs, où l’on ne cherche pas àprolonger la vie du composant, l’u-nité centrale, mais à pousser celui-cijusqu’à ses limites. Quoique ce soitaussi, bien sûr, un moyen parfaite-ment efficace de prolonger la vie den’importe quel composant soumis àune haute température.La plaque froide peut être juste uncontenant pour le liquide (probable-ment de l’eau) ou disposer d’untuyau à liquide incorporé. Selon saconception, les composants électro-niques peuvent être installés sur l’undes côtés, ou sur les deux. Lesystème, dans sa version la plus sim-ple, consiste à faire circuler de l’eaufroide à travers un tube dans le con-tenant, et vers un autre tube à la sor-tie. On trouvera plus souvent unsystème à recirculation d’eau, com-portant une plaque froide, un réser-

voir ou un vase d’expansion, unepompe, et un échangeur de chaleur(probablement un radiateur à tubes-une version réduite du type utilisédans les automobiles) avec un venti-lateur pour refroidir l’eau (unsystème d’échange liquide vers air).Le liquide tiède sortant de la plaquefroide se déverse dans le réservoir,est pompé dans le radiateur où il estrefroidi, et repart à nouveau vers laplaque froide. Si des tuyaux sontincorporés dans la plaque froide, ilspeuvent être alimentés en série ouen parallèle : dans le premier cas, àtravers un tuyau commençant à unbout et serpentant d’un côté à l’au-tre de la plaque ; dans le second cas,à travers plusieurs tuyaux traversantdirectement la plaque depuis untuyau d’alimentation principal d’uncôté vers un tuyau d’évacuation prin-cipal de l’autre. Des kits sont déjàdisponibles : un chez Maplin(www.maplin.co.uk) ; tout un éven-tail et des PC refroidis à l’eau chezKoolance (www.koolance.com). Lafigure 2 présente leur refroidisseurd’unité centrale CPU-200 installé.

Le refroidissement par liquide – l’avenir ?Le refroidissement par liquide esttrès adapté à une combinaison avec

INFORMATIONS

24 Elektor 6/2003

Figure 2. Le refroidisseur d’unité centrale de Koolance installé (avec l’autorisationde Koolance).

Page 18: Elektor N°300 - Juin 2003 - doctsf

revenir en arrière. La basse tension signifieque le refroidissement peut être obtenusans réchauffement non désiré. Le problèmeprincipal du modèle utilisant un espace devide est d’obtenir un espace d’une certainetaille à travers une zone mesurée en cen-timètres carrés -au laboratoire, puis ensuiteen production.

L’approche frigidaireEn revenant au refroidissement par liquide,un tel système peut utiliser le refroidissementtraditionnel pour rafraîchir le liquide. Dans cesystème à liquide réfrigéré (appelé aussiliquide à liquide), le réfrigérateur remplacel’échangeur de chaleur. De la même façon,l’eau est probablement le liquide circulant.S’il faut la refroidir à des températures en des-sous de zéro, elle peut-être mélangée à del’antigel -qui réduit les propriétés de très bontransfert de chaleur de l’eau et augmente laviscosité, mais pas significativement. Autre-ment, le système peut devenir un réfrigéra-teur lui-même, ce que l’on appelle habituelle-ment un refroidisseur par compression devapeur. VapoChill (www.vapochill.com) pro-pose une gamme de stations de travail, de PCde puissance, et un kit pour les constructeursamateurs (cf. figure 4). Pour gagner de laplace, un tube capillaire est utilisé pourréduire la pression avant l’évaporateur montésur l’unité centrale, sinon cela ressemble à unréfrigérateur normal. Ces systèmes sontprévus pour être utilisés à basse température,entre +20 et –40° C. Parce que c’est le réfri-gérant lui-même qui circule, le flux peut êtreinférieur qu’avec un liquide de refroidisse-ment réfrigéré. Un projet conduit par l’Uni-versité de Stanford pour le compte de laDARPA étudie l’utilisation d’un micro-refro-idisseur, utilisant une pompe électrocinétiqueet un micro-évaporateur incorporant un cap-teur de température. Le but à long terme estde développer des unités réfrigérantesbasées sur des compresseurs originaux pourla phase de vapeur utilisant la technologieélectrocinétique.En faisant fonctionner des unités CMOS àbasse température, on obtient une augmen-tation significative de performance. C’estprincipalement dû à une diminution expo-nentielle des courants de fuite et à une aug-mentation de la vitesse de basculement destransistors. Cette dernière provient d’uneamélioration de la mobilité, qui augmente lor-sque la température baisse parce que lesvibrations thermiques dans le réseau molé-culaire du semi-conducteur diminuent et,avec elles, la diffusion électro-phononique quiralentit la vélocité porteuse (la vitesse de bas-culement des transistors étant propor-

le refroidissement thermoélectrique(TEC, Thermoelectric Cooler) – aussiconnu comme unité Peltier. Ceci con-siste en deux éléments semi-con-ducteurs, principalement des tellur-ures de bismuth, fortement dopéspour créer des couples de type n etde type p (cf. figure 3). A la jonctionfroide, la chaleur du composant estabsorbée par des électrons propul-sés par un courant électrique d’unbas niveau d’énergie dans l’élémentde type p vers un niveau d’énergieplus élevé dans l’élément de type n ;à la jonction chaude, les électronsretournent du type n vers le type pde bas niveau et la chaleur est expul-sée. Le flux d’électrons est maintenupar le courant continu, qui montedans un couple et redescend dansl’autre, tandis que le courant porteur,et la chaleur, descendent tous lesdeux. Normalement, les couples detype n et de type p sont combinés ennombre variés pour constituer unmodule, dans lequel ils sont connec-tés électriquement en série et ther-miquement en parallèle. Un modulepeut être petit, mais tout de mêmeproduire une différence de tempéra-ture typique de 70 degrés Celsius.Pour un refroidissement plus impor-tant, les modules peuvent êtremontés en cascade.

Bloc super-réseauUn nouveau développement venantdu Research Triangle Institute pro-met de donner une considérableaccélération au TEC. Il utilise desempilages de films minces consti-

tués de deux couches alternées dematériaux semi-conducteurs pourpiloter le transport de phonons etd’électrons dans les super-réseaux(superlattice) : les super-réseaux detype p Bi2Te3/SbTe3 bloquent lespremiers (pour empêcher la chaleurd’être renvoyée à son origine) ettransmettent les seconds. Il estréputé être 2,4 fois plus efficace quele TEC traditionnel ; et répond23 000 fois plus rapidement, grâce àsa minceur.Apparemment, des points de cematériau uniquement placés auxpoints chauds sur un composantélectronique seraient plus efficaceque le refroidissement du dispositifcomplet -et économiseraient de lapuissance. En attendant, la DARPAfinance une recherche dans les pla-ques intégrées réfrigérantes ther-moélectriques à liquide, pour rem-placer le duo TEC-liquide refroidis-sant séparé plus onéreux et moinsefficace -un projet conduit par la CFDResearch Corporation.L’unité de refroidissement ther-moélectronique est une variante duTEC. Elle utilise deux matériauxséparés par une couche-barrièred’environ un micron d’épaisseur ouun espace de vide de quelques nan-omètres : au fur et à mesure que lesélectrons absorbent la chaleur etgagnent de l’énergie, ils franchis-sent un tunnel depuis le côté froid(émetteur) vers le côté chaud(collecteur), aidés par une tensionpolarisée -et la couche-barrière ou,plus particulièrement, l’espace devide empêchent les phonons de

INFORMATIONS

256/2003 Elektor

Figure 3. Structure de base d’un refroidisseur thermoélectrique (TEC) (avecl’autorisation de Melcor)

Page 19: Elektor N°300 - Juin 2003 - doctsf

tionnelle à la vélocité porteuse moyenne dansl’unité). Toutefois, certaines unités peuventdéfaillir à cause de défauts d’appariementdans l’expansion thermique de leursmatériaux, ou de défaillances électroniquesdues à des effets de porteuse chaude -ellesdoivent être adaptées pour l’usage à ces bas-ses températures.Un autre obstacle à l’utilisation du refroidis-sement par liquide réfrigéré est la condensa-tion qui se forme lors du contact entre l’airambiant, chaud et moite, et les parties froidesdu système. Toutes les parties internes dusystème de refroidissement doivent doncêtre isolées pour prévenir la formation de con-densation.Une technologie de réfrigération qui sembleparticulièrement prometteuse pour le refro-idissement des dispositifs électroniques (et ilexiste plusieurs alternatives au système tra-ditionnel par compression de vapeur) estcelle de l’unité de réfrigération thermo-acou-stique (TRD, Thermoacoustic RefrigerationDevice) ou refroidisseur thermo-acoustique(TAC, Thermoacoustic Cooler). Il utilise lesondes acoustiques stationnaires dans unecavité fermée pour comprimer ou dilatermécaniquement un gaz sous pression (nor-malement de l’hélium), en conjonction avecun cœur thermo-acoustique consistant en unepile poreuse de plaques. Il opère à la manièred’une pompe : l’expansion du gaz permetd’absorber la chaleur, alors que sa compres-sion expulse la chaleur ; lorsque les molécu-les de gaz oscillent dans la pile à travers lesplaques, elles refroidissent la pile en absor-bant la chaleur dans un sens, et la réchauf-fent dans l’autre – ce qui crée un gradient detempérature dans la pile. On exploite cemécanisme par un échangeur de chaleurchaude et un de chaleur froide à chaqueextrémité, traversés par un fluide circulant(eau, avec ou sans antigel).Parce que cette technique semble très effi-cace sans nécessiter de liquides réfrigérantsni de pièces mécaniques mobiles (sauf pourle pilote acoustique), elle s’adapte parfaite-ment à la miniaturisation. La DARPA a lancéun projet, conduit par le Rockwell ScientificCenter, de développement d’une versionsystème micro-électromécanique (MEMS,microelectromechanical) utilisant desmatériaux piézoélectriques et des transduc-teurs pour obtenir une production acoustiquede haute performance. Un autre projet enrelation avec ce dernier, conduit par l’Univer-sité de l’Utah, consiste à l’intégrer dans desmicrocircuits électroniques. Un avantage sup-plémentaire de l’unité TRD est de pouvoirrégler l’amplitude du degré de rafraîchisse-ment, au lieu de la mettre en et hors servicecomme un réfrigérateur ordinaire.

Surveillez vos calories

En plus des systèmes de réfrigéra-tion utilisant des liquides ou des gazpour obtenir le refroidissement, larecherche se poursuit dans dessystèmes employant l’effet magnéto-calorique. Cet effet est obtenu enappliquant par cycles un champmagnétique à un solide parama-gnétique pour lui faire expulser lachaleur absorbée lorsque le champest en fonction, parce que tous lesspins des électrons sont alignés etl’entropie (et sa capacité à garder lachaleur) réduite ; et pour lui laisserabsorber la chaleur lorsque le champest coupé, parce que les spins desélectrons se repositionnent au has-ard, accroissant ainsi sa capacitéd’absorption.Lorsque le réfrigérant (qui peut êtrede l’eau additionnée d’antigel, oun’importe quel autre liquide adé-quat) est pompé et entre en contactdu matériau paramagnétique alorsque le champ magnétique estcoupé, sa chaleur est absorbée et leliquide froid refroidit le(s) compo-sant(s) électronique(s) ; le liquideréchauffé revient alors auprès dumatériau (le champ magnétiqueétant mis en fonction) et emporte lachaleur précédemment absorbéevers un échangeur à ventilation. Lecycle se reproduit ensuite.

Jusqu’à récemment, on avait besoinpour ce procédé d’un aimant supra-conducteur. Mais les chercheurs desLaboratoires Ames, travaillant enpartenariat avec l’Astronautics Cor-poration, ont développé un réfrigéra-teur utilisant un aimant permanent,et un disque tournant contenant unalliage de gadolinium, de silicium etde germanium (GdSiGe) commematériau paramagnétique. Desmatériaux nanocomposites ont aussiété proposés pour augmenter encorel’effet magnétocalorique. Une variante de la réfrigérationmagnétocalorique consiste en uneréfrigération électrocalorique, qui uti-lise des champs électriques pourobtenir les mêmes effets. Elle a étédéveloppée à l’origine par des cher-cheurs en Russie.Son avantage est que les champsélectriques sont plus faciles et pluséconomiques à produire que leschamps magnétiques. La recherchesur les matériaux paramagnétiquescontinue, pour trouver la combinai-son optimale qui permettra d’obtenirdes changements de températureréalistes.

Autres développementsPour être exhaustif, il faut citer aussiune paire d’autres méthodes derefroidissement par liquide utilisées

INFORMATIONS

26 Elektor 6/2003

Figure 4. Système de refroidissement par compression de vapeur pour lesconstructeurs amateurs (avec l’autorisation de Vapochilla/Asetek).

Page 20: Elektor N°300 - Juin 2003 - doctsf

Le Consortium étudie en ce moment lescaractéristiques du transfert de chaleur et demécanique des fluides dans les micro-canaux,qui diffèrent sous plusieurs aspects des con-ceptions traditionnelles à cause de leur petitetaille.Un autre projet traite des ventilateurs pié-zoélectriques –développés par Garimella etArvind Raman, professeur assistant d’ingé-nierie mécanique à Purdue. Ces ventilateursdisposent de pièces piézocéramiques,attachées sur de minces lames souplesvibrant à basse fréquence, pour amener leventilateur à sa fréquence de résonance – lecourant alternatif induit une expansion-con-traction de la céramique, provoquant un mou-vement de battement (la figure 5 en montrele principe). La technologie est séduisanteparce que les ventilateurs peuvent être depetite taille : suffisamment pour entrer dansun téléphone mobile ou un ordinateur porta-ble ; et suffisamment toujours pour êtreinstallés sur une puce et la refroidir directe-ment, avec des lames longues de seulement100 microns. Ils ne consomment que 2 mWd’électricité, à comparer aux 300 mW à peuprès consommés par un ventilateur tradi-tionnel. Et, sans aimant, il n’y a pas d’inter-férences électromagnétiques avec les sig-naux. Le Consortium étudie et améliore aussiles caloducs plats et les matériaux à change-ment de phases.

ConclusionLe refroidissement était autrefois pris encompte en dernier ressort, et considérécomme un art là où il était appliqué. Mais lesrécents composants fonctionnant sous hautetempérature ont mis fin à cette approchedésinvolte. Il est aujourd’hui essentiel de leprendre en considération dès les premièresétapes de la conception, et la recherche trans-forme dorénavant cette discipline en science.

(020411)

NdlR : Le phonon nous vient de l’univers quantique ;cette quasi-particule est une onde sonore quanti-fiée pouvant naître dans des solides et l’héliumliquide II.

Addendum : Maplin (www.maplin.co.uk) propose, en plus d’unkit de réfrigération par liquide, un refroidisseurthermoélectrique, et une gamme de ventilateurs,de radiateurs et de composants thermiques pourle constructeur amateur.

pour des applications spécialisées.La première est le refroidissementpar pulvérisation, où, comme le noml’indique, les composants et les pla-tines sont aspergés. Des chercheursde l’UCLA (Université de CalifornieLos Angeles) ont annoncé un raffi-nement de cette méthode : ils ontdéveloppé des micro-pulvérisateursqui refroidissent les composantsindividuels, en utilisant une matricede becs de 35 microns de diamètre.Ceux-ci sont fabriqués par gravure àion réactif, procédé qui donne uneparoi interne particulièrement lissepour minimiser les obstructions parencrassage. L’eau pulvérisée refroidità la fois par convection thermique etpar évaporation. La matrice des becsest personnalisée selon la distribu-tion de chaleur du composant, quiest revêtu d’une couche deParylène C, un polymère enrobantpossédant d’excellentes propriétésdiélectriques. La DARPA finance desrecherches similaires, conduites parl’Université Carnegie Mellon. Dansce cas, les gouttelettes atomisées(de fluides diélectriques) sont crééespar des coupelles rotatives et destransducteurs piézoélectriquesvibrants, aussi bien que par desmicro-pulvérisateurs. Il est prévud’utiliser un logiciel intégré dans lapuce pour contrôler la taille des gou-ttelettes et la fréquence et l’empla-cement des pulvérisations, selon latempérature, les gradients thermi-ques et l’épaisseur du film détectéssimultanément.

La NASA a aussi expérimenté lerefroidissement par pulvérisation ; etl’immersion liquide, où les compo-sants sont plongés dans un bainliquide. Ceci permettra à la NASAd’utiliser dans l’espace de plus enplus de composants disponiblesdans le commerce ; en leur permett-ant d’être découplés du châssis etprotégés par un bouclier contre lesradiations, en plus d’une bonne pro-tection thermique.Le Consortium de recherche sur lestechnologies du refroidissement del’Université Purdue dans l’Indiana aété fondée par Suresh Garimella, pro-fesseur d’ingénierie mécanique indu-strielle à Purdue, et comporte aujour-d’hui dix membres : Aavid Thermal-loy, Apple, Delphi-Delco Electronics,Eaton Corporation, General Electric,Intel, Modine Manufacturing, Nokia,Rockwell Automation et SandiaNational Laboratories. Le Consor-tium dispose en outre de deux souti-ens : Johnson Matthey et PhilipsResearch.« L’industrie vient nous voir avec desproblèmes techniques, et nous con-duisons la recherche pour les résou-dre », annonce Garimella.Un certain nombre de projets sont àl’étude, dont l’étude de radiateurs àmicro-canaux. Ceux-ci disposent decanaux de la taille de quelquesmicrons qui transportent un liquideréfrigérant ; ils offrent un coefficientde transfert de chaleur bien plus per-formant que les radiateurs tradi-tionnels refroidis par liquide.

INFORMATIONS

276/2003 Elektor

Figure 5. Principe du “battement” des ventilateurs thermoélectriques (avecl’autorisation du Consortium de recherche sur les technologies derefroidissement).

Page 21: Elektor N°300 - Juin 2003 - doctsf

LOISIRS

28 Elektor 6/2003

En cette époque des super-ordinateurs nejurant que par les gigahertz, seuls les jeuxcomplexes à graphiques 3D photoréalistesparaissent encore avoir une chance de fairebattre nos coeurs de ludophiles passionnées.S’il s’avère qu’un jeu est trop lent, il va falloirréactualiser le matériel, qui aura déjà pris uncoup de vieux avant même que vous ne

l’ayez monté dans votre machine.L’ère des premiers ordinateursdomestiques où l’on arrivait, paroptimisation des programmes et nonpas par augmentation de la fré-quence de travail du processeur, àdes performances inouïes, est closeune fois pour toutes.

L’attrait premier de ce projet est sonapproche minimaliste. Plutôt que defaire appel à un matériel externespécialisé, il met à la peine unmicrocontrôleur 8 bits du type AVR.Ce composant ne dispose en effetque de 8 Koctets de mémoire deprogramme et de 512 octets deRAM. Les signaux vidéo sont obte-nus par combinaison de quelqueslignes de port et de quelques résis-tances, le son étant l’affaire d’untemporisateur (timer). Pris entre lesbandes sombres des parties supé-rieure et inférieure de l’écran, le pro-cesseur doit aussi s’occuper dudéroulement du jeu.Aucun système d’exploitation nevient s’intercaler entre le programmeen assembleur et le silicium dumatériel.

Il suffira sans doute d’expliquer auxlecteurs les plus jeunes d’Elektor lesrègles de ce jeu. Chacun des2 joueurs essaie de frapper la balle àl’aide de sa raquette pour la ren-voyer vers son adversaire. Si la ballepasse à côté de la raquette et qu’elletouche le fond (du cours) le joueur setrouvant de l’autre côté du filetmarque un point. Sur la gauche del’écran le score est visualisé sous laforme d’un histogramme. Le premierjoueur à marquer 21 points gagne lapartie, victoire rehaussée par unepetite mélodie.

MahPongTennis en chambre avec µC AVR

Marcus Hasenstab [email protected]

La réalisation décrite ici ramène à la vie, à l’aide d’un microcontrôleurAVR d’Atmel épaulé par une poignée de composants passifs seulement,un jeu vidéo rétro classique s’il en est, MahPong, le tennis sur téléviseur.Nostalgie des années 70 garantie.

Page 22: Elektor N°300 - Juin 2003 - doctsf

Tension de sortie au niveau du port :4,0 V à 6,7 mARésistance totale requise :4 V / 6,7 mA = 600 Ω

Résistance de limitation :600 Ω – 75 Ω = 525 Ω (580 Ω)

R3 : PixelOut0Niveau de gris foncé : 0,5 VCourant fourni par la broche 24 :(0,5 V – 0,3 V) / 75 Ω = 2,7 mATension de sortie au niveau du port :4,6 V à 2,7 mARésistance totale requise :4,6 V / 2,7 mA = 1 700 ΩRésistance de limitation :1 700 Ω – 75 Ω = 1 625 Ω (1,2 kΩ)

(de ce fait, le gris foncé s’éclaircit quelquepeu mais reste encore parfaitement distin-guable du gris clair)

Côté sortie son sur le bornier K4, la tensionde R4/R5 se trouve ramenée à de l’ordre de1 V. On pourra jouer sur le volume par le biaisde la commande correspondante sur le télé-viseur. Si vous préférez une sonorité plus« moelleuse » vous pouvez ajouter le conden-sateur C2 en parallèle sur R5.

Les embases K1 et K2 reçoivent les manettesde commande numérique. Sur un manche decommande numérique chacune des direc-tions est dotée d’un interrupteur (contact)qui, lorsqu’il est activé (fermé), met à lamasse la ligne de commande correspondante.

Les résistance de forçage au niveau haut (pullup) intégrées dans le microcontrôleur per-mettent une prise en compte fiable des mou-vements des manettes.L’interface K5 prend la forme d’une embase à2 rangées de 5 contacts (avec détrompeur) telqu’on le trouve sur la carte d’évaluation du kitd’évaluation AVR d’Atmel. De ce fait, il estpossible de programmer le microcontrôleurdirectement sur la platine à l’aide de l’un desprogrammateurs AVR classiques. Le résona-teur 8 MHz fournit la fréquence d’horloge. Sil’on dispose d’une alimentation 5 V, on pourrase passer du régulateur 78L05.

Un programme sophistiquéLe programme comprend les modules princi-paux suivants :

– La routine de RAZ (Reset) et d’initialisationinitialise les directions et les niveaux deslignes du port d’E/S et se charge du dérou-lement des opérations au coeur du micro-contrôleur.

3 fois rien de matériel

Le schéma très lisible représenté enfigure 1 est l’exemple type d’un pro-jet à base de microcontrôleur. Unprogramme sophistiqué et une utili-sation judicieuse des périphériquesintégrés dans le microcontrôleur per-mettent de réaliser des fonctionspuissantes et à grande portée. Lacircuiterie externe ne représente pasgrand chose.Les résistances R1 à R3 prises entrele µC et K3 constituent, de pair avecla résistance de terminaison de 75 _du téléviseur, un diviseur de tension.L’AVR 90S8515 est capable de com-mander, au niveau de ses lignes deport, un courant de l’ordre de 18 mA.Cependant, en raison de la résis-tance interne, la tension de sortiedépend énormément du courant. Sil’on veut effectuer des calculs précis

on commencera par déterminer lescourants devant être présents sur larésistance d’entrée de 75 Ω de l’em-base CVBS du moniteur. On endérive les valeurs des différentesrésistances :

R1 : SyncNiveau du noir : 0,3 VCourant à fournir par la broche 14(Sync) :0,3 V/75 Ω = 4 mATension de sortie au niveau du port :4,5 V à 4 mARésistance totale requise :4,5 V/4 mA = 1 125 ΩRésistance de limitation :1 125 Ω – 75 Ω = 1 050 Ω (1 kΩ)

R2 : PixelOut1Niveau de gris clair : 0,8 VCourant fourni par la broche 28 :(0,8 V – 0,3 V) / 75 Ω = 6,7 mA

LOISIRS

296/2003 Elektor

C1

100n

+5VK1

SUB D9

1

2

3

4

5

6

7

8

9

K2

SUB D9

1

2

3

4

5

6

7

8

9

X1

8MHz

R2

580Ω

R3

1k2

R1

1k

R4

820Ω

R5

15

0ΩC2

100n

12

34

56

78

910

K5

+5V

78L05

IC1

C4

100n

C3

100n

C5

10µ16V

D11N4148

RIGHT2

LEFT2

DOWN2

UP2

RIGHT1

LEFT1

UP1

DOWN1

S1

BT1

030026 - 11

AT90S8515RESET

AIN0

MOSI

MISO

INT0

INT1

IC2

AIN1

OC1A

OC1B

SCK

AD0

AD1

AD2

AD3

AD4

AD5

AD6

AD7

PC2

PC4

PC5

PC6

PC7

PC3

RXD

TXD

PC0

PC1

ALE

PD4

ICP

T0

T1

SS

RD

WR

39

38

37

36

35

34

33

32

21

22

23

25

26

27

28

19

X1

18

X2

20

40

17

16

30

11

10

12

13

14

15

24

29

31

9

1

2

3

4

5

6

7

8

K4

K3Vidéo

Son

Jou

eur

2Jo

ueu

r 1

Figure 1. On ne peut plus minimaliste : schéma de la console pour jouer au tennissur un téléviseur.

Page 23: Elektor N°300 - Juin 2003 - doctsf

– Le programme principal attend les informa-tions de sélection de jeu et accède, en coursde jeu, régulièrement à la routine de jeu.

– La routine de jeu PLAYPONG est synchro-nisée avec la sortie écran et attend, aprèsavoir été appelée, le lancement d’une nou-velle image (VSYNC). On procède ensuite àl’interrogation des paramètres de jeu et oncalcule, à partir de ces informations, la posi-tion des raquettes. La première étapeconsiste à effectuer une recherche d’obs-tacles sur la trajectoire de la balle. En l’ab-sence d’obstacle, la balle se déplace enligne droite. Si la balle rencontre un objetest subit une déviation angle d’impact =angle de rebond et repart dans l’autre direc-tion. On s’assure en outre si la balle a ounon touché un mur en fin de cours. Si telest le cas, on a remise à jour du score. Uncontact de balle est accompagné d’unsignal sonore dont les caractéristiquesdépendent de l’objet touché. Lorsque l’undes joueurs a atteint le score correspondantà une victoire, on a apparition de l’écran duvainqueur.

– La routine d’interruption TMR0 de généra-tion du signal vidéo tourne parallèlement auprocessus principal. L’organisation chrono-logique du système prend une importancecapitale pour le bon fonctionnement de l’af-fichage vidéo. Il va sans dire qu’il ne sauraitêtre question d’interrompre ou de retarderde quelque façon que ce soit la routinevidéo. Cela signifie qu’il ne peut y avoirqu’une unique routine d’interruption (àsavoir la routine vidéo) et que c’est cettedernière qui attribue au programme d’ap-plication son temps de calcul.

À ces routines s’ajoutent encore

– un ensemble de fonctionnalités pour l’écri-ture et la lecture de la mémoire d’écran

– un ensemble de fonctionnalités de démar-rage du son, de sa génération et de sonarrêt.

Les surprises de CVBSLa norme VBS (BAS pour Bild (image), Aus-tast (suppression) Synchron (synchronisation)en allemand, VBS pour Video, Blanking etSynchronisation en anglais) définit la visuali-sation d’images noir et blanc et a servi debase pour les versions évoluées de cettenorme telles que FBAS (F pour Farbe, couleur,CVBS pour Color en anglais) ou PAL. Uneimage VBS est constituée de 625 lignes d’unedurée de 64 µs. De ce fait, la durée de visua-

lisation d’une image est de 40 ms, cequi se traduit par une fréquence derafraîchissement (d’image) de 25 Hz.Pour éviter le scintillement del’image on utilise un processus d’in-terlaçage au cours duquel on écritalternativement des demi-imagesconstituées l’une des lignes paires,l’autre des lignes impaires (figure 2).Le signal vidéo VBS transmet surune seule et même ligne tans l’infor-mation de synchronisation que deluminosité. Le niveau de signal VBSse promène entre 0 et 1 V. La lignede signal VBS est terminée à 75 Ω

par le moniteur. Ce que l’on appellele palier du noir se situe à 0,3 V. Tousles niveaux de gris se situent entre0,3 et 1 V. Le moniteur interprète toutniveau de signal de 0 V comme étantun signal de synchronisation.L’impulsion de synchronisation hori-zontale (HSYNC) de 4,7 µs signale ledébut d’une ligne. Le moniteur inter-prète une impulsion de 160 µscomme étant une impulsion de syn-chronisation verticale.Chaque demi-image comporte312,5 lignes (625/2). Sur le chrono-diagramme de la figure 3 on

LOISIRS

30 Elektor 6/2003

2ème trame1ère trame 2

1

3

621

623

625

4

6

620

622

624

030026 - 13

Figure 2. Structure d’une image vidéo VBS.

1ère trame / 20ms

COMPOSITE

HSYNC

VSYNC

2ème trame / 20ms

030026 - 14.eps

4,7µs 64µs

160µs

Figure 3. Composite sync signal.

Plage active 52µs

Durée de ligne 64µs

Noir

Gris

Gris clair

030026 - 15

Blanc

4,7µs

5,8µs

0,3V

0,7V

1V

0V

Figure 4. Le signal de ligne VBS.

Page 24: Elektor N°300 - Juin 2003 - doctsf

pour mémoriser une surface de 48 x 30 pixelsen 4 niveaux de gris (2 bits : 00 = noir, 01 =gris foncé, 10 = gris clair et 11 = blanc). Ilnous reste même dans ces conditions152 octets pour la pile et la mémoire devariables. La cartographie de la mémoired’image est donnée dans le tableau 1.Le décompte débute en haut à gauche avecles coordonnées 0:0. Chaque octet correspondà 4 pixels, la valeur haute/basse de la lumi-nosité est répartie sur les 2 quartets (undemi-octet). La mémoire d’image est consti-tuée d’un bloc.Une ligne vidéo se compose d’une partieactive d’une durée de 52 µs. Partant, dans lecas d’une résolution horizontale de 48 pixelson dispose de l’ordre de 1 µs seulement parpixel. La durée de cycle de l’AVR est de125 ns, ce qui implique qu’il faut, en 8 cycles,indiquer l’adresse de mémoire d’image, char-ger la valeur de gris de la mémoire d’imageet positionner les lignes de port correspon-dantes. Le code reproduit en figure 5 consti-

tue, pense l’auteur, l’ap-proche la plus rapidepour transférer des don-nées de pixel vers unport. On y voit commentsont combinés les tempsd’exécution différents desdifférents instructions en

constate que, sur la première demi-image, que VSYNC et HSYNC débu-tent au même instant, mais qu’ellessont décalées d’une demi-durée deligne (32 µs) lors de la secondedemi-image. Cette différence permetau moniteur de différencier les2 demi-images et ainsi de les visua-liser correctement.

La figure 4 représente la structured’une ligne vidéo VBS. La lignedébute en aval du palier arrière (lebord droit invisible de l’image). L’im-pulsion HSYNC indique au moniteurle début d’une nouvelle ligne. Ontrouve ensuite le palier avant (lebord gauche invisible de l’image). Ceniveau de signal constitue la réfé-rence pour les endroits les plussombres du signal d’image en aval.Le domaine actif contient le signal

d’image proprement dit (ici un esca-lier de niveaux de gris).

Génération de la vidéopar le µC AVRLe module de graphisme qui effectueson travail sans que le programmeutilisateur ne le remarque vraimentrequiert une part importante dutemps de calcul disponible. Cepen-dant, si l’on envisageait de mettre leprocessus de génération d’imagedans une routine d’interruption, celan’aurait pour effet que de ralentir leprogramme utilisateur sans quecelui-ci ne prenne conscience dulabeur intense prenant place enarrière-plan.Commençons par nous intéresser àla mémoire d’image. L’AVR disposede 512 octets de SRAM, ce qui suffit

LOISIRS

316/2003 Elektor

mov HCOUNT, XL ; shift Low Byte of picture memory pointer tosubi HCOUNT, -13 ; HCOUNT and add 13 to value

; cycles; commentld REGA, X+ ; 2 ; Load picture data from SRAM into REGA

; ; The following code takes 16*12 cycles: 192 cycles = 24 usSTREAMLINE_SHIFTER: ;

out PIXELPORT, TMPL_I ; 1 ; Write pixel 0 onto pixel port (PORTC); note that only PC7 (bright grey) and ; PC3 (dark grey) are used, hence; any values may be present on other pins.

mov REGB, REGA ; 1 ; Copy REGA into register REGBlsl REGB ; 1 ; Shift REGB 1 bit leftnop ; 1 ; Idle

out PIXELPORT, REGB ; 1 ; Write pixel onto pixel portlsl REGB ; 1 ; Shift REGB leftnop ; 1nop ; 1

out PIXELPORT, REGB ; 1 ; Write pixel onto pixel portld REGA, X+ ; 2 ; Load new pixel data into REGAlsl REGB ; 1 ; Shift REGB left

out PIXELPORT, REGB ; 1 ; Write pixel onto pixel portcp VRPOINTL, HCOUNT ; 1 ; Compare picture memory pointer with

; byte counterbrne STREAMLINE_SHIFTER ; 2 ; If unequal, go to STREAMLINE_SHIFTER‘

; end shifter;

Figure 5. Extrait du code-source.

Tableau 1. Cartographie de la mémoire d’imageOCTET 0: H00,00 H01,00 H02,00 H03,00 L00,00 L01,00 L02,00 L03,00OCTET 1: H04,00 H05,00 H06,00 H07,00 L04,00 L05,00 L06,00 L07,00...OCTET 359: H44,29 H45,29 H46,29 H47,29 L44,29 L45,29 L46,29 L47,29

Page 25: Elektor N°300 - Juin 2003 - doctsf

vue d’écrire très précisément un pixel parbloc de 4 cycles. Cet extrait montre que l’AVRest capable, en continu, de visualiser un pixeltous les 4 cycles (500 ns). Techniquement etmathématiquement, une telle vitesse devraitpermettre une résolution horizontale de104 pixels. En raison de la résolution horizon-tale plus faible adoptée, chaque bloc d’écri-ture/de décalage a été doté de 4 instructionsNOP (No OPeration) de manière à ralentir lalogique de décalage à 1 µs par pixel.En ce qui concerne la résolution verticale, lemaximum possible correspond bien évidem-ment au nombre de lignes affichées. Pour desraisons de capacité de mémoire nous devons

nous limiter, comme mentionné plushaut, à 48 x 30 pixels, une résolutionsupérieure pourrait être l’affaire deprojets ultérieurs. Les pixels sont icide forme carrée, ont une largeur de1 µs soit 8 cycles d’horloge et possè-dent une hauteur de 16 lignes.L’image vidéo a partant une taille de48 µs (des 52 µs possibles) et unehauteur de 480 lignes (des 625 ànotre disposition). Le contour noirainsi créé permet une visualisationfiable de l’image visible sur toutessortes d’écrans (de télévision) quelque soit leur paramétrage.Après avoir résolu le point critiquedu transfert de la vidéo il nous resteencore à ajouter les signaux de syn-chronisation aux données des pixels.Un coup d’oeil à la figure 4 que leprocesseur doit, au cours d’une ligned’image, s’occuper des données despixels et qu’il ne lui reste pas detemps pour faire quoi que ce soitd’autre. De ce fait, le contrôle aucours de la totalité du processus degénération de l’image reste « auxmains » de la routine de service d’in-terruption TMR0 (T0-TSR). Lors dutraitement des lignes noires du hautet du bas de l’écran la routine T0-TSRse contente de générer les signauxHSYNC. Ensuite, on quitte T0-TSR etle contrôle passe pendant de l’ordrede 59 µs au programme utilisateurqui a été interrompu. Comme le tem-porisateur a été paramétrée à 64 µs(une durée de ligne) la routine T0-TSR pourra être remise à contribu-tion à temps pour l’impulsionHSYNC suivante.Il faut malheureusement, lors de l’ap-pel de la routine T0-TSR, tenir

compte de ce que l’on appelle letemps de latence d’interruption.Ceci ne signifie rien d’autre que laCPU ne se laisse pas interrompre parune interruption lorsqu’elle est coursd’exécution d’une instruction-machine. Bien au contraire, ellemène à bien l’exécution de l’instruc-tion démarrée, place sur la pilel’adresse de l’instruction suivantepour l’utiliser comme adresse deretour et ce n’est qu’ensuite qu’ellepasse au traitement de l’interruption(ISR = Interrupt Servicing Routine).La raison de ce mode d’opération estque l’AVR possède des instructionsde durées d’exécution différentes.L’appel de ISR peut durer entre4 cycles (minimum) et 7 cycles(maximum). Comme nos pixels ontune largeur de 8 cycles, cela signifieque la ligne d’image supérieure peut« trembloter » sur une largeur d’undemi-pixel. Pour cette raison, la rou-tine d’interruption n’est plus quittéedu début des 2 dernières lignesnoires de la demi-image visible jus-qu’à la fin de celles-ci. Toutes lesdurées situées à l’intérieur de cetteplage sont interdépendantes par lebiais de durées d’exécution d’ins-truction parfaitement calibrées.Notre image vidéo active comporte480 lignes l’image VBS étant elleconstituée de 625 lignes. Nous met-tons 4 lignes à contribution pour lacompensation des durées de latenced’interruption. Le programme d’ap-plication dispose, pour chaqueimage de 40 ms, de quelque (625 –480 –4) ⋅ 59 µs = 8 319 µs. Ceci cor-respond à 20% environ de la totalitédu temps processeur.

LOISIRS

32 Elektor 6/2003

(C) ELEKTOR030026-1

C1

C2

C3

C4

C5

D1

H1

H2 IC1

IC2

K1

K2

K5

OO

1

R1R2

R3R4

R5

X1

030026-1

sound

video

T

T

pla

ye

r 1

pla

ye

r 2

(C) ELEKTOR030026-1

Figure 6. Ce petit montage se contente d’uneplatine simple face.

Liste des composants

Résistances :R1 = 1 kΩR2 = 576 Ω/1%R3 = 1kΩ2R4 = 820 ΩR5 = 150 Ω

Condensateurs :C1 à C4 = 100 nFC5 = 10 µF/16 V radial

Semi-conducteurs :D1 = 1N4148IC1 = 78L05IC2 = AT90S8515

programmé (EPS 030026-41)

Divers :X1 = résonateur 8 MHzBt1 = pile compacte 9 V +

connecteur à pressionK1,K2 = embase Sub-D 9 points

encartable en équerre mâleK3,K4 = embase CinchK5 = embase mâle à 2 rangées de

5 contacts (HE-10) avec ergot dedétrompage

S1 = bouton-poussoir unipolaire àcontact travail

boîtier tel que, par exemple, 1591BT(Hammond)

Page 26: Elektor N°300 - Juin 2003 - doctsf

Le programme d’application disposede 3 fonctions pour accéder à lamémoire d’image. PLOTSCREENpermet de copier dans la mémoiregraphique une image (écran du titreou surface de jeu vide) présentedans la mémoire Flash. La fonction

SETPIXEL permet l’écriture d’unpixel possédant un niveau de grisdonné en vue de représenter la balleou les raquettes. La fonction GET-PIXEL permet d’évaluer la valeur degris d’un pixel ce qui permet, parexemple de détecter l’impact (colli-sion) de la balle sur un obstacle.

Génération du sonNous avons ajouté une générationde sons sans trop de prétentions.C’est Output-Compare-A-Pin(OC1A) du temporisateur à 16 bits,Timer 1 qui est utilisée en tant quesortie son. Lorsque l’état du comp-teur atteint la valeur du registre decomparaison A, on a inversion de lasortie son et remise à zéro ducontenu du compteur. Le systèmede génération de sons comporte uneliste de notes de musique (fré-

LOISIRS

336/2003 Elektor

Figure 7. Écran de bienvenue du jeude tennis sur téléviseur.

Manette numériqueLes manettes de jeu numérique étaient, à l’époque de bon vieux C64, le standard ; il est malheureusement aujourd’hui de plus en plus dif-ficile de les trouver. Si, après avoir écumé les marchés aux puces locaux, vous n’êtes pas arrivé à mettre la main sur une paire de manettes

de ce type, il n’y a pas raison de baisser les bras. Ilest en effet possible de réaliser soi-même un telmanche de commande. L’électronique n’est eneffet rien de plus qu’un quarteron de touches dedirection, une paire de bouton feu (que notretennis sur TV n’utilise d’ailleurs pas) et d’un câbledoté d’un connecteur. Nous avons même déve-loppé à l’intention d’une telle manette de jeu defabrication maison un dessin de platine(EPS030026-2)dont les dimensions sont tellesqu’elle pourra trouver place dans le type de boî-tier indiqué dans la liste des composants (Ham-mond). Notons que les dessins de ces 2 platinessont téléchargeables depuis notre site Internet(www.elektor.fr).

K2 SUB D9

1 2 3 4 56 7 8 9

S4

RIGHT

S3

LEFT

S1

UP

S2

DOWN

S5

FB1

S6

FB2

030026 - 12

1

2

3

4

5

6

7

8

9

10K1

1

2

3

4

5

6

7

8

9

10K1'

(C) ELEKTOR030026-2

HO

LE

35

HO

LE

36 K1

OL

OL

1

OL2

OL

3

S1

S2

S3 S4 S5

S6

030026-2

(C) ELEKTOR030026-2

quence/durée) extensible.Une fois lors de chaque création de demi-image, c’est-à-dire partant toutes les 20 ms,le programme d’application fait appel à afonction DOSOUND, fonction qui compare uncompteur VSYNC à la durée de la note quivient d’être jouée et qui passe, le cas échéant,à la notre suivante. Les fonctions START-SOUND et STOPSOUND permettent, à toutinstant, de démarrer ou d’arrêter un nouveaumorceau de musique.

C’est parti !La réalisation du montage sur la platinesimple face dont la figure 6 donne le dessindes pistes et la sérigraphie de l’implantationdes composants ne devrait pas poser de pro-blème. Le seul composant « délicat », lemicrocontrôleur, prendra place dans un sup-port de bonne qualité. Il n’est pas nécessairede mettre en place l’embase K5 si l’on n’a pasl’intention de programmer le contrôleur alors

Page 27: Elektor N°300 - Juin 2003 - doctsf

qu’il se trouve déjà sur la platine (en circuit).L’étape de construction ne devrait guèreprendre plus que quelques minutes.Après une vérification rapide mais critiquedes soudures il sera temps de connecter lesmanettes de jeu et de brancher la sortie vidéocomposite son au téléviseur (prise Peritel ouentre vidéo). Dès la mise sous tension dumontage on devrait voir apparaître à l’écranl’image de bienvenue (figure 7). Notons quela manette de jeu numéro 1 permet même desélecter une variante de jeu : si l’on appuiesur le bouton droit de cette manette le jeujoué sera le tennis, une action sur la touchegauche permettra de plus un déplacementhorizontal de la raquette. Ce choix se traduiten outre par un mouvement sensiblement

plus lent de la balle. L’auteur a bap-tisé ce jeu Soccer (football) encorequ’il soit difficile de découvrir dessimilitudes avec le comportement del’équipe de France lors des derniersChampionnats du Monde de Foot-ball. Si la balle entre en collision avecl’un des murs verticaux, le joueur setrouvant dans l’autre camp marque

un point. Le premier joueur à mar-quer 21 points sera déclaré vain-queur de la partie, victoire visualiséeà l’écran par une image créée à ceteffet. Pour quitter cet écran de vic-toire, les 2 joueurs doivent mouvoirleur manette de jeu vers le bas.

(030026)

LOISIRS

34 Elektor 6/2003

TéléchargementsProgramme du microcontrôleur AVR (code-source) Fichier 030026-11.zipDessin de la platine au format .pdf Fichier030026-1.zipwww.elektor.fr/dl/dl.htm et choisir le moisde publication

ExtensionsSeuls le programme principal et la rou-tine de jeu sont spécifiques à MAH-PONG. Les autres modules sont utili-sables pour d’autres projets. Il seraitpossible d’envisager l’établissement, parle biais des lignes de port restées libres,d’une communication sérielle, d’ajouterd’autres manettes de jeu voire d’y bran-cher un thermomètre numérique. Encas d’utilisation d’un contrôleur AVR àentrées pour CAN (Convertisseur Ana-logique/Numérique) tel que leAT90S8535 il serait même possible deconnecter des manettes de jeu analo-giques pour PC.

Dans ce cas-là, les potentiomètres inté-grés dans la manette de jeu sont consi-dérés comme faisant partie d’un réseauRC, les position des raquettes étantalors définies par des durées decharge/décharge. En cas d’utilisation duAtmega 32 compatible broche à brocheavec le AT90S8515, microcontrôleurtournant à 16 MHz et disposant d’uneSRAM interne de 2 Koctets, l’augmen-tation de la résolution de l’image nedevrait guère poser de problème.Note : contrairement à ce que pour-rait donner à penser ce court extrait,l’ensemble des commentaires est mal-heureusement en allemand.

Publicité

Page 28: Elektor N°300 - Juin 2003 - doctsf

DOMESTIQUE

36 Elektor 6/2003

Voici un des rares montages générateurs demusique à base de microcontrôleur configu-rable par l’utilisateur. Il vous étonnera par sesperformances et la qualité du son (polypho-nique) qu’il fournit. Bien sûr il existe sur lemarché divers carillons de porte mais celui-ci,en plus de l’intérêt d’une réalisation propre,possède des qualités non négligeables :– Très bonne sonorité– 8 mélodies différentes– consommation nulle au repos– musique personnalisable– coût de réalisation très abordable

Le concept

Cette électronique musicale devraremplir 4 fonctions distinctes :

1. Gérer sa propre alimentation demanière à être sous tension dès lemoindre appui sur le bouton« sonnette » et à ce qu’à l’état derepos (à la fin de la mélodie), laconsommation de l’a circuiterieélectronique redevienne nulle.

2. Générer des notes de musique

(jusque quatre à la fois), produireles enveloppes de ces notes et lesmixer, ceci à partir de la partitionmusicale se trouvant en mémoire.

3. Mémoriser le numéro du derniermorceau de musique interprétéafin d’en changer à la prochainesonnerie, mémorisation se faisanten EEPROM afin de conserverl’information même en l’absencede tension d’alimentation.

4. Amplifier le signal pour le trans-mettre au haut-parleur.

Les trois premières fonctions (gestionde l’alimentation, musique, mémori-sation) sont confiées au microcontrô-leur PIC 16F84. L’amplification estréalisée par un circuit intégré spé-cialisé, un TDA2006. Le réglage duparamétrage de cet amplificateur selimite en fait au positionnement dupotentiomètre de manière à éviter lasaturation. Le haut-parleur connectéen sortie aura une impédance com-prise entre 4 et 8 ohms.

Notions de baseQuelques notions de musique: lors-qu’un musicien interprète un mor-ceau de musique, il lit une partition.C’est sur cette partition que sontécrites les notes à jouer ainsi queleurs durées respectives.La position de la note sur la portée(nos fameuses 5 lignes) détermine le

Carillon de portePolyphonique et multi-mélodies à PIC 16F84

Daniel Manier

« La musique est l’art de combiner des sons de manière agréable à l’oreille… » a dit quelqu’un de célèbre. En ce début de nouveau millénaire, nousallons tenter de confier cette tâche délicate à, vous l’avez deviné, aumicrocontrôleur le plus populaire de l’écurie de Microchip, un PIC 16F84.

Page 29: Elektor N°300 - Juin 2003 - doctsf

et C5 alimente alors le microcontrôleur PIC16F84. D’autre part la tension disponible sur lecollecteur de T1 est envoyée vers l’amplifica-teur audio, le TDA2006.Dès le démarrage le PIC met au niveau haut(« 1 ») la sortie RA3 envoyant ainsi une ten-sion de 5 volts sur la base de T2 par l’inter-médiaire de R6 et autorisant alors le relâche-ment du bouton-poussoir. C’est à la fin de lasonnerie que le PIC fait retomber au niveaubas (« 0 ») la sortie RA3 et si le bouton-pous-soir est relâché, T1 et T2 se bloquent provo-quant la mise hors-tension de la carte.

Le générateur de notesLe programme est capable ici de générer4 notes simultanément, ceci s’appelle la poly-phonie.La génération des notes se fait dans le pro-gramme principal afin d’avoir une vitessed’exécution maximum.Pour ce qui est de la durée, c’est le tempori-sateur (timer) du PIC qui rythme l’interpréta-tion. Un décompteur chargé avec une valeurcorrespondant à la durée de la note est décré-menté à chaque interruption.Lorsque ce décompteur arrive à la valeurzéro, il y a passage à la note suivante et à ladurée suivante.Le son d’un signal carré est riche en harmo-niques, ce qui améliore sa portée, mais pourdonner à notre carillon de porte un son plusagréable à l’oreille et moins monotone, nousl’avons doté d’un dispositif baptisé

nom et partant la hauteur) de lanote. Ici les 4 notes de la figure 1sont, successivement, un LA, unSOL, un DO et un FA.La représentation de la note (pleineou évidée, avec ou sans queue, avecou sans crochet), détermine sadurée. Ici nous avons, dans l’ordre,une noire, une croche, une ronde etune blanche.En durée, une ronde dure deux foisplus longtemps qu’une blanche, uneblanche dure deux fois plus long-temps qu’une noire et une noiredeux fois plus longtemps qu’unecroche.Il existe bien d’autres durées et biend’autres notions de musique mais ceparagraphe n’est qu’une approchecondensée abordant les notionsimportantes dans le cadre de cemontage, à savoir celles de note etde durée.Les partitions des morceaux demusique correspondant aux diffé-rentes sonneries sont mémoriséesdans le PIC programmé sous laforme de matrices (tableaux) asso-ciant note et durée.Une gamme chromatique tempéréese compose de douze notes (DO, DOdièse, RÉ, RÉ dièse, MI, FA, FAdièse, SOL, SOL dièse, LA, LA dièse,SI). Ces notes ont des fréquencesallant en progression géométrique

d’une raison de racine douzième de2 (1,05962…). Pour générer ces noteson pourra utiliser dans le programmedes décompteurs que l’on chargeraavec une valeur correspondant à lafréquence à obtenir. À chaque foisqu’un décompteur atteindra la valeurzéro il suffira d’inverser l’état d’uneligne de port (RB0 à RB3 pour4 notes) pour générer un signal carrétel celui représenté en figure 2.

SynoptiqueNous allons prendre dans l’ordre lesblocs présents sur le synoptique dece montage représenté en figure 3.Le montage se subdivise en 4 sous-ensembles majeurs : l’alimentation, lecerveau et la mémoire, sous la formedu PIC16F84, qui prend en fait encompte la totalité des fonctionsactives, un mélangeur (mixer) et l’am-plificateur audio chargé d’attaquer lehaut-parleur reproduisant la mélodie.

L’alimentationLa mise en route de la sonnerie s’ef-fectue en appuyant sur le boutonpoussoir S1.Le transistor T2 devientalors conducteur et rend le transistorT1 conducteur à son tour. T1 étantpassant, une tension de 5,1 voltsapparaît aux bornes de la diodezener D1. Cette tension filtrée par C4

DOMESTIQUE

376/2003 Elektor

020354 - 12

Figure 1. Le ba-a-ba de la musique : une portéeavec les 4 types de notes les plus courants.

RB0

020354 - 13

temps

Figure 2. Signal carré disponible sur la ligne deport RB0.

PIC16F84

Mixage Ampli

Alimentation

Boutonde commande

Gestionalimentation

Générateurde notes

Générateurd'enveloppes

Partitions

020354 - 14

EEPROMMémorisation

dernier morceau

Figure 3. Synoptique du carillon de porte polyphonique.

Page 30: Elektor N°300 - Juin 2003 - doctsf

Générateur d’enveloppeLe principe de ce générateur est représentédans la figure 4.À chaque début de note, le condensateur C8est chargé durant une durée très brève à tra-vers une résistance de faible valeur (330 Ω)reliée à une ligne de port, ce dernier étantconfiguré en sortie (RB4 à RB7), puis cetteligne de port est immédiatement basculée enentrée c’est-à-dire mise à haute impédance

empêchant ainsi le condensateur dese décharger.Les générateurs de notes (RB0 à RB3)sont reliés aux générateurs d’enve-loppes par des résistances de forçagede valeur élevée (100 kΩ). Pour obtenirla courbe représentée, il aurait falluque les sorties RB0 à RB3 soient dessorties à collecteur ouvert (style RA4),or ce n’est pas le cas pour RB0 à RB3 ;

ce mode de fonctionnement a étéobtenu en faisant fonctionner RB0 àRB3 de la manière suivante :

– Port en sortie s’il est à « 0 »– Port en entrée s’il est à « 1 »

Une ligne paramétrée en sortie etprésentant un niveau bas corres-pond bien à un transistor à collec-teur ouvert « sortant » un zéro.En entrée, la ligne correspondanteest à haute impédance et c’est larésistance de forçage de la ligne deport qui impose un état « 1 ».C’est à travers ces résistances detirage de forte valeur (100 kΩ) queles condensateurs du générateurd’enveloppes vont de décharger. Ici

DOMESTIQUE

38 Elektor 6/2003

R1

330Ω

C1

3µ3

R2

100k

PIC16F84

OSC2

IC1

OSC1

MCLR

RA4

RA1

RA0

RA2

RA3

RB0

RB1

RB2

RB3

RB4

RB5

RB6

RB7

18

17

13

12

11

10

1615

14

1

3

9

8

7

6

2

4

5

10V

020354 - 15

Figure 4. Le principe du générateur d’enveloppe.

Figure 6. L’électronique se résume à une paire de circuits intégrés enrobés de composants passifs.

RB0

020354 - 16

temps

Figure 5. Le générateur d’enveloppedonne du « corps » au signal carré.

10MHz

X1

C1

22p

C2

22p

BC547T2

R1

10k

R2

10

k

R3

10

k

R4

47

R5

1k

C3

220u

100n

C4 C5

1u

R6

10k

R7

330Ω

R8

330Ω

R9

330Ω

R10

330Ω

R11

100k

R12

100k

R13

100k

R14

100k

C6

4µ7

C7

4µ7

C8

4µ7

C9

4µ7

R15

100k

R16

100k

R17

100k

R18

100k

R19

10

0k

R20

10

0k

R21

10

0k

R22

10

0k

22n

C10

C11

22u

C12

22u

C13

220u

R23

220n

C14

+9V

C15

100pPIC16F84

OSC2

IC1

OSC1

MCLR

RA4

RA1

RA0

RA2

RA3

RB0

RB1

RB2

RB3

RB4

RB5

RB6

RB7

18

17

13

12

11

10

1615

14

1

3

9

8

7

6

2

4

5

D1

5V1

IC2

2

1

4

5

3

TDA2006

P1

100k

4 Ω

LS1

S1

T1

BD240

10V

10V

10V 10V 10V10V 10V 10V 10V

020354 - 11

0V

+9V

Page 31: Elektor N°300 - Juin 2003 - doctsf

EPS020354-11 ou sous la forme d’une dis-quette disponible auprès des adresses habi-tuelles, ses commentaires sont en anglais) aété développé sous MPLAB de Microchip. Ilutilise trois routines : l’initialisation, la procé-dure « play » et la routine d’interruption quifait appel à la procédure « Morceau ».Le fichier « def84.asm » contient les déclara-tions des SFR (Special File Register) et« macro84.asm » contient des macros per-mettant d’utiliser des structures de pro-gramme « pseudo-Pascalienne »(IF…REPEAT…BEGIN…END…).Enfin « morceau.asm » contient les morceauxde musique (partitions) et la définition desvaleurs de décompteurs pour les générateursde notes.Nous vous proposons, en figure 8 un synop-tique du fonctionnement du programme.Lors d’une action sur le bouton-poussoir S1,le microcontrôleur est mis sous tension.Dans la procédure d’initialisation, après avoir

la constante de temps avoisine les0,3 secondes.La forme d’onde disponible sur unesortie RB0 à RB3 aura donc la formereprésentée en figure 5.Cette forme d’onde, attaque brutaleet évanouissement exponentieldonne aux notes générées un timbrese rapprochant du piano (pardon auxpuristes !). Les 4 sorties « note » RB0 à RB3 sontmixées par les résistances R15 àR18. Le son global est disponible auxbornes de la résistance R19.Ce son global est envoyé à l’amplifi-cateur audio par l’intermédiaire ducondensateur C10. Le gain de cetamplificateur est réglé par le biais dupotentiomètre P1. Celui-ci devra êtremis dans la position donnant la puis-sance de sortie maximale sans qu’iln’y ait de distorsion.il est possible, pour augmenter lapuissance sonore, d’alimenter lemontage jusqu’à une tension de13,5 volts (3 piles de 4,5 volts prisesen série).Si l’on veut pouvoir interrompre lamélodie avant que celle-ci ne soitarrivée « au bout du rouleau » (celanous rappelle les tout premiers pho-nographes) lorsque l’on est sur lepoint d’ouvrir la porte il suffit deconnecter un bouton-poussoir auxbornes de R4.

Le schémaUn coup d’œil au schéma de l’élec-tronique représentée en figure 6nous apprend que nous y retrouvonsles sous-ensembles du synoptique.Examinons-le d’un peu plus près.Le schéma semble encore plussimple que le synoptique. La puis-sance des microcontrôleurs actuelsest impressionnante.Au centre du montage on retrouve lePIC16F84 doté de toute une bardéede résistances sur ses lignes de port.La partie droite du schéma concernel’amplificateur audio basé sur leTDA2006.

La réalisationGrâce au dessin de platine repré-senté en figure 7, la réalisation estvraiment un jeu d’enfant. On com-mencera par l’implantation des com-posants de petite taille, pour termi-ner par les composants à fort « déve-

loppement vertical » comme T1, IC2et P1. La position de IC1 sera prisepar un support si vous envisagez demodifier de temps à autre le « réper-toire » de votre carillon. Sinon, sivous décidez de ne plus jamais ytoucher, autant le souder directe-ment sur la platine.Après avoir vu l’électronique sousses différents aspects, théorique etpratique, il est intéressant de passerà l’aspect logiciel vu que l’on a lapossibilité de programmer sespropres mélodies dans le PIC.

Le programmeLe programme principal« carillon.asm » (disponible avec lereste des codes au téléchargementsur notre site, adresse www.elek-tor.fr, sous la dénomination

DOMESTIQUE

396/2003 Elektor

020354-1(C) ELEKTOR

C1

C2

C3

C4

C5

C6C7C8C9

C10

C11

C12

C13

C14

C15

D1

HOEK1

HO

EK

2

HOEK3

HO

EK

4

IC1

IC2

LS1

P1

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13

R14

R15

R16

R17

R18

R19

R20

R21

R22

R23

S1T1

T2X1

02

03

54

-1

0V

+9V

02

03

54

-1(C

) ELE

KTO

R

Figure 7. Dessin des pistes et sérigraphie de laplatine du carillon de porte.

Liste des composants

Résistances :R1 à R3,R6 = 10 kΩR4 = 470 ΩR5 = 1 kΩR7 à R10 = 330 ΩR11 à R22 = 100 kΩR23 = 1 ΩP1 = potentiomètre 100 kΩ log

Condensateurs :C1,C2 = 22 pFC3 = 220 µF/10 V radialC4 = 100 nFC5 = 1 µF/10 V radialC6 à C9 = 4µF7/10 V radialC10 = 22 nFC11,C12 = 22µF/10 V radialC13 = 220 µF/10 V radialC14 = 220 nFC15 = 100 pF

Semi-conducteurs :D1 = diode zener 5V1/500 mWIC1 = PIC 16F84A-10/P

(programme EPS 020354-41)IC2 = TDA2006 (Philips)T1 = BD240T2 = BC547

Divers :LS1 = haut-parleur 4 ΩS1 = bouton-poussoir unipolaire à

contact travailX1 = quartz 10 MHzconnecteur à pression pour pile

9 Vpile 9 V

Page 32: Elektor N°300 - Juin 2003 - doctsf

configuré les différents registres de directiondes ports et les registres concernant les inter-ruptions (timer), la sortie RA3 est mise à « 1 »afin d’alimenter le transistor T2 pour mainte-nir l’alimentation de la carte.Toujours dans cette procédure, le programmeva lire le numéro du dernier morceau demusique interprété (NUM0) à l’adresseEEPROM « 0x00 » et son complément àl’adresse « 0x01 ». Si NUM0 et son complé-ment ne concordent pas, c’est qu’il y a eu uneerreur lors de la dernière sauvegarde de cesdeux valeurs. NUM0 est alors remis à« 0x00 », son complément à « 0xFF » et cesvaleurs sont à nouveau sauvegardées enEEPROM.Si NUM0 et son complément sont corrects(par exemple « 0x02 » et « 0xFD », NUM0 estincrémenté sans dépasser le dernier numéro

possible (au quel cas il est remis àzéro) et il est sauvegardé avec soncomplément pour la prochaine misesous tension.Pour finir la procédure initialisationautorise encore les interruptionstimer.

Le programme principal appellealors la routine « play ». Cette routineest la routine principale qui génèreles 4 notes de musique. Cette routinedevant obligatoirement « tourner » àla vitesse maximum, les instructionsont été optimisées à cet effet.Au début de cette routine, on auto-rise globalement les interruptionsafin de permettre à l’interruptiontimer de s’exécuter et on préposi-tionne le masque à 0. 4 décompteurssont décrémentés à chaque exécu-tion de la routine. Lorsqu’undécompteur arrive à zéro, le masqueest mis à jour pour positionner RB0 àRB3 en sortie à « 0 » ou en entrée(haute impédance) et ce décompteurest rechargé par la valeur correspon-dant à la note à générer. À la fin dela routine, le masque est appliqué auregistre de direction du port B par unou exclusif qui a pour effet d’inverserles sorties concernées (signal carré).La routine d’interruption intervient àchaque fois que le timer passe de0xFF à 0x0. Dans cette routine, letimer est rechargé avec la valeur« vitesse », le décompteur « durée »est décrémenté et lorsqu’il arrive àzéro la routine « morceau » est appe-lée. D’autre part les sorties RB3 àRB7 correspondant aux générateursd’enveloppes sont positionnées enentrée (haute impédance).

La routine « morceau » commencepar prépositionner le masque1 quiservira à piloter les sorties RB3 àRB7 pour charger les condensateursdes générateurs d’enveloppe.Un appel est alors effectué autableau « Morceau0 » qui est le débutde la partition musicale. Les poin-teurs « ptrmorceaul’ »et « ptrmor-ceauh » qui ont été calculés dansl’initialisation permettent de sauterau début du morceau désiré et derécupérer les 4 notes à interpréter ,la durée et l’accident. Cet accidentpeut prendre la valeur « tempo » pourrégler la « vitesse » (valeur à rechar-ger dans le timer) d’interprétation oula valeur ‘fin’ pour dire que le mor-

ceau en cours d’interprétation estterminé. La sortie RA3 est dans cecas remise à zéro, ce qui a pour effetde couper l’alimentation.

En guise de conclusionOn pourrait imaginer de nombreusesapplications pour ce montage outrecelui d’un carillon de porte, boîtejouet pour enfant, boîte à bijouxmusicale, musique d’attente au télé-phone, etc.

On peut fort bien envisager de chan-ger les morceaux programmés dansle PIC, mais cela implique la reprisede tout le processus d’assemblage etde compilation nécessaire à la géné-ration du code hexadécimal à mettredans le processeur. Un défi aux ama-teurs de ce processeur ô combienpopulaire, l’environnement néces-saire, MPLAB (c’est la version 5.70que nous avons utilisée ici, la version6.13 requérant un format de projetdifférent) est disponible gratuite-ment au téléchargement. Le proces-sus est simple, charger le projet(assurez-vous que tous les fichiers setrouvent bien dans le répertoireprévu, c:/software/ en l’occurrence)effectuer un assemblage + compila-tion par l’option Build All pour dis-poser du fichier .hex à mettre dans lePIC. Par le biais d’un programmateurde PIC adéquat.

(020354)

DOMESTIQUE

40 Elektor 6/2003

Liens Internet

MPLAB IDE 5.70de Microchipwww.microchip.com/1010/pline/tools/picmicro/devenv/mplabi/mplab5x/index.htm

Contenu de la disquette020354-11

Fichiers assembleur : carillon.asm,def84.asm, morceau.asm,macro84.asm

Fichier hexadécimal : carillon.hexFichier de projet : carillon.pjt

Mise sous Tension

Initialisation

Routine d'InterruptionTimer

Procédure Play

Interruption?

Procédure Morceau

Mise hors Tension

020354- 17

oui

non

oui

non

oui

non

NoteTerminée

?

Findu Morceau en

Cours?

Figure 8. Ordinogramme du programme.

Page 33: Elektor N°300 - Juin 2003 - doctsf

OUTILSdeDÉVELOPPEMENT

42 Elektor 6/2003

Il nous faut commencer par une remarqueimportante. La totalité de la documentationet le site consacré à ce produit sont en alle-mand, rien en anglais ou en français. Leproduit nous a cependant paru suffisam-ment intéressant pour être décrit dans noscolonnes.L’élément central de la version du halvedDISCprésentée ici est un ATmega8. Ce microcon-

trôleur appartient à la troisièmegénération de microcontrôleursFlash du fabricant Atmel et, commetous les membres de la famille AVR,dispose d’une mémoire de program-mation intégrée sous forme d’uneFlash en circuit reprogrammable.L’interface de programmation permetdonc d’écrire une nouvelle applica-

tion dans la Flash chaque fois quecela est nécessaire. De nombreuxcomposants typiques sont couplésau microcontrôleur. Outre un affi-cheur LCD (3 lignes) et des touchesde fonction, l’appareil possède plu-sieurs capteurs, une horloge entemps réel (RTC), un lecteur àcontact pour cartes à puces, un haut-parleur, etc. (figure 1). Des interfacesoffrent la possibilité d’effectuer desextensions externes. Il est tout aussipossible de se servir d’un halved-DISC pour des applications finales :fonctions de minuterie, mesure dedonnées ambiantes (température,humidité, pression), fonctions carteà puce ou fonctions de commande etde surveillance dans des applica-tions domestiques ou d’amateur. Encela, le halvedDISC se distinguefavorablement des cartes microcon-trôleurs conventionnelles, destinéesle plus souvent à atterrir dans uncoin lorsque la série d’essais est ter-minée ! Les exemples de pro-grammes disponibles sur le site webdu halvedDISC peuvent être directe-ment chargés et programmés dans lamémoire Flash.

Coup d’œil sur le matérielLe circuit du halvedDISC reste facileà comprendre malgré la présence denombreux composants intégrés, ; sa

halvedDiscSystème d’apprentissage pour microcontrôleurs

Par le professeur Olaf Hagenbruch, dr ingénieur et Heiko Polster

halvedDISC est un système d’apprentissage compact pourmicrocontrôleurs comportant une grande variété de composantspériphériques, des outils de développement gratuits et sa propre pageweb. Cette carte alléchante a été développée à la haute écoleMittweida (Saxe).

Page 34: Elektor N°300 - Juin 2003 - doctsf

programmation ne constitue donc pas un obs-tacle insurmontable. L’affichage LCD à3 lignes, l’horloge en temps réel et les diverscapteurs sont raccordés à l’interface TWI(Two-Wire Interface) du maître (bus I2C). L’in-terface SPI est utilisée pour la programmationsérielle du microcontrôleur ; le lecteur àcontact pour cartes à puces est aussi rac-cordé aux broches de cette interface.Les touches de fonction peuvent déclencherune interruption mais aussi être interrogées(polling) pour exécuter les fonctions de com-mande. Deux bascules monostables sont rac-cordées à une seule broche du microcontrô-leur dans le but de diminuer le courant decommande du relais. Les impulsions de lon-gueur différente permettent en effet de lecommuter sans que le courant passe conti-nuellement par les bobines. Le halvedDISC est alimenté par un bloc sec-teur externe, une pile 9 V ou un accumulateur.La carte du halvedDISC a été développéesous forme d’une demi-lune autonome. L’uti-lisateur a directement accès aux afficheurs,éléments de commande, connecteurs et à laplupart des autres composants. Les caracté-ristiques techniques décrivent les particula-rités des composants et des paramètres choi-sis pour le halvedDISC.

Outils logicielsIl existe des outils gratuits et peu coûteuxpour développer ses propres programmes.L’outil gratuit d’Atmel AVRStudio (ver. 3.55 ou4) permet de développer relativement rapi-dement des applications en langage assem-bleur et de les tester au moyen du simulateurintégré. Les fonctions et exemples de pro-grammes sur la page web du halvedDISCfacilitent énormément les premiers pas dansla programmation d’applications. AVRStudio(dans le menu Tools – AVRISP) donne accès àl’interface du programmateur AVRISP ; celui-ci permet de programmer la mémoire Flash,le domaine EEPROM et les bits à fusibles(fuse bits) du ATmega8.Il existe plusieurs compilateurs pour la pro-grammation en C. Le compilateur GNUAVRGCC fait bien l’affaire, et il est aussi gra-tuit. Ce compilateur étant lancé par une lignede commande, il peut être intégré facilementdans AVRStudio 3.55. Un seul environnementde développement suffit donc pour éditer,compiler, mettre au point et pour programmerla mémoire.Le compilateur C de l’entreprise Code Visionest un outil professionnel qui n’est pas horsde prix (de l’ordre de 150 € ). Ce logiciel esttrès bien adapté à la famille de microcontrô-leurs AVR. Le compilateur AVR de CodeVision est en fait un environnement de déve-

OUTILSdeDÉVELOPPEMENT

436/2003 Elektor

I2C-Bus

Temp.-Sensor

Feuchte-Sensor

(optional)

Laut-sprecher

Lastrelais

(Programmierung)

Funktions-tasten

Optokoppler-eingang

Fotowider-stand

Drucksensor(optional)

Analog-eingänge

LED

Real-Time-Clock

LCD-Anzeige

Hintergrund-beleuchtung

Strom-versorgung

ATmega8

ISP-Stecker

Chipkarten-Kontaktier-einrichtung

Quarz

4 MHz020368 - 11

Figure 1. Composants du halvedDISC, édition Atmega8.

halvedDiscDimensions Demi-lune de Ø = 160 mmMicrocontrôleur ATmega8 (8 Koctets de Flash ISP, 1 Koctet de

SRAM, 512 octets d’EEPROM ISP, 3 temporisa-teurs, CAN, etc.)

Fréquence d’horloge MC 4 MHzAffichages Afficheur LC 3 lignes

LED rouge (fonction programmable au choix)LED jaune (alimentation secteur externe)

Rétroéclairage Rétroéclairage LED pour affichage LCD, réglableAlimentation Bloc d’alimentation secteur 7,5 V= ou 7 à 9 V~,

ou bloc 9 VHorloge en temps réel DS1307Z (I2C) avec pile de sauvegardeCapteur de température LM75 (I2C)Capteur d’humidité (option) SHT11Capteur de pression (option) MS5534ACellule photoconductrice FW300 (seuil de déclenchement ajustable)Haut-parleur Haut-parleur miniatureRelais Relais à 2 contacts inverseurs et commande par

impulsionsCharge des contacts 0,5 A à 125 VAC et jusqu’à1 A à 30 VDC

Éléments de commande 2 à 3 touches de fonctionBouton RESETLecteur à contact pour cartes à puce

Connectique Système de connexion 2 mmPossibilités de raccordement Entrée optocoupleur (TTL) et 2 sorties relais de

type inverseurComposants I2C externes (TTL)Connexion programmateur (TTL)De 4 à 6 entrées analogiques du CAN sur puce

Consommation ≥ 4 mA (selon l’application et les composantsinclus)

Page 35: Elektor N°300 - Juin 2003 - doctsf

loppement complet qui offre tout le néces-saire pour développer des programmes en C.AVRStudio n’est nécessaire que pour la miseau point. Une version d’évaluation du compi-lateur se trouve sous www.hpinfotech.ro.D’autres compilateurs C pour microcontrô-leurs AVR sont fournis par les entreprises IAR(www.iar.com) et ImageCraft (www.image-craft.com).

Un article exhaustif en allemand et au format.pdf sur le halvedDISC décrivant aussi la com-mande d’un composant I2C, en l’occurrence

le capteur de température LM75,peut être téléchargé à partir du siteweb Elektor (www.elektor.fr). Lefichier, qui se trouve sous la rubriqueTéléchargement de ce numérod’Elektor, porte le numéro 020368-11.

(020368)

Sources :Le halvedDisc© avec sa documentationen allemand est disponible chez :IMM Ingenieurbüro, MittweidaTél. : +44 (0)3727/6205 - 0

Fax : +44(0)3727/6205 - 22Web: www.imm-ingenieurbuero.deE-Mail: [email protected]

Littérature :ATMEL: AVR Instruction Set, Rev. 0856D-AVR-08/02

Liens Internet :www.halveddisc.dewww.atmel.comwww.avrfreaks.netwww.national.co

OUTILSdeDÉVELOPPEMENT

44 Elektor 6/2003

Le microcontrôleur ATmega8Le ATmega8 est un rejeton des dérivés AT90 bien connus. Les megaAVR (largeur de structure 35 µm) comportent un CPU compatibleAVR ainsi que des mémoires Flash et EEPROM, toutes deux programmables in-system. Le ATmega8 monte jusqu’à 16 MHz, de sorte quele cycle d’une instruction dure 62 ns.

– 8 Koctets de Flash autoprogrammable avec possibilité de verrouiller le bloc d’amorçage (boot block)– 1 Koctet de RAM statique – Diverses interfaces série (USART, SPI, TWI)– Convertisseur A/D 10 bits de haute précision à référence interne– Détection programmable de baisse de tension (brownout)– Oscillateur RC calibré sur puce– Multiplicateur hardware (réalisation simple de la fonction MAC)– 5 modes programmables d’économie de courant– Tension de fonctionnement 2,7 à 5,5 V

Un microcontrôleur de la famille megaAVR permet d’effectuer jusqu’à 10 000 cycles écriture/effacement de la mémoire Flash intégrée, cequi est fort utile ici, car qui dit « système d’apprentissage » dit aussi « reprogrammation ».La taille mémoire et les composants périphériques du microcontrôleur ATmega8 ouvrent la porte à une foule d’applications. En fait, les 3ports de la puce – qui ne possède que 32 broches – ne sont pas entièrement disponibles pour les E/S numériques. De nombreusesbroches des ports exercent des fonctions multiples qui ne peuvent donc être exécutées qu’à tour de rôle.C’est alors que l’interface série bifilaire (TWI : Two-Wire Interface), qui permet de réaliser très facilement un système de bus I2C, dévoiletout son potentiel. Le raccordement de nombreux capteurs/actionneurs ne pose aucun problème vu les 128 adresses esclave disponibles.L’unité TWI présente aussi de nombreux avantages fonctionnels : elle gère entre autres le débit, la commande du start/stop, la sérialisa-tion/parallélisation des données, le processus d’arbitrage et le filtrage des signaux parasites aux broches TWI. La taille des programmes decommande du bus I2C, qui ne doivent pas contenir ces fonctions, en est réduite d’autant.

Périphérie intégrée du ATmega8

– 3 ports dont certaines broches sont multifonctionnelles– 2 temporisateurs/compteurs 8 bits avec prédiviseur et

mode de comparaison– 1 temporisateur/compteur 16 bits avec prédiviseur, mode

de comparaison et mode de capture– 3 canaux PWM– CAN avec 8 entrées analogiques max. (résolution 10 ou

8 bits)– Interface série bifilaire (TWI)– USART programmable– SPI programmable– Comparateur analogique– Temporisateur chien de garde (Watchdog Timer) program-

mable, à oscillateur incorporé

Structure de l’unité TWI

Bus Interface Unit

Start / STOP Control

Spike FilterSpike Filter

Slew Rate Control

Slew Rate Control

Arbitration

Address Register TWAR

Status Register TWSR

State Machine/Status Control

Control Register TWCR

AddressComperator

Address/Data ShiftRegister TWDR

Spike Supression Prescaler

Bit RateRegister TWBR

SCL SDA

Adress Match Unit Control Unit

Interner Bus

Bit Rate Generator

020368 - 13

Page 36: Elektor N°300 - Juin 2003 - doctsf

DOMESTIQUE

46 Elektor 6/2003

Qui n’a pas souhaité disposer d’un interrup-teur d’éclairage permettant de commander àdistance l’intensité lumineuse d’une lampe ?Vœu exaucé grâce à ce petit circuit basé surun microcontrôleur. Et un petit bonus avecça : la lampe s’allume et s’éteint progressive-ment en quelques secondes.

Passage par zéroCe gradateur, comme presque tous les cir-cuits de ce genre, est basé sur le principe dudécoupage de phase. Cette méthode unit éco-nomie et écologie en prolongeant la durée devie de la lampe tout en éliminant dans unecertaine mesure la pollution électromagné-tique de l’environnement. Pour atténuer lalumière par découpage de phase, il fautdéterminer l’instant précis lors duquel la ten-sion du secteur passe par zéro. Le circuit dela figure 1 nous dévoile la façon dont le micro-contrôleur procède pour être tenu au courantdu passage par zéro de la tension du secteur.La diode d’un opto-coupleur, IC3, est reliée ausecteur. La résistance constituée par lesrésistances R1 et R2 prises en série limite lecourant passant par la LED (pendant l’alter-nance positive) et celui passant par D1. Cettediode court-circuite presque complètementl’alternance négative qui parviendrait sinonà la LED. Le contrôleur ne reçoit donc que lesalternances positives. Mais si le contrôleurn’amorçait le triac qu’à chaque seconde alter-nance, la lumière scintillerait. Le logiciel faitappel à un petit truc (voir encadré) et amorce

le triac une seconde fois avec retardau cours de l’alternance négative.Il serait aussi possible de déterminerle passage par zéro à partir dusecondaire du transformateur. Il suf-firait de brancher une diode entre le

redresseur et le condensateur de lis-sage. Il paraît tout à fait raisonnabled’utiliser ce signal 100 Hz. Mais en yregardant de plus près, on s’aperçoitque le déphasage causé par le trans-formateur pourrait causer des pro-

Interrupteur-gradateurTélécommandable par RC5

Andreas Kneer

Cet interrupteur d’éclairage commandé par microcontrôleur possède unbouton d’enclenchement et de déclenchement et une fonction devariation télécommandée par RC5.

Page 37: Elektor N°300 - Juin 2003 - doctsf

blèmes. Restons-en donc à notresolution initiale.Alors que ces gradateurs ne pou-vaient être réalisés jadis qu’avec descircuits intégrés spéciaux, coûteux etdifficile à trouver, un petit microcon-trôleur de type courant, par exempleun AT89C2051, effectuera la tâcheparfaitement et à bon compte.Voyons un peu. On a bien entendubesoin du contrôleur avec ses cir-cuits standards : oscillateur et« Power-On Reset » (POR). Le détec-teur de passage par zéro a déjà étémentionné. Complétons le circuit parune alimentation secteur 5 V avecmini-transformateur, unrécepteur/décodeur infrarouge rac-cordé à K2, un bouton pour allumeret éteindre manuellement, une LEDd’état (brille lorsque la lampe estéteinte) et un triac. Ce triac IC4 pos-sède une entrée compatible TTL quipeut être commandée directementpar le microcontrôleur, à conditiond’intercaler une résistance de limita-tion de courant. Cette solution neprésente pas de problèmes particu-liers d’isolation ou de sécurité. LeS202S11 (avec dissipateur ther-mique) est prévu pour un courant delampe de 8 A, mais le fusible F1 nelaisse pas passer plus de 2 A, car lespistes ne sont pas prévues pour detelles intensités.

DOMESTIQUE

476/2003 Elektor

AT89C2051

P3.2

P3.3

P1.0

P1.1P3.0

P3.1

P3.4

P3.5

IC2

P1.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

S1X1

12MHz

C6

33p

C7

33p

C4

100n

+5V

R3

1k

D2

K2

+5V

K1

S202S11

IC45

4

1

2

2A T

F1

R5

8k2

C5

10µ16V

R4

15

+5V

R1

47k

R2

47k

R6

10k

CNY65

IC314 8

71

D1

1N4148

TR1

6V0VA35

B1

B80C1500

C1

220µ25V

C2

10µ16V

78L05

IC1

C3

100n

+5V

020337 - 11

TSOP1836SFH5110-36SFH506

Récepteur IR

Figure 1. Gradateur à microcontrôleur comportant peu de composants standards.

Structure du logicielLe logiciel, lorsqu’il n’est pas en train d’interpréter un code RC5, mesure conti-nuellement la tension du secteur pour déterminer la durée de la période. Lavaleur mesurée est divisée par 2, ce qui suffit au logiciel pour prédire quandamorcer le triac lors de l’alternance négative « manquante ». La reconnaissancedu passage par zéro repose sur une interruption externe (EX0Interrupt) quiréagit au flanc descendant de P3.2 (broche 6) du contrôleur. Ces interruptionsmettent en marche le temporisateur Timer1 qui génère à son tour une inter-ruption « Timer1 » lorsque sa capacité est dépassée. Cette interruption causel’amorçage du triac. Puis Timer1 est réinitialisé à la valeur de l’alternance mesu-rée précédemment et remis en marche. Le second amorçage a lieu au bout de10 ms (à 50 Hz). Le découpage de phase a donc lieu à chaque alternance.Le temporisateur du 89C2051 fonctionne comme un compteur cadencé à une fréquence de fOCS/12 (donc à 1 MHz). Le registre decomptage est incrémenté chaque microseconde. Une interruption est déclenchée par le dépassement de capacité du temporisateur12 bits.La valeur de rechargement est calculée dans le sous-programme d’interruption de Timer1. Un bit bascule à chaque dépassement de capa-cité du temporisateur :Bit = 0 : le temporisateur est chargé pour le décalage du point d’amorçageBit = 1 : le temporisateur est chargé avec la valeur 10 ms (à 50 Hz) pour l’amorçage lors de l’alternance négativeLa valeur de rechargement de Timer1 peut être augmentée ou diminuée en pressant les touches de la télécommande.Si l’allumage et l’extinction ont lieu manuellement, la valeur de rechargement est changée cycliquement. Ce processus automatique nepeut pas être modifié par la télécommande. Pour changer ce comportement (autre incrément, autres intervalles …), il est nécessaire dese plonger dans le programme. C’est pourquoi le logiciel, s’il est fourni tout emballé dans un microcontrôleur (EPS020337-41), est aussidisponible sur disquette, sous forme de code hexadécimal et code source en C (EPS020337-11), ou encore gratuitement sur le siteInternet Elektor sous le même numéro (et n’oublions pas les typons pour le tracé de la platine).

Détection de lademi-onde positive

Passage par zéro

Déclencher le triac

Attendre unedemi-période

Déclencher le triac

020377 - 12

Page 38: Elektor N°300 - Juin 2003 - doctsf

contact des pointes de mesure oudes doigts avec la tension du sec-teur.Encore un mot sur le récepteur IR.Tous les modèles peuvent être utili-sés sans exception à condition defonctionner à 36 kHz. Les brochagessont par contre plus ou moins incom-patibles. Il faut recourir à la fiche dedonnées pour assurer la liaison avecK2. Brochage de K2 :

(Broche 1)signal, vide, plus, masse, signal

On peut donc utiliser plusieursmodèles (voir schéma) sans trop entor-tiller les fils de liaison. L’optique durécepteur IR devrait être la seule par-tie dépassant du boîtier de protection.

(020337)

Autres boutons

Le gradateur a 3 fonctions accessibles partélécommande. Allumer, éteindre (aussi pos-sible avec S1) avec la touche son A/B, aug-menter la luminosité avec Vol+ et la diminueravec Vol–. Ces touches sont préprogrammées(lorsque la télécommande est utilisée pour lapremière fois et après une panne de courant),mais elles peuvent être reprogrammées. Pourcela, presser la touche S1 pendant environ 2 slorsque la lampe est éteinte. La lampe cli-gnote brièvement. Le contrôleur attend alorsun signal de la télécommande compatibleRC5. La touche pressée servira dorénavant àallumer et éteindre la lumière. Une secondepression sur S1 et la lampe clignote 2 fois. Onest passé à la programmation de l’augmenta-tion de luminosité. Une troisième pression àlaquelle répondent 3 clignotements et onpeut programmer la touche de diminution deluminosité. La lumière s’allume lorsque la pro-grammation s’est correctement terminée.Allumer ou éteindre la lumière au moyen dela télécommande ou S1 est devenu un pro-cessus graduel qui dure 1,5 s (allumer ) ou 3 s(éteindre). Le temps de mise en marche estplus court pour que la pièce s’éclaire plusrapidement lorsqu’on y pénètre. Lorsque lalumière est allumée par télécommande, laluminosité n’atteint pas le maximum mais ladernière valeur choisie.

La carteLe dessin des pistes et la sérigraphie de l’im-plantation des composants de la platine de lafigure 2 montre qu’il y a suffisamment deplace pour les composants ; il ne s’agit cer-tainement pas d’un montage serré. La platineest toutefois assez petite pour la dissimulerdans une prise de courant encastrée de

80 mm à condition de limer un peules coins. Placer tout d’abord les2 cavaliers C2/C5 et K2 puis, commeà l’ordinaire, le reste des composantsdes plus petits aux plus grands.N’essayez pas de remplacer R1 et R2par une seule résistance. Sinon, gareau claquage ! Le contrôleur devraitêtre monté sur un support permet-tant de l’enlever facilement de lacarte pour le reprogrammer.Prudence ! La platine est soumise àla tension du secteur. Un boîtier deprotection contre les contacts acci-dentels est un « must » absolu. S’ilest indispensable de manipuler lecircuit sous tension, assurez l’ali-mentation par un transformateur deséparation. Le fusible devrait êtremuni d’un capuchon de protectionpour éviter autant que possible le

DOMESTIQUE

48 Elektor 6/2003

020337-1(C) ELEKTOR

B1

C1C2

C3 C4C5

C6

C7

D1

D2F

1

H1H2

H3H4

IC1IC

2

IC3

IC4

K1

K2

R1

R2

R3

R4

R5

R6

TR1

X1

020337-1

S1

2AT

020337-1(C) ELEKTOR

Figure 2. Une platine bien disposée.

Liste des composants

Résistances :R1,R2 = 47 kΩR3 = 1 kΩR4 = 150 ΩR5 = 8kΩ2R6 = 10 kΩ

Condensateurs :C1 = 220 µF/25 V radialC2,C5 = 10 µF/16 V radialC3,C4 = 100 nFC6,C7 = 33 pF

Semi-conducteurs :D1 = 1N4148D2 = LED faible courantIC1 = 78L05

IC2 = AT89C2051-12 (programméEPS 020337-41)*

IC3 = CNY65IC4 = S202S11 (Sharp)

Divers :K1 = bornier encartable à 3 contacts

RM7,5K2 = SFH110-36, TSOP1836*S1 = bouton-poussoir à contact

travailTR1 = transfo secteur 6 V/0,35 VA,

tel que, par exemple, BV2010106(Hahn)

B1 = B80C1500 (rond)X1 = quartz 12 MHzF1 = porte-fusible encartable +

capuchon + fusible 2 A retardé

Page 39: Elektor N°300 - Juin 2003 - doctsf

INFORMATIONS

50 Elektor 6/2003

Quand il nous faut une source à basse ten-sion, notre premier réflexe est habituellementd’associer un transformateur à un pontredresseur. Une combinaison pleine d’avan-tages, la simplicité, l’excellente isolation parrapport au secteur, la robustesse et l’immu-nité aux perturbations. S’y rattachent aussiquelques défauts bien connus, l’encombre-ment, le poids, le faible rendement à fortepuissance et le prix.L’autre solution, c’est l’onduleur, l’alimenta-tion à découpage au primaire. Pour un ama-teur, se lancer dans la construction de pareilcircuit se révèle onéreux, malaisé et peu sûr.La moindre erreur se solde la plupart dutemps par un transistor de commutationgrillé : il n’est pas gratuit non plus. Parmi lescomposants nécessaires, plusieurs sont diffi-cilement disponibles au détail. Quant à lasécurité, il suffit de dire que le primaire doitse brancher directement au secteur ! À celas’ajoute encore la crainte (injustifiée, celle-là)de tout ce qui s’articule autour d’un noyaumagnétique et de bobines de fil de cuivre.Mais nous allons ici même envisager unerecette peu dispendieuse dont l’ingrédientprincipal est l’alimentation d’un PC AT ordi-naire. Il s’agit d’un ensemble produit engrande série, disponible partout, voire à récu-pérer sur un vieux PC. Tous les composants

nécessaires à la fabrication d’unonduleur s’y trouvent déjà.

Alimentation de PC ATLa structure d’une alimentation pourPC est très classique, il s’agit duconvertisseur va-et-vient. La tensiondu secteur est immédiatementredressée (figure 1) pour en faire du320 V. La moitié de cette tensioncontinue est envoyée par un transis-tor de commutation au primaire dutransformateur T1. En commutant àtour de rôle Q1 et Q2, le transforma-teur se voit magnétisé dans les deuxsens. Le transfert d’énergie res-semble ainsi très fort à la formulehabituelle. Côté secondaire, ontrouve pour chacune des tensions unbobinage à prise médiane et deuxdiodes qui redressent à pleine onde,D1 et D2 pour le 12 V, D3 et D4 pourle 5 V. Elles sont alors filtrées. Lesquatre autres diodes servent à formerles tensions négatives Dans la plu-part des AT, ces tensions-ci restentdépourvues de toute régulation, ellessont considérées comme accessoires.Le courant de base des transistors

commutateurs est délivré par letransformateur de commande T2, cequi préserve l’isolation galvaniquetotale de la partie secondaire.La partie primaire se limite au circuitautour des transistors Q1 et Q2, descondensateurs C1 et C2, des trans-formateurs T1 et T2, principalement.Mais attention : toute cette partieest connectée au réseau de distri-bution électrique !Notez que la figure 1 est un schémade principe et que certaines cellulesn’y sont pas représentées, par soucide clarté.Dans une alimentation de PC, c’esttoujours une puce des tempshéroïques qui assure la commandedes transistors commutateurs : leTL494 de Texas Instruments, qui nereprésente pas, vu son âge, le necplus ultra en matière de rendement,si l’on voulait construire du neuf.Mais pour notre projet, il offre l’avan-tage d’une adaptation aisée.La fréquence de commutation sesitue autour des 30 kHz, R1 et C1 ladéterminent. Dans chaque périodede 33 µs, on règle le temps deconduction de Q1 et Q2. Ce temps

Voulez-vous du continu ?Modifiez donc une alim. de PC AT

Ing. Joost Waegebaert

Les circuits électroniques consomment de moins en moins, n’empêche,il y a des appareils qui demandent encore pas mal de puissance à bassetension. Pensons à cette petite foreuse pour nos platines, au trainélectrique, à l’éclairage ou au chauffage de sécurité, au chargeurd’accumulateurs. Après quelques modifications, une alimentation ordinairede PC AT comblera vos désirs.

Page 40: Elektor N°300 - Juin 2003 - doctsf

pouvons pas dépasser lors de l’adaptation del’alimentation.

– La puissance secondaire totale ne peutjamais dépasser 200 W, le transformateurT1 et les transistors Q1 et Q2 sont calculésen conséquence.

– Le courant dans chaque bobinage de 12 Vdoit toujours être inférieur à 4 A, limiteimposée par L1a, D1 et D2.

– Le courant maximum dans chaque enrou-lement de 5 V est fixé à 10 A par L1b, D3et D4.

– La charge du transformateur doit restersymétrique pour égaliser les polaritésmagnétiques, ce qui implique des redres-sements pleine onde partout.

– Les tensions de sortie choisies doivent res-ter dans le voisinage de ±5 et ±12 V, Le rap-port des nombres de spires du transforma-teur T1 est ce qu’il est, mais on peut tablersur une plage de ±30 %, donc entre 3,5 et6,5 V d’une part, 9 et 15 V de l’autre. Maisle rapport restera invariable de l’une àl’autre. Si vous fabriquez du 6 V sur le cir-cuit à 5 V, vous obtiendrez 6 x 12/5 = 14,4 Vcôté 12 V.

1er exemple : 6 V/16 ALe 6 V souhaité ici est suffisamment prochede 5 V. Le courant demandé à chaque redres-seur sera de 8 A, ce qui reste sous la limite de10 A et la puissance totale atteindra 96 W.C’est donc possible. Nous n’avons pas besoindes sorties +12, –12 et –5 V, elles peuventdisparaître et nous obtenons le schéma de lafigure 3. Nous ne devons conserver que D1 etD2 pour fournir l’alimentation Vaux du TL494.La tension de sortie est déterminée par R4 etR5. Le TL494 s’arrange pour que les tensionsaux broches 1 et 2 restent égales. Celle de labroche 2 est fixée par la référence de 5 V. Latension sur R5 est aussi de 5 V, il en résulteune chute de 1 V aux bornes de R4. Calculonsla valeur de R4 dans ces conditions :R4 = (6 – 5) x R5 / 5Si nous choisissons 4,7 kΩ pour R5 et 1 kΩpour R4, la tension de sortie sera théorique-ment de 6,06 V.

2e exemple : 24 V/4 ALe 24 V ne se situe pas dans la fourchette de30 % évoquée. Il faudra faire appel à une autreméthode pour atteindre cette « haute » ten-sion. La figure 4 présente une solution pos-sible. On a ajouté au redresseur deux diodes,D5 et D6, qui doivent être des modèles depuissance du même type que D1 et D2. Pasquestion d’utiliser celles qui fournissent le–12 V / 0,5 A du circuit d’origine. Finalement,

définit finalement la tension de sor-tie, parce qu’il fixe le rapportcyclique de l’onde sur les cathodesdes diodes (D1 et D2), comme on levoit sur la deuxième trace de lafigure 2. La tension continue en sortie estapproximativement la valeurmoyenne de l’onde carrée. On com-pare à une référence interne de 5 V,via un diviseur de tension (R3 à R5),les tensions aux sorties 5 V et 12 V.Si elles sont trop basses, le TL494allonge le temps de conduction destransistors commutateurs, ce quifait remonter d’autant la tension desortie.

Adaptation à ses desiderata

Voici les valeurs nominales que four-nit une alimentation AT de 200 W :

+5 V 3 à 22 A+12 V 0,5 À 8 A–12 V 0,5 A–5 V 0,5 A

Ceci nous donne une idée descontraintes imposées aux compo-sants (transformateur, diodes,bobine de filtrage) dans chacune desbranches.Il y a d’autres limites que nous ne

INFORMATIONS

516/2003 Elektor

L1aC1

T1

D3

D1

C2

Filter

Q1

Q2

T2 L1b

+12V/8A

+5V/20A

+12V

-5V/0,5A

-12V/0,5A

-12V+5V -5V

L1d

D4

D2

R1

R2

C1

R3 R4

R9

R8

C9

R7D9

R5

4

6R

VCC

Osc

Ref

Vaux

PWM

C5

GndVr

1

2

16

151410

11

9

8

3

L1c

030006 - 11

Figure 1. Le schéma théorique d’une alimentation de PC AT.

Figure 2. Formes d’onde typiques au secondaire.

Page 41: Elektor N°300 - Juin 2003 - doctsf

on branchera l’appareil qui consomme du24 V entre les sorties +12 et –12 V, rebapti-sées pour la cause +24 et 0 V.Pour ajuster la tension de sortie, on part de larelation :

R3 = (12 – 5) x R5 / 5

Avec R5 = 3,3 kΩ, R3 passe à 4,7 kΩ et la ten-sion de sortie vaudra 2 x 12,1 = 24,2 V. Mêmesi le –12 V ne participe pas à la chaîne deréglage, cette tension suivra exactement labranche positive, à cause du couplage serréentre les deux enroulements secondaires deT1 et du filtre bobiné L1. Les formes d’ondede la figure 2 ont été mesurées dans cetteconfiguration avec une charge de 3 A.

Autres configurationsIl y a des alimentations pour PC dont les deuxenroulements secondaires de T1 sont faits dumême fil. Cela signifie que chacun des bobi-nages de 12 V peut alors délivrer 10 A, pourautant que la puissance totale de 200 W nesoit pas dépassée. Dans l’exemple 2, la sortie24 V est capable dans ce cas de fournir200 / 24 = 8,3 A, si les diodes et la bobine defiltrage le permettent.Avec le schéma de la figure 4, si l’on se sertde l’enroulement de 5 V, on atteint10 V / 10 A, par exemple. Le même schémapeut aussi servir à fournir ±12 V/ 2x4 A ou±5 V/ 2x10 A, si nécessaire. On le voit, lespossibilités sont nombreuses.

Choix des composantsBobine de filtrage L1La self L1 d’une alimentation AT compted’habitude cinq bobinages en bifilaire. En rai-son du fort courant dans L1b, le fil y est endouble.Les cinq sections de L1 forment une induc-tance couplée. Cela signifie que le nombre despires des enroulements pour le 5 et le 12 Vest en proportion de la tension. Le courant dedirection inverse pour la tension positive et latension négative doit résulter en un champmagnétique de même polarité. Les sectionsde self du côté négatif sont donc positionnéesdans l’ordre inverse du côté positif.Dans le premier exemple, L1 peut parfaite-ment servir de self de filtrage. Dans le secondexemple, en revanche, ce n’est pas possible.Le bobinage (L1d) d’origine pour le –12 V estgénéralement constitué de fil plus fin. Dansce cas, L1d est calculée pour un courant de0,5 A, selon la spécification, et ne peut doncsupporter les 4 A de l’exemple 2.La solution passe par la transformation de labobine. Il faut défaire tous les enroulements,

tout en comptant soigneusement lenombre de spires. Ensuite, nouspourrons rembobiner la self en deuxenroulements seulement, chacuncomptera le même nombre de spiresque L1a et le diamètre du fil doitvaloir au moins celui du fil de L1a, demanière à autoriser le passage de4 A. Les deux enroulements se bobi-nent ensemble, en bifilaire, pour cou-vrir la totalité du noyau d’origine.Tenez compte de leur polarité pour leraccordement.Il est recommandé, quand on doitrembobiner cette self pour une autretension de sortie, d’adapter le

nombre de spires en conséquence.Pour 15 V par exemple, on multiplieleur nombre par 15 / 12 = 1,25. Cen’est pas absolument nécessaire, laconséquence d’un trop petit nombrede spires se manifestera par uneondulation résiduelle un peu plusgrande.Dans le second exemple, il est aussipossible d’utiliser les deux partiesde L1b, puisqu’elles sont capablesde soutenir 10 A. Le résultat seraune augmentation relativement fortede l’ondulation résiduelle, mais poureffectuer une vérification rapide, iln’y a pas de souci à se faire.

INFORMATIONS

52 Elektor 6/2003

T1

D3

D1L1b +6V/16A

+6V+6V

D4

D2

R1

R2

C1

R4

R8

R7

R5

4

6R

VCC

Osc

Ref

Vaux

PWM

C5

GndVr

1

2

16

151410

11

9

8

3

030006 - 13

Figure 3. Une configuration possible pour obtenir 16 A sous 6 V.

L1aT1

D5

D1 +24V/4A

(+12V)

+24V(+12V)

(-12V)

0V

0(-12V)

L1d (*)

D6

D2

R1

R2

C1

R3

R8

R7

R5

4

6R

VCC

Osc

Ref

Vaux

PWM

C5

GndVr

1

2

16

151410

11

9

8

3

030006 - 14

Figure 4. Voici comment atteindre 24 V pour 4 A.

Page 42: Elektor N°300 - Juin 2003 - doctsf

secondaire (figure 6). Le réglage s’opère uni-quement sur la deuxième sortie.Aux bornes de l’enroulement situé entre les sor-ties de 5 et 12 V, il y a en théorie 7 V (les deuxfils dessoudés du tube ne sont pas utilisés).Rien n’empêche de les mettre à contributionpour atteindre une tension de sortie voisine de7 V ± 30 %, soit de 5 à 9 V ou de 10 à 18 V.

Détails supplémentairesAlimentation du TL494 (Vaux)Il nous faut également alimenter le contrôleurde découpage, à partir de la tension de pointeau secondaire. On y trouve une vingtaine devolts. Effectuez une nouvelle mesure de cettetension après modification. Le TL494 estcapable de fonctionner dans la plage qui vade 7 à 40 V.

Détection « Power Good »Une alimentation de PC est équipée d’unesortie « Power Good » qui reste haute (+5 V)tant que les tensions sont conformes. Si nousemployons l’alimentation dans une des confi-gurations décrites précédemment, la ligne dedétection va naturellement indiquer uneerreur. La plupart d’entre elles vont alors secouper par l’intermédiaire de la broche 4 duTL494. À nous d’adapter ce circuit également.Sur pratiquement toutes les alimentations dePC AT, le circuit de détection part d’un petitréseau tel que R7 à R9, D9 et C9, à la figure 1.Si tout va bien, on trouve sur C9 une tensiond’environ 3 V. Si vous voulez uniquement luidonner le change, sans vous préoccuperd’une vraie fonction « Power Good », il suffitd’éliminer R8. On installe alors aux bornes deC9 une résistance telle que l’on retrouve 3 Vau nœud. On ne peut pas supprimer C9, ilsert aussi au démarrage en douceur de toutel’alimentation.Il est donc crucial de dénicher ce réseauavant d’entreprendre une quelconque modi-

Diodes

Comme diodes, nous devons utiliserdes redresseurs Schottky rapides.On les trouve souvent par deux, sousboîtier TO220, les cathodes reliéesensemble à la broche centrale. Ellessont capables d’encaisser des cou-rants gigantesques, 2 x 25 A n’estpas une exception, mais endurentbeaucoup moins bien la tensioninverse, certaines ne tolèrent que25 V maximum. Or les signaux mesu-rés à la figure 2 montrent que la ten-sion de pointe à pointe sur le bobi-nage de 12 V monte à 64 V. Tensionque nous allons retrouver sur ladiode qui bloque. Une marge raison-nable pour l’enroulement de 12 Vnous conduit à prévoir au moins 90 Vde tension inverse de crête, même sinous choisissons une tension de sor-tie de 10 V, par exemple. La tensiondépend davantage de la largeurd’impulsion que de son amplitude.Ramener la tension de 12 à 10 Vn’aura qu’une très faible influencesur l’amplitude de l’onde carrée.Pour l’enroulement à 5 V, nous choi-sirons des modèles dont la tensioninverse de crête atteint 40 V.En outre, il est souhaitable de mon-ter en parallèle sur chaque diode unecellule RC d’amortissement, comme àla figure 5. Elle affaiblira les pointesde surtension qui se produisent lorsdes commutations, dans un senscomme dans l’autre. Pour lescondensateurs aussi, il faudra tenircompte de la tension admissible !Les diodes du circuit à 5 V sont uti-lisables pour pratiquement toutesles configurations, puisqu’il s’agit demodèles de 45 V / 2x10 A. Aucunsouci à se faire pour les 6 V / 16 A del’exemple 1, donc.Les choses ne seront pas aussisimples dans le circuit de 12 V. Surde nombreuses alimentations, ontrouve des diodes PR3002 spécifiées

à 100 V et 3 A. Visiblement, certainsfabricants d’alimentations (à bonmarché) sont persuadés qu’il ne fau-dra jamais plus de 6 A en continu. Sivotre projet en réclame davantage, ilexiste de meilleurs choix, parexemple la PBYR20100CP de Philips(100 V/2x10 A) ou éventuellement laPBYR10100 (100 V/10 A). Sous leurboîtier TO220, on les refroidit beau-coup plus aisément.

CondensateursLes condensateurs électrolytiquesde sortie sont là pour s’occuper del’ondulation résiduelle. Leur résis-tance interne (RSE) cause le déve-loppement d’une certaine tensionalternative à la sortie (trace RefA dela figure 2). Celle-ci sera d’autantplus faible que la RSE sera petite, ilen va de même de l’élévation detempérature de l’électrolyte. Seulsdes condensateurs à faible résis-tance interne survivent dans cegenre de montage.Autre facteur à considérer : la ten-sion de service. Les condensateursélectrolytiques utilisés font la plu-part du temps 2 200 µF/10 V pour labranche 5 V et 1 000 µF/16 V dans labranche 12 V. Si vous souhaitez destensions supérieures à 8 V d’un côtéou 14 V de l’autre, il faudra changerde condensateurs et prendre desmodèles à faible RSE de 16 V et 25 V.

Transformateur T1Le point de masse de tous les enrou-lements du transformateur, le pointmilieu, ressemble à un tuyau, il estdépourvu de broche. Les terminai-sons des bobines y sont torsadées,on peut aisément les désolidariser.On obtient ainsi deux enroulementsséparés, à prises asymétriques sur le5 V. Grâce à cela, on peut fabriquerdes alimentations dont les sortiesrestent indépendantes du point devue galvanique. Mais attention :comme les bobines secondaires deT1 sont bifilaires, la rigidité diélec-trique est très limitée, l’isolement netient que pour de la basse tension,jamais en regard de la tension dusecteur, par exemple.Il faut veiller à garder une chargesymétrique du transformateur sur lesdeux alternances de la magnétisa-tion. Le redressement ne peut sefaire que par pont, puisque nous nedisposons plus de prise médiane au

INFORMATIONS

536/2003 Elektor

L1aT1

VauxTL494

L1b

030006 - 16

L1aT1 D1

10Ω 10n100V

030006 - 15

Figure 5. Réseau d’amortissement surla diode pour atténuer les pointes desurtension.

Figure 6. Deux sorties séparées à isolationgalvanique.

Page 43: Elektor N°300 - Juin 2003 - doctsf

fication. Mais l’indice indubitable qui vous ymènera, c’est qu’il constitue l’unique lienentre le régulateur et les sorties –5 V et –12 V.Dès que vous l’aurez localisé, mesurez la ten-sion au nœud, en évitant de toucher lespièces sous tension du secteur !

Détection de surchargeIl y a deux formes de détection de surchargeen fonction sur l’alimentation AT. La versionancienne met en œuvre un petit transforma-teur de courant en série avec le primaire deT1. Cette mesure d’intensité, après redresse-ment et filtrage, est appliquée au deuxièmecomparateur du TL494 (broches 15 et 16) quien assure la régulation. Lors d’une surcharge,la largeur de l’impulsion qui commande letransistor de commutation est réduite. Cesystème de protection contre les surchargesne connaît pas de défaillance.Les nouveaux circuits se passent d’unemesure exacte et déduisent la valeur du cou-rant du rapport cyclique. S’il devient anor-malement élevé, le deuxième comparateur,toujours lui, le réduit. On économise du couple transformateur de courant et le coût del’alimentation en est diminué d’autant. Lasécurité est suffisante dans la plupart descas. Mais si, pour l’une ou l’autre raison, letransformateur entre momentanément ensaturation, l’incident ne sera pas détectécomme il l’était avec le transformateur decourant.

Charge minimaleUn regard à la figure 2 vous convaincra que lecondensateur électrolytique de sortie, en l’ab-sence de consommation, va se charger à latension de crête de l’onde carrée présente auxcathodes. Il faut donc une charge minimum enpermanence. Le témoin de fonctionnementpeut alors reprendre, avec nostalgie, la formed’une ampoule à incandescence plutôt qued’une LED, mais on peut se servir d’un venti-lateur ou simplement d’une résistance decharge branchée aux bornes de sortie.

TempératureLes diodes de redressement chauffent assezfort. À 10 A, on mesure sur une diodeSchottky entre 0,4 et 0,6 V, on approche doncdes 5 W de dissipation (c’est une approxima-tion, parce qu’une diode ne conduit pas enpermanence, mais ici, il y en a deux dans lemême boîtier). Tout nu, un boîtier TO220 pré-sente une résistance thermique de 50 °C/W,l’élévation de température atteindrait250 °C… Un radiateur est donc indispensable.Entre la jonction et le même boîtier TO220, larésistance thermique n’est que de 1 °C/W. Si leradiateur offre une résistance thermique de10 °C/W, nous aurons entre jonction et air

ambiant 11 °C/W, l’élévation de tem-pérature, pour 5 W ne sera plus quede 55 °C. Dans un environnement à30 °C, la température de jonctions’élèvera donc à 85 °C, ce qui estadmissible.Si vous partez du principe quequand c’est trop chaud, il n’y a qu’àsouffler dessus, vous pouvez utiliserun ventilateur. Un léger courant d’air(moins de 0,5 m/s) permet de diviserpar trois la résistance thermiqued’origine du radiateur. En reprenantle même exemple, la résistancetotale tombe à 4 °C/W, l’élévation detempérature ne fait plus que 20 aulieu de 50 °C, c’est tout bénéfice, évi-demment.Les transistors de commutation sontaussi installés sur un radiateur, maisdans ce cas-ci, il suffira à la tâche.Une tension mortelle est présentesur ce radiateur, n’allez donc pas yaventurer un doigt distrait pour véri-fier si la température est bonne !

Autres applicationsCe genre d’alimentation ne se prêteguère à la réalisation d’une sourceréglable, mais on peut malgré touts’octroyer une certaine plage deréglage par une intervention dans laboucle de rétroaction du TL494. Onpeut donc l’utiliser pour régler lavitesse d’un moteur ou l’intensitéd’une rampe d’éclairage. À lafigure 7, on voit une résistance R10en parallèle sur R4. Elle fera baisser latension de sortie. Le montage enparallèle peut se régler à l’aide d’untransistor ordinaire ou d’un photo-

coupleur en série avec R10. L’aug-mentation du courant dans la LEDdu photocoupleur fera diminuer latension de sortie.

Au boulotNous l’avons montré, une alimenta-tion de PC AT peut facilement servirà fournir et régler sous d’autres ten-sions continues une puissance rela-tivement grande.Avant de se lancer dans la modifica-tion, mieux vaut dessiner le schémadu petit circuit de réglage à l’entourdu TL494, pour mettre en évidenceles résistances de rétroaction et dedétection « Power Good ». Vous pour-rez ensuite, à l’aide des informationsde cet article, envisager les possibili-tés de conversion vers les tensions etcourants que vous souhaitez obtenir.Nous ne voudrions pas vous laisserà vos projets sans avoir rappelé, unefois encore, la prudence qui est demise dès l’ouverture du capot del’alimentation. Un certain nombrede composants y sont soumis à latension du secteur, tout contactavec elle risque d’être mortel !

(030006)

LittératureFiche de caractéristiques TI TL494 :

www-s.ti.com/sc/ds/tl494.pdfFiche de caractéristiques Philips

PBYR20100 :www.semiconductors.philips.com/pip/PBYR20100CT.html

Note d’application Philips ThermalManagement APN :www.semiconductors.philips.com/acrobat/applicationnotes/APPCHP7.pdf

INFORMATIONS

54 Elektor 6/2003

L1b

R1

R2

C1

R4

R5

4

6R

VCC

Osc

Ref

Vaux

Vout

VCPWM

C5

GndVr

1

2

16

151410

11

9

8

3

R10

R11

030006 - 17

Figure 7. Ajouter R10 et un photocoupleur permet de régler, dans une certaineplage, la tension de sortie.

Page 44: Elektor N°300 - Juin 2003 - doctsf

DS1302Horloge en temps réel

Micontrôleurs et périphériques

DS1302Horloge en temps réel

Micontrôleurs et périphériquesINFOCARTE 6/2003 INFOCARTE 6/2003

556/2003

Elektor

DS1302Horloge en temps réel

Fabricant :Dallas Semiconductor (fait partie maintenant deMaxim Integrated)http://pdfserv.maxim-ic.com/arpdf/DS1302.pdf

Caractéristiques :– Circuit d’horloge en temps réel donnant la secon-

de, minute, heure, jour du mois, mois, jour de lasemaine, et année (avec compensation desannées bissextiles jusqu’en 2100)

– RAM statique de 31 octets de large avec sauve-garde par pile

– Réduction au strict indispensable du nombre deslignes d’E/S par transmission sérielle

– Fonctionne à une tension d’alimentation compriseentre 2,0 et 5,5 V

– Consommation de courant faible, inférieure à200 nA sous 2,0 V

– Mode salve (burst) pour la lecture/écriture de nadresses dans la – RAM de l’horloge

– Boîtier à 8 broches– Interface 3 fils– Compatible TTL

Description :Le DS1302, conçu à l’origine pour le suivi chronolo-gique de la fonction de charge d’appareils alimentéspar accus, intègre une horloge en temps réel avecfonction de calendrier et une RAM statique de31 octets. Il communique avec un microcontrôleurpar le biais d’une interface sérielle dépouillée. Latransmission des données se fait par le biais de3 lignes seulement : RAZ (Reset), horloge sérielle(SCL = Serial Clock) et E/S (I/O). Il est possible defaire transiter les données dans les 2 sens, soit octetpar octet soit en mode salve qui permet d’envoyerdes groupes de 32 octets maximum.L’horloge en temps réel/calendrier égrène lessecondes, minutes, heures, jours du mois, mois,jours de la semaine et année. L’horloge travaille enmode 24 ou 12 heures avec mention AM/PM. Enfonctionnement, le DS1302 ne requiert que trèspeu d’énergie et consomme moins de 1 µW pourgarder à jour les informations de date et d’heure.Le DS1302 remplace le standard de l’industriequ’était devenu son prédécesseur, le DS1202, maiscontrairement à ce dernier, utilise 2 broches pourson alimentation sachant qu’il utilise celle dont leniveau de tension (VCC ou tension de pile) est leplus élevé. Cela permet d’avoir une recharge d’en-tretien de l’accu de sauvegarde..Le DS1302 possède en outre quelques octets demémoire de brouillon (scratchpad).

Adresses de registres/définitions :Avant le transfert de données la ligne RST doit êtremise au niveau haut de manière à activer la logiquede commande du DS1302. Dans le cas d’une lectu-re la prise en compte des données se fait bit par bitsur flanc montant du signal SCLK, lors de la lectureau contraire ce processus se fait sur les flancs des-cendants. Chaque transfert de données est précédéd’un octet d’instruction.Le bit de poids fort (MSB = Most Significant Bit)doit se trouver à « 1 », le bit 6 indiquant la destina-tion des données, l’horloge (0) ou la RAM (1). Lesbits 1 à 5 spécifient le registre concerné, le bit depoids faible (LSB = Least Significant Bit) indiquantenfin s’il s’agit d’un processus de lecture (1) ded’écriture (0).Une fois le transfert de données terminé la ligneRST est remise au niveau bas. Ceci définit égale-ment s’il s’agit d’une opération concernant un octetunique ou plusieurs octets (mode en salve).La figure 4 donne les différentes adresses deregistre et leur contenu. Tous les autres bits doiventse trouver à « 0 ». Si l’on a affaire au mode en salve(burst) pour l’horloge ou la RAM, les emplacementsA4 à A0 se trouvent à « 1 ». On a ensuite arrivéedes données à compter de l’adresse 0. En fonctionhorloge il faut commencer par écrire les 8 registres,en fonction RAM, le processus de transfert peutêtre interrompu après un nombre quelconqued’adresses.

Chargeur goutte-à-goutteLe registre de chargeur goutte-à-goutte (tricklecharger) détermine le courrant de (re)charge del’accu de sauvegarde (back-up). L’activation du char-geur se fait par la série de bits TCS 1010 (bits 7 à4). Les bits 3 et 2 indique la prise entre VCC2 etVCC1 de une (01) ou de deux (10) tensions de seuilde diode. Les bits 1 et 0, RS, définissent la valeurd’une résistance de charge :

Structure interne :

Bit 0 Bit 1 R

0 0 –

0 1 2 kΩ

1 0 4 kΩ

1 1 8 kΩ

La valeur du courant de charge répond à la formule suivante : I = VCC2 – tension de seuil)/R

Page 45: Elektor N°300 - Juin 2003 - doctsf

DS1302Horloge en temps réel

Micontrôleurs et périphériques

DS1302Horloge en temps réel

Micontrôleurs et périphériques

56El

ekto

r6/

2003

INFOCARTE 6/2003 INFOCARTE 6/2003

Broche FonctionX1,X2 Connexion du quartz 32,768 kHzGND MasseRST Remise à zéroI/O Entrée/Sortie des donnéesSCLK Horloge sérielleVCC1, VCC2 Alimentation

Application :

Brochage et boîtiers :

Page 46: Elektor N°300 - Juin 2003 - doctsf

DOMESTIQUE

60 Elektor 6/2003

L’utilisation de la minuterie est la simplicitémême. D’abord, sélectionnez la durée quevous souhaitez en poussant sur les deux bou-tons appropriés. Par exemple, pressez le bou-ton des unités une fois pour 1 x 1 minute et lebouton des dizaines d’unités trois fois pour 3x 10 minutes. Et voila sélectionnée unepériode de décompte de 31 minutes. Encontinu avec les pressions sur les deux bou-tons, le nombre de minutes sélectionnéesapparaîtra sur l’affichage à 2 chiffres. Lesdeux boutons permettent une sélection enboucle de zéro à neuf, puis de neuf à zéro.Une fois la durée voulue sélectionnée, pres-sez simplement le bouton « Start ». Immédia-tement une LED rouge s’allumera et lecompte à rebours commencera. L’affichage semettra à clignoter une fois le temps écoulé.Après une minute de fonctionnement du réso-nateur, le mode de veille est automatique-

ment activé. Un nouveau compte àrebours nécessite une RAZ du micro-contrôleur, ce qui implique que vousdevrez éteindre le temporisateur etle rallumer.

Comment fonctionne le matérielLe diagramme du circuit de minuterieest donné en figure 1. Avec un

micro-contrôleur AT90S1200 cadencéà 4 MHz et en utilisant un de sestemporisateurs internes (Timer 0), ilest possible d’obtenir une période decomptage précise de l’ordre de laseconde sur plusieurs minutes. Lafréquence d’horloge du micro-contrô-leur est générée à partir d’un quartzon ne peut plus standard de 4 MHzet de l’habituelle paire de petitscondensateurs connectés aux pattes

Temporisateur-décompteurMinutage précis à partir d’un micro-contrôleur AT90S1200

Projet : Andy Morell [email protected]

Ce montage est simple à construire et à utiliser et pourtant suffisammentprécis pour permettre le compte à rebours de n’importe quel intervalle detemps de quatre-ving-dix-neuf minutes à une minute. L’affichage lumineuxà deux chiffres indique le nombre de minutes restantes et il y a unrésonateur piézo pour indiquer quand le décompte atteint zéro !

Caractéristiques principales– Durée de compte à rebours

de 1 à 99 minutes– Affichage 2 chiffres à affichage

7 segments à LED– 3 boutons de commande– Faible consommation de puissance– Alimentation par batterie 3 volts– Circuit micro-contrôleur AT90S1200

Page 47: Elektor N°300 - Juin 2003 - doctsf

de l’oscillateur de l’AT90S1200.Le micro-contrôleur AT90S1200 estbon marché, facile à obtenir et à uti-liser. De plus, il accepte, ainsi quenous le montrons ici, de travailler àpartir d’une alimentation par batte-rie de 3 volts.L’impulsion de remise à zéro estgénérée par le réseau RC, R1/C1,alors que les transistors T1 et T2contrôlent les broches d’anodes com-munes (CA) des afficheurs HD1131O.Il y a sept résistances de 100 à 150 Ωqui limitent le courant à travers cha-cun des sept segments de l’afficheuractif. La valeur réelle de ces résis-tances dépend de la luminosité del’affichage souhaitée et impose detrouver un compromis avec laconsommation en courant (et donc ladurée de vie de la batterie). Pourcommencer, nous recommandonsd’utiliser des résistances de 150 Ω.Il y a également trois résistances deforçage de 10 kΩ pour les boutonspoussoirs. Le niveau logique haut(+3 V) créé par ces résistances pré-vient les déclenchements erratiquesdes broches d’entrée PD2, à PD4 dumicro-contrôleur.Pour finir, le petit résonateur piézoutilisé est du type DC « actif ». Cecomposant est directement com-mandé par la broche PB7 du micro-

DOMESTIQUE

616/2003 Elektor

AT90S1200RESET

IC1

XT1 XT2

PB6

PB5

PB7

PB4

PB3

PB2

PB1

PB0

PD0

PD1

PD2

PD3

PD4

PD5

PD6

20

10

19

18

17

16

15

14

13

12

11

5 4

1

2

3

6

7

8

9

HD1131

LD1

10

dp

CA CA

7 a

6b

4c

2d

1e

9f

g

3 8

5HD1131

LD2

10

dp

CA CA

7 a

6b

4c

2d

1e

9f

g

3 8

5

X1

4MHz

C5

22p

C4

22p

T1

BC327

T2

BC327

R10

47

R11

47

R2

47

R14

10k

R1310

kR12

10k

R1

10k C2

100n

C3

10µ

S2

START

S3

TENS

S4

UNITS

D1

C1

R3150Ω

R4150Ω

R5150Ω

R6150Ω

R7150Ω

R8150Ω

R9150Ω

020296 - 11

16V

16V

Bz1

BT1

3V

S1

2mA/45mA

Figure 1. Organigramme du temporisateur-décompteur. L’utilisation d’un micro-contrôleur a permis une belle diminution du nombre decomposants.

reset

initialisationinterruptions

initialisationdes ports

incrémenterles unités

rafraîchissementaffichage

attente d’interruption020296 - 12

rafraîchissementaffichage

conversion vers7 segments

actionsur lesunités

?

effacerunités

> 9?

incrémenterles dizaines

effacerdizaines

> 9?

actionsur les

dizaines?

actionsur

start?

oui

oui

oui

oui

oui

non

nonnon

non

non

Figure 2. Organigramme du programme principal.

Page 48: Elektor N°300 - Juin 2003 - doctsf

contrôleur et garantit d’obtenir le niveausonore adéquat quand cela est nécessaire.

Comment fonctionne le logicielUn ordinogramme du programme principaltournant dans l’AT90S1200 est donné à lafigure 2. La structure de la routine d’inter-ruption est illustrée séparément à la figure 3.Pour être en mesure de comprendre la dis-cussion qui suit, il sera utile de disposer dulistage du code source sur papier ou de l’affi-cher sur l’écran de votre ordinateur. Le fichiercorrespondant est disponible sur disquettesous le numéro de commande EPS020296-11auprès des adresses habituelles ou par télé-chargement à partir de notre site Web sous lamême référence.À la remise à zéro, le micro-contrôleur initialisele pointeur de pile afin de permettre d’enre-gistrer adresses et autres informations lors del’appel de sous-routines, en particulier dansle cas d’interruptions comme c’est le casdans ce projet.Comme indiqué plus tôt, nous utilisons pourcela le temporisateur Timer 0. Cela nécessitel’initialisation du registre de contrôle deTimer 0, TCCR0. La division de la fréquenced’horloge par 256 nous permet de générerune interruption toutes les secondes. On yarrive en pré-chargeant la valeur 0b00000100,soit 04 en hexadécimal, dans le registreTCCR0.La tâche suivante consiste à autoriser lesinterruptions de Timer 0. Cela se fait en posi-tionnant le bit 1 (T0E0) dans le registreTIMSK. À présent, l’interruption de Timer 0est armée et se produira toutes les secondes

pour une horloge de base de 4 MHz.Lors d’une interruption, il est faitappel à la routine display DIS-PLAY_DIGITS. C’est à ce niveau que

l’on compte 61 interruptions dans unregistre baptisé time_out.Nous vous proposons ci-après la par-tie intéressante de cette routine :

DOMESTIQUE

62 Elektor 6/2003

interruption

reti

inhiber interruptions

incrémentationdes secondes

validerinterruption

effacer 1 chiffrede l’affichage

(économie d’énergie)

piézo résonne

020296 - 13

1minute de

passée?

effacersecondes

tempsécoulé

?

décrémenter le temps

non

non

oui

oui

Figure 3. Organigramme de la routine d’interruption.

Figure 4. Dessin du circuit du temporisateur-décompteur .

020296-1(C) ELEKTOR

BZ1

C1

C2

C3

C4 C5

D1

H1H2

H3 H4

IC1

LD1 LD2

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13

R14

S2 S3 S4

T1 T2

X1

020296-1

+

-3V

+

-

020296-1 (C) ELEKTOR

Page 49: Elektor N°300 - Juin 2003 - doctsf

de sérigraphie du côté « composants » dupetit circuit imprimé simple face destiné autemporisateur-décompteur sont donnés à lafigure 4. Ce circuit imprimé n’est pas dispo-nible tout fait auprès des adresses habi-tuelles, mais vous pouvez le trouver par lebiais d’un lien (The PCBShop) présent sur lesite d’Elektor à l’adresse : www.elektor.fr.Commencez la construction en plaçantl’unique pont de câblage au-dessus de l’affi-chage LD1. Ensuite, montez les résistances,puis les condensateurs (attention à la polaritéde C1 et C3). Pour suivre, montez un supportde circuit intégré DIL à 20 broches et lequartz. Le résonateur piézo et la batterie sontexternes au circuit et y sont raccordés à l’aidede morceaux de fil de câblage souples.L’affichage à anode commune HD1131 est dis-ponible en différentes versions, le suffixe indi-quant la couleur. Nous recommandons ici laversion « Q » super-rouge. La luminosité peut-être indiquée séparément dans le code dutype du composant, par exemple par un « L ».En choisissant une version très brillante, onatteint un bon compromis en consommationde courant et lisibilité. À ce propos, voyezaussi les notes concernant les valeurs desrésistances R3 à R9.Selon le type de boîtier que vous choisirezd’utiliser, les LED et les trois boutons pous-soirs devront peut être être un petit peu sur-élevés par rapport à la surface du circuit afinde les amener à niveau avec la face avant duboîtier. Dans le cas des boutons-poussoirs,cela peut nécessiter de rallonger leurs pattesà l’aide de morceaux de fil rigide.Soudez ensuite les transistors BC327 et lesafficheurs. Tout comme pour les LED et lesboutons-poussoirs, vous pourriez vouloir sur-élever les afficheurs de la surface de la pla-tine en les insérant dans des sections de sup-port SIL. Il y a quelques bornes « Vero » des-tinées à la batterie, au résonateur et àl’interrupteur « on/off » qui sont montés enface avant. Notez que la batterie est consti-tuée de deux piles AAA qui sont parfaite-ment suffisantes pour plusieurs heures d’uti-lisation effective.

(020296)

DISPLAY_DIGITS:

IN SAVE_STATUS, SREGCPI FLAG_1,$FFBRNE ALARM_NOT_SET

INC TIME_OUTCPI TIME_OUT, 61 ;1 SECONDBREQ TIMER_OUT

Nous ne souhaitons cependant pasencore que cette interruption se pro-duise juste à ce moment et nousallons donc l’inhiber grâce à l’ins-truction CLI (Clear Interrupt).Maintenant, tous les ports sont ini-tialisés dans leurs états respectifsd’entrées et sorties.Vous pouvez aisément voir commentfonctionne le logiciel dédié à la ges-tion des boutons poussoirs. Si vouspressez le boutons « Units » (unités),cela invoque la routine d’incrémen-tation. Il en va de même pour le bou-ton « Tens » (dizaines). C’est seule-ment quand vous poussez sur lebouton « Start » que le programmese branche (finalement) vers la sec-tion de décomptage.Avant que le bouton « Start » ne soitpoussé, le programme se trouvedans une boucle dans laquelle onréalise le rafraîchissement de l’affi-chage. Il y a aussi une routine « GetSeven Segment » qui réalise l’affi-chage du motif approprié.Le programme n’attend plus, pourpasser à l’étape suivante, que vousretiriez votre doigt du bouton« Start ».À ce moment, l’interruption estarmée et la ISR (Interrupt ServiceRoutine = routine de gestion desinterruptions) est appelée toutes lessecondes. Maintenant le programme

exécute une boucle continue prenantégalement en charge le rafraîchisse-ment de l’affichage et bien sûr laconversion vers les 7 segments utili-sés ici.Les interruptions vont à présent seproduire et le RGI sera à chaque foisinvoquée.Ce n’est pas seulement l’endroit oùle décomptage se fait mais elle véri-fie aussi si le décompte a atteint zéroou non (ce qui se fait en vérifiant siCOUNT1 et COUNT2 valent tous lesdeux 0). Si ce n’est pas le cas, alorsle micro-contrôleur continue à affi-cher le temps restant et fait égale-ment appel à une routine de conver-sion BCD (Binary Coded Decimal =décimal codé binaire). L’objectif estd’empêcher l’affichage de caractèresalphanumériques autres que leschiffres de 0 à 9.Notez que l’interruption est désacti-vée à l’entrée de la ISR et réactivéeà sa sortie. Finalement, on quitte laISR et le programme retourne à l’exé-cution de la boucle principale décriteprécédemment. Cela continuera dela sorte jusqu’à ce que COUNT1 etCOUNT2 atteignent tous les deux 00.Il y a bien plus à découvrir et àapprendre du listage du code sourcequ’il ne peut être décrit ici et lefichier du code source (gratuit) estrecommandé non seulement à ceuxd’entre vous qui sont en mesure deprogrammer leurs propres circuitsmais également aux programmeurstravaillant avec les AVR à larecherche d’idées neuves.

Comment construire letemporisateurLe tracé du côté « pistes » et le plan

DOMESTIQUE

636/2003 Elektor

Liste des composants

Résistances :R1,R12 à R14 = 10 kΩR2,R10,R11 = 470 ΩR3 à R9 = 100 Ω à 150 Ω (cf. texte)

Condensateurs :C1 = 1 µF/16 V radialC2 = 100 nFC3 = 10 µF/16 V radialC4,C5 = 22 pF

Semi-conducteurs :D1 = LED 3 mm rouge

IC1 = AT90S1200-12PC (Atmelprogrammé, EPS020296-41)

LD1,LD2 = HD1131O (cf. texte)T1,T2 = BC327

Divers :BT1 = 2 piles 1,5 V AA ou AAA avec

porte-pileBz1 = résonateur CC 5 VS1 = interrupteur marche/arrêtS2 à S4 = bouton-poussoir unipolaire

à contact travail (cf. texte)X1 = quartz 4 MHz (modèle bas

profil)

Téléchargements Gratuits– Fichiers code-source et HEX.

Numéro de fichier : 020296-11.zip

– Tracé du circuit au format PDF. Numérode fichier : 020296-1.zip

www.elektor.fr/dl/dl.htm choisissez le moisde la publication.

Page 50: Elektor N°300 - Juin 2003 - doctsf

MICROCONTRÔLEUR

64 Elektor 6/2003

Les affichages matriciels demandent unerécurrence de trame d’au moins 50 Hz pourles empêcher de papilloter. Le contrôleurd’écran se base sur un 8051 qui stocke enRAM l’image à reproduire et l’envoie à l’affi-cheur au rythme voulu. La commande del’écran représente un lourd travail pour laCPU. Pour lui préserver une partie de sa capa-cité au profit d’autres tâches, nous avons ima-giné une solution en partie matérielle. En prin-cipe, la CPU devrait extraire de la mémoire lesoctets les uns après les autres pour lesémettre sur le port de sortie. Grâce à uneastuce, ce ne sera pas nécessaire. Nous

relions directement la commanded’écran LCD au bus de données sansintervention de la CPU. La seulechose qu’elle doive faire, c’est lirel’octet à la bonne adresse demémoire et en même temps fairesigne au pilote LCD qu’il doit lire lesdonnées présentes sur le bus (cf.figure 1) à cet instant. La CPU pro-cède donc à une lecture factice, sim-plement pour que les données néces-saires soient présentes sur le bus aumoment voulu, sans avoir à les utili-ser elle-même. Le pilote de LCD sait

quand il doit lire les données sur lebus grâce à un signal de la ligneXSCL, laquelle est activée par lesignal RD du processeur. Puisque leprocesseur ne doit exécuter qu’uneopération de lecture, sans écriture, iléconomise presque 50 % du temps.Les autres signaux de commande dumodule LCD (LP et FLM) passent parles lignes de sortie du microcontrô-leur. Le signal FR dérive de FLM. Ilsne doivent pas être émis à une fré-quence aussi élevée que celle deslignes de données et donc ne cau-sent pas de souci à la CPU.

La méthode du couplage direct entrele module LCD et la mémoire permetencore de réaliser d’autres fonctionsnécessaires.– La mémoire d’écran reste acces-

sible à la CPU, qui peut y enregis-trer les nouvelles données par unesimple opération d’écriture.

– La CPU peut faire glisser horizon-talement et verticalement les infor-mations reproduites à l’écran pouren faire apparaître la partie vouluelors de l’actualisation de l’afficheur.

– Il n’est pas nécessaire de prévoirun circuit supplémentaire pourscander la commande de l’affi-cheur, puisque c’est l’unité cen-

Pilotage de LCD2e partie : le matérielWim Huiskamp

Cette partie-ci va examiner, à partir des connaissances théoriques acquisesdans la première, comment attaquer l’affichage matriciel d’un jeuélectronique par un microcontrôleur 8051. Mais le rythme auquel il fautenvoyer les données à l’afficheur est tel que nous aurons besoin d’uneastuce de « tuyauterie » pour soulager quelque peu la CPU (unitécentrale de traitement).

Page 51: Elektor N°300 - Juin 2003 - doctsf

druple à deux entrées. Les quatre sorties dumultiplexeur sont envoyées aux entrées dumodule LCD (D0 à D3). Ces quatre bits dedonnée seront lus par le module au momentdu flanc descendant du signal XSCL. Le mul-tiplexeur choisit alternativement le quartetbas (AD0 à AD3) et le quartet haut (AD4 àAD7) du bus de données. C’est ainsi que laCPU peut mettre à disposition les huit bits dedonnée en une seule opération de lecture. Lasélection d’entrée du multiplexeur est com-mandée par une bascule 74HC74 (IC2a) quichange d’état à chaque flanc montant dusignal XSCL. Le bit de poids faible (AD0) s’af-fiche à gauche sur écran, le bit de poids fort(AD7) apparaît le plus à droite. Si, pour unautre modèle, on devait obtenir l’inverse, ilfaudrait modifier la séquence des lignes dubus de données à l’entrée du multiplexeur.Pour être sûr que la bascule reste en syn-chronisme, elle est toujours positionnéequand le signal LP devient actif à l’aide del’inverseur IC3.A.Le signal XSCL dérive de RD On commencepar tamponner, par IC4.A et IC4.B, la ligne RDpour éviter de la surcharger. IC4c empêcheque XSCL soit actif lors d’une opération nor-male de lecture. On utilise à cet effet le signalLP, qui est haut pendant une lecture normalepar la CPU et ne passe au niveau bas que lorsdu rafraîchissement de l’affichage. En soi, ceserait suffisant pour obtenir XSCL, mais onobligerait la CPU à lire deux fois pour envoyerun octet complet à l’affichage, une pour lequartet haut, une autre pour le bas. Les deuxmonostables IC5.A et IC5.B vont nous déli-vrer de la corvée. Le signal RD déclenche lapremière bascule, dont la sortie Q déclenchele second monostable qui fournira unedeuxième impulsion XSCL à chaque opéra-tion de lecture. Bien entendu, la chronométrieest critique, dans cas-ci. D’une part, il fautune impulsion de longueur suffisante pourpermettre un transfert fiable de données,d’autre part, elle doit être suffisamment brèvepour rester dans le cycle de lecture du bus(environ 500 ns pour une horloge de proces-seur à 11,059 2 MHz). C’est pourquoi IC5.Afournit des impulsions de 100 ns et IC5.B, de50 ns. Si vous utilisez un processeur plusrapide (comme le 80C51 de Dallas), il est mal-aisé de dédoubler l’impulsion XSCL. Vouspouvez alors débrancher la fonction à l’aidedu cavalier JP1. S’il est à l’état haut, le dou-blement sera actif, s’il va à la masse, celui-cin’aura pas lieu. Et si vous ne comptez jamaisvous en servir, inutile d’installer les mono-stables (IC5).C’est l’unité centrale qui génère le signal LP. Ilest d’abord tamponné par IC3.A et IC3.B. Ilsert à empêcher la création d’impulsionsXSCL lors des opérations de lecture normale.

trale qui s’en charge.Mais comme le module LCD disposed’un accès direct au bus de données,il faut prendre les précautions néces-saires pour qu’il ne réagisse pas autrafic normal entre CPU et RAM. Ilfaut aussi veiller à lui envoyer lessignaux convenables lors de la miseen marche et de la mise à zéro de laCPU. Dans pareille situation, il fautéteindre l’afficheur pour éviter de l’en-dommager en le soumettant à destensions continues, ainsi que nousl’avons vu dans la première partie.

Interface CPU et contrôleur LCDLors de la conception, nous sommespartis du 8051 standard avec

mémoire RAM externe (par exemple32K x 8 bits). La ligne RD et trois E/Sdu port 1 doivent être disponibles.Le circuit a été mis au point à l’aidede la carte 89S8252 Flash [1] et lamono-carte « high-speed » àDS89C420 d’Elektor [2].Le schéma du montage se trouve àla figure 3. Vous pouvez voir à lafigure 2 l’analyse des signaux ducycle de rafraîchissement d’écran etnotamment la chronologie des évé-nements lorsque l’unité centraleenvoie une adresse sur les lignes A0à A15 du bus, puis active la ligne RDLa mémoire RAM place ensuite lecontenu de cette adresse sur le busde données (AD0 à AD7). Les huitlignes de données sont reliées auxentrées de IC1, un multiplexeur qua-

MICROCONTRÔLEUR

656/2003 Elektor

RAM

ModuleLCD

Alimentation

ADRESSE WR RD

DONNÉES

XSCL

LP

Y0 (FLM)

DISP_OFF

020114 - 2 - 12

CPU

Figure 1. Diagramme fonctionnel d’un contrôleur de LCD à bas prix.

ADRESSE 0

OCTET 0 OCTET 1

A0...A15

RD

DB0...DB7

Q IC4.A

Q IC4.B

XSCL

SEL

D0.3

DB0...DB3 DB4...DB7 DB0...DB3 DB4...DB7020114 - 2 - 13

ADRESSE 1

Figure 2. Diagramme temporel d’un contrôleur de LCD du même genre.

Page 52: Elektor N°300 - Juin 2003 - doctsf

On l’utilise également pour initialiser le sélec-teur de quartet IC2.B.Même origine pour le signal FLM, tamponnélui par IC3.D et IC3.E. Le signal de trame FRen dérive, par l’intermédiaire de la premièrebascule de IC2. Cette cellule change d’état àchaque flanc descendant de FLM et fait ensorte que FR soit alternativement haut et bassur les trames successives.L’inverseur IC3 traite le signal DISP_OFF, quia pour mission d’éteindre l’afficheur lorsd’une mise à zéro du processeur. Il exploite lefait que tous les bits de donnée du microcon-trôleur deviennent hauts en pareil cas.Le connecteur K1 met à disposition tous lessignaux de données et de contrôle, ainsi queles tensions d’alimentation pour le moduleLCD. L’ordre des broches correspond à celuidu module LCD utilisé sur notre prototype(récupéré sur un ordinateur de jeu « Supervi-

sion »). À vous d’en changer le bro-chage si vous utilisez un autremodule non compatible.Le connecteur K2 alimente le mon-tage. Les puces IC6 et IC7 forment latension Vee (–10 V) à partir de latension d’alimentation Vcc (+5 V). Ils’agit d’un circuit inverseur de ten-sion qui travaille avec une pompe decharge. Former Vee à partir de Vcc apour avantage qu’il n’y aura jamaisde Vee sans Vcc. Si l’on avait prévuune alimentation négative distincte,on n’en aurait pas été sûr.

Construction du matérielLe montage méritait bien une platineà son intention, vous en trouverez lesdeux faces reproduites à la figure 4.

Le circuit de pilotage, notre proto-type, nous l’avons relié par un petitcâble en nappe à la carte 89S8252Flash. Les liaisons nécessaires àcette platine (AD0 à AD7, RD et leport A) passent par un support deconnexion par enroulement (wire-wrap) sur la platine.

Modules LCD utilisablesPour notre prototype, nous avonsfait usage de l’écran LCD de160x160 pixels provenant d’un ordi-nateur de jeu « Supervision ». Il nenous a pas été possible de décou-vrir le type de circuits de com-mande employés sur ce module, dufait que les boîtiers sont montésdirectement sur la platine.Mais d’autres modules sont utili-

MICROCONTRÔLEUR

66 Elektor 6/2003

12

34

56

78

910

1112

1314

1516

1718

1920

2122

2324

2526

2728

2930

3132

3334

K2

+5V

74HC157

IC1MUX

10

14

1312

11

15EN

G1

2

3

5

9

7

4

6

1

1

1

+5V

1

2 12

IC4.A

≥113

5

4 6

IC4.B

≥13

9

10 8

IC4.C

≥111

K1

IC2.A3

C

1

R2D

4

S

5

6

+5V

IC2.B11

C

10

S

12D

13

R9

8

JP1

K3

+5V

1 21

IC3.A

3 41

IC3.B

13

12

1

IC3.F

5 61

IC3.C

9 81

IC3.D

11 101

IC3.E

+5V

RX/CX

IC5.A

14

CX

15

13

4

&1

2

3

+5V

C1

10p

R1

10

k

RX/CX

IC5.B

6

CX

7

5

12

&9

10

11

C2

10p

R2

10

k

+5V

MAX1044

IC6CAP+

CAP– OUT

OSCLV

8

3

2

4 5

6 7

C5

10µ

C7

10µ

+5V

C3

100n

MAX1044

IC7CAP+

CAP– OUT

OSCLV

8

3

2

4 5

6 7

C6

10µ

C8

10µ

+5V

C4

100n

D1

BAT85

D2

12V 10k

P1

P1.0

P1.1

P1.2

IC2

14

7

C10

100n

IC3

14

7

C9

100n

IC4

14

7

C11

100n

IC5

16

8

C13

100n

+5V

IC1

16

8

C12

100n

+5V

µC Connector

IC2 = 74HC74IC3 = 74HC04IC4 = 74HC27IC5 = 74HC123 020114 - 11

D3

D2

D1

D0

XSCL

LP

FLM

FR

DISP_OFF

RD

AD1

AD2

AD3

AD4

AD5

AD6

AD0

AD4

AD1

AD5

AD2

AD6

AD3

AD7

AD0

AD7

Figure 3. Un schéma sans complications.

Page 53: Elektor N°300 - Juin 2003 - doctsf

KS086 de Samsung.– L’afficheur Ampire AG240128 également de

240x128 pixels. L’attaque des segments surce module s’effectue par un circuit du typeT6A39, celle des lignes communes par leT6A40, tous deux de Toshiba.

Naturellement, si vous adoptez un écrand’une résolution différente de 160x160, il vousfaudra adapter le logiciel en conséquence.

Le logicielParlons-en, précisément. Il a été écrit en lan-gage assembleur 8051. Tous les signaux decommande pour l’écran (sauf XSCL) sont pro-duits par logiciel et commandent des lignesd’E/S bit par bit. La conception a fait appel àl’assembleur bien connu Metalink (dudomaine public), que l’on peut téléchargergratuitement de www.metaice.com/ASM51/ASM51.htm. Mais il doit être malaisé demodifier le code source pour l’utiliser avec unautre assembleur. Il faudrait probablementtransformer toutes les définitions de macro etles autres directives pour l’assembleur.La structure du logiciel est modulaire. Il y ades modules distincts pour gérer le portsériel, la commande du LCD et pour les rou-tines de support. Simplification de la mise àjour et de la réutilisation du logiciel. Tous lesmodules se présentent de la même façon. Ils

sables :– L’afficheur Optrex DMF660N-EW

possède 240 pixels en largeur sur128 de haut. Il est équipé de cir-cuits d’attaque Hitachi (HD61105 etHD61104). L’entrée de données dece module compte quatre bits. Satension de contraste est négative

et fait –20 V. Il y a quatre lignes decommande (FLM, CP, LP et uneligne FR repérée ici par la lettre M).

– Le Densitron LM3024, de 240pixels de large sur 128 de haut.

– LeTruly MG-160-160-3 fait aussi240 (large) x 128 (haut) pixels. Lescircuits de commande sont du type

MICROCONTRÔLEUR

676/2003 Elektor

C1

C2

C3

C4

C5

C6

C7

C8

C9

C10

C11

C12

C13

D1

D2

HO

EK

1 HOEK2

HO

EK

3HOEK4

IC1

IC2 IC3

IC4IC5

IC6

IC7

JP1

K1

K2 K

3

P1

R1

R2

02

011

4-1

(c) EL

EK

TO

R

020114-1

Figure 4. Une platine de petite dimension, elle aussi.

Liste des composants

Résistances :R1,R2 = 10 kΩP1= ajustable 10 kΩ

Condensateurs :C1,C2 = 10 pFC3,C4,C9 à C13 = 100 nFC5 à C8 = 10 mF/16 V radial

Semi-conducteurs :D1 = BAT85D2 = diode zener 12 V/400 mWIC1 = 74HC157IC2 = 74HC74IC3 = 74HC04IC4 = 74HC27IC5 = 74HC123IC6,IC7 = MAX1044/CP (Maxim)

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

contacts + cavalierK1 = embase mâle à 1 rangée de 12

contactsK2 = embase mâle à 2 rangée de 17

contacts (HE-10)K3 = embase mâle à 1 rangée de 3

contacts

Page 54: Elektor N°300 - Juin 2003 - doctsf

se composent de deux parties : Mod_cnst.inc(définition des constantes et déclaration desvariables) et Mod_sub.asm (code exécutableet données mémorisées en zone de pro-gramme, comme les tables).Le logiciel de commande a été testé avec unesérie d’exemples que nous allons utiliseraussi pour en expliquer le fonctionnementgénéral.Et pour commencer, analysons brièvement lesdifférents modules. De plus amples détails setrouvent en commentaires dans le codesource.

Routines de commande de bas niveauLa routine LCD_Init initialise la routine d’in-terruption du rafraîchissement, la RAM et leslignes de commande du LCD. Les brochesd’E/S qu’il faudra utiliser, c’est LCD_cnst.incqui le définira. LCD_Init commence par posi-tionner au niveau de départ les brochesd’E/S, entre autres DISP_OFF. Puis, c’est autour de la mémoire et des pointeurs de don-nées, qui devront la balayer. Et bien sûr, elleinitialise la routine d’interruption qui assurela réactivation récurrente des pixels.Il y a des routines d’aide pour le décalage del’affichage en horizontal et en vertical :LCD_Up, LCD_Down, LCD_Left et LCD_Right.La routine LCD_Home restaure la position dedépart : elle ramène l’affichage à la mêmezone de mémoire que lors du démarrage.C’est la routine LCD_Hsync_Int qui fournit laplus grosse partie du travail, dans le logicielde commande du LCD. Une interruption, celledu temporisateur 0, la rappelle toutes les 125µs. Sur un écran de 160 lignes comme celui denotre prototype, cela donne une fréquence de

trame de 50 Hz (20 ms). On peutvoir à la figure 5, dans le dia-gramme temporel, comment LP estenvoyé au niveau bas. Du coup, larangée de l’affichage qui vient d’êtrechargée lors de l’interruption précé-dente est stockée dans les verrous etle chargement de la ligne suivantepeut commencer. Dès que la totalitéde la rangée a pu glisser dans leregistre à décalage, LP repasse hautet la routine d’interruption a terminé.La routine refresh conserve chaquefois l’adresse de la rangée dans lesadresses de mémoire LCD_Ptr_L etLCD_Ptr_H et le numéro de colonnedans LCD_Row_Ct. La même routines’occupe de fournir une impulsionFLM à la fin d’une image complète.Il existe un autre pointeur qui faitoffice de repère de curseur dansl’écran. Il s’inscrit dans LCD_Crs_L

et LCD_Crs_H.Nous pouvons déterminer la propor-tion de capacité de travail que la rou-tine d’interruption distrait au pro-cesseur en mesurant le rapportcyclique du signal LP. Cette ligne estbasse aussi longtemps que le pro-cesseur est occupé par ladite rou-tine, elle est haute le reste du temps.Nous avons ainsi une idée de lacapacité dont dispose encore le pro-cesseur pour exécuter d’autrestâches. Sur notre prototype, LP res-tait bas durant environ 100 µs et 25µs haut. Autrement dit, la CPU passe80 % de son temps à exécuter la rou-tine d’actualisation.Le processeur Dallas 89C420 offre, àcôté de sa plus grande vitesse,l’avantage de disposer d’un jeud’instructions plus efficaces. Uneseule instruction est capable de

MICROCONTRÔLEUR

68 Elektor 6/2003

RAZ & MAINTIEN

DISP_OFF

LP

XSCL

D0...D3 1 2 1 2n

020114 - 2 - 14

RAFRAICHISSEMENT

INTERRUPTION TIMER INTERRUPTION TIMER

NORMAL

Figure 5. Diagramme de la chronométrie par logiciel.

Le choix d’un module LCD et comment le raccorderS’il vous faut acquérir un module d’affichage pour ce montage, vous pouvez utilement prospecter les magasins de surplus. Mais quelsécrans peuvent convenir ? Les modules neufs proviennent de réserves de pièces de rechange inutilisées ou de stocks devenus superflus.Un module de réemploi peut servir aussi bien qu’un neuf. Ils ont été récupérés sur des jouets démantelés, des photocopieurs ou des auto-mates. Mais il y en a parmi eux qui ne fonctionnent plus. Une réparation paraît improbable. Sauf défaut apparent, comme un verre brisé, ilest souvent difficile de dire s’il est encore bon. On ne s’en aperçoit que quand il est installé. La panne se localise généralement dans le cir-cuit d’attaque des segments ou des lignes communes, elle a pour conséquence que certains pixels restent en permanence clairs ousombres. Vous ne pouvez pas le découvrir dans le magasin, c’est le risque à prendre.Des afficheurs en emballage d’origine sont généralement fiables. Vérifiez le numéro de type et le nom du fabricant. Dans la mesure dupossible, demandez au vendeur la documentation correspondante.

- Si l’afficheur est encore monté dans l’appareil (neuf ou usagé).Il peut être défectueux, mais il est éventuellement possible de le mettre en marche et de vérifier s’il fonctionne. Surveillez les lignes et lescolonnes. C’est toujours bon signe s’il est encore dans son emballage d’origine.Tâchez de repérer sa marque et son type, éventuellement en ouvrant l’appareil. Et essayez aussi d’en obtenir la documentation.

Supposons que vous vous décidiez pour un écran, encore faut-il trouver son brochage. Distinguons deux situations :

- S’il s’agit d’un module seul.Tâchez d’en connaître la marque et le type et utilisez ces données pour effectuer une recherche sur Internet. Parmi les fabricants connus,il y a Seiko-Epson [3], Optrex [4], etc.Il y a de grandes chances que vous ne trouviez rien sur Internet à propos de cet écran en particulier. Il se peut que le modèle soit obsolète

Page 55: Elektor N°300 - Juin 2003 - doctsf

MICROCONTRÔLEUR

696/2003 Elektor

ou fabriqué spécialement pour un appareil déterminé. ChezSeiko, par exemple, vous pourrez le savoir grâce au numéro detype, qui dans ce cas commence par les lettres « ECM » (EpsonCustom Made).Avec un moteur de recherche, sur Internet, interrogez sur lenuméro de type complet ou sur une partie seulement. On trouveparfois des renseignements dans les groupes de discussion [5].

- S’il s’agit d’un afficheur monté dans un appareil.Tâchez de l’ouvrir avec précaution. Vous aurez peut être unebonne ou une mauvaise surprise. Si l’écran est monté à demeuresur la carte principale de l’appareil, vous aurez peu de chance depouvoir en faire quelque chose. Mais il se peut qu’il constitue unmodule séparé, éventuellement accompagné de son contrôleurde LCD (du type T6963, par exemple) et vous pourrez alors aisé-ment le réutiliser. Pour rechercher les caractéristiques de l’écran,procédez comme ci-dessus.

Si vous n’arrivez pas à identifier l’écran ou à vous procurer sesfeuillets de caractéristiques, il vous reste encore deux possibilités.– Un module seul.Essayez d’identifier le type et le fabricant des circuits de com-mande ou d’autres puces du module d’affichage et cherchez-lessur Internet. Il y a des fabricants bien connus, comme Seiko-Epson, OKI, Hitachi ou JRC. Souvent, les circuits de commandesont des puces nues montées directement sur la platine. Ellessont enduites d’une goutte de résine synthétique et complète-ment méconnaissables.Si vous en avez trouvé les caractéristiques, alors vous pouvezentamer le chemin à contre-courant vers l’afficheur. En partant dubrochage des circuits d’attaque ou de l’afficheur, il devrait êtrepossible de trouver les lignes de commande principales (XSCL, LP,etc). La documentation peut aussi vous révéler la tension de pola-risation. Sinon, il faudra la déterminer expérimentalement. Com-mencez avec une tension basse que vous remonterez jusqu’à l’ob-tention d’une image acceptable. Le nombre de lignes et decolonnes peut se déduire des caractéristiques des circuits d’at-taque (le nombre de sorties), mais il se peut que toutes ses sor-ties ne soient pas utilisées dans ce montage-là. Quelques essaisdevraient vous permettre de reconstituer le puzzle.– Un module intégré dan un appareil.L’enquête se simplifie si nous disposons d’un appareil en état de marche. Commençons par les tensions d’alimentation (VCC et GND). Sil’appareil contient des puces bien connues (un SN7400 par exemple ou une puce de RAM ou de ROM), elles seront faciles à repérer. Allu-mons l’appareil et examinons les formes de tension sur les broches de l’afficheur à l’aide d’un oscilloscope (à double trace). Une inspectiondes diagrammes d’impulsions doit nous faire identifier les différents raccordements. La plupart des signaux numériques sur les brochesprésentent un caractère récurrent, ils donnent une image bien stable à l’oscilloscope. Ce n’est pas le cas des lignes de données D0 à D3.Nous n’aurons aucune peine à repérer Vee et Vadj, par le niveau de tension, mais aussi parce que Vadj est couplée au réglage de contraste.Si l’appareil ne fonctionne pas, nous allons en extraire l’afficheur et l’examiner comme un module LCD indépendant. Mais ici, nous pou-vons déduire de la carte de CPU de l’appareil en panne où se trouvent Vcc, GND, Vee et Vadj. Il se peut aussi que la platine recèle uncontrôleur de LCD de type connu grâce auquel nous n’aurons plus qu’à déduire le brochage correct. Pensons que les lignes du contrôleurde LCD ne conduisent pas nécessairement à l’afficheur en direct, il peut y avoir des tampons intermédiaires.

La figure 6 vous montre l’intérieur du jeu électronique dont nous avons prélevé l’écran pour notre prototype. Il était toujours en état demarche. Il est clair que le microcontrôleur du jeu assurait également la commande de l’écran LCD. Après avoir ouvert le boîtier avec cir-conspection, nous avons entrepris de déterminer, à l’oscilloscope, le brochage de l’afficheur.Il ne nous a pas été possible de savoir quels circuits d’attaque étaient employés, vu que ce sont des puces collées. On reconnaît sur laphoto les gouttes de résine. À la figure 7, on voit une partie du circuit de polarisation. Vous reconnaîtrez aussi les résistances du diviseurde tension, l’amplificateur opérationnel LM324 en tampon et les condensateurs intercalés. Nous avons dû compter le nombre de pistesimprimées qui conduisent à l’afficheur pour déterminer le nombre de lignes et de colonnes. Il y a 160x160 pixels. Une opération plus aiséeen s’aidant d’une fine aiguille et d’une loupe.

Le processus que nous avons décrit permet généralement de retrouver le brochage de l’écran LCD, surtout que la plupart d’entre euxfonctionnent de la même manière que celui qui nous a servi d’exemple. Vous saurez ainsi grosso modo comment vous y prendre pourvous faciliter la vie. Après quelques essais, il est aisé de retrouver la fonction de beaucoup de broches, mais attention à Vee et Vadj. Engénéral, les autres broches tolèrent bien une tension négative. Tâchez donc d’identifier d’abord ces deux lignes et vérifiez bien tout avantd’appliquer la tension d’alimentation.

6

7

Page 56: Elektor N°300 - Juin 2003 - doctsf

mettre en œuvre un pointeur et de l’incré-menter en même temps, en vue de la pro-chaine instruction. Cela peut réduire encorela prédominance de la routine d’interruption.Il faut évidemment modifier le logiciel demanière à l’employer.

Routines de commande de haut niveauOutre les routines de service qui passent lesdonnées de la mémoire vers l’affichage, il y ades routines de niveau supérieur qui appro-visionnent la mémoire d’écran en informa-tions.Commençons par la routine LCD_PutChar,qui écrit un caractère à la position actuelle ducurseur sur l’écran. On trouve encore les rou-tines LCD_PutStrCnst et LCD_PutStrBuf, quiy inscrivent des chaînes de caractèresvariables ou fixes. On clôture une chaîne decaractères par une valeur nulle. Après l’ins-cription d’une lettre, le curseur se déplaceautomatiquement d’une position vers ladroite, mais il ne va pas d’initiative à la ligne.On peut envoyer le curseur à n’importe quelleposition sur écran grâce à la routineLCD_GoTo.Les caractères à présenter sont stockés sousforme de matrices de 8x8 dans le fichierChr_sub.asm.La routine LCD_Load copie la représentationcomplète d’une position donnée vers l’écran.On peut prendre comme exempleLCD_Girl.asm. À la lecture de l’étiquette, lesdonnées sont copiées de la mémoire de pro-gramme (ROM) vers la mémoire d’écran(RAM). Pendant ce temps, l’affichage estéteint pour accélérer le chargement. Nousdisposons ainsi de 100 % du temps du pro-cesseur, au lieu des 20 % habituels. Pour arrê-ter la routine de rafraîchissement, nous fai-sons appel à LCD_Off et pour la relancer, àLCD_On.

Port sérielLe logiciel pour le port sériel (fichiersser_cnst.inc et ser_sub.asm) se charge d’ini-tialiser le matériel inclus dans le port sérieldu 8051 ou du 80535. Le débit est réglé sur lestandard de 9 600 bauds. Il existe des direc-tives en assembleur pour le régler à 4 800 ou9 600 bauds. Il y en aussi pour sélectionnerla fréquence d’horloge de 11,059 ou 12 MHz.

AssistantsOn trouve encore un module qui regroupe desfonctions générales d’aide. Le module UTL(utl_cnst.inc et utl_sub.asm) contient les fonc-tions de conversion d’ASCII vers Hex, desfonctions de retardement et autres.

Jeu de caractèresLe module CHR (chr_cnst.inc et chr_sub.asm)

contient les bitmaps utilisés pour lerendu des signes littéraux et desautres symboles. Ce sont desmatrices de 8x8 à recopier dans lamémoire d’écran pour reproduire laforme des signes. Ils s’inspirentd’une ancienne version de policeVGA. Le logiciel recèle aussi des rou-tines capables de modifier laséquence des bits, en cas de besoind’autres symboles. Sous la version àcarte 89S8252 Flash, nous n’avonspas repris ces matrices, faute deplace en mémoire.

BitmapIl est aussi possible d’afficher desprésentations graphiques sur écran.Le logiciel contient d’ailleurs unexemple d’image, c’est le modulelcd_girl.asm. Il s’agit d’une image de160x160 pixels extraite d’un fichier.bmp de Windows.On peut aisément ajouter des rou-tines pour d’autres fonctions gra-phiques, par exemple pour tracerdes lignes droites. Il n’est pas diffi-cile d’adapter le logiciel standarddestiné à d’autres contrôleurs d’affi-chage comme le SED1330. La diffé-rence principale avec le SED1330,c’est que le processeur peut alorsaccéder directement à la mémoired’écran. Vous pouvez trouver surInternet des exemples de fonctionsgraphiques en assembleur 80C51,comme l’algorithme de Bresenhampour tracer des lignes.

Routines de démonstrationLe programme principal se trouvedans le fichier Tst51LCD.asm. Desinstructions #include vous permet-tent d’ajouter les modules auxiliairesnécessaires. Le logiciel est configurépour travailler avec la carte 89S8252Flash. Pour traduire le programmepour la mono-carte « high-speed » àDS89C420 [2], il vous faudra modifierla ligne 43 pour lire :

FLASH EQU UNDEFINED

et à la ligne 42 :DALLAS EQU DEFINED

Le logiciel a été testé sur la mono-carte « high-speed » à une fré-quence d’horloge de 27 MHz. Sivous utilisez une autre fréquence, ilfaut adapter le code d’initialisation

pour le port sériel. En outre, lenombre de NOP dans la macroLCD_LOAD_X devra aussi être modi-fié pour respecter la bonne chrono-métrie pour l’écran LCD.Il est possible, à l’aide des directivesde l’assembleur du Tst51LCD ou del’un des modules ajoutés, de s’adap-ter au type de processeur (entre 8051et 80C535, par exemple) et à d’autresréglages (comme le débit sur le portsériel). Le programme Tst51LCDcommence par initialiser le portsériel, le pointeur de pile et d’autreschoses semblables, avant de s’occu-per du LCD. Ensuite, il lance les rou-tines de rafraîchissement. L’utilisa-teur est alors en mesure de se servirde l’affichage à l’aide de commandessimples. Il peut ainsi lui envoyer destextes et faire glisser la fenêtre affi-chée de gauche à droite et de hauten bas.Vous pouvez obtenir le logiciel surdisquette ou le télécharger du siteElektor. Il contient le code source,mais aussi deux fichiers HEX, les-quels mettent à disposition le pro-gramme directement utilisable, sansassemblage préalable. FLASH.HEXconvient à la carte Flash et DAL-LAS.HEX à la mono-carte « high-speed ».

FinalementCe contrôleur de LCD peu onéreuxdonne à des écrans remisés au pla-card la chance d’entamer une nou-velle vie. Il offre en effet d’intéres-santes possibilités d’utiliser des sys-tèmes basés sur le 8051 standardassociés à une pincée de matériel.La rédaction d’Elektor se réjouit dedécouvrir les projets que les lecteursauront envie de réaliser à partir dece montage et les extensions ouaméliorations, tant matérielles quelogicielles, quelles ils voudrontconsacrer leurs efforts.

(020114-2)

Références :

[1] Carte 89S8252 Flash, Elektor décembre 2001

[2] Mono-carte « high-speed » àDS89C420, Elektor juin 2002

[3] www.seiko-instruments.de/[4] www.optrex.co.jp/us/product/

catalog/index.html[5] www.eio.com/public/lcd

MICROCONTRÔLEUR

70 Elektor 6/2003

Page 57: Elektor N°300 - Juin 2003 - doctsf

PC&AUDIO

72 Elektor 6/2003

Loin d’être indispensable pour des haut-par-leurs de PC, un réglage de tonalité se révèlebien pratique sur une chaîne multimédia,

avec laquelle on peut apprécier de labonne musique. La publication de cemontage nous procure en outre la

satisfaction morale d’être parvenusau bout de nos ambitions dans lecadre de ce système actif.

Mini régie à 1 pucePour notre système multimédia

A la technique : Ton Giesberts A la rédaction : Sjef van Rooij

Des enceintes actives, un caisson de grave, des alimentations adéquates,et voilà un système intégral. Mais à l’intention des amateurs, nous avonspréparé, pour les réglages de volume, balance et tonalité, un moduleminiature complémentaire qui peut aussi rester autonome, grâce à sonalimentation propre. Que demander de plus ?

Page 58: Elektor N°300 - Juin 2003 - doctsf

tures discrètes bien pensées, alors que notresystème multimédia explore la veine de l’in-tégration. Comme pour l’amplificateur dessatellites et du caisson de grave, noussommes partis à la recherche d’une formuleà puce unique.

Le LM1036Si naguère les puristes considéraient encoreavec dédain les circuits intégrés dans les ins-tallations de haute-fidélité, les scrupules surla qualité de ces puces ne sont plus de miseaujourd’hui. Au cours des dernières années,une demande accrue de ce genre de CI pourles minichaînes et les autoradios a poussé lesfabricants à développer des composants àplus hautes performances.Notre choix s’est porté finalement sur leLM1036 de National Semiconductors, un cir-cuit intégré DIL à 20 broches qui, associé àune poignée de composants extérieurs, per-met de réaliser une régie stéréo complète,avec réglages de volume, balance, tonalitéset même de contour. Toutes les commandess’opèrent en courant continu, aucun risque deronflement induit sur les câbles de liaison auxpotentiomètres. L’alimentation peut se situerentre 9 et 16 V (donc en concordance avec la

PC&AUDIO

736/2003 Elektor

Figure 1. Brochage et diagramme fonctionnel du LM1036.

Dans la conception de notre réglagede tonalité, nous avons encore vouluune solution d’un emploi aussi uni-versel que possible, bien dans laligne des enceintes actives, mais

tout autant comme module indépen-dant d’une chaîne Hi-Fi.Voilà qui repose la question de l’em-ploi des puces. En haute-fidélitépure, nous préférons les architec-

Résultats de mesures (toutes les sorties chargées par 10 kΩ)

plage de réglage du grave (volume –40 dB) +15 dB à –15 dB (20 Hz)

plage de réglage de l’aigu (volume –40 dB) +16 dB à –13 dB (20 kHz)

bande passante 16 Hz à 170 kHz

rapport signal / bruit 78 dBA (250 mV d’entrée)

THD+N (B = 22 kHz, 250 mV en sortie) 0,04 % (gain maximum)

gain maximum 0,6 dB (≈ 1,07 x)

tension d’entrée max. (250 mV en sortie) 1,93 V

(14,43 V alim, THD+N = 0,3 %)

tension de sortie maximum 0,75 V (THD+N = 0,3 %)

Tension d’alimentation 9 à 16 V

Courant d’alimentation 46 mA

Courbes mesurées :

La caractéristique A montre le spectre résultant de la mise à fond dansles deux sens des réglages de grave et d’aigu, la ligne du milieu s’obtientavec les potentiomètres à mi-course, pour un volume à –40 dB. Nousavons élargi la mesure entre 10 Hz et 200 kHz pour voir aussi ce qui sepassait à l’extérieur du spectre audio.La seconde famille de courbes (B) illustre l’effet de la compensationd’isotonie (loudness). Nous avons repris les mesures de niveau par pasde –10 dB (à 1 kHz) dans la gamme de 20 Hz à 20 kHz, pour obtenir9 courbes. Nous avons appliqué à l’entrée un signal plus grand(700 mV) et un filtre passe-bande, pour rendre plus visible le domainede réglage opéré par la commande de volume. La courbe du haut a étémesurée avec le volume au maximum. C’est entre –50 et –60 dB que l’effet est maximal. Dans la courbe du bas, pour une tension decommande de 0 V, on ne trouve pratiquement plus que du bruit en sortie, raison pour laquelle l’effet n’est plus vraiment perceptible.

-90

+10

-80

-70

-60

-50

-40

-30

-20

-10

+0

dBr A

20 20k50 100 200 500 1k 2k 5k 10kHz

020054 - 4 - B

-24

+24

-21

-18

-15

-12

-9

-6

-3

+0

+3

+6

+9

+12

+15

+18

+21

dBr A

10 200k20 50 100 200 500 1k 2k 5k 10k 20k 50k 100k

020054 - 4 - AHz

A

B

Page 59: Elektor N°300 - Juin 2003 - doctsf

tension de batterie d’une voiture), la plage deréglage de volume s’étend sur 75 dB et celledes tonalités sur ±15 dB.Malgré que ce circuit intégré n’affiche pas deprétentions à l’excellence, on peut dire queles résultats obtenus sont plus qu’honorables.Une séparation des canaux à 75 dB, la distor-sion harmonique totale (DHT) à 0,06 % et lerapport signal bruit à 80 dB, voilà ce que sti-pule le fabricant. Le fait qu’il ne se berce pasd’illusions ressort clairement du tableau ci-joint, dans lequel vous trouverez un résumé

des résultats de mesures et des spé-cifications de notre prototype.La figure 1 indique le brochage etdévoile le diagramme simplifié del’architecture du LM1036. Si la tota-lité des caractéristiques vous inté-resse, elle est disponible sur le sitewww.national.com/pf/lm/lm1036.html.

La carte de la simplicitéLe schéma complet du montage se

trouve à la figure 2, il démontre quel’on peut construire une mini régieavec bien peu de composants. Àpart la puce, vous n’y découvrirezque quelques résistances et conden-sateurs, des bornes d’entrée et desortie ainsi que quatre potentio-mètres, un point c’est tout.Question de simplifier les branche-ments, outre les inévitables entréesCinch (K1 et K2), nous avons prévuune entrée pour mini-jack (K3). Maissoyons clairs, le but est d’utiliser ungenre ou l’autre de raccords, sinon,les signaux appliqués à R1/R3 etR2/R4 seront simplement addition-nés et vous les entendrez, pas forcé-ment de concert, mais ensemble !Pour les sorties vers le canal gaucheet le canal droit, on dispose d’unedouble rangée de cosses à souder,de manière à raccorder aisément lesenceintes actives à deux voies et lecaisson de grave, tout en laissant lelibre choix du type de connecteur.Quatre réglages sont nécessairespour le volume, la balance, le graveet l’aigu. Dans ce cas-ci, quatrepotentiomètres linéaires simples (P1à P4) feront l’affaire. Leurs bornesextrêmes se branchent à la référenceinterne à diode zener de 5,4 V, par labroche 17, et la masse. Les curseursiront à VL, BL, BS et TR, donc auxbroches 4, 9, 12 et 14.

Les cellules en détailChaque entrée de réglage se voitdéparasitée par un réseau RC (R13 àR16, C13 à C16). Les réglages detonalité ne comportent qu’uncondensateur par canal, C5 et C6pour l’aigu, C9 et C10 pour le grave.Il faut aussi trois condensateurs élec-trolytiques en découplage des ten-sions internes, ce sont C7, C8 et C11.Les condensateurs C1 et C2 décou-plent la tension continue aux entrées.Avec l’impédance d’entrée minimaledu CI (20 kΩ), le pôle à l’entrée sesitue aux alentours de 8 Hz. En sor-tie, les valeurs des condensateurs decouplage (C17 et C19) sont plusfortes, parce que l’impédance totalede charge, avec les enceintes activesà deux voies et le caisson de grave,descend à quelque 6,4 kΩ. C18 etC20 sont destinés, en cas de chargetrop faible, à empêcher toute oscilla-tion interne à haute fréquence.Nous l’avons évoqué, la puce dispose

PC&AUDIO

74 Elektor 6/2003

LM1036

AC

BP

2A

CB

P1

IC1OUT2

OUT1

IN2

IN1

CT

2

CB

2

LCC

VL

C

BS

C

CT

1

CB

1

ISD

TRC

BLC

19 13

11

10 20

18 16 15 17

ZV

12 147

2

3 5 6 1 4 9

8

C2

C1

C19

2µ2

C17

2µ2

C5

10n

C9

390n

C16

220n

C14

220n

C6

10n

C10

390n

C13

220n

C15

220n

C7

10µ63V

C8

10µ63V

C11

47µ25V

S1LOUDNESS

R11

220Ω

R7

220Ω

R10

220Ω

R8

220Ω

R2

1k

R1

1k

R4

1k

R3

1k

R6

1M

R5

1M

C3

1n

C4

1n

C12

10n

C18

100p

C20

100p

R12

10

0k

R9

10

0k

K2R

K1L

K3

R13

47k

R15

47k

R14

47k

R16

47k

R

L

R

L

ONOFF

VOLUME

BASS

BALANCE

TREBLE

020054 - 4 - 12

REF

C21

100µ25V

16V max

2x 7V5

TR1

1VA8

32mA T

F1

B1

B80C1500

C30

47n

C29

47n

C27

47n

C28

47n

C25

100n

C22

100nC26

470µ40V

C23

10µ63VC24

10µ63V

R19

6k

8

LM317

IC2

D1

POWER

R17

56

R18

6k

04

K4

+15V

+15V

+15V

(+5V4)

Figure 2. Avec toutes les fonctions de réglage intégrées dans la puce, le schéma s’apparenteà un modèle de simplicité.

Page 60: Elektor N°300 - Juin 2003 - doctsf

nous avons opté pour du 15 V parce que souscette tension, le circuit est capable de traiterdes signaux d’entrée de 2 Veff. Pour vous évi-ter l’embarras de chercher une bonne ali-mentation stabilisée de 15 V, nous l’avonsincorporée au projet.Comme stabilisateur, nous avons préféré leLM317 (IC2) au modèle coutumier 78XX,parce que son atténuation du ronflement estsupérieure. Ce sont les résistances R17 etR18 qui fixent la tension de sortie à 15 V, dumoins pour des valeurs nominales (1,25 Ventre la sortie et l’entrée de réglage), pour

également d’une commande devolume compensée en fonction de lacourbe d’isotonie (loudness control),qui relève le gain du grave et del’aigu à mesure que le volumedemandé est plus bas (cf. caractéris-tique B). Si vous reliez la broche 7,l’entrée de commande de compensa-tion « loudness », à la tension dezener interne (broche 17), vousdébranchez la fonction. Pour l’activer,il suffit de connecter la broche 7 àl’entrée de commande de volume

(broche 12). Nous avons dessiné surle schéma un commutateur à ceteffet, parce que l’auditeur, en général,souhaite garder la liberté de s’en ser-vir ou pas. Vous pouvez égalementmonter sur la platine une barrette àtrois broches pour cavalier, de quoiétablir une sélection permanente.

AlimentationBien que la tension nominale d’ali-mentation du LM1036 soit de 12 V,

PC&AUDIO

756/2003 Elektor

(C) ELEKTOR020054-4

B1

C1 C2

C3 C4

C5 C6

C7

C8

C9

C10

C11

C12

C13

C14

C15

C16

C17

C18

C19

C20

C21

C22

C23

C24

C25

C26

C27

C28

C29

C30

D1

F1

H1 H2

H3H4 H5H6

H7 H8

IC1

IC2

K1 K2

K3

K4

OUT1 OUT2 OUT3 OUT4

OU

T5

R1 R2

R3 R4R5 R6

R7R8

R9

R10R11 R

12

R13R14

R15

R16

R17R18 R19

S1

TR1

020054-4

OFFON

Loudness

16Vmax

+0

~~

T

Balance Volume

Bass

Treble

32mA/T

RefTTTT

L R

RRLL

0+

(C) ELEKTOR020054-4

Figure 3. Tracé des pistes et agencement des composants sur la platine. La sectionalimentation peut faire bande à part.

Liste des composants

Résistances :R1 à R4 = 1 kΩR5,R6 = 1 MΩR7,R8,R10,R11 = 220 ΩR9,R12 = 100 kΩR13 à R16 = 47 kΩR17 = 560 ΩR18 = 6kΩ04R19 = 6kΩ8P1 à P4 = 47 kΩ lin. (mono)

Condensateurs :C1,C2 = 1 µF MKT au pas de 5/7,5 mmC3,C4 = 1 nFC5,C6,C12 = 10 nFC7,C8,C23,C24 = 10 µF/63 V radialC9,C10 = 390 nFC11 = 47 µF/25 V radialC13 à C16 = 220 nFC17,C19 = 2µF2 MKT au pas de 5/7,5 mmC18,C20 = 100 pFC21 = 100 µF/25 V radialC22,C25 = 100 nF céramiqueC26 = 470 µF/40 V radialC27 à C30 = 47 nF céramique

Semi-conducteurs :D1 = LED à haut rendement (high

efficiency)IC1 = LM1036N (National Semiconductor)IC2 = LM317 (TO-220, National

Semiconductor)

Divers :K1,K2 = embase Cinch encartable telle que,

par exemple T-709G (Monacor)K3 = jack 3,5 mm stéréo encartable tel que,

par exemple, Conrad 73 28 93-88)K4 = bornier encartable à 2 contacts au pas

de 7,5 mmS1 = inverseur unipolaireB1 = B80C1500 pont plat (~+~–)F1 = porte-fusible encartable + fusible 32

mA/TTR1 = transfo secteur secondaire 2 x

7V5/1VA8 (tel que, par exemple, Gerth304.15-2)

Page 61: Elektor N°300 - Juin 2003 - doctsf

un courant de polarisation de 50 µA. Maissuite aux inévitables tolérances, notre pro-totype ne fournissait que 14,43 V commetension de sortie. Le perfectionniste peuttoujours, pour atteindre exactement 15 V,adapter légèrement R18 : l’augmenter relè-vera la tension de sortie.Le reste de l’alimentation est classique, avecC26 comme condensateur électrolytique delissage, associé à C25 en découplage deshautes fréquences, une cellule en pont B1avec ses condensateur antiparasites C27 àC30, un transformateur avec fusible secteuret la LED D1 pour témoin.

PlatineLa figure 3 représente la platine de minirégie. Remarquez-y, à droite, le compartimentalimentation que vous pourrez, si le cœurvous en dit, séparer du reste pour le logerailleurs dans le boîtier. L’éloigner quelque peude l’endroit où les signaux sont traités, c’esttout bénéfice dans la chasse aux parasites.Nous le répétons à chaque coup, mieux vautinstaller les composants les plus gros enfinale. L’illustration en est claire aujourd’hui :tenter d’insérer C27, C28 et C29 après avoirsoudé à demeure le transformateur et lepont redresseur, voilà qui ne simplifie pas la

vie ! Le transformateur encartablerepris dans la liste, un Gerth de1,8 VA, présente une architecturestandardisée ; d’autres modèles, de1,5 VA par exemple, s’y conformentégalement.La construction de la mini régie pro-prement dite ne devrait pas vousprendre beaucoup de temps : peu decomposants et une implantation lim-pide. La logique est aussi respectéepour les raccordements, avec lesbornes d’entrée sur l’un des bords,les cosses de sortie sur le bordopposé et celles pour les quatrepotentiomètres, à savoir aigu,balance, volume, grave, ainsi quemasse (⊥ ) et Ref, équitablementréparties des deux côtés.Nous avons déjà parlé du commuta-teur de contour S1. Notre prototypeest équipé d’une barrette et d’uncavalier. Les raccordements d’ali-mentation de la mini régie se situentaussi près que possible des conden-sateurs de découplage C12 et C21 etdes sorties. La figure 4 vous montrenotre platine d’essai en photo.Chacun sera libre du choix d’un cof-fret adéquat. Il en existe quantité

dans le commerce susceptiblesd’abriter les deux platines et lesquatre potentiomètres. Pour le rac-cordement au secteur, il va de soid’utiliser un cordon bien isolé et soli-dement fixé au boîtier par un sys-tème anti-traction qui évite toutecontrainte mécanique sur le connec-teur K4. Vous trouverez davantagede conseils pratiques sur les précau-tions à prendre vis-à-vis de la ten-sion du secteur sur la page « Sécu-rité » que nous publions régulière-ment dans ce magazine. Prévoyezaussi une plaquette d’identification,à coller à l’extérieur du boîtier, avecle numéro de la platine et la valeurdu fusible de remplacement.Un avantage appréciable de ce mon-tage, c’est que les réglages de fonc-tions opérés par les potentiomètress’effectuent en courant continu et lesconducteurs ne transportent doncpas de signal audio. Cela élimine enpratique la nécessité de les réaliseren câble faradisé, un simple filsouple suffit, sans risque de ronfle-ment intempestif.

(020054-4)

PC&AUDIO

76 Elektor 6/2003

Figure 4. Aucune difficulté particulière à craindre lors de la construction de ce montage.

Page 62: Elektor N°300 - Juin 2003 - doctsf

MICROPROCESSEUR

78 Elektor 6/2003

L’ensemble de la logique de ce « montage » sesitue au niveau des interruptions. Ceci per-met de l’intégrer facilement à un projet pluscomplexe dont elle fera partie intégrante sansgêner le déroulement du programme princi-pal. On disposera ainsi à tout instant del’heure exacte. Le couplage à un récepteurDCF évite d’avoir à saisir l’heure par le biaisd’un organe de communication quelconqueaprès la mise sous tension du système àmicroprocesseur.Nous vous proposons, comme exemple, unprogramme principal qui, seconde aprèsseconde :– La visualisation de l’heure exacte sur l’affi-chage LCD,– L’émission, vers le port sériel, de l’heure.Pour clore ce projet, il a été écrit un pro-gramme tournant sous Windows (VisualBasic), programme chargé d’afficher cetteheure sur l’écran du PC et de remettre àl’heure l’horloge interne de l’ordinateur.Le logiciel a été écrit en Basic puis convertien langage machine à l’aide du compilateurBASCOM. Les explications à venir devraientvous permettre de réécrire le programmedans la langue de votre choix.

RessourcesLa logique se contente d’un temporisateur(timer) 16 bits pour l’horloge et d’une ligned’E/S (entrée numérique) en vue de procéder

à la lecture du récepteur DCF.Le signal DCF est fourni par la sortied’un module de réception tout faitdisponible à différentes sources(Selectronic 14-02, Conrad) : cetteapproche est sensiblement meilleurmarché (de l’ordre de 10 € et plusfacile à trouver que les composants

individuels; on est de plus assuré deson fonctionnement : de nombreuxproblèmes en moins.Notre programme d’exemple utiliseun certain nombre de lignes d’E/Sadditionnelles : une LED dessecondes qui « trahit » le fonctionne-ment de l’horloge en temps réel, une

Horloge en temps réelÀ base de la carte à 89S8252 Flash

Mark de Martelaer

Le présent article décrit un envoi qui nous a été adressé dans le cadre duConcours « Flash » de l’an passé; il s’agit d’un logiciel créant une horlogeen temps réel (RTC pour Real Time Clock), c’est-à-dire sans nécessiterl’utilisation de quelque circuit intégré périphérique spécialisé prévu pourcela. Comme il faut tenir compte de l’heure d’été et de l’heure d’hiver etpouvoir éliminer toute dérive, il est même prévu une correctionautomatique basée sur DCF.

Figure 1. Le bouton « Adjust PC clock » permet de synchroniser l’horloge du PC.

Page 63: Elektor N°300 - Juin 2003 - doctsf

disions plus haut, nous avons, à chaqueimpulsion d’horloge des 50 ms, activationd’une interruption de routine. Nous utilisonscette même routine pour interroger à inter-valle régulier l’état de cette entrée.Nous détectons un bit « 0 » lorsque l’entréereste au niveau haut pendant 1 ou 2 impul-sions d’horloge (impulsion de 100 ms), un bit« 1 » se traduisant par un maintien au niveauhaut pendant 3 à 5 impulsions d’horloge. Si,pendant plus de 30 impulsions de tic-tac (soit1,5 s), nous ne détectons aucun niveau haut,nous savons que nous sommes arrivés à la findu code horaire et que la prochaine impulsionidentifiera un changement de minute.Il va sans dire que parmi les 59 bits, nous nedécodons que ceux qui nous sont nécessairesà l’obtention de l’heure exacte.

Implémentation de l’horloge entemps réelCe processus se joue au début et à la fin dela routine « Clocktimeroverflow ». Nous com-mençons par prépogrammer le registre dutemporisateur. Après un dépassement il fautle positionner à la valeur de remise à zéro pré-calculée. Comme il se peut que l’on utilise,dans l’application dont l’horloge fait partie,d’autres interruptions, il vaut mieux ajouterla valeur de RAZ à la valeur déjà atteinte parle temporisateur. Il se peut en effet que lesaut vers notre routine temporisateur soitreporté au cas où une autre interruptionserait déjà en cours de traitement (à la mêmepriorité ou à une priorité supérieure).Pendant ce temps-là, le compteur a déjàpassé par zéro. Une horloge précise en tientcompte : nous procédons à une lecture duregistre du temporisateur, ajoutons la valeurde RAZ à la valeur lue et écrivons le résultatde cette opération dans le registre.La constante « Reset_value » est mise en prin-cipe, comme nous le disions plus haut, à19 455. Nous allons l’augmenter d’une valeurde décalage. Dans notre exemple, cet ajout,de 150, est destiné à compenser le retardintroduit par le programme. En effet, il sepasse plusieurs cycles-machine entre la lec-ture et la réécriture dans le registre du tem-porisateur, cycles au cours desquels le tem-porisateur ne travaille pas. Nous nous testonsen outre le cas extrême d’une arrivée trop tar-dive de l’interruption du temporisateur. Dansce cas-là l’horloge en temps réel n’est pascompatible avec le programme principal : lesroutines d’interruption de l’application prin-cipale durent plus de 50 millisecondes.Comme un processeur du type 8052 connaîtau minimum 2 priorités d’interruption, il estpréférable de donner à l’interruption duTimer0 le niveau de priorité le plus élevé. Les

LED qui visualise les impulsionsDCF et pour terminer le port sérielpour la liaison vers le PC.

Principe de l’horloge entemps réelNous utilisons un temporisateurinterne en mode intervalle. Lorsqu’iltravaille dans ce mode, le tempori-sateur/compteur est incrémenté àchaque cycle-machine, c’est-à-diretoutes les 12 impulsions de l’oscilla-teur à quartz. Si nous utilisons unquartz de 11,059 2 MHz, cette incré-mentation se fait partant :11 059 000 / 12 = 921 600 fois parseconde.Comme nous travaillons en mode16 bits, nous sommes confrontés àun dépassement lorsque la valeur dutemporisateur atteint 65 535. Il estremis à 0 (ou le cas échéant à unevaleur préprogrammée différente) eton a génération d’une interruption.On aura ainsi une nouvelle interrup-tion921 600 / 65 535 = 14,06 fois parseconde.Cette valeur n’a rien de bien excitanten tant que signal d’horloge. Lavaleur la plus proche, supérieure etarrondie, est 20 impulsions parseconde, ce qui se traduit par unepériode de 50 ms. Il est possibled’obtenir cette valeur en configurantle temporisateur différemment, demanière à ce qu’il soit remis à zéroplus tôt :921 600 / 20 = 46 080.Si nous configurons le temporisateurde manière à ce qu’il induise uneRAZ après 46 080 cycles, nousaurons un mouvement d’horloge tra-vaillant à une période de 50 ms. Ilreste cependant encore une dériveinduite par la précision du quartz etle déroulement du programme.Nous n’avons pas la possibilité demodifier la valeur à laquelle se fait laremise à zéro du temporisateur :celle-ci est toujours de 65 535. Il nousest cependant possible de jouer sursa valeur de départ. Nous allonsdonc opter pour une valeur dedépart différente de zéro. Elle serade :65 535 – 46 080 = 19 455.Si vous tenez à une horloge extrê-mement précise vous pourrez tenterde jouer sur cette valeur de départdu temporisateur en vue d’éliminer

cette tolérance (cf. un peu plus loin).Une augmentation de la valeur dedépart se traduit par une remise àzéro plus rapide du temporisateur etune horloge avançant plus vite etinversement. Il ne faut pas oublier lacorrection effectuée par DCF qui, sila réception se fait correctement,remet l’horloge à l’heure toutes lesminutes.Il n’est pas bien sorcier, dans la rou-tine d’interruption appelée toutes les50 ms, d’additionner les impulsionsd’horloge pour en faire des secondes,d’additionner les secondes pour enfaire des minutes, de passer desminutes aux heures et ainsi de suite.La remise à la date est elle bien plusdélicate. C’est la raison pour laquellenous utilisons les informations four-nies par l’émetteur DCF. En cas deperte de réception de DCF, la daterestera dans son état le plus récent.Cette situation ne devrait pas poserde problème pour la majorité desapplications. Si vous pensez quenon, il vous faudra ajouter la logiquerequise.

Le signal DCFComme vous le savez sans doute,l’émetteur DCF77 se situe tout prèsde Frankfurt (RFA); il émet un signalmodulé en MA (Modulation d’Ampli-tude) : chaque seconde, il envoie unbit par réduction de jusqu’à 25% del’amplitude de la porteuse. La duréede cette réduction d’amplitude défi-nit l’état du bit émis : 100 ms repré-sente un « 0 », 200 ms un « 1 ».Le récepteur DCF convertit cesvariations d’amplitude en impulsionsprésentes sur ses sorties à collecteurouvert. Il comporte une sortie posi-tive (au niveau haut lors des impul-sions envoyées par l’émetteur DCF)et une sortie négative (descend à 0 Vlors des impulsions).Si vous désirez de plus amples infor-mations au sujet des différents bitsque comporte le signal DCF77 nousvous renvoyons à l’article consacréau « DCF pour le PICÉE » cf [1].

Le décodage du signalDCFNous connectons la sortie positivedu récepteur DCF à l’une quel-conque des entrées numériques(P3.3 dans le cas présent). Nous le

MICROPROCESSEUR

796/2003 Elektor

Page 64: Elektor N°300 - Juin 2003 - doctsf

autres interruptions sont paramétrés auniveau de priorité plus faible (par défaut). Decette façon, des interruptions de longue duréeen provenance du programme principal nepeuvent pas gêner le fonctionnement de l’hor-loge en temps réel. Elles sont dans ces condi-tions interrompues momentanément par laroutine d’interruption « Clocktimeroverflow ».

Implémentation du décodage DCFAu cours de la minute que dure le décodageon peut être confronté à nombre d’erreurs.Cette situation est visualisée par le biais dela variable d’erreur Dcferror; cf. le début dufichier BASIC.Dans la routine « Increment_dcf » le codage

DCF subit une conversion au formatdécimal, impulsion après impulsion.Cette routine se trouve tout à la fin.Il faut également faire attention àl’instruction Return de la routined’interruption : il ne doit y avoirqu’une seule instruction de ce type.BASCOM convertit la première ins-truction Return en une instructionassembleur RETI (RETurn from Inter-rupt). Cela n’est pas le cas des sui-vantes de sorte que le programmene fonctionne pas correctement bienque la compilation se fasse sanssignalisation d’erreur. Si nous vou-lons quitter prématurément la rou-tine « Clocktimeroverflow » noussautons, à l’aide d’une instructionGoto, vers le label « Clocktimerover-flow_return », routine où se trouve laseule instruction Return.

Lecture de l’heureIl faudra, pour obtenir un set devariables de temps parfaitementconsistant, les recopier vers desvariables propres. Il faudra, pendantcette opération, désactiver l’inter-ruption du temporisateur. Cela n’estpas nécessaire dans le programmede démonstration (LCD et portsériel) vu que nous n’utilisons l’heurequ’après une remise à l’heure dessecondes.Il faut également veiller à ce que lavariable « Dcfsince » soit inférieure à255, vu que sinon l’heure est inva-lide.

LCD et port sérielL’heure de l’horloge en temps réel estvisualisée sur l’affichage LCD à desfins de diagnostic. Cet affichage estconnecté selon les informations deBASCOM (l’auteur ne disposait mal-heureusement pas encore de la ver-sion la plus récente de BASCOM quipermet de configurer les broches duLCD pour correspondre à la carte à89S8252 Flash d’Elektor).On voit apparaître sur la premièreligne de l’écran l’heure et le nombrede minutes s’étant écoulées depuisla dernière correction (S = Since,depuis). La seconde ligne visualisela date et le dernier code d’erreur (E= Error) :

14h1m10s S:0Fr 18/10/2 E: 0

Nous nous trouvons ici confrontés à

un inconvénient de BASCOM : la lon-gueur des lignes varie en fonctiondes valeurs de l’heure et de la date.Il n’est pas possible d’afficher (ins-tructions Print, LCD) des nombresavec des formats comportant deszéros ou des espaces non significa-tifs. Même « Print Using... » du lan-gage de référence Qbasic est impos-sible en BASCOM.Au niveau du port sériel, on a émis-sion, toutes les minutes, de la dateet de l’heure selon le format suivant(ASCII) :N° d’octet1 à 3 : Texte d’entête : ‘DCF’4 : Jour de la semaine

1 = lundi, etc.5 et 6 : Jour (1-31)7 et 8 : Mois (1-12)9 et 10 : Année (0-99)11 et 12 : Heures (0-24)13 et 14 : Minutes (0-60)15 et 16 : Secondes (0-60)17 et 18 : Code d’erreur à laréception DCF19 et 21 : Nombre de minutesdepuis le dernier décodage correct22 et 23 : Somme de vérification(checksum) (0-98)24 et 25 : Chaîne de terminai-son :

Retour chariot/retour àla ligne (carriage-return/linefeed)La raison du choix d’une somme devérification est le fait qu’il soit diffi-cile d’implémenter facilement un bitde parité avec le 8051. Voici com-ment se fait le calcul de la somme devérification : nous effectuons lasomme mathématique de tous lesnombres envoyés (jour de la semaine+ jour + mois + année, etc.). Nouscalculons le reste de la division decette somme par 99. Cela nousdonne un nombre à 2 chiffres.À nouveau il nous faut nousdébrouiller sans l’instruction « PrintUsing... ». Les zéros non significatifsont été ajoutés à la main de manièreà donner au message une longueurfixe.

Programme de visualisation pour le PCLa mise en oeuvre du programmepour le PC est l’évidence même :commencer par une sélection duport COM et appuyer ensuite sur lebouton « Connect ». Si la dernièreréception correcte du signal DCF

MICROPROCESSEUR

80 Elektor 6/2003

NPN

BC549

10k

330 ...470Ω

+5V

De E/S µP

020410 - 13

Figure 3. Le pilotage des LED est d’unesimplicité exemplaire.

4 3 2 1

Masse

+ 5V

Sortievers E/S µP

pull up10k

020410 - 12

Figure 2. On pourra, pour réaliser unecorrection DCF, brancher un module deréception DCF tout fait.

Page 65: Elektor N°300 - Juin 2003 - doctsf

vent parasiter la réception du signal DCF. Ilfaudra de préférence, positionner le récepteurà 1 mètre au moins du PC. Tout le monde saitqu’en fonction de sa position géographiqueou topographique (surtout dans le Sud del’Hexagone), la réception du signal DCF peutêtre délicate voire impossible. Il est recom-mandé de monter le récepteur le plus hautpossible dans la maison (au grenier ?). N’ou-bliez pas de mettre en place la résistance deforçage au niveau haut (pull up) représentéen figure 3 à la sortie du récepteur.

(020410)

Bibliographie :

[1] DCF pour le PICÉE, Elektor n° 292, octobre 2002, page 28 et suivantes

s’est faite il y a moins de255 minutes, on pourra synchroniserl’horloge du PC par une action sur lebouton « Adjust PC clock » (cf.figure 1).Il est également possible de réaliserune connexion et une remise àl’heure du PC automatiques. Il estpossible dans ce cas-là d’ajouter lesoptions de paramétrage suivanteslorsque l’on démarre le programmedans une fenêtre DOS ou par le biaisd’un fichier batch ou d’un raccourci :/comx : connexion automatique auport COM indiqué sans avoir àappuyer sur le bouton « Connect ».Exemple : /com1./boot : correction automatique del’horloge du PC sans avoir à appuyersur le bouton « Adjust PC clock »; leprogramme s’arrête ensuite de lui-même. Cette option ne fonctionneque si l’option du port COM est pré-sente elle aussi. Sa fonction est deremettre l’horloge du PC à l’heurefournie par le module DCF lors dechaque démarrage de Windows./min : le programme est lancé en for-

mat « minimisé » et la fenêtre n’ap-paraît pas. Le programme resteainsi, dans le cas du choix de l’op-tion /boot, au travail en arrière-plan.Pour information : la taux de trans-mission (baudrate) du port COM estparamétré automatiquement :19 200 bauds, 8 bits, sans parité,1 bit d’arrêt.

Connexions matériellesEntrée DCF : P3.3 (requis)LED des secondes : P3.4 (option)LED de contrôle DCF : P3.5 (option)Affichage LCD 16*2 connecté selonBASCOM (option).

Pour éviter toute ambiguïté, nousvous proposons en figure 2 et 3 leplan de câblage, respectivement, durécepteur DCF et des LED.

Aspects pratiquesIl faut être conscient du fait qu’un PCet son moniteur en particulier, peu-

MICROPROCESSEUR

816/2003 Elektor

Le logiciel de ce projet est disponible gratui-tement sur le site Internet d’Elektor àl’adresse www.elektor.fr sous la rubriqueTELECHARGEMENTS sous la dénominationEPS020410-11 du mois de publication.

Page 66: Elektor N°300 - Juin 2003 - doctsf

ÉLECTRONIQUEEN LIGNE

82 Elektor 6/2003

Le principe du haut-parleur électrostatique(acronyme ESL pour Electro-Static Loudspea-

ker) repose en fait sur le fait que2 plaques se trouvant sous tension

(et conduisant électriquement) serepoussent lorsqu’elles présentent lamême polarité et s’attirent lors-qu’elles sont de polarités contraires.Sur un panneau électrostatique onutilise, en règle générale, 2 pan-neaux perméables à l’air, les stators,entre lesquels est tendue une finemembrane tenue en place par desfixateurs très fins. Lorsque l’onapplique une tension alternative devaleur élevée, une HT, entre la mem-brane et les stators, la membranebougera entre les 2 stators aurythme de la tension alternative,mouvement qui se traduira par undéplacement de l’air. Il est possibled’obtenir, en raison de la petitessede la masse mobile, de la surfaceimportante et la force d’attractionrépartie uniformément sur l’en-semble de la surface, une reproduc-tion sonore très propre.

Vu la simplicité relative du concept,il est très simple de procéder à desexpériences personnelles avec cetype de reproducteur de son. Nombre

Construire ses électrostats

Réaliser ses propres enceintes est et reste un violon d’Ingres pratiqué parde nombreux « amateurs » depuis bien longtemps. Ces dernières annéesil semblerait cependant que l’enthousiasme de la fin du siècle se soitrefroidi. Si vous faites partie des pionniers qui voudraient s’essayer àquelque chose de relativement inédit, pourquoi ne pas prendre la voiedes haut-parleurs électrostatiques ? Le coût des matériaux de base estridiculement faible et les résultats peuvent être « renversants ».

Produire du son avec de la HTHarry Baggen

Page 67: Elektor N°300 - Juin 2003 - doctsf

ÉLECTRONIQUEEN LIGNE

836/2003 Elektor

baguette magique un vieux casque d’écoutedynamique en un modèle électrostatique. Ladescription est accompagnée d’un bonnombre de croquis et de photos explicitesfaits avec grand soin.Il existe des fabricants de haut-parleurs élec-trostatiques qui proposent certains de leursproduits en kit. Les panneaux tout montés enparticulier présentent un intérêt indiscutable

d’amateurs se sont essayés aux sur-faces d’acier percées, de films plas-tique et autres variantes sur cethème. Ces expériences se sont tra-duites par l’apparition, sur Internetd’un nombre impressionnant de sitesdécrivant ces expérimentations àbase d’électrostatiques.

L’article « How to Make Electrosta-tic Loudspeakers » [1] de MarkRehorst constitue une excellentebase expliquant comment procéderpour se lancer dans la réalisation dehaut-parleurs électrostatiques. Il yest fait mention de tous les élémentsde base constituant un électrostat,des matériaux nécessaires à la réali-sation des stators jusqu’à la réalisa-tion de l’alimentation haute-tension.Vous pourrez vous mettre immédia-tement à l’ouvrage pour peu quevous ayez un minimum de connais-sances en électronique.L’article « Electrostatic Loudspea-ker Design » [2] de Neil McKean estplus exhaustif et plus technique. Ildécrit tant les aspects conceptionque réalisation d’un haut-parleurélectrostatique.

Comme nous le disions en débutd’article, légion sont les concepteursde haut-parleurs électrostatiques àdécrire leurs réalisations. Nous nepouvons pas les nommer tous, raisonpour laquelle nous vous en propo-sons une petite sélection. Le MiniMite ESL [3] de Sheldon Stokes estun petit panneau électrostatiquecombiné à un driver de Jordan letout placé dans un coffret transmis-sion-line. Le DIY ESL 1.0 [4] (DIY =Do It Yourself) du même auteur estun projet de réalisation personnelletrès bien documenté.La page « Electrostatic LoudspeakerPage » [5] de Matthew Anker est elleaussi dédiée au domaine des élec-trostatiques. La partie réalisationillustrée par nombre de photos vautindubitablement la peine d’êtreconsultée.

Sur sa page « Zelfbouwen Elektro-staten » [6] Rob de Lugt montre lesétapes de construction de panneauxélectrostatiques, le stator prenantdans ce cas précis la forme de filssous tension (physique) plutôt queles plaques perforées utilisées habi-tuellement.

La réalisation personnelle d’uncasque d’écoute électrostatique [7]est indéniablement une entreprisetrès intéressante. Sur son site« Headwize » Andrew Radford (peut-être un rejeton lointain de la famillelégendaire des Radford de l’ère destubes ?) montre comment il a trans-formé de quelques coups de

Page 68: Elektor N°300 - Juin 2003 - doctsf

vu qu’ils permettent à des amateurs moinsexpérimentés de réaliser d’excellents sys-tèmes de reproduction. Le fabricant néerlan-dais AudioStatic [8] propose son projet DCI-LT en kit; ce kit comprend une paire de pan-neaux tout montés et des unitéshaute-tension complètes. Tout ce qu’il vousreste à faire est un squelette sur lequel vien-dront reposer les panneaux.

La société australienne Metaxas [9] proposeégalement, sous la dénomination MET 1, unset de haut-parleurs électrostatiques. Iciencore il s’agit d’un set complet avec sous-ensemble HT et transformateurs audio. Laparticularité de ce système est la possibilitéd’acquérir plusieurs panneaux que l’onpourra ensuite monter en parallèle.Si vous avez uniquement besoin d’une

adresse où commander le film plas-tique adéquat (souvent difficile àtrouver), nous pouvons vous propo-ser l’une ou l’autre adresse où voustrouverez non seulement ce genre defilm plastique mais aussi biend’autres pièces utiles tels que spaygraphite.

Twinstatic Audio [10] est unesociété de Hi-Fi néerlandaise propo-sant une palette très complète decomposants spéciaux dans cedomaine. D’autres fournisseurs telsque « The Electrostatic Loudspea-ker Information Exchange » [11] etER Audio [12] se trouvent bien plusloin, à savoir en Australie.Le site « The Electrostatic Loud-speaker Circuit » [13] constitue unesource d’inspiration inépuisable pourles amateurs d’électrostatiques. Lesite existe depuis 1998 et recèle unequantité impressionnante de des-

criptions d’électrostatiques tantcommerciaux que de réalisation per-sonnelle. On s’y intéresse égalementaux systèmes adjacents tels qu’am-plificateurs pour ESL. On y découvreen outre un forum où les amateursrencontrent d’autres passionnéspour y échanger des informations entout genre.

(035033)

ÉLECTRONIQUEEN LIGNE

84 Elektor 6/2003

Adresses Internet :[1] How to Make Electrostatic

Loudspeakers:www.amasci.com/esloud/eslhwto.html

[2] Electrostatic Loudspeaker Design:www.audiodesignguide.com/esl/esl.html

[3] Mini Mite ESL: www.audiocircuit.com/9041-esl-circuit/Diy/Projects/SheldonStokes-SS/9041DESS-MM.htm

[4] DIY ESL 1.0:www.quadesl.com/diy_esl1.shtml

[5] Page Electrostatic Loudspeaker :http://home1.gte.net/res0f2t3/index.htm

[6] Zelfbouwen Elektrostaten:www.audio4.nl/zelfbouw/elektrostaten.htm

[7] Elektrostatische hoofdtelefoon:http://headwize2.powerpill.org/projects/showproj.php?file=radford1_prj.htm

[8] AudioStatic-bouwkit: www.audiostatic.com/page9.htm

[9] Metaxas MET 1:www.metaxas.com/pages/masnewfiles/index.html

[10] Twinstatic Audio:www.twinstaticaudio.nl/onderdelen/

[11] The Electrostatic Loudspeaker Information Exchange:www.hitechnetworks.net/bwaldron/main.htm

[12] ER Audio: www.eraudio.com.au/[13] The Electrostatic Loudspeaker Circuit:

www.audiocircuit.com/9041-esl-circuit/9041IMAI.htm

NdlR :Nous avons eu la chance, auSalon Intertronic 2003, de faire laconnaissance d’un grand amateurde réalisations d’ESL, Mr Voillotde Villenave d’Ornon qui nous aimpressionné par son expériencesur le sujet.À bientôt dans Elektor ?

Page 69: Elektor N°300 - Juin 2003 - doctsf

MUSIQUE&SCÈNE

Elektor 6/200386

Le dérivateur DMX-1x3 s’accommode de tousles appareils se laissant piloter sous DMX512 et améliore sensiblement la fiabilité. Ilfacilite la prolongation des liaisons DMX vuque l’on peut toujours choisir la connexion laplus courte.

Rien de tel qu’un petit exemple :supposons que nous ayons des équi-pements DMX tant sur le côtégauche que sur le côté droit de l’ins-tallation. En l’absence de dérivateuril faudrait commencer par poser le

câblage vers l’un descôtés avant de le prolon-ger d’appareil en appa-reil, avant de revenir aupoint de départ pourpasser ensuite de l’autrecôté et relier là les diffé-rents équipements ensérie. On a vite fait desupputer qu’il doit yavoir une solution plussimple et partantmeilleure.Grâce au dérivateurDMX le câblage se sim-plifie notablement. Il nerequiert qu’une liaisonpar côté, à laquelle onreliera les différentsappareils concernés.

Bis repetita placentDès le premier coupd’oeil au schéma de lafigure 1 il apparaît àl’évidence que l’électro-nique du DMX-1x3 se

compose, principalement, de 3 sous-ensembles identiques. La résistanceR1 présente à l’entrée fait office derésistance de terminaison (termina-tor) pour le bus DMX qui travaille,vous le savez sans doute, selon les

DMX-1×3Dérivateur, isolateur, répéteur

Projet : Jürgen Mack

Le DMX-1x3 est un dérivateur actif qui distribue un signal DMX sur 3sorties. Il présente encore d’autres caractéristiques intéressantes vu qu’ilsépare galvaniquement l’entrée de la sortie d’une part et les sorties entreelles de l’autre. De plus, de par sa construction, les sorties peuventtravailler indépendamment l’une de l’autre.

Page 70: Elektor N°300 - Juin 2003 - doctsf

MUSIQUE&SCÈNE

6/2003 Elektor 87

outre-Manche et Atlantique) spéciaux, cepen-dant étant donné le faible courant nécessaire,il est coûte moins cher d’utiliser une paire detransformateurs de 1VA5 doté chacun d’unepaire d’enroulements secondaires de 6 V,solution qui n’occupe d’ailleurs guère plus deplace, même si elle n’est pas aussi élégante.On trouve, en aval de chacun des enroule-ments secondaires, un petit pont de redres-sement. La paire de condensateurs électro-chimiques et le régulateur de tension intégréque l’on trouvent à la sortie de chaque pontfournissent une tension continue de +5 V aulissage suffisant.

Construction ordonnéeUn coup d’oeil sur la sérigraphie de l’implan-tation des composants et la photo de la pla-tine terminée (figure 2) montre que l’étaped’implantation des composants n’appelleguère de remarque. Il va sans dire qu’il estimportant de n’oublier aucun des 4 ponts decâblage et vital pour le fonctionnement dumontage de s’assurer que tous les circuitsintégrés ont été implantés correctement dansleur support (voire soudés directement sur laplatine en respectant leur polarité).Est-il bien nécessaire de le préciser que leboîtier dans lequel sera montée cette réalisa-

normes RS-485. L’adaptateur deniveau IC5 fait subir au signal DMXune conversion des niveaux RS-485aux niveaux TTL. Le LTC485 (le biennommé) de Linear Technology est uncircuit d’interfaçage qui convertit lessignaux RS-485 en signaux TTL(récepteur R) et les signaux TTL ensignaux RS-485 (émetteur D).L’émetteur n’est pas actif dans laprésente réalisation. La fiche decaractéristiques de ce composantest disponible sur le site Internet deLinear Technology à l’adresse :www.linear-tech.com/pdf/485ff.pdf.En aval de IC5 on a répartition dusignal vers 3 circuits identiques. Lesopto-coupleurs à grande vitesse dutype 6N137 assurent une isolationgalvanique. La résistance R2 limitele courant qui circule à travers lesLED des opto-coupleurs. La pré-sence d’un niveau logique haut surla broche 7 valide les opto-cou-pleurs. Comme nous nous trouvonsen présence d’opto-coupleurs à sor-tie en collecteur ouvert, il nous fautprévoir des résistances de forçageau niveau haut (pull up), R3 à R5.Ensuite, le signal retourne au

LTC485, ce composant étant cettefois utilisé en émetteur (D) unique-ment. Petite différence par rapport àIC5 : comme les opto-coupleursinversent les signaux, nous avonsprocédé, sur chacun des LTC485concernés, à une interversion dessorties de manière à tout remettredans l’ordre.Le signal DMX « splitté » quitte lecircuit au niveau des borniers K3 àK5. L’isolation galvanique des 3 sor-ties entre elles se manifestera posi-tivement en cas de problèmes. S’ildevait y avoir une erreur, seule eneffet la sortie concernée sera misehors-fonction, les autres ne serontpas affectées par la situation d’er-reur.Sur la partie droite du schéma nousdécouvrons l’alimentation. Nousavons besoin, puisque nous avonsaffaire à 4 sous-ensembles séparésgalvaniquement l’un de l’autre, à 4alimentations indépendantes l’unede l’autre. Il serait possible derépondre à ce cahier des charges parl’utilisation d’une alimentation asso-ciée à quelques convertisseurscontinu/continu (CC/CC ou DC/DC

+5V-1

R3

4k

7

6N137

IC9

27

8

5

6

3

C5

100n

+5V

C12

100n R2

22

+5V-2

R4

4k

7

6N137

IC10

27

8

5

6

3

C6

100n

+5V-3

R5

4k

7

6N137

IC11

27

8

5

6

3

C7

100n

R1

12

020117 - 11

B1

B40C1000

B2

B40C1000

7805

IC2

C2

470µ

C1

470µ

C8

C9

+5V-1

+5V

B3

B40C1000

B4

B40C1000

7805

IC4

C4

470µ

C3

470µ

C10

C11

+5V-3

+5V-2

K1

100mA T

F1

230V

LTC485

IC5

5

8

2

1R

D

3

4

7

6K2

K3

K4

K5

7805

IC1

7805

IC3

TR1

2x 1VA5

TR2

2x 1VA5

LTC485

IC6

5

8

2

1R

D

3

4

7

6

LTC485

IC7

5

8

2

1R

D

3

4

7

6

LTC485

IC8

5

8

2

1R

D

3

4

7

6

16V 16V

16V 16V

16V 16V

16V 16V

GND

GND1

GND1

GND2

GND2

GND3

GND3

GND1

GND

GND3

GND2

6V

6V

6V

6V

Figure 1. L’électronique du DMX-1x3 comporte 4 sous-ensembles séparés galvaniquement l’un de l’autre.

Page 71: Elektor N°300 - Juin 2003 - doctsf

tion doit répondre aux exigencesd’une utilisation sur scène et per-mettre un montage de la platine res-pectant les normes de la classe II.La règle la plus importante à ceniveau est que l’écartement entretoute partie véhiculant la tension dusecteur et le boîtier métallique doitêtre d’au moins 6 mm, il ne sauraitpartant pas être question d’utiliserdes entretoises de 5 mm ! Les jacksXLR mâles et femelles de mêmed’ailleurs que l’embase d’entrée dela tension secteur seront fixés àl’aide de rivets.

(020117)

MUSIQUE&SCÈNE

88 Elektor 6/2003

(C) ELEKTOR020117-1

B1

B2

B3

B4

C1

C2

C3

C4

C5

C6

C7C8

C9

C10

C11

C12

F1H1

H2 H3

H4

IC1

IC2

IC3

IC4

IC5 IC

6IC

7IC

8

IC9

IC10

IC11

K1

K2

K3

K4

K5

R1

R2R3

R4

R5

TR1

TR2

100mAT

+

+

+

-

-

-

- +

T

T

T

T

020117-1

(C) ELEKTOR020117-1

Figure 2. 2 aspects de l’implantation des composants : théorique et pratique.

Liste des composants

Résistances :R1 = 120 ΩR2 = 220 ΩR3 à R5 = 4kΩ7

Condensateurs :C1 à C4 = 470 µF/16 V radialC5 à C7,C12 = 100 nFC8 à C11 = 1 µF/16 V radial

Semi-conducteurs :B1 à B4 = B40C1000 rond petit

modèleIC1 à IC4 = 7805IC5 à IC8 = LTC485CN8 (Linear

Technology) ou SN75176BPIC9 à IC11 = 6N137

Divers :F1 = porte-fusible encartable avec

fusible 100 mA lent (T)K1 = bornier encartable à

2 contacts au pas de 7,5 mm(RM7.5)

K2 à K5 = bornier encartable à3 contacts au pas de 5 mm (RM5)

Tr1,Tr2 = transfo secteur 1VA5(ou 2 VA), 2 x 6 V (sources :Hahn, Monacor, Myrra)

embase d’entrée secteur miniature3 embases châssis femelle XLR à

3 contacts sur 180 °1 embase châssis mâle XLR à

3 contacts sur 180 °boîtier tel que, par exemple, ISEL

131020 ou Conrad RFA 523224

Page 72: Elektor N°300 - Juin 2003 - doctsf

INFORMATIONS

90 Elektor 6/2003

Comme C a été conçu dès le départ en vue defaciliter l’accès au matériel et que ce langagepeut se targuer d’une meilleure efficacité quenombre d’autres langages de programmation,

il n’est guère surprenant de consta-ter que son utilisation a pris sonenvol. Il est possible aujourd’hui,sous C, de développer pratiquement

n’importe quoi : microcontrôleurs (duplus humble PIC aux gros monstrestels que le Xscale), PNS (ProcesseurNumérique de Signal = DSP pourDigital Signal Processor), pro-grammes pour systèmes d’exploita-tion (SE) tournant sous Windows etLinux voire même sous UNIX et sesstations de travail, programmesadministratifs. Mais il est égalementpossible de créer des pilotes de péri-phériques (device-driver) et mêmedes SE complets (au nombre des-quels on compte Linus et Win-dows 2000/XP), sans même parler,bien entendu des applications quenous utilisons journellement (deWord à Mozilla). Tout cela fait indu-bitablement de C le langage de pro-grammation le plus « universel » etvu l’efficacité de ce langage, leschoses ne sont pas près de changer.Il vaut donc la peine de se mettre auC et d’en apprendre le fin mot !Nous allons, dans le présent article,passer en revue 2 compilateurs Cpour le PIC. Comme nous le disionsplus haut, le PIC est l’un des micro-contrôleurs les plus populairesauprès des amateurs; sa mise enoeuvre est facile, et est, dans biendes cas, tout aussi adapté et puis-

Compilateurs C pour le PICTravailler efficacement avec un langage de haut niveau

Olaf Beckman Laprè

Le PIC est un microcontrôleur que l’on retrouve au coeur de nombre deréalisations (chez Elektor aussi). La plupart des développeurs utilisantce contrôleur programment en assembleur. Mais il est égalementpossible de programmer un PIC en s’aidant d’un langage de haut niveau,en C par exemple.

Figure 1. Le compilateur standard de CCS en combinaison avec l’éditeur de programmationConTEXT.

Page 73: Elektor N°300 - Juin 2003 - doctsf

sant que le légendaire 8051.Chaque amateur pose ses propresexigences à un compilateur C. Il fautqu’il soit et facile à utiliser et bonmarché, pour ne pas avoir à rendrede comptes à qui que ce soit (suivezmon regard).

Au nombre des compilateurs quiremplissent ce cahier des chargesrudimentaire nous pouvons men-tionner le compilateur PCM de CCSet le compilateur C2C de Pavel Bara-nov. Si la mise en oeuvre et les pos-sibilités de ces 2 compilateurs diffè-rent sensiblement, ils n’en répondentpas moins à nos critères de sélec-tion. Les nouvelles versions se suc-cédant à un train d’enfer, les ver-sions décrites ici sont celles dontnous disposions à l’écriture de ceslignes et peuvent partant présenterl’une ou l’autre différence par rapportaux versions les plus récentes de cesprogrammes.

Environnement de développementSi vous faites partie de ceux quidéveloppent plus ou moins réguliè-rement un projet à base de micro-contrôleur, vous savez sans doutecombien le confort d’utilisation estun facteur important. Il est en outrevital qu’un développeur débutantpuisse se sortir d’affaire sans à avoirà consulter à tout bout de champ lesmanuels (électroniques) et autresouvrages grand public. Ces 2 compi-lateurs supposent une assez bonneconnaissance du C vu que la docu-mentation qui les accompagne esttrès sommaire et destinée plus par-ticulièrement à la description des(im)possibilités ainsi que des rou-tines de la bibliothèque.Les environnements de développe-ment de ces 2 compilateurs diffèrenttrès sensiblement.

Le compilateur CCS standard neconnaît même pas d’environnementde développement, il se contented’être un compilateur. Il faudra ledémarrer dans une fenêtre DOS oudans une console en ajoutant lesparamètres (nom du fichier + autresoptions) requis. Il est bien entenduplus confortable de pouvoir démar-rer un compilateur depuis l’intérieurd’un éditeur. On pourra, à cet effet,

INFORMATIONS

916/2003 Elektor

Figure 2. Le compilateur C2C possède un environnement de développement tournant sousWindows.

Listage 1. Structure cartographiée vers un port d’E/S.Dans le cas du compilateur PCM les choses se passent de la manière suivante :

struct _keysbit mode_sw; // LSBbit plus_sw;bit minus_sw;bit set_sw;bit unused : 4; keys

#byte keys = 5 // ‘keys’ struct is mapped to address 5 = PORTB

if (keys.mode_sw == 1) // mode switch was pressed

Avec le compilateur C2C cela se fera par la prise en compte du port et le test, à l’aide del’opérateur « & », pour vérifier si un bit est positionné (à « 1 ») ou non, processus illustré ci-après

char keys@5 // keys are mapped to address 5 = PORTB

if (keys & 1)// mode switch was pressed

Page 74: Elektor N°300 - Juin 2003 - doctsf

fort bien utiliser l’éditeur-programmateurConTEXT (cf. en fin d’article), programme quel’on reconnaît sur la recopie d’écran de lafigure 1.Le compilateur C2C (version 4.0e, cf. figure 2)possède un environnement de développe-ment tournant sous Windows qui est aussiplus confortable à utiliser. L’inconvénient estque la version utilisée par l’auteur de cetarticle présentait encore un certain nombrede « bugs » qui rendait délicate la reproduc-tion du texte. Le programme ne s’est cepen-dant jamais « planté ».Le compilateur C2C connaît une option luipermettant de programmer, depuis l’environ-nement de développement, un PIC en appe-lant tout simplement un petit programme deprogrammation externe.Les 2 compilateurs sont en mesure de géné-rer un fichier .LST ce qui permet au compila-teur d’inspecter le code assembleur produit.Il s’agit d’une bouée de sauvetage pratiquelorsque le code ne fait pas exactement ce quel’on en attend ou lorsque l’on veut s’assurerde l’efficacité de son code. Il peut être inté-ressant, dans certains cas, d’essayer un algo-rithme différent pour voir si le compilateurproduit un code assembleur plus compact,mais en règle générale cela n’est pas néces-saire. L’auteur a cependant rencontré dessituations dans lesquelles le fait d’inhiberl’optimalisation du code par le compilateuravait permis de résoudre des problèmes.Il existe pas moins de 5 versions du compila-teur CCS. La version PCB est destinée auxPIC 12 bits, le compilateur PCM dont nous

avons parlé plus haut l’étant aux PIC14 bits, sachant qu’il existe, depuispeu, une version PCH du compila-teur destinée elle aux PIC 18 bits. Ils’agit de lignes d’instruction pourapplications Windows qui à l’exécu-tion font apparaître un dialogue quivisualise le déroulement du proces-sus de compilation en cours. Il fau-dra partant les associer à un éditeurde programmation tel que ConTEXTévoqué plus haut. Il existe cepen-dant aussi une version tournant sousWindows en 2 variantes, PCW etPCWH, mais elle coûte sensiblementplus cher que les versions à ligned’instruction.Le compilateur C2C est proposé enshareware et coûte bien moinscher que les compilateurs CCS. Lesnouvelles versions se bousculent;l’auteur a testé les versions 4.0 et4.6, mais depuis il est apparu uneversion réactualisée et remodelée,la version 5.0 qui est constituéed’un environnement de développe-ment intégré (IDE = IntegratedDevelopment Environment) baptiséPicAntIDE.

BibliothèqueLes compilateurs se différentienttrès nettement l’un de l’autre auniveau de la bibliothèque et descapacités en C. Ainsi, le compilateurC2C se trouve en contact plus« direct » avec le matériel parce queles choses se passent à un niveaurelativement bas (low level), tandisque le compilateur PCM met l’ac-cent sur la rapidité de la solution etla minimisation du travail de pro-grammation. Nombre des routinesde bibliothèque intégrées dans lecompilateur PCM sont égalementdisponibles sur le site Internet ducompilateur C2C, écrits par destierces parties. Les 2 compilateurspossèdent une bibliothèque inté-grée pour RS-232 et les temporisa-tions chronologiques.Le compilateur PCM présente legrand avantage de supporter lesstructures et les champs de bits (bit-field). Il est possible de ce fait d’avoirune structure interne qu’il est pos-sible de cartographier directementvers un port d’E/S dont on pourraattribuer individuellement les lignesselon les besoins, situationsqu’illustre le code du listage 1.

Le compilateur PCM dispose d’unebibliothèque exhaustive pour I2C etRS-232. Il intègre même le logiciel decommande pour le microcontrôleurd’affichage LCD, le HD44780, y com-pris une instruction printf() plus mus-clée. Notons au passage qu’il estpossible de modifier la routine printf()par la définition d’une routine putc()propre, routine qu’utilisera la routineprintf(). Il est même possible ainsid’envoyer la sortie de printf() vers unaffichage LCD graphique en se limi-tant à l’écriture de la routine putc()pour le LCD en question (une sortede pilote de périphérique en fait). Lecompilateur est accompagné d’uneprofusion de pilotes (driver) exo-tiques qui permettent de faire quasi-ment n’importe quoi, de la com-mande d’écrans tactiles à la lecturede capteurs de température. Il fau-dra bien entendu que votre applica-tion utilise les circuits intégrés queles pilotes peuvent commander vuque sinon il vous faudra écrire votrepropre pilote pour le composant nonsupporté.

Contrairement au compilateur C2C,PCM supporte également la virguleflottante IEEE 32 bits. Cette diffé-rence n’est pas nécessairement cri-tique vu que le PIC de la majoritédes applications sert uniquement àdes fins de commande « rudimen-taire ». Les 2 compilateurs peuventutiliser des variables 8 et 16 bits.

En guise de conclusionChacun de ces 2 compilateurs vautson prix, ils conviennent tous deuxaux applications personnelles, touten signalant cependant que C2Cs’adresse plutôt à un utilisateurexpérimenté. Le compilateur PCMoffre un certain nombre d’extra (telsque virgule flottant, champs de bit)et possède en outre une bibliothèqueexhaustive qui permet de se mettrerapidement à l’ouvrage, mais il coûteégalement 2 fois plus cher que C2C.

Il est recommandé de concevoirvotre montage de façon à pouvoir leprogrammer en mode ICP (In-CircuitProgramming), ce qui permet de rac-courcir très sensiblement les cyclescompilation/effacement/programma-tion/débogage.

(030098)

INFORMATIONS

92 Elektor 6/2003

Adresses Internet :Compilateur PCB (pour PIC 12 bits), compi-

lateur PCM (pour PIC 14 bits), compilateur

PCH (pour PIC 18 bits) et compilateur

PCW(H) (version Windows) :

www.ccsinfo.com/picc.shtml

prix à compter de 125 $US + frais d’envoi

Éditeur de programmation ConTEXT :

www.fixedsys.com/context/

Version de démonstration de PCW

(1 Koctet) :

www.ccsinfo.com/demo.htm

Compilateur C2C :

www.picant.com/c2c/c.html

Enregistrement 59 $US

Page 75: Elektor N°300 - Juin 2003 - doctsf

LOISIRS

94 Elektor 6/2003

L’inutilité dudit conseil fait partie du bagageintellectuel de tout technicien digne de cenom. Et pourtant ? Le circuit proposé ici per-met de démontrer comment commander unmoteur pour que son sens de rotationdépende vraiment de la façon dont on placela fiche (bipolaire) dans la prise.Dans le cas d’un circuit muni d’un conducteurde protection, il est bien entendu facile dedéterminer la façon dont la fiche secteur estraccordée (figure 1a). Un connecteur est eneffet la phase, l’autre le neutre. Il est faciled’identifier la phase, dont la tension diffère for-tement de celle du conducteur de protection.Il faut bien entendu prendre les mesures desécurité d’usage. On peut par exemple faireappel aux courants passant par 2 condensa-teurs Y C1 et C2 (capacité généralement de4n7) pour déterminer la polarité (figure 1b).On peut difficilement parler d’un défi pour unélectrotechnicien chevronné.

Moniteur magiqueAu cours d’une « conférence de Noël » donnéeà la Haute École Spécialisée d’Aix-la-Cha-pelle, l’auteur a présenté un « moniteurmagique ». L’inversion de la fiche du moniteur(ou de la TV) produit du même coup celle del’image. Le succès de la démonstration estgaranti et le gag peut resservir comme pois-son d’avril ! Quel est le truc ? La figure 2 nousdévoile la méthode de détermination de laposition de la fiche secteur. Si la phase estvraiment connectée à P, un courant d’environ150 µA est dérivé vers PE (conducteur de pro-tection) par le condensateur Y C4 agréé. Latension continue engendrée aux bornes de C2

par le courant passant par R3/R2 etD2/D3 permet au transistor T1 d’ac-tionne le relais REL1. Ce relaisinverse la tension de la bobine dedéviation et hop, voilà le moniteurmagique ! Il est bien entendu préfé-rable de laisser à un spécialiste lesoin d’accomplir ce genre d’inter-vention dans un moniteur !Passons maintenant au cas où unappareil dépourvu de conducteur deprotection doit déterminer le sensde branchement de la prise. Celaparaît de prime abord impossible.Mais il existe des choses qui fonc-tionnent en pratique avant de fonc-tionner en théorie !

D’innombrables électroniciens ontété témoins du phénomène suivant :on effleure du doigt l’entrée d’unamplificateur B.F. et le haut-parleurémet un puissant ronflement. Ce ron-flement semble provenir de nullepart. Pourrait-on l’utiliser commesignal de référence 50 Hz pour déter-miner la phase de la tension prove-nant du câble secteur ? Le circuit dela figure 3 est le résultat de cesconsidérations. L’antenne A1 captele ronflement 50 Hz. Le signal filtrépar le filtre passe-bande BPF1 estconverti en un signal rectangulairede 50 Hz par le comparateur COMP1.La tension du secondaire du trans-

Moteur magique ?C’est pas sorcier

Prof- Dr. –Ing Martin Ossmann

Parmi les petits ennuis auxquels on est confronté lors de la mise en serviced’installations techniques, mentionnons l’inversion du sens de rotationd’un moteur. Les sarcasmes des collègues viennent s’ajouter aux dégâtscommis : « Inverse donc la fiche ! » …

Page 76: Elektor N°300 - Juin 2003 - doctsf

sera toujours (plus ou moins) 0 V. Mais lalogique XOR fournit (presque) toujours 5 V siles signaux sont en opposition de phase. Lamoyenne de la tension de sortie XOR permetdonc d’identifier la position de phase de latension du transformateur. Le filtre passe-basavec comparateur COMP3 qui suit XOR1 com-mande le circuit en pont alimentant le moteurà courant continu.Inversons la fiche de courant par une rotationde 180 degrés. La tension du transformateursubit une rotation identique par rapport à latension de ronflement et le moteur inverseson sens de rotation.

Réalisation techniqueLe circuit complet est reproduit dans lafigure 4. Une simple alimentation fournit 5 Vet 2.5 V (masse de référence pour les amplifi-cateurs opérationnels). La tension secteur estenvoyée au -filtre passe-bande 50 Hz IC2.Apar un diviseur de tension. Le filtre passe-bande est suivi d’un filtre passe-tout (IC2.B)qui permet d’ajuster la position de phase du« signal de référence » au moyen de R14.Le ronflement est capté par « l’antenne » A1 etl’adaptateur d’impédance IC3.A. Le ronflementest aussi envoyé à un filtre passe-bande 50 Hz.Il est converti en un signal rectangulaire par lecomparateur IC4.B. IC4.A est le comparateurdu signal de référence. Les phases des 2signaux rectangulaires 50 Hz sont comparéespar la logique OU exclusif IC5A. Le compara-teur IC4C compare la composante continueextraite par le filtre passe-bas R18/C10 à lavaleur du seuil 2,5 V. Cette information com-mande le circuit en pont composé des transis-tors T1 à T4 qui alimente le moteur M1. La« différence » des signaux 50 Hz affichée par ladiode luminescente (LED) D3 permet d’effec-tuer les ajustements nécessaires.

Montage et fonctionnementLa plupart des composants du circuit sontstandard et leurs caractéristiques ne sontpas critiques. Ils se passent donc de com-mentaires. Il va sans dire que lesconnexions au 230 V doivent être isoléesavec soin ! Pour que « l’antenne » présenteune surface suffisante, on la réalisera parexemple au moyen de 2 condensateurs élec-trolytiques de grande taille (C6 et C11 dans leschéma) raccordés comme composants « fac-tices ». Pour accroître la perplexité des élec-trotechniciens chevronnés, il est important depermettre l’inspection du câblage du trans-formateur TR1. On peut le munir par exempled’un fond transparent. Les « experts » soup-çonneront sinon le circuit d’être une sorte detesteur de phase. Mais dès qu’ils constateront

formateur secteur est aussi filtrée(BPF2). Elle est ensuite envoyée à unfiltre passe-tout APF qui permet decompenser les rotations de phase.Ce signal, en synchronisme avec latension du secondaire, est aussi

converti en un signal rectangulaire.La logique OU exclusif XOR1 sertpour ainsi dire de redresseur sen-sible à la phase. Si les 2 signaux50 Hz (ronflement et tension secteur)sont en phase, la sortie de la logique

LOISIRS

956/2003 Elektor

P

N

PE

230V

C1

I1 I2

C2

Condensateurs Y

Appareil

020274 - 11

Figure 1. a) Raccordement de l’appareil avec un conducteur de protection b) lescourants passant par les condensateurs donnent les informations nécessaires.

Figure 2. Voilà comment se présenterait un tel circuit en pratique.

Figure 3. Schéma de principe du moteur magique.

D1

1N4007

C1

T1

BS170

RE1 D2

1N4007

C2

D4

BAT43

D3

R1

22

0k

C3

1µR2

12

k

R3

22

0k

2x

C4

2n2

020274 - 12C4 =

P

PE

230V 6V

Y !!!

Condensateur Y

N

M

COMP3

MOTBR

COMP1BPF1

COMP2BPF2 APF

XOR1

=1

TR1

230V

50Hz

A1

020274- 13

Page 77: Elektor N°300 - Juin 2003 - doctsf

de visu qu’il n’existe aucune liaison entre leprimaire et le secondaire, leur perplexité croî-tra exponentiellement !Utiliser un petit moto-réducteur (3 V, consom-mation ne dépassant pas 100 mA) dont lesens de rotation est clairement indiqué par undisque rotatif visuellement attractif.Enfonçons la prise. Le moteur M1 devraitcommencer à tourner. La diode luminescenteD3 brille plus ou moins fortement. R14 permetde régler la luminosité entre certaines limites.Le meilleur réglage est indiqué par la quasi-extinction de la diode. Inverser la fiche en casd’insuccès. Une des 2 positions de celle-cipermet d’éteindre presque complètement D3avec R14. La LED ajustée de la sorte brille fai-blement lorsque le moteur tourne dans uncertain sens. D3 brille assez fortement lors-qu’on inverse la fiche et le moteur M1 tourneen sens contraire.

Examen à la loupe

Le circuit est étonnamment fiabledans des conditions d’utilisationtrès diverses si l’on considère qu’ilrepose sur un effet accidentel. Lecircuit a été testé dans des locauxdifférents. Il est aussi possible d’uti-liser un transformateur de sépara-tion. Le fonctionnement a aussi ététesté sans problème en laboratoireavec les 3 phases du réseau. Ce cir-cuit est donc vraiment fait pourdéconcerter les électrotechniciensles plus endurcis !Mais, après avoir réalisé et testé lecircuit, l’auteur a éprouvé quelquesdoutes. L’explication du fonctionne-ment basée sur le ronflement captépar l’antenne est-elle vraiment cor-recte ? On peut se demander en effetoù est passée la « terre », le point deréférence de la mesure de tension del’antenne. La masse du circuit (lepôle négatif du condensateur élec-trolytique C1) est inapte à jouer cerôle car sa surface est trop petite.Mais alors comment le ronflementparvient-il par le circuit à l’amplifi-cateur d’entrée IC3.A ? D’où provientle courant IA qui provoque la chutede tension aux bornes de R8+R9 ?Certains électrotechniciens au faitdes tours que peut jouer la CEMconnaissent peut-être la réponse.

Le transformateur secteur TR1 joueun rôle crucial. La capacité parasiteentre le primaire et le secondaire estde l’ordre de 25 pF pour ce modèle.On peut se la représenter commesituée « au centre » des enroule-ments (figure 5). Cela signifie que lamasse du secondaire est reliée par25 pF (correspond à une impédanced’environ 130 MΩ à 50 Hz) à la moi-tié de la tension secteur.Nous pouvons nous représenter l’an-tenne A1 comme une capacité CA dequelques picofarads se trouvant« quelque part » dans la pièce. Uneplaque se trouvant dans une pièceordinaire est soumise à une tensionde 50 Hz par couplage avec les sur-faces de masse et les conducteurssecteur. Cette tension est toutefoisbien plus faible que la moitié de latension secteur.On peut considérer que l’antenne estquasiment « mise à la terre » par rap-port à la « masse » du secondaire(soumise à la moitié de la tension dusecteur par rapport à la terre de pro-tection). Le courant passe donc parla capacité parasite du transforma-teur secteur dans la résistance d’en-trée de l’amplificateur R8+R9 puisretourne à la terre par la capacité del’antenne. Ce n’est donc pas l’an-tenne qui capte le ronflement maisplutôt le transformateur secteur.« L’antenne » offre plutôt une voie aucourant IA lui permettant de retour-ner au conducteur de protection(figure 6). Ce courant engendré parles capacités ne change pas de senslorsque la fiche est inversée. Nouspouvons donc l’utiliser comme réfé-rence pour déterminer la phase de latension secondaire du transforma-teur secteur. Et voilà commentréconcilier la théorie du fonctionne-ment de ce circuit avec la pratique.

(020274)

LOISIRS

96 Elektor 6/2003

TR1D1

D2

C1

1000µ

7805

IC1

R1

33

kR2

33

kC2

47µ

+5V

+2V5

R3

33

k

R4

1k

R6

1k

8

R8

10M

R9

10M

R11

2k

2

R12

56

0k

R16

6k

8

R17

6k

8

R5

100k

R13

33k

R15

33k

R10

6k8

R18

100k R24

6k8

R19

6k8

R20

6k8

R21

6k8

R22

6k8

R7

56

0k

C3

470n

C5

100n

C4

100n

C7

100n

C8

100n

C9

330n

R23

56Ω

100k

R14

IC2.AIC2.B

IC3.BIC3.A

IC4.B

IC4.A

C6

1000µ

C11

1000µ

IC5.A

=1

IC5.D

=1

IC4.CC10

470n

IC5.B

=1

IC5.C

=1

+5V

+5V

+5V

+5V

+2V5

+2V5+2V5

+2V5R25

1k

D3

+2V5+2V5

M1

M

T3

BC550

T4

T1

BC560

T2

+5V

IC2 = TL062, TLC272IC3 = TL062, TLC272IC4 = LM339IC5 = 74HC86

020274 - 14

2x

2x

A1

Figure 4. Schéma complet.

25p

230V

6V

6V

TR1

020274 - 15

Figure 5. Circuit équivalent dutransformateur secteur.

TR1

D1

D2

C1

1000µ

R8+

R9

25p

230V2

1p

CA

IA

IA

IAIA

IA

IA

IA

IC3.A

A1

020274 - 16

Figure 6. Le courant crucial IA.