65

Generic Array Logic - Doctsf.com

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Generic Array Logic - Doctsf.com
Page 2: Generic Array Logic - Doctsf.com

Bien que cet ouvrage date dunovembre dernier, il n’est estpas devenue d’actualité, ce quien justifie une « critique ».

En tout état de cause, le sujetde ce livre n’est pas près de neplus être d’actualité : la pro-grammation in situ (ISP). Nousn’avons pas l’intention de vousapprendre qu’il existe descomposants que l’on peut pro-grammer bien qu’ils se trou-vent sur une platine. Plus inté-ressant est le fait qu’il existeun ouvrage qui soit consacréaux possibilités offertes par lescircuits intégrés logiques com-plexes programmables.La rédaction avait eu vent dela publication de cet ouvrage.La raison qui nous fait en par-ler sont les réactions quenous avons eues à la séried’articles publiée dans lesnuméros de février et mars2004 et consacrée aux CPLD(Complex ProgrammmableLogic Device). Si le contenu decet ouvrage recoupe bien lesujet abordé par la série, il nes’arrête pas là, le livre s’occu-pant non seulement des cir-cuits plus simples tels que les

GAL (Generic Array Logic)mais consacre une partieimportante aux composantsISP analogiques. Il s’agit decircuits intégrés intégrant,par exemple, plusieurs ampli-ficateurs opérationnels épau-lés par des résistances et descondensateurs.Cet ouvrage ne se contentepas d’aborder l’aspect théo-rique. Une bonne partie, cellequi ne manquera pas d’intéres-ser nos lecteurs amateurs deréalisations est consacrée àquelques platines d’étude pourl’ispGAL22V10, l’ispLSI-1032/2064, les LC4064/4128, letout suivi par quelques expé-riences à faire soi-même.En quelques mots, un ensem-ble équilibré associant la théo-rie et les informations pratiqueà la pratique sous la forme decartes d’étude.Nous ne voudrions pas passersous silence la présence d’unCD-ROM reprenant tous lesfichiers du livre et le fameuxoutil ispLEVER STARTER deLattice ; à noter en outre lacréation d’un UserGroup bap-tisé ElektorISP chez Yahoo.

(040067F)

Programmation in situJTAG / SPI, GAL, PAC, CPLD

6/2004 - elektor 9

sel grains de sel grains de sel grains de sel grains de se

Christian Piguet &Heinz Hügli

L’histoire du calcul débuteavec l’apparition des systèmesde numération, de Sumer àRome, en passant par Thèbeset Athènes, sans oublier lesChinois et l’Inde et l’invention(très importante) du zéro (enInde) ; elle se poursuit avec laconception des premièresmachines à calculer méca-niques (abaques, automates,Pascaline) et électroméca-niques, puis aboutit enfin auxmachines électroniques (dontles premières ne datent que dudébut des années 60 du siècledernier). Ces dernières appa-raissent d’abord sous la formed’ordinateurs primitifs consti-tués de volumineux tubes àvides, avant d’évoluer vers lesmachines sophistiquées quenous connaissons aujourd’hui,composées de (dizaines de)millions de minuscules trans-istors à base de silicium.Ce livre expose de manièreclaire et progressive la façondont sont nées les idées quiont conduit à la réalisation desordinateurs et des micropro-

cesseurs actuels. Il offre aulecteur les clés lui permettantde mieux comprendre lanature et le fonctionnement deces machines. Richement illus-trée, proposant fils conduc-teurs et détails de fonctionne-ment, l’histoire exposée danscet ouvrage intéressera tousceux et celles curieux deconnaître la genèse et l’avène-ment des ordinateurs.Contenu : Préface - Avant-pro-pos - Histoire des chiffres - His-toire des machines à calculer etdes automates - Histoire desmachines à calculer électro-niques -Histoire des ordinateurs- Histoire de la programmation- Histoire des microprocesseurs.En résumé, un livre très biendocumenté sur le sujet, quel’on lira avec plaisir et qui ser-vira de référence le jour où ilfaudra déchiffrer des calculsd’intendants égyptiens ou degérants sumériens, mais aussilorsque l’on voudra se faire uneidée sur ce qui nous attenddans les prochaines années.

2004, 186 pages, ISBN 2-88074-469-5PRESSES POLYTECHNIQUES ET UNIVERSITAI-RES ROMANDES (047099-1)

Du zéro à l’ordinateurUne brève histoire du calcul

Page 3: Generic Array Logic - Doctsf.com

elektor - 6/200410

Andreas Oyrer

En règle

générale,

chaque pro-

grammateur est

spécialisé aux contrô-

leurs d’un unique fabri-

cant. D’Artagnan est lui en mesure, grâce à USB, de pro-

grammer rapidement, vite et élégamment, les contrôleurs

mi-gamme (mid-range) les plus importants d’Atmel (ceux

de Microchip ensuite) sans oublier les EEPROM sérielles.

D’ArtagnanUn pour tous et …

Page 4: Generic Array Logic - Doctsf.com

D’Artagnan a été conçu dans le cadred’une utilisation « semi-profession-nelle ». Il n’a pas été taillé pour pro-grammer la totalité des microcontrô-leurs d’un fabricant, mais plutôt lesmicrocontrôleurs 8 bits à usage géné-ral dotés de périphériques standardset d’une mémoire de travail limitée. Encontrepartie, il est en mesure de pro-grammer des contrôleurs de différentsfabricants (Atmel et Microchip pourl’instant) ainsi que des EEPROM sériel-les, ce qui n’est pas monnaie courantevu les algorithmes de programmationet les tensions différents que celaimplique mais pourrait être plutôt uneexception.Qui dit utilisation semi-professionnellesous-entend du même coup que le pro-grammateur est également un outil dedéveloppement, devant partant per-mettre un débogage. Il lui faut en outreêtre rapide pour éviter que la mise aupoint d’un programme impeccable nedevienne un supplice de Tantale.La mise en oeuvre du programmateurdoit être la plus simple possible. D’oùle choix de l’approche USB. La compa-tibilité HID garantit la mise en oeuvrela plus simple sous Windows, à partirde la version 98SE. D’Artagnanrequiert partant la présence d’uneembase USB libre sur le PC; l’alimenta-tion se faisant par le biais de l’inter-face, il n’est pas nécessaire de prévoird’alimentation externe.Comme le contrôleur ne possède pasde mémoire de programme propre, ona transfert, lors du branchement ducâble USB, du progiciel (firmware)dans la mémoire de travail du pro-grammateur. En cas de mise à jour duprogiciel, il suffit de renouveler unfichier sur le PC.Il est également possible de stocker leprogiciel dans une EEPROM sur la pla-tine du programmateur, composantauquel accède le contrôleur lors de lamise sous tension. La seule utilité dela connexion USB sera de permettre le

transfert des mises à jour du progicieldans l’EEPROM.Une spécificité de cet appareil est qu’ilne requiert pas impérativement que lecontrôleur à programmer soit extrait dumontage-cible et placé dans le supportde programmation. Le programmateurcomporte en effet 2 interfaces ISP, l’unepour les contrôleurs de Microchip, l’au-tre pour ceux d’Atmel.

Contrôleur USBLe coeur du matériel est IC1, unTUSB3210 de Texas Instruments. Cemicrocontrôleur compatible 8052 avecinterface USB (Full Speed 12 Mbits/s)possède 4 ports à 8 lignes chacun, unUART, un chien de garde et une inter-face I2C. Sachant que le TUSB3210 nepossède pas de mémoire Flash propre,cela implique un rechargement du pro-giciel après chaque coupure de la ten-sion. Le progiciel est chargé, par lebiais d’un programme de chargementdit bootloader, dans la mémoire RAMde 8 K x 8 (8 192 octets). Ceci peut sefaire par le biais de l’interface USB.Autre option : le progiciel se trouvedans l’EEPROM sérielle, IC5, une24LC64 reliée aux lignes I2C SDA etSCL du TUSB3210, d’où il est lu lors dechaque démarrage et recopié dans lamémoire RAM. L’approche USBrequiert, sur le PC, un pilote servant àenvoyer le progiciel vers le TUSB3210.Dès que la totalité du progiciel, en pro-venance soit de l’EEPROM soit du PC,est recopiée en RAM, le bootloaderdéconnecte le programmateur de l’in-terface USB. Le programme en RAMest lancé et réinitialise l’appareil auniveau de l’USB.

Tensions de programmationIC1 pilote l’ensemble de lignes de pro-grammation et de tension par le biaisde 32 broches disponibles. L’obtention

des différentes tensions de program-mation requises par les différentstypes de microcontrôleurs se fait à par-tir de l’alimentation 5 V, tensionrehaussée à quelque 13 V par le biaisd’un régulateur-rehausseur. La tensionde sortie du régulateur est normale-ment de 12 V, la diode prise dans laligne de contre-réaction de IC3 larehaussant de la valeur de la tensiondirecte de la diode, de manière à per-mettre aussi la programmation desmicrocontrôleurs PIC.

Des FET à canal-p et canal-n commu-tent les tensions de programmation enfonction des besoins. Il est possibleainsi, de paramétrer sur les broches 1et 31 du support de programmationune tension de 0, 5 ou 12 V. Ondispose, sur le bornier ISP K3, utilisépour la programmation des PIC, 13 Vsur la ligne MCLR. Les diodes D5 et D7servent à rabaisser ces 13 V à 12 V, vuque c’est là la tension de programma-tion (plus faible) requise par les contrô-leurs d’Atmel.

La commande des FET se fait par lebiais de portes TTL à sorties en collec-teur ouvert (74LS07). Ce n’est qu’ainsiqu’il est possible de paramétrer unetension de 0 V entre la grille et lasource, niveau garantissant un blocagedes transistors. Le petit 3,3 V de laligne de port se serait traduit par 10 Venviron, de sorte que le transistoraurait été passant en permanence.Certains contrôleurs requièrent unniveau de tension plus élevé sur lesentrées Reset (initialisation) et XTAL(quartz). Ainsi, un 90S1200 requiert àl’entrée Reset une tension minimale de0,85 ⋅ VCC = 4,25 V (pour une alimen-tation sous 5 V). L’alimentation duTUSB3210 se faisant sous 3,3 V seule-ment, le niveau haut maximal possé-dant partant la même valeur de 3,3 V,les autres portes de IC4 assurent unniveau haut supérieur à 4 V.

6/2004 - elektor 11

Page 5: Generic Array Logic - Doctsf.com

Support de programmationLa plupart des composants peuventêtre programmés directement parimplantation dans le support IC5. Lequartz X2 constitue la source de signald’horloge pour les contrôleurs 89Cxx et89Sxx d’Atmel. De part le nombrelimité de ses E/S, le TUSB3210 ne peutprogrammer qu’un nombre limité decontrôleurs. D’autres microcontrôleurs(plus « étoffés ») se laissent cependantprogrammer par le biais des lignes ISP.Un examen critique montre que la bro-che 10 ne constitue pas une vraiemasse pour, par exemple, l’alimenta-tion d’un 89Cx051. Comme, en coursde programmation, le courant de ser-vice n’est pas très élevé, on peut secontenter du potentiel de masse mis àdisposition par la ligne P3.6 de IC1.Bien qu’il soit légèrement rehaussé, ilreste dans les limites sûres.

Logiciel du PCLe programme tournant sur le PC a étéécrit en Delphi 7. Il est possible, dansle Setup (figure 2), de choisir la languede travail (anglais, allemand, français).Ce paramètre mémorisé dans le Regis-try est chargé automatiquement lorsd’un nouveau démarrage du pro-gramme. Le menu Setup offre d’autresoptions de paramétrage, lecture ou nonde (ou des) l’octet de signature, com-paraison ou non après programmation(verify after write).Le choix du composant se fait dans lemenu Device (figure 3). Il existe2 options : Socket (support de pro-grammation IC5) et ISP Connector (parle biais des embases K2 et K3). Pour lemoment, seule est disponible l’optionSocket. Il existe le choix entre AtmelMCU et EEPROM sérielle. L’optionAtmel MCU offre 3 séries de contrô-leurs 89Cx051, 89C5x, 89Sx auxquelless’ajoutent les 2 AVR 90S1200/90S2313.

Toutes les fonctions telles que bit deverrouillage (Lock bit 1/2) et program-mation du fusible (Fuse bit) sont bienentendu supportées.À noter cependant qu’avec les contrô-leurs 89C5x, la programmation des bitsde verrouillage est limitée aux 2 pre-miers bits (Lock bit 1 et 2) vu que leslignes de port du TUSB3210 ne sontpas en nombre suffisant pour permet-tre la programmation du bit de ver-rouillage 3. En cas de choix des90S1200/90S2313 il est proposé, lors dela configuration du second bit de fusi-ble, 2 possibilités (RCEN et FSTRT-Fusebit). Après détection du contrôleur, letexte change, affichant le fuse bit sup-porté par le contrôleur identifié.Lors du choix d’une mémoire EEPROMsérielle on retrouve plusieurs fois lemême final. 24AAxx et 24CxxC se diffé-rencient par la taille de la page, c’est-à-dire le nombre d’octets programmablesen une seule opération (2 ms environ).

elektor - 6/200412

K11

2

4 3

USB-B

IC6

10

11

12

13

14

15

16

17

18

19

20 21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

401

2

3

4

5

6

7

8

9

Support FIN

X2

12MHz

C11

33p

C12

33p

+5V

R11

k5

R3

18

0k

R8

10

0k

R24

70

Ω

R6

18

0k

R7

10

0k

D1

ACTIVE

C3

100n

C2

33p

C1

33p

C4

100n

C10

100n

X1

12MHz

P00

P01

P02

P03

P04

P05

P06

P07

P10

P11

P12

P13

P14

P15

P16

P17

P20

P21

P22

P23

P24

P25

P26

P27

P30

P31

P32

P33

P34

P35

P36

P36

P21

P22

P23

P25

P26

P27

P10

P11

P12

P13

P14

P15

P16

P17

P30

P31

P32

P33

P34

P35

P02

P03

P04

+5V

C7

47µ 16V

C9

47µ 25V

L1

18µH

C8

1n

D2

OA5

D3

1N4148

+13V

MAX734

IC3

SHDN

UOUT

VREF

LXSS

CC

18

5

7

63

2 4

LP2950CZ-3.3IC2

C5

100n

C6

10µ10V

+5VIC4.F

13 121

R12

10

k

IC4.E11 10

1

R13

10

k

+5V

IC4.C5 6

1

IC4.D9 8

1

T3

BS170

T1

BS250

T2

BS250

R9

10k

R10

10k

D4

BAT43

D5

1N4148

+13V+5V

IC4.A1 2

1

IC4.B3 4

1

T6

BS170

T5

BS250

T4

BS250

R4

10k

R5

10k

D6

BAT43

D7

1N4148

+13V+5V

T7

BS170

T8

BS250

R11

10k

T9

BS170

+5V

P01

P24

P00

P20

P05

P06

P07

PIN9

PIN5

MCLR

PIN1

PIN31

PIN40

PIN

40

PIN

31PIN

1

PIN

5

PIN

9

K2

K3

PIN9

P24

PIN1

PIN31

+5V

+5V

MCLR

P24

PIN31

IC4

14

7

C13

100n

+5V

RST

SCK

MISO

MOSI

+5V

GND

MCLR

DATA

CLK

+5V

GND

ISP(Atmel)

ISP(Microchip)

IC4 = 7407

020336 - 11

+VCC

+VCC

P37

24LC64

IC5SDA

SCL

A0

A1

A2

WC

1 5

8

4

62

3

7

R14

2k

2

R15

2k

2

P3.0/S0/RX

P3.1/S1/TX

TUSB3210

SELF/BUS

VDDOUT

TEST0

TEST1

TEST2

IC1

P0.0

P0.1

P0.2

P0.3

P0.4

P0.5

P0.6

P0.7

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

P2.0

P2.1

P2.2

P2.3

P2.4

P2.5

P2.6

P2.7

P3.2

P3.3

P3.4

P3.5

P3.6

P3.7

VREN

SUSP

PUR

RST

RSV

RSV

SDA

SCL

10

X2X1

62

4317

6061

39

24

21

44

45

46

47

48

49

50

22

23

25

26

27

28

29

30

58

57

56

55

54

53

52

51

5942

31

32

33

34

35

36

40

41

S 3

D+18

D–19

14

15

20

13

37

38

16

NC

NC

NC

S 2

NC

11

12

NC63

NC64

5

9

1

2

3

4

6

8

7

+5V P37

Figure 1. Grâce au TUSB3210 doté de I2C et d’USB, le matériel se limite à un convertisseur de niveau et à quelques FETMOS.

Page 6: Generic Array Logic - Doctsf.com

Plus la taille de page est importante,plus la programmation est rapide.On peut commander toutes les fonc-tions de programmation telles que pro-grammation (Écrire), comparaison(Vérifier), effacement (Effacer), lecture(Lire), programmation (Écrire)EEPROM, lecture (Lire) EEPROM, lec-ture bits fusible/verrouillage (Lirefuse bit) et identification composant(Détecter Device) directement par desboutons soit par le menu déroulant(figure 4). Si l’on procède au choix d’uncontrôleur par auto-identification onpourra le vérifier par la fonction Détec-ter Device. On a alors lecture et traite-ment des octets de signature du com-posant et des données telles que taillede la mémoire, tension de programma-tion voire dénomination exacte en hautà droite sous Device.En cas de choix d’une opération, on alecture automatique des octets designature du contrôleur avant exécu-tion de l’opération en question. Il estpossible de sauter ce test en n’activantpas la fonction Lire octet de signature.Ceci peut être nécessaire lorsqu’il estdevenu impossible, suite à un pro-blème du microcontrôleur, de lire l’oc-tet de signature.L’action Lire se traduit par une lecturede la totalité de la mémoire du compo-sant, le nombre d’octets à lire étantdérivé de l’information des octets designature ou de la fin dans le cas desEEPROM sérielles. En l’absence de lec-ture de l’octet de signature de contrô-leurs, le système utilise la taille demémoire maximale de la série dont faitpartie le composant, ainsi 4 Koctetspar exemple pour un 89Cx051 vu quele contrôleur le plus « musclé » de lasérie, le 89C4051, possède unemémoire de 4 096 octets.Sous le point de menu Édition on peutparamétrer la possibilité de modifier letampon par le biais de l’éditeur hexa-décimal (Éditer Tampon). On peut enoutre décider, par l’option (Actualiser

tampon <- fichier) s’il faut réactualiserle fichier ouvert auparavant avantchaque lancement d’une opération d’é-criture ou de vérification.

Le protocoleIl faut bien entendu que l’échange dedonnées entre le PC et le programma-

teur soit synchronisé. Ceci impliquel’utilisation d’un protocole. Le premieroctet envoyé par le PC vers le program-mateur comporte l’information de typede contrôleur ou de mémoire : lavaleur 1 identifie le groupe 89C051, le2 les groupes 89C5x et 89Sx. Le secondoctet identifie l’action choisie : 1 = lec-ture des octets de signature, 2 = effa-

6/2004 - elektor 13

Figure 2. Menu Setup.

Figure 3. Choix du type de composant.

Page 7: Generic Array Logic - Doctsf.com

cer, etc. Les octets suivants contien-nent des informations additionnelles,la tension de programmation du 89C5xpar exemple, ou encore la taille depage d’une EEPROM sérielle. Pour laprogrammation, un des octets sert àindiquer le nombre d’octets à envoyerpar paquet. Un autre octet indique si lepaquet envoyé était le dernier (octet à« 0 ») ou s’il est suivi par d’autres (octetà « 1 »).Lors d’une lecture, le programmateurest informé du nombre d’octets à lire,taille souvent indiquée en Koctets ouKbits. Les premiers octets permettentau programmateur de « comprendre »les données.Après une action du programmateur, lePC reçoit plusieurs octets en retour quilui permettent de savoir s’il lui faut

envoyer d’autres données de program-mation ou s’il peut passer à l’opérationsuivante.

Progiciel du programmateurC’est le compilateur C µVision2 de Keilqui a servi à la programmation du pro-giciel. On commence, dans la routineprincipale, par désactiver le chien degarde et, par la fonction ResetProgram-mer(), mettre à 0 V toutes les brochesdu support de programmation, tous lesregistres USB étant ensuite définis.En clôture du logiciel de bootloader,IC1 est déconnecté de l’interface USBpar déconnexion du 3,3 V de la résis-tance de forçage au niveau haut (pullup) R1 par le biais de la sortie PUR. Le

progiciel chargé doit positionner le bitSDW du registre MCNFG réactivantdu même coup cette sortie. Le pro-grammateur est à nouveau activé surle port USB.Pour identifier le périphérique USB eten vue de le configurer, le PC (hôte)envoie plusieurs éléments (ou jetons =token) de paramétrage qui sont traitésà la position Endpoint 0. On a alors,par exemple, transmission de l’adresseunique du périphérique par le biais delaquelle se fera l’adressage du pro-grammateur. De plus, il est demandé,en cours de phase de paramétrage,des descripteurs qui donne à l’hôte desinformations concernant l’appareil, sesfonctions et caractéristiques, dont le(report) descripteur qui identifie le pro-grammateur comme étant un périphé-rique compatible HID.Une fois tous les descripteurs envoyésau PC, l’appareil est initialisé sur le busUSB et prêt à fonctionner. On peutmaintenant passer à l’échange des don-nées entre le programmateur et le PC.Le sens des données est indiqué pardes « jetons ». Si le TUSB3210 détecteun jeton « IN », les données requisessont transmises du programmateur versl’hôte, des informations d’état parexemple, mais aussi des paquets dedonnées. À l’arrivée d’un jeton « OUT »on a décodage d’un paquet de données

elektor - 6/200414

Figure 4. Sous Détecter Device on voit s’afficher en haut à droite les octets designature et d’autres données.

HIDL’intérêt d’une initialisation entant que périphérique compati-ble HID est qu’il n’est pas néces-saire à un pilote Windows spé-cial d’échanger des donnéesentre le programmateur et lePC. Windows reconnaît ce stan-dard à partir de sa version98SE.

Le transfert de données avec unHID se fait par des rapports

(reports). Lors de l’énumérationdes périphériques (devices)branchés au port USB le PC(hôte) requiert quelques descrip-teurs. Le descripteur Device com-porte des informations concer-nant l’identité du vendeur(Vendor-ID) et du produit (PID),voire la version USB du périphé-rique connecté. Le descripteur deconfiguration comporte desinformations de consommationde courant du matériel et dunombre de Endpoints disponi-

bles. Le descripteur de rapportdécrit la taille et le nombre derapports échangés entre le PC etle programmateur. On y définitle nombre d’octets à envoyer età recevoir, de même que lafonction du périphérique connec-té (souris, clavier, manette dejeu, Memory Stick...). Pour plusd’informations concernant USBet HID, un petit tour àl’adresse : www.usb.org/homes’impose.

Page 8: Generic Array Logic - Doctsf.com

envoyé au programmateur en vue de laprogrammation d’un composant (si tantest que l’on ait choisi alors l’opération« Programmation »).

Routines de programmationEn vue de réaliser la synchronisation,les données entrantes sont décodéespar la routine DecodeProgrammer-Data() dans le fichier Prog.c. Le pre-mier octet du rapport qui en com-porte 64, comporte l’information iden-tifiant le contrôleur choisi, le seconddonne l’action à effectuer. Pour cela,il est fait appel à différents algorith-mes de programmation en respectdes fiches de caractéristiques des dif-férents contrôleurs.Chaque groupe de composants com-porte une routine d’activation quiapplique les tensions requises aux bro-ches correctes et forcent les lignes deprogrammation utilisées aux niveauxdéfinis. Une fois une opération termi-née avec succès, on appelle la routinede réinitialisation du programmateurqui remet à 0 V toutes les lignes dusupport de programmation. Comme,lors d’une programmation, on a la plu-part du temps besoin de plus de64 octets, le PC doit envoyer de nou-veaux paquets de données au pro-grammateur dès que les données encours ont été traitées. Celui-ci envoieun caractère défini au programme duPC pour lui indiquer qu’il peut envoyerle paquet suivant.Le PC prépare le paquet suivant etl’envoie au périphérique. Le dernierpaquet adressé au programmateurcomporte un octet de valeur « 0 ».Lors de la lecture d’un composant lesdonnées sont en un rapport de64 octets. Le premier octet y indiquele nombre d’octets valides que com-porte le paquet.Pour de plus amples informations surle programme nous vous recomman-

dons d’examiner le programme mis àvotre disposition sur notre site(www.elektor.fr).

Réalisation et mode d’emploiNous pourrions qualifier la réalisationde cette platine de jeu d’enfant s’il n’yavait pas cet épouvantable TUSB3210« multi-pattes » en boîtier S-PFP-G64.Le soudage de ce type de composantsrequiert et une main ferme et des nerfsà toute épreuve. Après fixation du cir-cuit (à l’aide d’une goutte de colle)nous allons faire exactement ce qu’il nefaut jamais faire : non seulement sou-

der les pattes à leurs îlots, mais aussientre elles, et cela le plus vite possiblepour éviter que le composant nechauffe trop. Après cette mise en court-circuit impériale et après laissé letemps au circuit de refroidir, nousallons éliminer cet excédent de soudure(les ponts de court-circuit) à l’aide detresse à dessouder que l’on place per-pendiculairement aux broches (ne pasutiliser de pompe à dessouder !). L’im-portant est de faire attention à ce quele circuit intégré ne chauffe pas trop. Ilreste à vérifier à l’aide d’une loupe etd’un multimètre que les pattes sontbien soudées et qu’elles ne sont pas encourt-circuit avec leurs voisines.

6/2004 - elektor 15

Figure 5. Sérigraphie de la platine double face.

Figure 6. Miniature et épouvantable (à souder) : le contrôleur USB en boîtier SPFP à64 pattes.

C1C2

C3

C4

C5

C6

C7

C8

C9

C10

C11

C12

C13

D1

D2 D

3

D4

D5

D6

D7

HOEK1

HO

EK

2

HOEK3

HO

EK

4

IC1

IC2

IC3

IC4

IC5

IC6

K1

K2

K3

L1

R1

R2

R3

R4

R5

R6

R7R8

R9 R10

R11

R12

R13

R14

R15

T1

T2

T3

T4T5

T6

T7T8 T9

X1

X2

020336-1

Page 9: Generic Array Logic - Doctsf.com

Une fois que vous avez soudé leTUSB3210 correctement sur la platine,nous pouvons vous qualifier d’expertet ne perdrons pas de temps à décrirele reste de cette étape. Tous les circuitsintégrés, hormis le petit régulateur,seront mis sur support. Le support FIN(à Force d’Insertion Nulle) ne sera passoudé directement sur la platine maisglissé dans des barrettes support.Après inspection et vérification de sontravail, il sera temps d’effectuer un pre-mier essai. Il n’est pas besoin, en casde présence d’une EEPROM program-mée, de pilote pour Windows. Lors dela connexion du programmateur auport USB on devrait le voir apparaîtredans le gestionnaire comme un péri-phérique compatible HID. Vous pouvezmaintenant effectuer votre premièreprogrammation.

En l’absence d’EEPROM sérielle, il fau-dra transférer le progiciel par la liaisonUSB. Le bootloader du TUSB3210 semanifeste et Windows reconnaît le

nouveau périphérique requérant unpilote de Texas Instruments. Ce pilotene se trouve ni sur la disquette ni surnotre site mais il est téléchargeablegratuitement depuis le site de TexasInstruments (www.ti.com). On choisirale répertoire comportant le fichierTUSB3210.inf, installe le pilote puis lefichier ApLoader.sys du même réper-toire. Il reste à entrer, lorsque le sys-tème le demande, le répertoire du pro-giciel. Il suffira de donner le chemine-ment du fichier TUSB3210.bin.

Celui-ci est alors, avec le fichier Aploa-der.sys, copié automatiquement dansle répertoire /System32/drivers. Lorsd’une nouvelle connexion du program-mateur, le pilote envoie le progiciel dufichier /System32/drivers/TUSB3210.binvers le programmateur de façon à ceque ce dernier puisse traiter très rapi-dement le progiciel. D’Artagnan appa-raît maintenant en tant que périphé-rique HID dans la liste USB.

(020336-1)

Liste descomposantsRésistances :R1 = 1kΩ5R2 = 470 ΩR3,R6 = 180 kΩR4,R5,R9 à R13 = 10 kΩR7,R8 = 100 kΩR14,R15 = 2kΩ2

Condensateurs :C1,C2,C12,C13 = 33 pFC3 à C5,C10,C13 = 100 nFC6 = 10 µF/16 V radialC7,C9 = 47 µF/16 V radialC8 = 1 nF

Semi-conducteurs :D1 = LED rougeD2 = OA5 ou 1N5817 (Farnell 573-097)D3,D5,D7 = 1N4148D4,D6 = BAT43IC1 = TUSB3210PMIC2 = LP2950CZ-3.3 ou LE33CZ (Farnell

302-4568)IC3 = MAX734CPIC4 = 74LS04IC5 = 24LC64IC6 = support FIN à 40 broches (à fentes

larges)T1,T2,T4,T5,T8 = BS250T3,T6,T7,T9 = BS170

Divers :K1 = embase USB en équerre encartableK2 = embase à 1 rangée de 6 contactsK3 = embase à 1 rangée de 5 contactsL1 = self 18 µHX1,X2 = quartz 12 MHzPlatine 020336-1Disquette 020336-11 (Logiciel PC-+

Progiciel avec codes-source)

Le dessin de la platine et le logiciel sontégalement disponibles autéléchargement depuis le sitewww.elektor.fr, le dessin des pistes étantégalement proposé dans les pagesLAYOUT-EXTRA

elektor - 6/200416

Composants supportés actuellementIl est facile de réactualiser le progicieldu programmateur. Il suffit, lorsquecela est devenu nécessaire, de réécri-re le nouveau progiciel dansl’EEPROM et de remplacer le pro-gramme sur le PC.

Actuellement, le progiciel permet laprogrammation des contrôleurs etEEPROM énumérées ci-dessous. Trèsbientôt, nous pensons avoir une mise

à jour pour les contrôleurs PIC etATmega qui sera, comme les mises àjour ultérieures (programme pour lePC inclus) disponibles gratuitement surle site d’Elektor sous la dénomination020336-11.

Contrôleurs Atmel :

89C1051, 89C2051, 89C4051,

90S1200, 90S2313, 89C51, 89C52,89C55, 89LV51, 89LV52, 89LV55,89S53, 89S8252

EEPROM :

24xx00, 24xx01, 24xx02, 24xx04,24xx08, 24xx16, 24xx32, 24xx64,24xx128, 24xx256, 24xx512

Page 10: Generic Array Logic - Doctsf.com

Harry Baggen

L’amplificateur final constitue la source de puissance detoute installation audio. Il doit transformer, avec le moinsde distorsion possible, une toute petite tensionalternative en un fort signal pour attaquer les haut-parleurs. Au fil du temps, les concepteurs ont imaginédifférentes techniques pour y parvenir. Mais toutcommence par la classe A.

Amplificateurs audio de A à T

LA CLASSE…

Page 11: Generic Array Logic - Doctsf.com

Pas facile de délivrer beaucoup de puissance, quand on est unamplificateur ! Il faut un gain en tension et un gain en courantpour transférer une puissance suffisante vers les haut-parleurs.Les enceintes ne restituent sous forme sonore que quelquescentièmes de la puissance reçue, il faut donc pas mal de wattspour atteindre, dans une pièce d’habitation, un niveau d’é-coute acceptable. En concert ou lors des manifestations enplein air, il en faut encore bien davantage, on parle alors demilliers de watts.Dans les dernières décennies, on a développé divers conceptspour produire, à l’aide de transistors ou de FET, un signal dehaute qualité tout en améliorant le rendement de l’étage desortie. Nous ne parlons pas ici d’amplificateurs à tubes.Lors de l’étude d’un étage de sortie, le concepteur doit tenircompte des caractéristiques particulières des semi-conducteurs

utilisés. Si nous pouvions travailler avec des transistorsparfaits, qu’ils soient bipolaires ou à effet de

champ, construire un bon amplifica-teur serait bien plus facile.

Mais malheureuse-ment, les

semi-

conducteurs souffrent tous de non linéarité en amplification dusignal, ce qui cause de grosses difficultés lorsqu’on opère sursignaux analogiques. Mais une rétroaction précise nous permet-tra d’amenuiser ces inconvénients. D’autre part, des phénomè-nes désagréables se produisent parfois, selon la configurationchoisie, comme la fameuse distorsion de croisement.En outre, sur un gros amplificateur, il faut aussi envisagersérieusement la production de chaleur qui risque d’occasionnerde graves dérives thermiques, comme le déplacement du pointde fonctionnement et la distorsion par modulation thermique.On a coutume de répartir les amplificateurs de sortie en diffé-rentes classes selon la structure de l’étage final. Elle déter-mine pour une bonne part l’efficacité et la qualité, parce quec’est là que se déroule vraiment l’amplification en puissance.Chaque organisation d’amplification se désigne par une lettrede l’alphabet qui n’a aucune relation avec la méthode de fonc-tionnement. On a démarré, en ce temps-là, par la lettre A…

Classe ANous commençons donc avec la plus simple, mais aussi unedes meilleures configurations pour une reproduction de qua-

lité, l’étage final en classe A. Dans sa version de base,nous pourrions y mettre en œuvre un simple

émetteur suiveur (figure 1). Le courant de repos du

transistor estégal

19

Beaucoup de raffut à peu de wattsPour beaucoup de gens, choisir les caractéristiques d’un amplificateur consiste avant tout à détermi-ner la puissance voulue (votre ampli fait 2 x 40 W ? Le mien en sort 2 x 70 !). Elle joue un rôle, c’estcertain, mais moindre que ce que l’on pense souvent.

Vous pourriez faire un grand vacarme avec quelques watts, il suffit d’utiliser des enceintes acous-tiques qui délivrent 86 dB pour 1 W (c’est une caractéristique communément indiquée dans les spéci-fications du fabricant). Avec 2,5 W, elles vous fourniront déjà 90 dB. Pour atteindre 100 dB, 25 Wsuffiront. C’est déjà singulièrement violent et dommageable pour nos oreilles.

Augmenter le niveau acoustique de 6 dB nous apparaît comme un doublement du son, mais pourl’obtenir, il faut quadrupler la puissance. Donc si vous voulez acheter un amplificateur final sensible-ment plus puissant que le vôtre actuellement, il vous faudra en choisir un dont la puissance est aumoins quatre fois supérieure.

Page 12: Generic Array Logic - Doctsf.com

au maximum du courant alternatif de sortie, le transistor sesitue alors au milieu de sa plage de fonctionnement et secontente de conduire plus ou moins selon la tension alterna-tive appliquée. Son rendement est bas, 25 % au maximum,lorsque le signal est maximum, encore moins dans les autrescas. Dans un montage symétrique à deux transistors, le rende-ment s’améliore, mais il ne dépassera jamais les 50 %.

Classe BLa configuration en classe B fait appel à deux transistors quiconduisent exactement pendant la moitié de la période. Aurepos, aucun courant ne circule dans les transistors. Le rende-ment d’un étage final polarisé en classe s’élève à environ 78 %,mais son principal inconvénient réside dans la distorsion detransition qui survient au moment où la conduction doit passerd’un transistor à l’autre. La cassure nette au pied de la courbecaractéristique empêche les deux alternances du signal de seraccorder exactement, il s’ensuit de la distorsion de croisementbien connue, une altération très audible de la forme du signal.Pour résoudre ce problème, on a combiné les classes A et Bpour donner la classe AB. Il s’agit d’une classe B danslaquelle un petit courant circule au repos, ce qui fait qu’enrégime de petits signaux, l’étage final travaille en classe A. Laplupart des amplificateurs de puissance actuels utilisentencore cette méthode, avec de nombreuses variantes. Le ren-dement reste voisin de celui de la classe B.

G et HHé là ! On a sauté des classes ! Oui, mais c’est à dessein. Lesclasses C, E et F existent aussi, mais ne conviennent guèreque pour des applications à haute fréquence, elles sortentquelque peu du cadre de l’audio. Et le concept de la classe Ds’écarte tellement de A et B que nous le traiterons séparémentplus loin. Intéressons-nous d’abord aux classes G et H qui ontun point commun important. Sur les deux, la tension d’ali-mentation s’adapte à l’amplitude du signal de commande. Enclasse G (figure 3), la tension d’alimentation se règle conti-nuellement sur la grandeur du signal de sortie désiré. Depuisl’avènement des alimentations modernes à découpage, il estassez simple de forcer la sortie à calquer une tension d’entraî-nement, à condition évidemment d’aménager la régulationpour que l’alimentation réagisse suffisamment vite au signalde commande de l’étage final.En classe H (figure 4), c’est le même processus qui est uti-lisé, sauf qu’ici l’alimentation ne varie pas en permanence,mais on commute entre différentes tensions, souvent deux. Decette façon, il est possible de réduire considérablement la dis-sipation à forte puissance dans l’étage de sortie.

Classe DLe « D » n’a rien à voir avec « digital », c’est pure coïnci-dence. Pourtant, l’amplificateur, dans cette technologie, vacommuter au rythme d’une modulation en largeur d’impul-sion (figure 5). Un comparateur évalue l’écart entre le signald’entrée et une onde triangulaire, en fonction de quoi il com-mute l’étage final entre le positif et le négatif de la tensiond’alimentation. La fréquence de récurrence est très élevée,souvent 10 fois, voire davantage, que la largeur de bande,donc à 200 kHz ou plus.

elektor - 6/200420

RL

+UB

+UB

0

040102 - 11

RL

+UB

-UB

+UB

-UB

040102 - 12

+UB

-UB

RL

+UB var

-UB var 040102 - 13

détectiondu signal

alimentationsuiveuse

RL

040102 - 14

électroniquede

commande

UB2

UB1

UB1

UB2

Figure 1. Sur unétage final en

classe A, lerendement est fortbas, mais il n’y a

pratiquementaucune distorsion

de croisement.

Figure 2. Sur unmontage en

classe B, chaquetransistor conduit

pendant une demi-période de la

sinusoïde. L’ennui sesitue autour du

passage par zéro.

Figure 3. Laclasse G fait appelà une alimentation

glissante dont latension se règle en

permanence surl’amplitude du

signal.

Figure 4. Laclasse H se contentede commuter entreplusieurs tensions

d’alimentation,deux dans ce cas-ci.

Page 13: Generic Array Logic - Doctsf.com

La largeur des impulsions varie ainsi en relation avec le signald’entrée. Si nous intercalons un filtre passe-bas derrière l’é-tage de sortie, il intégrera les impulsions du signal et donneraun signal analogique conforme à celui d’entrée, mais forte-ment amplifié.Comme le seul travail de l’étage final se résume à une com-mutation, le rendement est très élevé. Mais cette méthodepèche par certains défauts. Il n’est pas simple de préserver detoute distorsion la forme du signal, il faut absolument unsolide filtre de sortie et des mesures drastiques pour assourdirles signaux parasites. Obtenir un faible taux de distorsionexige dans tous les cas l’emploi d’une rétroaction, analogiqueou numérique.

Les classes S et TBien que le principe de l’amplificateur en classe D totalisedéjà quelques décennies d’ancienneté, il ne s’est jamais vrai-ment imposé en Hi-Fi. En cause surtout, le manque de bonssemi-conducteurs (FET de puissance rapides) et l’excès dedistorsion. Entre-temps, plusieurs constructeurs y sont allésde leurs variations sur le thème, tout en les accompagnant deleurs propres dénominations. Ainsi Crown a imaginé laclasse I, Sony a développé sa technologie S-master et Tripatha conçu ses amplificateurs de classe T. Et le bel ordre alpha-bétique s’est évanoui dans les abréviations choisies par lesfabricants.Dans la technique S-master, Sony a combiné plusieurs métho-des pour rendre la classe D apte à figurer dans la chaîne Hi-Fide salon. La conversion en un train d’impulsions dont la lar-geur reflète la forme du signal incident s’appelle ici C-PLM,modulation de largeur d’impulsion complémentaire. Elleaccorde un maximum d’attention à l’affaiblissement de l’ins-tabilité temporelle, par l’emploi d’un signal d’horloge extrê-mement précis et d’un circuit (clean data cycle) qui corrige, sinécessaire, la position des impulsions de sortie (cf. figure 6).Une particularité de l’approche Sony, c’est certainement leréglage de volume. En classe D normale, on retrouve la tota-lité de l’onde carrée en sortie sous une amplitude de 50 à100 V (pic à pic). Mais en signaux faibles, il devient très diffi-cile d’éliminer par filtrage les résidus d’impulsions. Dans lesystème Sony, le volume se règle par adaptation de la tensiond’alimentation de l’étage final, la variation peut atteindre50 dB. De cette façon, il n’y a aucune perte d’information àcraindre à bas niveau.La firme Tripath a développé une technologie qui, selon sesdires, combine la qualité des classes A et AB tout en affichantun haut rendement de 80 à 90 %. Elle associe des circuits

analogiques et numériques ainsi que des algorithmes numé-riques pour moduler le signal incident par des salves modéli-sées à haute fréquence. Les algorithmes que Tripath a façon-nés dérivent de ceux déjà utilisés en télécommunication,adaptatifs et prédictifs.Sur l’amplificateur Tripath, la majeure partie de l’électro-nique numérique et analogique est embarquée dans une seulepuce, entourée ou non de transistors de sortie, selon la puis-sance demandée. La figure 7 en reproduit le bloc-diagramme.Le signal incident est d’abord tamponné par l’étage d’entrée.Il est ensuite appliqué au bloc Digital Power Processing quicontient le processeur de signal adaptatif, un convertisseurnumérique, le circuit de silencieux, la protection contre lessurcharges et la détection d’erreur. L’étage final de puissanceest commandé par la logique de qualification et le haut-par-leur y est connecté à travers un filtre de sortie.Grâce à ses algorithmes spéciaux, le processeur de l’amplifi-cateur en classe T est en mesure de tenir compte des caracté-ristiques spécifiques des transistors de puissance employés :les imperfections de commutation, le défaut de symétrie destransistors complémentaires de sortie, la déformation due auxtemps morts et les résidus de commutation dans la bandeaudio.La fréquence de commutation en classe T s’adapte sans arrêtà la grandeur du signal d’entrée. Aux faibles niveaux, elle estrelativement élevée, de l’ordre de 1,2 MHz. C’est tout profitpour la qualité du signal. Lorsque le niveau d’entrée s’élève,la fréquence baisse pour améliorer le rendement. À pleinepuissance, la commutation s’opère aux alentours de 200 kHz.Il y a aussi une sorte de réduction de bruit sur les sommets du

6/2004 - elektor 21

+UB

-UB

040102 - 15

RL

générateurde signal endents de scie

comparateurinverseur

sampling cyclerecovery

Clean Data Cycle

High SamplingRate

Conversion

master clockgeneration

S-TACT

High PrecisionAudio PulseGeneration

Pulse HeightControl

Pulse Height Volume

audio pulseoutput

numericaldatainput

High Power PulseDriver

data to PLMconversion

Figure 5. Laclasse D estconstituée d’unmodulateur enlargeur d’impulsionà sortie depuissance et d’unfiltre passe-bas.

Figure 6. Bloc-diagramme d’unamplificateur SonyS-master.

Page 14: Generic Array Logic - Doctsf.com

signal de sortie pour en améliorer la forme. Toutes ces dispo-sitions concourent à donner à l’audiophile la sensation queson amplificateur en classe T reproduit le son comme lesmodèles analogiques.

L’avenirLes progrès de l’audionumérique amèneront finalement lesvariantes numériques des amplificateurs de puissance à

concurrencer les autres dans le domaine de la grande consom-mation. Les raisons en sont le meilleur rendement, la compa-cité et le prix inférieur. Vous dire s’ils perceront égalementdans le haut de gamme serait prématuré. Pour l’instant, lesamplificateurs numériques de qualité sont encore rares sur lemarché. Mais peut-être voudrez-vous en juger par vous-mêmeen construisant l’amplificateur Clarity proposé dans cenuméro ?

(040102)

elektor - 6/200422

Adaptive Signal ConditioningProcessor

PredictiveProcessing

MuteControl

InputAmp

PowerOutput

&Qualification

Logic

FaultDetection

OverloadDetection

VoltageGeneration

DigitalConversion

040102 - 17

Figure 7. ChezTripath, la classe Test une ingénieuse

variante de laclasse D dans

laquelle unprocesseur surveille

en permanence lesignal d’entrée et

corrige les écarts decommutation.

Publicité

Page 15: Generic Array Logic - Doctsf.com

ClariTy 2x300WTon Giesberts

Cet amplifica-teur de pointe

prouve quegrande puis-

sance ne rimepas forcément

avec encombre-ment et poids

lourd. Haut rende-ment, donc

compacité etcependant desspécifications

qui surpassentsans peinenombre de

modèlesconventionnels.

Page 16: Generic Array Logic - Doctsf.com

N’allez pas imaginer non plus que l’am-plificateur construit sera léger commela plume au vent, nuançons quelquepeu. Deux fois 300 W de puissanceréelle, il faut les lui fournir et l’alimen-tation sera la seule partie comparableavec les autres amplificateurs. Mais parune modulation en largeur d’impulsionbien pensée, cet amplificateur a un ren-dement tel que le radiateur, et donc leboîtier aussi, gardera des dimensionsréduites. En outre, il ne s’agit pas sim-plement d’un amplificateur à « largeurd’impulsion », il est bâti sur le piloteaudionumérique TA3020 en classe T deTripath, qui offre d’excellentes caracté-ristiques et peut rivaliser avec desamplificateurs de haut de gamme. Sivous désirez en savoir plus sur lesétages audio de puissance, allez doncjeter un œil à l’article « La classe… »dans cette même édition.Le projet se base dans une largemesure sur l’application standard etles références du fabricant. Sa géomé-trie détermine largement la qualitéd’ensemble. Mais il faut y ajouter, enraison de la nature du montage (hautefréquence de commutation et forts cou-rants), beaucoup d’attention dans lechoix de certains composants. Nousdevrons effectivement utiliser descondensateurs de découplage et desélectrolytiques spéciaux. Même pourassurer le couplage thermique destransistors de sortie, nous n’utiliseronspas une simple feuille de mica ou unfilm de polyamide (Kapton), mais bienun matériau céramique épais de plu-sieurs millimètres. La puce réclameencore deux tensions auxiliaires, pourlesquelles nous avons conçu une pla-tine séparée, avec un retard à l’enclen-chement du secteur pour le transfor-mateur principal et deux bons grosfusibles sur la première tension d’ali-

mentation. En plus, pour affaiblir lesparasites (compatibilité électromagné-tique oblige) nous avons ajouté des fil-tres aux entrées et sorties. Cela vousdonne déjà une idée de ce qui vousattend, mais cette première partie necouvrira que les fonctions essentiellesdu CI Tripath.Nous pouvons constater à la figure 1que le circuit intégré se compose detrois blocs par canal, un étage d’entréeanalogique (amplificateur inverseur), l’u-nité de traitement et de modulation etenfin les étages pilotes (adaptateurs deniveau) pour les MOSFET de puissanceexternes. Il y a aussi une protection encourant, contre les sous et surtensionsainsi qu’un silencieux qui, ensemble,déterminent si les sorties de l’amplifica-teur doivent être actives ou non.

L’étage d’entréeL’entrée analogique consiste en unamplificateur inverseur parce qu’il per-met plus commodément de définir legain et la largeur de bande. Il fautsavoir que le signal nécessaire à lacommande du modulateur ne peut pasdépasser 4 Vpp. Nous avons fait ensorte que, pour une sensibilité de1,13 Veff à plein débattement, il y ait3,2 Vpp derrière l’étage d’entrée. Lerapport entre R3 et R2 (R24 et R23 surl’autre canal) définit le gain de l’étaged’entrée, il vaut donc un, comme on levoit dans le schéma de la figure 2. C2(ou C15) améliore la stabilité de l’am-plificateur de tête et amoindrit lesparasites HF par limitation de la bandepassante à quelque 240 kHz. C1 (ouC14) détermine la coupure basse quise situe ici aux environs de 2,5 Hz. Ongarantit ainsi la meilleure rectitudepossible de la caractéristique de fré-quence dans tout le spectre audio. C1

et C14 sont des modèles MKT parceque nous essayons d’éviter par prin-cipe la présence d’électrolytiques surle trajet du signal.Les résistances de R4, R5 et P1 asso-ciées au condensateur de découplageC3 (R25, R26, P2 et C16) concourent àminimiser le décalage de polarisationen sortie de l’amplificateur.

Le modulateurLe modulateur remonte le signal de l’é-tage d’entrée jusqu’au niveau de sor-tie. Il opère donc la deuxième partie del’amplification globale ou plus exacte-ment constitue le véritable étage àgain. Le processeur confectionne unetrame d’impulsions en fonction duniveau de signal et de la fréquence. Enl’absence de signal, la fréquence decommutation moyenne avoisine les700 kHz et peut varier au maximumentre 200 kHz et 1,5 MHz. Deux pilotesà transistors MOSFET complémentai-res avec décalage de tension dépla-cent le signal jusqu’au niveau appro-prié pour polariser les grilles des MOS-FET de puissance. Ils sont alimentéspar VN10 sous 10 V, qui profite principa-lement du découplage offert par C39(ou C38). C’est pourquoi ces condensa-teurs se situent aussi près que possi-ble des broches correspondantes de lapuce. Côté négatif, LO1COM (la sourcede T2) et VN10 forment les raccorde-ments d’alimentation du pilote. Côtépositif, pendant que la tension de sortieest négative, le condensateur auto-élé-vateur C7 (C20) se charge via D5 (D12)jusqu’à une tension d’une dizaine devolts qui glisse en concordance avec lasortie lorsque T1 se met à conduire.Cette tension est appliquée à VBOOTqui, avec HO1COM (la source de T1 etaussi la sortie du pont), constituent les

6/2004 - elektor 25

en classe T

Page 17: Generic Array Logic - Doctsf.com

bornes de raccordement d’alimenta-tion du pilote. En régime d’écrêtage,C8 (C21) constitue un tampon supplé-mentaire parce qu’alors la fréquencede commutation est plus basse. Larésistance R13 (R34) limite le courantde charge de C8 au moment de la misesous tension de l’amplificateur.

Les MOSFETDans chaque canal, les deux MOSFETà canal N, T1 et T2 (T3/T4) forment lamoitié d’un pont. Les sorties des polari-seurs placent donc à tour de rôle lesMOSFET en conduction. On se réserveun temps mort (absence de chevauche-ment) de quoi s’assurer que deux trans-istors ne puissent être conducteurssimultanément, pour éviter le court-cir-cuit. Ce délai s’ajuste à l’aide de deuxcavaliers, JP1 et JP2. Il n’est pas recom-mandé d’exécuter le réglage par expé-rimentations successives, mais plutôtde s’en tenir au réglage standardconseillé ! Il n’y a que pour des MOS-FET d’une capacité de grille sensible-ment plus basse, et de plus faible puis-sance, que l’on peut éventuellementraccourcir le temps mort, mais pasdans cette application-ci. Les résistan-ces de grille R7 et R9 (R28/R30) déter-minent la vitesse de montée et dumême coup le dépassement qui sur-vient lors de la commutation. Elles limi-tent aussi, dans une certaine mesure,la puissance qui serait sinon perduedans les pilotes (il s’agit de résistancesde 1 W) à cause de la charge etdécharge de la capacité de grille dechaque MOSFET. Les diodes D1 et D2(D8/D9) permettent une décharge plusrapide des grilles, ce qui réduit letemps de descente et le risque d’uneconduction simultanée de T1 et T2.Nous avons ajouté R8 et R9 (R29/R31)par prudence, elles déchargent lesgrilles des MOSFET s’il n’y a pas de CIinstallé. Les ôter exposerait à desconséquences désastreuses dues aux

elektor - 6/200426

TA3020

HMUTE

OAOUT1

INV 1

26

25

15

V5

A GND

27

28

V5

34

A GND

A GND

V535

OAOUT2

INV 2

21

20

Proces s ing&

Modulation

V N10

1618

-+

V5

A GND

MUTE 24

V5

BIASCAP 19

32REF1

39V NN29 VPPSENSE

30 V NNSENSEV N10 1

2.5V

200KΩ

-+

11 NC

V5

A GND

A GND

V5

VPPSENS

V NNSENS

NC

2

5

3

4

7

6

10

8

9

Proces s ing&

Modulation

V N10

1314

48

45

47

46

42

41

40

43

44

38 NC

36 NC

V N

030217 - 12

N

1231

37OCR133

23BBM1

22BBM0

17DCOMP

V N10

FBKOUT1

FBKGND1

LO1

HO1

LO1COM

HO1COM

OCS1LP

OCS1LN

V BOOT1

OCS1HP

OCS1HN

OCR1

FBKOUT2FBKGND2

LO2

HO2

LO2COM

HO2COM

OCS2LP

OCS2LN

V BOOT2

OCS2HP

OCS2HN

OCR2OCR2

Figure 1. Les entrailles du TA3020 de Tripath.

Page 18: Generic Array Logic - Doctsf.com

résistances de fuite et aux tensionsparasites. R6 et R11 (R27/R32) sont desmodèles à basse inductance pour lasécurité en courant, nous allons y reve-nir. R12 et C4 (R33/C17) constituent unréseau d’amortissement qui se place leplus près possible de T2 (T4). Les dio-des D6 et D7 (D13/D14) sont branchéesentre source et drain des transistorspour réduire les dépassements de ten-sion causés principalement par labobine du filtre de sortie quand de fortscourants y circulent. Ces diodes-ci sontdes modèles CMS, elles se soudentégalement au plus près des brochesconcernées pour assurer la protectionde la puce. Les diodes D3 et D4(D10/D11) sont positionnées entredrains respectifs ainsi qu’entre sourcesdes MOSFET et contribuent encore àatténuer les dépassements de tension.Toutes ces diodes (D1 à D14) doiventprésenter un temps de recouvrementextrêmement faible. Les condensateursC5 et C6 (C18/C19) constituent ledécouplage du demi-pont, ils ont pourmission de réduire l’ondulation de latension d’alimentation, ce qui améliored’autant le fonctionnement des trans-istors et du circuit intégré. Encore unefois, il faut les installer au plus près desbornes des MOSFET. Le condensateurC6 doit être un électrolytique caracté-risé par une très basse RSE (résistancesérie équivalente) et d’excellentes pro-priétés en HF. Il ne faut pas choisir unautre type que celui proposé, à moinsque ses spécifications soient égales ousupérieures. Un condensateur électro-lytique ordinaire risque fort d’exploserou de n’avoir qu’une très courte vie. Lesignal modulé en largeur d’impulsionrejoint les bornes de sortie à travers lefiltre LC L1/C9 (L2/C22).

Le filtre de sortieDu fait que la fréquence des impul-sions est élevée, nous n’aurons besoinici que d’un filtre du 2e ordre avec un

pôle relativement élevé (fréquence derésonance de 101 kHz). Pour amortir lefacteur Q du filtre, ce qui est surtoutnécessaire en l’absence de charge,nous avons placé un réseau Zobel à lasortie, sinon les courants à la réso-nance et les ondulations qui s’y produi-sent risqueraient de compromettre lafiabilité de l’amplificateur. Comme lepôle du filtre se situe plus haut quedans la classe D conventionnelle, l’in-fluence du système de haut-parleursbranché est sensiblement moindre. Enraison des grands courants, une sim-ple bobine antiparasite peut être insuf-fisante. Pour préserver une faible dis-torsion et un haut rendement, il vautmieux faire appel à un noyau en maté-riau spécial. Nous vous en dironsdavantage dans la suite de cet articleà paraître en septembre.

Le réglage du gainLe gain du modulateur se règle par larétroaction R15 (R36) et le diviseur detension R18/R20 (R39/R41) et est choisien fonction de la tension d’alimentationmaximale utilisée. La raison estqu’ainsi l’amplificateur est indépen-dant du comportement de l’alimenta-tion (comme les fluctuations dues ausignal ou les variations du secteur). Larésistance R16 (R37) et le diviseur detension R17/R19 (R38/R40) forment unerétroaction supplémentaire destinée àse prémunir contre les rebondisse-ments par la ligne de masse. Les deuxcellules doivent être identiques ! Le cal-cul des résistances est très simple.Pour R17 et R18, on prend une valeurtypique de 1 kΩ et les autres résistan-ces ne dépendent plus que de la ten-sion d’alimentation VPP (en supposantque l’alimentation est réellement symé-trique) et de la valeur choisie pour R17 :

R19 = R17 · VPP / (VPP – 4)

Cela fournit une grandeur de résis-

tance dans la série E96 de 1,07 kΩ.Cette valeur ne varie pratiquement pasavec la tension d’alimentation, il fautdépasser 51 V de tension maximalepour arriver à 1,10 kΩ.Et finalement, la valeur de R15 déter-minera le gain du modulateur :

R15 = R17 · VPP / 4

Nous avons supposé une tension d’ali-mentation maximale de 62 V, parce queles condensateurs électrolytiques spé-ciaux pour le découplage sur la platined’amplificateur sont des modèles de63 V. On trouve alors pour R15 la valeurde 15,4 kΩ. On peut aussi calculer legain du modulateur comme pour toutamplificateur non inverseur suivant larelation :

Amodulateur = R15 / Rp + 1

dans laquelle Rp est la résultante de lamise en parallèle de R18 et R20.C11 et C24 sont les condensateurs quifiltrent et retardent le signal de rétroac-tion du modulateur. Leurs valeurs nesont pas égales, question d’éviter quedu bruit à très haute fréquence ne s’in-filtre dans la rétroaction et ne poussela fréquence de commutation des deuxmodulateurs à se superposer. Onéchappe de la sorte à des interférencesentre modulateurs. Les valeurs sontchoisies de manière à ce que la diffé-rence entre eux se monte à 40 kHz.

La protectionComme mesure de sécurité, le CI pilotesurveille les tensions d’alimentation etles courants dans les transistors. L’en-trée VPPSENSE s’occupe de la détec-tion de sous- et surtension de l’alimen-tation positive. Le même contrôle surla branche négative de l’alimentation,c’est l’affaire de VNNSENSE. Si l’unedes alimentations s’écarte des limitespermises, l’étage de sortie se voit

6/2004 - elektor 27

Page 19: Generic Array Logic - Doctsf.com

elektor - 6/200428

R6

0Ω01

R7

5Ω6

R9

5Ω6

R13

240Ω

R16

15k4

D1

R8

47

0k

T1

D7

D6 D2

R10

47

0k

T2

R11

0Ω01

D3

D4

C4

220p

R12

15

Ω

C5

100n

C7

100n

C6

47µ160V250V

VPP

C8

47µ25V

R15

15

k4

R18

1k

00

R17

1k

00

L1

11µ3

R20

1k

07

R19

1k

07 C11

150p

C9

220n400V C10

100n400V

R14

22

Ω

D5

R21

13k0

C13 220p

+5V

VN10

VNN

R27

0Ω01

R28

5Ω6

R30

5Ω6

R34

240Ω

R37

15k4

D8

R29

47

0k

T3

D14

D13 D9

R31

47

0k

T4

R32

0Ω01

D10

D11

C17

220p

R33

15

Ω

C18

100n

C20

100n

C19

47µ160V250V

VPP

C21

47µ25V

R36

15

k4

R39

1k

00

R38

1k

00

L2

11µ3

R41

1k

07

R40

1k

07 C24

270p

C22

220n400V C23

100n400V

R35

22

Ω

D12

R42

13k0

C26 220p

+5V

VN10

VNN

R43

2k2

D15

ERROR

L3

10µ

R3

20

k0

R4

47

0k

C3

100n

C2

33pR2

20k0

R5

470k

10k

P1

C1

3µ3

R1

33

0k

+5V

R24

20

k0

R25

47

0k

C16

100n

C15

33pR23

20k0

R26

470k

10k

P2

C14

3µ3

R22

33

0k

+5V

C27

100n

R44

8k25

CNY17

IC25

4

1

2

6

R46

10

0k

R47

1k

5

R48

1k00

K10

+5V

R50

42

2k

VPP

R49

39

2k

R51

1M2

R52

42

2k

+5V

VNN

VNN VN10

C28

100n

C29

100n

+5V

+5V

JP1

JP2

+5V

VNNSENSE

VPPSENSE

FBKOUT1

FBKGND1

FBKOUT2

FBKGND2

BIASCAP

OCS1HP

TA3020

OCS1HN

VBOOT1

HO1COM

LO1COM

OCS1LP

OCS1LN

OAOUT1

OCS2HP

OCS2HN

VBOOT2

HO2COM

LO2COM

OCS2LP

OCS2LN

OAOUT2

HMUTE

DCOMP

IC1

OCR1

OCR1

OCR2

OCR2

INV1

INV2

MUTE

BBM0

BBM1

AGND

AGND

VN10

HO1

LO1

HO2

LO2

REF

VNN

26

43

44

40

45

46

48

47

42

41

33

37

13

14

15

10

31

12

16

18

25

19

21

20

24

32

22

23

17

V527

28

V5

34

35

30

29

11

NC

36

NC

38

NC

39

8

9

5

4

2

3

7

6

1

1

0

1

0

BBM0

BBM1

mute

K2

K1

K4

K3

LS1+

LS1–

LS2+

LS2–

K6

K7

K8

K9

C30

470µ63V

C31

470µ63V

C34

470µ63V

C35

470µ63V

C38

47µ25V

C32

100n250V

C12

100n

VN10

C25

100n

VN10

C33

100n250V

C36

100n250V

C37

100n250V

C39

100n

VPP

VNN

VN10

K5 +5V

T1 ... T4 = STW38NB20D1 ... D4, D8 ... D11 = MUR120D5 ... D7, D12 ... D14 = MURS120T3

030217 - 11

*

*

zie tekst*see text*

voir texte*siehe Text*

R45

1k00

Figure 2. Le montage autour de la puce amplificatrice.

Page 20: Generic Array Logic - Doctsf.com

débranché, il passe en mode silencieuxjusqu’à ce que la tension revienne à lanormale. Pour le calcul de ces compo-sants, voyez le feuillet de caractéris-tiques. Théoriquement, il se peut quel’amplificateur reste bloqué dans unétat de détection de surtension, maisc’est fort peu probable, parce qu’il fautfacilement 68 V sur chacune desentrées de détection avant qu’elles neréagissent. Il s’agit donc ici plus parti-culièrement d’une protection de lapuce elle-même, n’oublions pas que lesdifférents condensateurs électroly-tiques de l’alimentation ne sont quedes modèles de 63 V…Le calcul de la protection en courant serévèle bien plus intéressant que celuide la détection de tension, du fait qu’ildéfinit la charge minimum de l’ampli-ficateur en situation d’excursion totale.Puisqu’il est question d’une sortiecommutée, ce sont les MOSFET utili-sés qui déterminent les possibilités decharge de l’amplificateur. Commetransistors de sortie, nous avons sélec-tionné un des types les plus costaudsde chez Microelectronics, à savoir leSTW38NB20. Ce transistor sous boîtierTO-247 peut charrier jusqu’à 38 A,alors que la tension maximale drain-source se monte à 200 V. La résistancede canal pour une UGS de 10 V affichetout au plus 0,065 Ω (ID = 19 A). L’in-convénient de ce genre de MOSFET,c’est que sa capacité d’entrée Ciss estrelativement élevée, elle atteint ici3 800 pF. Cela explique que les circuitsde commande dans la puce doiventpouvoir délivrer du courant en quantitépour arriver à commuter les MOSFET àune vitesse suffisante. Nous avonsengagé ces transistors surtout pouréviter les surprises face à des systè-mes de haut-parleurs à l’impédanceassez imprévisible. Bien sûr, avec d’au-tres modèles de transistors qui présen-tent une plus basse capacité de grillevous pouvez diminuer le délai avant lamise en conduction, ce qui procure

aussi une réduction de la distorsion.Mais alors il faut aussi se montrer plusprudent avec les impédances basses.La détection de courant se composedes deux résistances à faible induc-tance R6 et R11 (R27/R32) utiliséescomme shunt en série avec les transis-tors, R6 pour la moitié positive, dans ledrain de T1 et R11 en série avec lasource de T2 pour la moitié négative.La limite pour laquelle la sécurité varéagir se règle en combinaison avecR21. Le CI mesure directement auxbornes du shunt et produit un courantdans R21. La tension sur R21 est com-parée à la tension de seuil VTOC dedétection de surcharge, ce qui déter-mine le courant de sortie maximum.C13 (C26) filtre la tension redressée.On peut déterminer l’influence de cescomposants par la relation :

Imax= 3580 · (VTOC–Ibias·R21) / (R21·R6)

R 2 1 =(3580 ·VTOC)/(Imax·R6+3580 · Ibias)

VTOC représente ici la tension de seuilde détection d’excès de courant (nomi-nal 0,97 V) et Ibias vaut 20 µA.On peut facilement retrouver à l’aidede la première équation la valeur d’uncomposant. Quant à la seconde, ellevous permet de déterminer la valeurde R21 (ou R42). Nous avons choisi uncourant de sortie maximum de près de20 A, de manière à ce qu’une impé-dance légèrement inférieure à 3 Ωn’enclenche pas encore le mode silen-cieux.On ne peut sortir du mode silencieuxqu’en basculant l’entrée « mute » ou endébranchant momentanément l’ampli-ficateur. Quand le mode silencieux estactif, la sortie HMUTE est haute etattaque une LED à placer en faceavant, par exemple. Mieux vaut yconsacrer une LED rouge à haut rende-ment, parce que diminuer R43 surchar-gerait la sortie.

L’alimentationL’énergie nécessaire à la platine del’amplificateur provient d’une autrecarte. On y trouve entre autres le +5 Vanalogique, VN10 et les fusibles pourles alimentations principales. Vous yverrez aussi la génération d’un signal« un-mute » destiné à retarder l’enclen-chement pour éviter les bruits disgra-cieux à cet instant. Il faut empêcher laformation d’une boucle de masse quioccasionnerait la circulation d’un cou-rant d’ondulation sur la masse d’en-trée. C’est donc un photocoupleur, IC2,qui appliquera le signal « mute » à lapuce. Il a été prévu sur la platine d’am-plification, mais il lui faut un signal devalidation pour pouvoir y actionner lemode silencieux.Les tensions principales, VPP et VNN,du TA3020 sont découplées dans lesmeilleures conditions possibles parune batterie de condensateurs électro-lytiques spéciaux : C30, C31, C34 etC35, avec des MKT pour la HF : C32,C33, C36 et C37 en doublure. Le décou-plage de la tension de 5 V pour lesamplificateurs d’entrée reste simple.La masse analogique et celle du modu-lateur (et de tout le reste) sont sépa-rées et ne sont couplées qu’en un seulpoint, situé sous la platine, par l’inter-médiaire d’une inductance en techno-logie CMS, pour tâcher d’affaiblir aumieux les éventuels parasites du cir-cuit de sortie.

Le tracéNous vous le disions en commençant,sans une géométrie astucieuse, l’ampli-ficateur a peu de chance de fonctionnercorrectement. La platine est une com-posante essentielle de l’ensembleamplificateur. Tripath insiste pour quenous utilisions le tracé de référenceparce qu’en haute fréquence, les cou-rants peuvent occasionner des effetsinattendus. Il y a naturellement des

6/2004 - elektor 29

Page 21: Generic Array Logic - Doctsf.com

composants que nous avons choisis etdont les dimensions diffèrent, parexemple. Nous avons effectivementporté toute notre attention sur la dispo-nibilité des composants, de préférencepar quantité limitée. Nous avons dûallonger quelque peu certaines liaisonset ajouter d’autres composants, mais lerésultat est atteint. Si vous comparez laphoto publiée dans le feuillet de carac-téristiques à notre prototype, la simili-tude vous apparaîtra immédiatement.Certains composants que Tripath amontés sous la platine, nous les avons

replacés sur la face supérieure. Raisonpour laquelle, dans notre version, laplatine se positionne en parallèle avec leradiateur et les transistors en dessous.Il en ressort un module compact et biensolide, mais nous en reparlerons aumoment de la construction. Ce quenous tenons à vous dire maintenant,c’est que, si le module a l’air tout sim-ple à première vue, en y regardant deplus près, vous aurez l’impression quecertains composants manquent. C’estqu’une grande partie d’entre eux sonten exécution CMS et donc soudés sous

la platine, le meilleur remède contre lesperturbations et l’embonpoint qui guet-tait cet amplificateur de 2 x 300 W. Laplupart des CMS sont au profil 0603, cequi risque de donner le vertige à cer-tains d’entre vous. Aussi, pour vousaider, allons-nous essayer de livrer ulté-rieurement la platine déjà équipée deses CMS.Et puis la prochaine fois (en septem-bre) nous reviendrons en détail sur laconstruction de cet amplificateur horsdu commun.

(030217-I)

elektor - 6/200430

Publicité

Page 22: Generic Array Logic - Doctsf.com

Forgez votre pucePartie 2 - La pratique des CPLD

elektor - 6/200432

Paul Goossens

Après la description du matériel dans l’article du mois dernier,nous allons passer aux choses sérieuses avec la carted’expérimentation. Nous supposons le logiciel d’Altera installéet le didacticiel lu.

Page 23: Generic Array Logic - Doctsf.com

La conception de circuits numérique serésume souvent à une dissection de lafonction souhaitée en petites solutionsà des problèmes et ce jusqu’à ce que leconcept résultant soit doté des diver-ses fonctions logiques de base. Cecisert alors de base à un circuit électro-nique dont on développera éventuelle-ment un circuit imprimé.

Langages descriptifsL’utilisation d’un langage descriptifsimplifie la conception de circuitsnumériques. Le but d’un tel langageest de pouvoir décrire (d’où son nom)une fonctionnalité donnée. Un logicielintelligent est en mesure de concevoirun circuit électronique qui satisfasse ladescription de spécifications qu’en afait le concepteur.Il existe actuellement différents langa-ges descriptifs. Deux d’entre eux sontsans lien fabricant et fort bien suppor-tés par nombre de fabricants. Il s’agitde Verilog et de VHDL.Nous allons, dans le cadre de cet arti-cle, utiliser Verilog comme langagedescriptif

VerilogNous avons opté pour Verilog vu qu’ilnous semble que ce langage est unpeu plus clair que VHDL. Sous de nom-breux aspects, ces 2 langages présen-tent de fortes similitudes. La grandedifférence se situe au niveau de la des-cription. De ce fait, nombre desremarques, des pièges, etc. évoquésdans cet article sont également utilisa-bles directement avec VHDL.Un concept en Verilog peut présenterune structure hiérarchique. Ceci signi-fie qu’il peut être subdivisé enconcepts plus restreints. Ces sous-concepts peuvent à leur tour être sub-divisés en nouveaux modules, car c’esttrès précisément le terme qu’utiliseVerilog pour les désigner.

La subdivision d’un projet en différentsmodules présente un autre avantage,celui de permettre une réutilisation deces modules pour un autre projet. Uncompteur, par exemple, est un modulesouvent utilisé; il est partant recom-mandé d’en faire un module spécifique.

Exemple 1Rien de tel que de mettre soi-même lamain à la pâte. Nous débutons partantpar un exemple. Il vous faudra commen-cer par télécharger les exemples depuisle site Internet (www.elektor.fr). Vousles trouverez dans le mois de juin sousla dénomination 030385-11. Il vous suf-fira de décompacter le fichier. zip.L’exemple 1 se trouve dans le dossierEx1. Il suffit d’un double clic sur lefichier ex1.quartus. Le logiciel de déve-loppement est démarré automatique-ment. On voit alors sur le schéma queles diverses broches d’E/S du compo-sant sont reliées à un bloc dans lequelsont mentionnés un certain nombre designaux. Les dits signaux sont tousdes entrées et des sorties de ce bloc.Comme vous avez pu le lire dans ledidacticiel (tutorial, vous l’avez bien lu,n’est-ce pas ?) un double clic sur lebloc se traduit par l’ouverture du code-source correspondant. Dans le cas pré-sent il s’agit de Verilog. Sous Verilog,le texte en vert représente des com-mentaires sans influence sur le résul-tat final. Quartus utilise ces lignes pourstocker de l’information. Il est recom-mandé de ne pas supprimer ces lignesde commentaire.

StructureLa structure du code-source sous Veri-log est toujours la même. Il commencepar une déclaration du module. Cettepartie débute par le mot « module »suivi par le nom. Il comprend un ensem-ble d’entrée et de sorties prises entreparenthèses, les éléments étant sépa-

rés par des virgules. Le total se terminepar un point-virgule. Dans notre exem-ple il s’agit des lignes 30 à 35.Il nous faut ensuite définir les directionsdes signaux (ports), mentionnés dans ladéclaration du module. Ici, les lignes 39à 45. Il existe, pour chaque signal,3 options : entrée (input), sortie (output)et bidirectionnel (inout). Nous n’avonsici que des entrées et des sorties.Chaque ligne se termine par un « ; ». Onvoit, sur la première ligne, qu’il est pos-sible de définir plusieurs signaux surune même ligne à condition qu’ilssoient séparés par une virgule.Les sorties requièrent une spécifica-tion additionnelle. En cas de descrip-tion, dans un procedural statement(rassurez-vous, nous verrons de quoi ilretourne) d’une sortie, celle-ci doit êtredu type reg (register, sortie d’une bas-cule). Dans la ligne 47 les signaux D2,

6/2004 - elektor 33

1

030385 - 2 - 11

CLK

EPM7128CPLD

Figure 1. Schéma d’un oscillateur àquartz classique.

Page 24: Generic Array Logic - Doctsf.com

D3 et D4 sont définis comme registres.Ayant rempli nos « devoirs administra-tifs », nous pouvons nous attaquer auprojet proprement dit. Notre exempleest, comme se doit d’être tout premierexemple, extrêmement simple. Nousallons démontrer comment décrire dessignaux à l’aide d’algèbre booléenne.Sous Verilog, cela peut se faire de2 façons : à l’aide d’une déclaration(statement) assign ou par le biais d’uneattribution procédurale (proceduralassignment). Le listage 1 donne unexemple des 2 méthodes.La ligne 50 illustre la première méthode.On y décrit que le signal D1 est le résul-tat d’une fonction ET (AND) dessignaux S1 à S4. Cela signifie que D1 nesera actif qu’à condition que S1 à S4sont eux aussi actifs (« 1 »). Dans tousles autres cas, D1 sera inactif (« 0 »).Le symbole « & » représente donc unefonction ET. Le tableau 1 récapituletoutes les fonctions booléennes queconnaît Verilog.

Procedural statementLes sorties restantes, D2 à D4, sontdécrites dans un procedural statement.Ces déclarations (statements) sont tou-jours précédées par le mot-clé always.Nous l’approfondirons dans un pro-chain exemple.Comme dans le langage de program-mation Pascal, il est possible d’asso-cier plusieurs déclarations pour enfaire une entité encadrée par les mots-clé begin et end. Toutes les déclara-tions prises à l’intérieur de ces mots-clé sont considérées comme consti-tuant une seule et même déclaration.Si, maintenant, nous cliquons sur laligne 54, nous voyons que le signal D4est décrit comme étant un signal deve-nant actif lorsque soit S1, soit S2, soitS3, soit encore S4 est actif. C’est à des-sein que nous avons choisi le mot« devenant » et non pas « est ». Le dou-ble caractère <= signifie « devient ».La règle est que l’on utilise, dans un

procedural statement, ce double signeplutôt que le signe « = ».Un coup d’oeil en cachette autableau 1 aura vite fait de trahir lesfonctions des signaux D3 et D4.Nous verrons dans le prochain exem-ple, l’intérêt que présente le placementde signaux dans une déclaration pro-cédurale plutôt que de travailler avecune attribution (assign).Pour clôturer, le mot-clé endmoduleindique que nous en sommes arrivés àla fin de la description du module.

CompilationIl est temps maintenant de remonterles manches. Il va nous falloir commen-cer par compiler le projet. Le compila-teur sait déjà exactement quel signalest relié à chaque broche de la CPLD.Nous l’avons déjà fait à votre place. Lacompilation en devient ainsi un jeud’enfant; tout ce que vous avez à faireest de cliquer sur l’option Start Compi-lation du menu Processing pour que leprogramme se mette au travail.Après apparition de quelques messa-ges à l’écran, on verra quelques mou-vements. Au bout d’un certain temps,le programme annoncera que la compi-lation a réussi. Cela signifie qu’il a étécréé un fichier de programmation quipourra servir à programmer notre puce.

ProgrammationComme nous le disions dans le premierarticle, la programmation requiert dedisposer du programmateur JTAG dunuméro double d’Elektor de 2002. Sivous disposez d’un ByteBlaster d’Al-tera original, parfait. Nous supposonsque vous avez connecté le programma-teur au port imprimante du PC et quel’embase JTAG est reliée à l’embase K2de notre carte d’expérimentation. Met-tez maintenant la carte d’expérimenta-tion sous tension.Dans Quartus nous sélectons le menu

Tools puis l’option Programmer. Ilapparaît une nouvelle fenêtre. Assurez-vous que le programmateur est para-métré pour JTAG et que c’est l’inter-face (ByteBlaster) qui est sélectée.Nous découvrons, dans une fenêtre,une ligne avec, sous la colonne Device,un EPM7128SLC. Sur la même ligne,sous la colonne File, devrait se trouverle fichier de programmation ex1.pof.Tout est paré dans ce cas-là pour laprogrammation de la CPLD. Il nousreste à indiquer au programme quenous voulons programmer le compo-sant en cochant la case sous la colonneProgram/Configure.Il nous reste, pour terminer, à cliquersur le bouton Start Programming quel’on peut identifier tout en haut à saforme rappelant celle d’un bouton PLAY.

TesterDès que la programmation est effec-tuée, la CPLD est active, ce qui signi-fie que le projet programmé est immé-diatement fonctionnel. Assurez-vousque les cavaliers JP1 et JP2 sont bienen place.La vérification du projet est simple. LaLED D1 doit uniquement être « allu-mée » lorsque tous les inverseurs setrouvent en position « 1 ». Dans tousles autres cas, la LED doit être éteinte.La LED D4 doit réagir à l’inverse.Lorsque D1 est allumée, D4 doit êtreéteinte et vice-versa.Nous avons décrit D2 comme une fonc-tion OU, ce qui signifie que dès quel’un des inverseurs (ou plusieurs) setrouve(nt) en position « 1 », cette LEDdoit s’allumer.La LED D3 doit s’allumer dès que S1ET S2 se trouvent à l’état « 1 » OU queS3 et S4 se trouvent dans le même état.Il est facile de vérifier ces fonctions parle biais des inverseurs.Essayez donc de modifier le projetsous Quartus de manière à ce que laLED D1 s’allume dès que S1 est à l’é-

elektor - 6/200434

Tableau 1. Fonctions booléennes

& = AND

~& = NAND

| = OR

~| = NOR

~ = NOT

^ = XOR

~^ = XNOR

Tableau 2. Opérateurs mathématiques

+ = Ajouter

- = Soustraire

* = Multiplier

/ = Diviser

% = Modulo

Tableau 3.Opérateurs relationnels

> supérieur à

> = égal ou supérieur à

< inférieur à

< = inférieur ou égal à

= = égal à

! = différent de (non égal à)

Page 25: Generic Array Logic - Doctsf.com

tat « 1 » et que S2 se trouve à « 0 ». Lespositions des autres inverseurs n’ayantaucune importance. Bonne chance !

Exemple 2L’exemple 1 était, nous le disions, unexemple ultra-simple. La puissance deVerilog est que le concepteur disposed’une approche plus descriptive pourses conceptions. L’algèbre booléennepeut être très pratique en Verilog, maisil n’est bien évidemment pas questiond’avoir à saisir des projets complexesuniquement sous la forme d’algèbrebooléenne.Nous allons voir à quoi cela ressembleau travers de l’exemple 2, où nousallons concevoir 2 bascules (flipflop) etun verrou (latch).Les fichiers de ce second exemple setrouvent dans le répertoire ex2. Nousallons y ouvrir ex2.quartus, le logicielouvrant automatiquement tous les aut-res fichiers nécessaires.Nous voyons, sur le schéma (ex2.bdf),que les interrupteurs S1 à S4 sontreliés à un bloc fonctionnel appelé flip-flop. S1 est relié à l’entrée d’horloge(CLK), etc. Un double clic sur ce blocse traduit par l’ouverte du code-sourceVerilog correspondant.

Always @Rien de neuf jusqu’à la ligne 46. Surcette ligne, le mot-clé always est dotéd’un suffixe, un @ suivi d’une équa-tion. Le listage 2 donne la partie decode correspondante. Le caractère @indique que les déclarations procédu-rales correspondant à cette déclarationalways ne pourront être évaluées quesi la condition définie par l’équation enaval est respectée. Dans le cas présentcela signifie que les déclarations quisuivent ne sont d’actualité que lorsquele signal d’horloge (CLK) OU le signalde remise à zéro (RAZ = reset) OU lesignal de positionnement (SET) pré-

sente un flanc montant (posedge). Pouréviter toute ambiguïté, un flanc mon-tant est le passage d’un niveau logiquebas « 0 » à un niveau logique haut « 1 ».

Verilog connaît aussi le terme« negedge », c’est-à-dire flanc descen-dant.

Si l’une de ces conditions est remplie,on a évaluation du petit morceau decode. On commence par tester lesignal de RAZ pour voir s’il est à « 1 ».Dans ce cas-là OUT est inactivée « 0 »et cette partie du code est exécutée.Sinon, on teste à « 1 » le signal SET. Sioui, la sortie OUT passe à « 1 » et c’estla fin de l’exécution du code.Outre les valeurs « 0 » et « 1 », chaquesignal peut aussi prendre les valeurs« x » (inconnu) ou « z » (haute impé-dance).Si ni RESET ni SET ne sont à « 1 », CLKdoit présenter un flanc montantsachant que sinon il n’y aura pas éva-luation du code. Le but de la manoeu-vre est que lors d’un flanc montant dusignal d’horloge la sortie de la basculeprenne la valeur présente à l’entrée.Que se passe-t-il au niveau de la sortiesi ni CLK ni RESET ni SET ne présentede flanc montant ? La réponse est sim-ple : rien du tout. Dans la ligne 45 lesignal OUT est défini comme registre, cequi signifie que la dernière valeur attri-buée à ce signal doit être mémorisée.Tant qu’aucun code n’est actif, la valeurde ce registre ne changera partant pas.L’ajout du caractère « @ » à la déclara-tion « always », nous pouvons indiquerdans quelles conditions on peut avoirévaluation d’un morceau de code. Lereste du temps, la sortie pilotée par cebloc, ne change pas d’état.Un examen du code montre à l’évidenceque l’entrée RESET possède une prio-rité supérieure à l’entrée SET. Cela nesignifie cependant pas qu’en cours defonctionnement la CPLD va évaluer suc-cessivement ces 2 signaux. La CPLD

réagira à la même vitesse à un signalRESET qu’à un signal SET. L’ordre neprésente d’importance que pour le com-pilateur. Ce dernier évalue un petit mor-ceau de code et détermine ce qui doitse passer au niveau de la sortie pourchacune des combinaisons possiblesdes signaux d’entrée. À partir de cetteévaluation, le compilateur « conçoit » unbloc de logique numérique qui réagitcomme le requiert le code.

Variations sur unmême thème

Le schéma (ex2.bdf) comporte uneseconde bascule, baptisée, comme ilse doit, « flipflop2 ». Le fichier Verilogcorrespondant ressemble beaucoup aufichier Verilog de la première bascule.La seule différence est qu’ici on tested’abord l’état du signa SET puisensuite celui du signal RESET. Celasignifie que pour cette bascule, l’en-trée SET a une priorité supérieure àcelle de l’entrée RESET. La sortie pas-sera de ce fait à « 1 » lorsque tant l’en-trée RESET que l’entrée SET se trou-vent à « 1 ». Avec la première bascule,cette situation se serait traduite parune mise à « 0 » de la sortie.

VerrouLe dernier bloc de ce schéma est unverrou. Un verrou est une « brique » quel’on rencontre souvent dans des projetsnumériques. La fonction d’un verrou eston ne peut plus simple : tant que l’en-trée d’horloge se trouve à « 1 », la sor-tie doit présenter le même niveau quel’entrée. Dès que l’état de l’entréechange, la sortie doit suivre. Si, aucontraire, le signal d’horloge est inactif(« 0 »), le dernier état connu de la sortiedoit être conservé quels que soient leschangements au niveau de l’entrée.Le fichier Verilog latchexample.v mon-tre comment décrire ce processus en

6/2004 - elektor 35

Listage 1. Algèbre booléenne50 assign D1 = S1 & S2 & S3 & S4;

51

52 always

53 begin

54 D2 <= S1 | S2 | S3 | S4;

55 D3 <= ( S1 & S2) | (S3 & S4);

56 D4 <= ~(S1 & S2 & S3 & S4);

57 end

Page 26: Generic Array Logic - Doctsf.com

Verilog. Le signal de sortie peut chan-ger lorsque l’état du signal d’horlogechange OU que l’état de l’entrée dedonnées change. Ceci peut se fairetant sur un flanc montant que sur unflanc descendant. Ceci explique quenous trouvions, après le caractère @,« (posedge CLK or D) ». On notera quele signal D n’est pas accompagné de« posedge ». Ceci signifie que le codedoit être évalué lors de tout change-ment d’état du signal D.Nous pouvons voir, dans le code cor-respondant à cette déclaration always,que le compilateur commence par s’inté-resser à l’état du signal d’horloge. Si cedernier est actif (« 1 »), la sortie est miseà l’état de l’entrée. Sinon, il ne se passerien et la sortie garde son état actuel.Nous pouvons compiler et programmercet exemple comme nous l’avons faitavec l’exemple précédent. Vérifiezensuite, à l’aide de la carte d’expéri-mentation que le projet fait bien ce quel’on en attend. Vous pouvez ensuite, àtitre d’exercice, essayer de voir si vouspouvez doter le latch d’une entrée SETet d’une entrée RESET. C’est en for-geant que l’on devient forgeron dit leproverbe !

MathématiquesNous avons vu, dans le précédentexemple, comment décrire une fonc-tion sans avoir à nous occuper de por-tes logiques, d’algèbre booléenne, etc.Après avoir pris Verilog en main, toutconcepteur saura apprécier la situa-tion. C’est le compilateur, et non plusle concepteur, qui se charge des pro-cessus les plus courants.Dans l’exemple n°3 nous allons voirque Verilog n’a pas de problème avecles maths. Nous allons, cette fois, utili-ser des compteurs. Ces compteursrequièrent un signal d’horloge; c’estpar lui que nous allons commencer.

La figure 1 montre un oscillateur àquart classique. Hormis l’inverseur,tous les autres composants se trouventsur la carte d’expérimentation. Par laprise d’un inverseur entre les broches71 et 81 de la CPLD nous nous don-nons un oscillateur à quartz.Si nous ouvrons l’exemple 3, nousdécouvrons sur le schéma cet inver-seur pris entre 2 broches du circuitintégré. Après programmation de laCPLD nous disposons partant d’unoscillateur dont la sortie (broche 81 dela platine) est reliée à la broche 83 dela CPLD. Cette entrée est prévue spé-cialement pour faire office d’entréed’horloge.

MatricesNous supposons que vous connaissez lesystème binaire. Vous savez alors sansdoute que les nombres sont souventreprésentés par un train de signaux. Ilest possible, en Verilog, de grouper uncertain nombre de signaux dans ce quel’on appelle des matrices (array).Dans le fichier Verilog du bloc Countnous découvrons, en ligne 40 : « output[7:0] D; ». Cette expression spécifie unematrice de 8 signaux, à savoir D[7] àD[0]. Tous les signaux réunis sontappelés « D ».Il nous faut parler de la ligne 47 pouréviter toute ambiguïté. On y déclare unnouveau signal. Ce signal n’apparaîtpas dans la déclaration du module cequi signifie que ce signal n’est pas visi-ble de l’extérieur (du module). Ce signala une utilisation purement interne.La ligne intéressante suivante est laligne 51 : « temp=temp+1; ». Il nousest donc possible de compter en utili-sant le caractère « + ». Le tableau 2mentionne d’autres opérateurs (mathé-matiques) utilisables avec les matricessous Verilog.La ligne 52 nous propose une compa-

raison (« == » signifie vérifier si leterme gauche est égal au terme droit).Le tableau 3 donne tous les opérateursrelationnels (tels que « == ») queconnaît Verilog. Le nombre24’d4000000 peut paraître étrange aupremier abord. C’est ainsi que l’on écritdes nombres sous Verilog. Le premiernombre indique le nombre de signauxconcernés (24 dans le cas présent). Le« d » indique que le système utilisépour la constante est le système déci-mal. 4000000 représente la constanteproprement dite.Il nous faut ici utiliser 24 signaux vuque le registre temp est constitué de24 signaux. 24 zéros en Verilog n’estpas la même chose que 23 zéros ! Fai-tes donc bien attention qu’il y aitautant de signaux sur la gauche duterme « == » que sur sa droite !

CompteurSi nous analysons le code Verilog, nousvoyons qu’à chaque impulsion d’hor-loge la valeur du registre temp estincrémentée. Dès que ce registre aatteint la valeur de référence .000.000,le registre D est incrémenté (augmentéde « 1 », temps repasse à « 0 » et la sor-tie SLOW passe à « 1 ». Si le registretemp n’a pas encore atteint la valeur4.000.000, SLOW se voit attribuer lavaleur « 0 ».Dans le cas d’un signal d’horloge de4,000 MHz, cela signifie que la valeurdu registre D est incrémentée une foispar seconde moment auquel la sortieSLOW passe brièvement à « 1 ». SLOWest partant un signal d’horloge de 1 Hz.

Compteur BCDLe signal d’horloge de 1 Hz attaquel’entrée d’horloge d’un compteur BCD.On le retrouve sur le schéma sous ladénomination de « BCD_counter ».

elektor - 6/200436

Listage 2. Une bascule cadencée

46 always @ (posedge CLK or posedge RESET or posedge SET)

47 begin

48 if (RESET)

49 OUT <= 1’b0;

50 else if (SET)

51 OUT <= 1’b1;

52 else

53 OUT <= D;

54 end

Page 27: Generic Array Logic - Doctsf.com

Le code Verilog du compteur BCD com-porte pas moins de 3 blocs distinctscommençant par la déclaration« always ». Il nous reste à signaler qu’ily a eu déclaration d’une paire de regis-tres pour utilisation interne, à savoirSEG et COUNT.La première fonction, à compter de laligne 52, est un compteur qui fait ensorte que le registre COUNT comptede 0 à 9. Lorsqu’il atteint la valeur 10,COUNT est rechargé de la valeur 0.La seconde fonction est exécutée àchaque fois que COUNT change. Dansla ligne 60 nous trouvons une nouvelledéclaration baptisée case. Le listage 3en donne un exemple. Les program-meurs en C connaissent. La déclara-tion case a 1 argument, COUNT enl’occurrence. Les lignes suivantes setraduisent alors ainsi :

“4’d0 : SEG=7’b1111110;4’d1 : SEG=7’b0110000;”

que l’on peut traduire :

if (COUNT==4’d0) SEG=7’b...else if (COUNT ==4’d0 SEG=...”etc.

La ligne commençant par default estexécutée si la valeur actuelle deCOUNT n’apparaît pas dans la liste.Le dernier morceau de code Verilogdébute en ligne 75. Comme on peut levoir, il est évalué lorsque le registreSEG change de valeur.La ligne 76 illustre une possibilité inté-ressante de Verilog. Les caractèresASCII « » et « » permettent d’asso-cier plusieurs signaux pour en faireune matrice. Comme SEG est unematrice et que les sorties des affi-cheurs 7 segments sont déclaréescomme signaux « distincts », il nousfaut coupler ces signaux à une matrice.Autre solution : coupler chacun de

6/2004 - elektor 37

signaux à une partie de la matrice, parexemple :

“SEGA = SEG[6];”

Cette méthode fonctionne tout aussibien, mais rallonge le code en le ren-dant partant moins lisible.

TesterIl nous faut, dans le cadre du test decet exemple, évoquer une imperfectionde la carte d’expérimentation.Lors de la programmation de la CPLD,toutes les sorties sont désactivées.Immédiatement après la programma-tion, la CPLD est active. Ceci pose desproblèmes de démarrage de l’oscilla-teur. Il vous faudra donc, une fois laprogrammation effectuée, procéder àun bref reset. Vous pourrez le faire parle biais d’un bouton-poussoir à contacttravail à prendre entre les broches 2 et20 de l’embase K6. Vous pouvez aussicouper brièvement l’alimentation avantde remettre le montage sous tension.

En guise de conclusionVerilog offre bien plus de possibilitésque nous ne pouvons en évoquer dansle cadre de cet article. Nous nous som-mes limités aux fonctions les plus uti-lisées de Verilog. Celles-ci permettentdéjà à un concepteur de concevoir desfonctions numériques très complexes.Internet fourmille de site proposant lesprojets Verilog les plus divers. L’étudeet la simulation de ces projets aura vitefait de vous donner une certaine expé-rience dans ce langage ô combien inté-ressant.Il est un point important que nous n’a-vons pas pu aborder dans cet article :la simulation d’un projet sous Quartus.Le didacticiel de Quartus pourra beau-coup vous apprendre, sans même par-

ler de la fonction d’Aide.À noter qu’il est judicieux de subdiviserun projet en petits morceaux que l’onsimulera l’un après l’autre pour vérifierqu’ils fonctionnent bien comme prévu.Nous attendons avec impatience vosapplications intéressantes à base denotre carte d’expérimentation ! Bonnechance !

(030385-2)

Liens intéressants :www.altera.com/support/examples/verilog/verilog.html

www.asic-world.com/verilog/index.html

Trucs & Astuces– Un module peut comporterplusieurs morceaux de code quisont tous précédés par la décla-ration « always ». La limitationde cette approche est qu’il n’estpossible de définir une sortieque dans un morceau de code.Un concepteur pourra, pourcontourner cette limitation, défi-nir 2 signaux (wire T1,T2; parexemple) et piloter ces2 signaux par 2 morceaux decode distincts. La sortie propre-ment dite pourra être définiecomme une fonction booléennede ces 2 signaux.

– Veillez à ce que toutes les bas-cules du projet réagissent soitsur un flanc montant soit sur unflanc descendant. Ceci se traduitpar un projet plus efficace (lire :rapide).

– Tenez compte du fait que lecompilateur doit évaluer le code.Ceci est sensiblement différentd’un processeur ayant à exécu-ter un morceau de code. Si unprojet comporte, comme c’est leplus souvent le cas, plusieurssegments précédés par un mot-clé « always », ceux-ci sont enfait exécutés simultanément) !

Listage 3. Combiner le statement case et des signaux en une matrice (array)

59 always @ (COUNT)60 begin61 case (COUNT)62 4’d0 : SEG=7’b1111110;63 4’d1 : SEG=7’b0110000;………………………………………………..71 4’d9 : SEG=7’b1111011;72 default : SEG=7’b0000001;73 endcase74 end75 76 always @(SEG)77 SEGA,SEGB,SEGC,SEGD,SEGE,SEGF,SEGG = SEG;

Page 28: Generic Array Logic - Doctsf.com

elektor - 6/200438

Pong de pocheNouveau matériel pour une vénérable gloire

Nous parlons actuellement de stations de jeu à processeur,

mais à l’origine, il s’agissait de jeux vidéo, avec de grands

classiques comme Pong et Pacman. Le concept de base de

ces divertissements a déjà un âge respectable, il date du

début des années 50.

Grand temps de vêtir de neuf ce pionnier du numérique.

Page 29: Generic Array Logic - Doctsf.com

On l’avait presque oublié, les premiersjeux électroniques se branchaient surla télé. Il s’en est fallu de peu qu’on neles voie jamais sortir. En 1951, RalphBaer, un technicien en télévision se ditqu’il serait agréable d’utiliser l’écrande la télé pour un jeu électronique. Sonpatron ne voyait aucun avenir danscette idée, qui resta sans suite. Desannées plus tard, le projet recommen-çait à le démanger et Baer entama en1966 la construction d’un prototype. Lejeu vidéo était né.Mais venons-en au jeu qui nousoccupe ici : le Pong d’Atari, dérivéd’une autre trouvaille de Baer. C’est en1974 que commence la conception despremières versions de jeux domes-tiques. Contrairement aux autres fabri-cants, Atari trouva un filon prospère :développer pour Pong une puce spé-ciale, un ASIC (application specificintegrated circuit). Grâce à elle, le prixde revient restait très bas, alors queles possibilités offertes, comme l’affi-chage numérique du score et les effetssonores, étaient inégalées dans laconcurrence. Pong fut lancé en 1976 enversion domestique. Aujourd’hui,28 ans plus tard, nous en remettonsune couche, mais cette fois-ci, plus surla télé, mais avec une matrice de LEDen guise d’écran.

Le circuitOr en fait, nous allons marcher dansles pas d’Atari, en développant un CIspécifique pour cette application. Heu-reusement, nous ne devrons pasconcevoir un tout nouveau circuit àfaire graver ensuite. Nous partons biensûr d’un microprocesseur que le logi-ciel dressera à exécuter fidèlement ceque nous voulons. Nous travaillons iciavec un PIC18F452, une puce à 40 pat-tes avec 32 Koctets de mémoire de pro-gramme et, parmi d’autres, un conver-tisseur A/N à 10 bits embarqué. Ceprocesseur ne restera pas solitaire

dans le montage, comme l’illustre lafigure 1. IC2, un décodeur de 4 vers 16,assure, de concert avec IC3 et IC4, ladirection de l’afficheur. Celui-ci se com-pose de deux parties, les chiffres à7 segments LD1 et LD2 pour indiquerle score et une matrice de LED (D1 àD88) comme terrain de sport. Sur lesbords gauche et droit du champ, ondéplace les raquettes ou les palettesvirtuelles pour faire rebondir la balle etla renvoyer dans l’autre camp.BZ1 produit les effets sonores. Il s’agitd’un vibreur acoustique continu atta-qué par T1. C5 et R7 assurent le décou-plage de la tension d’alimentation.La mise en œuvre de IC5, un régula-teur de tension fixe, est tout ce qu’il y ade classique. D89 sert de protectioncontre l’inversion de polarité. Le plussimple est de faire usage d’un blocadaptateur sur secteur entre 9 et 12 V.Le PIC consomme à peine quelquesmilliampères, la puissance requisedépend essentiellement du courant

dans les LED. Mais le multiplexage faitchuter sérieusement la consommationmoyenne, qui se situe aux alentours de35 mA.

AffichageLes cathodes des LED constitutivesdes chiffres à 7 segments ainsi que decelles de la matrice se branchent surdes tampons ULN2803 (IC3 et IC4).Les anodes sont raccordées au proces-seur par transistors (T2 à T9). En prin-cipe, on aurait pu s’en passer, puisqueles sorties du PIC peuvent délivrer jus-qu’à 25 mA. Avec des LED à haut ren-dement, cela suffirait, mais à ce cou-rant, les modèles ordinaires risquentde manquer de clarté et le confort dujeu en pâtirait. La valeur de résistancedonnée de 56 Ω pour R8 à R15 fait circu-ler un courant d’environ 27 mA dansles LED. Mais cette valeur peut tou-jours être adaptée sans difficulté. On lacalcule aisément par la célèbre loi

6/2004 - elektor 39

74HC4514

IC2

DMUX

C20

20D

21

22

23

10

11

1515

1614

1313

1412

1911

2010

17

18

15

24

12

1

4

5

6

7

8

9

2

3

0

1

2

3

4

5

6

7

9

8

0

3

G0

RA5/AN4/SS/LVDIN

RC0/T1OSO/T1CKI

RC1/T1OSI/CCP2

RA3/AN3/VREF+

RA2/AN2/VREF-

RC3/SCK/SCL

RC4/SDI/SDA

RE0/RD/AN5

RE1/WR/AN6

RE2/CS/AN7

PIC16F452

RA4/T0CKI

RC7/RX/DT

RC6/TX/CK

MCLR/VPP

RC2/CCP1

RD0/PSP0

RD1/PSP1

RD2/PSP2

RD3/PSP3

RD7/PSP7

RD4/PSP4

RD5/PSP5

RD6/PSP6

RB0/INT0

RB3/CCP2

RB1/INT1

RB2/INT2

RA0/AN0

RB7/PGD

RB6/PGC

RA1/AN1

RC5/SDO

RB5/PGM

IC1

OSC1 OSC2

RB4

11

15

40

39

38

37

35

36

34

33

3112

10

32

16

17

18

19

20

21

22

13 14

26

25

24

23

30

27

28

29

1

3

2

4

6

5

7

8

9

X1

4MHz

C3

22p

C4

22p

C6

100n

C7

100n

+5V

R3

10

k

R5

10

k

R4

10

k

K1

P3

K2

P4

R1

1k

C1

100n

100k

P2

100k

P1

R2

1k

C2

100n

S1 S2

ULN2803

IC3

VEE

+VS

11

12

13

14

15

16

17

18I1

I2

I3

I4

I5

I6

I7

I8

O1

O2

O3

O4

O5

O6

O7

O8

10

1

2

3

6

7

8

4

5

9

ULN2803

IC4

VEE

+VS

11

12

13

14

15

16

17

18I1

I2

I3

I4

I5

I6

I7

I8

O1

O2

O3

O4

O5

O6

O7

O8

10

1

2

3

6

7

8

4

5

9

+5V

C8

100n

K4

10

11 12

13 14

15 16

1 2

3 4

5 6

7 8

9

C0

C2

C1

C3

C4

C5

C6

C7

C10

C11

C8

C9

C14

C15

C12

C13

C0 C1

C2 C3

C4 C5

C6 C7

C8 C9

C10 C11

C12 C13

C14 C15

T1

BC547B

R7

10

Ω

BZ1C5

100µ10V

+5V

R6

10

Ω

+5V

S3

K3

1011

1213

1415

16

12

34

56

78

9

T2

T3

T4

T5

T6

T7

T8

T9

BC547B

R7

R6

R5

R4

R3

R2

R1

R0

8x

R8

56

Ω

R9

56

Ω

R10

56

Ω

R11

56

Ω

R12

56

Ω

R13

56

Ω

R14

56

Ω

R15

56

Ω

+5V

4805

IC5

C10

470µ25V

C9

10µ63V

D891N4001 +5V

Figure 1a. Le microcontrôleur en juge-arbitre.

Page 30: Generic Array Logic - Doctsf.com

d’Ohm. Partant d’une tension d’alimen-tation de 5 V, on retire la chute collec-teur/émetteur (0,7 V) et la tension auxbornes de la LED (quelque 1,8 V pourune rouge) ainsi que la chute sur l’é-tage Darlington du tampon ULN2803 (àpeu près 1 V), il reste 1,5 V sur la résis-tance. Si vous désirez par exemple un

courant de 10 mA, suivant la loiV = I·R ou R = V / I on obtient R =1,5 / 0,01 soit 150 Ω.

Mode d’emploiLe jeu se manipule à l’aide de deuxpotentiomètres et deux interrupteurs.

S1 sert à lancer la balle. S3 sélectionnela vitesse de la balle. S’il est fermé, laballe va plus vite, le degré de difficultés’en trouve plus élevé. Il y a encoreplace pour un troisième interrupteur(S2), mais on ne l’emploie pas dans cejeu-ci. Pour P3 et P4, on peut prendredes potentiomètres rotatifs ordinaires,pour changer l’emplacement desraquettes, mais des modèles à glis-sière se révèlent peut-être plus pra-tiques. Il est naturellement encoreplus agréable de faire usage d’un vraimanche de jeu.

Un joystick analogique pour PC com-porte d’habitude deux potentiomètres,un pour modifier la position dans lesens horizontal, l’autre pour le sensvertical. La plupart du temps, il s’agitde potentiomètres de 470 kΩ dont onn’utilise que la plage de 0 à 120 kΩ.Comme dans ce montage, c’est unevaleur nominale de 4,7 kΩ qui a étéprévue, si vous y raccordez un manchede jeu, prévoyez deux résistances enparallèle (entre +5 V et broche 2 etentre +5 V et broche 3 du processeur)pour atteindre une valeur de résistanceplus basse. La résultante d’une miseen parallèle se calcule comme suit :1/Rtotale = 1/R1 + 1/R2.

Si vous désirez atteindre une valeur de4,7 kΩ et que sur le manche :R1 = 120 kΩ, appliquez la formule :1/R2 = 1/R1 – 1/Rtotale avec pour résul-tat R2 = 4,89 kΩ.

La valeur normalisée la plus prochedans la série E vaut 4,7 kΩ, pas desouci donc. Sur le connecteur sub-D à15 broches du port de jeu, les bro-ches 1 et 3 servent au raccordement dela direction horizontale, les broches 1et 6 pour la direction verticale.

Les cellules R1/C1 et R2/C2 servent àéliminer le bruit produit par les poten-tiomètres.

elektor - 6/200440

K5

10

1112

1314

1516

12

34

56

78

9

D2

D3

D4

D5

D6

D7

D8

D10

D11

D12

D13

D14

D15

D16

D18

D19

D20

D21

D22

D23

D24

D1

D9

D17

D26

D27

D28

D29

D30

D31

D32

D25

D34

D35

D36

D37

D38

D39

D40

D42

D43

D44

D45

D46

D47

D48

D50

D51

D52

D53

D54

D55

D56

D33

D41

D49

D58

D59

D60

D61

D62

D63

D64

D57

D66

D67

D68

D69

D70

D71

D72

D74

D75

D76

D77

D78

D79

D80

D82

D83

D84

D85

D86

D87

D88

D65

D73

D81

K6

10

11 12

13 14

15 16

1 2

3 4

5 6

7 8

9

RD0

RD1

RD2

RD3

RD4

RD5

RD6

RD7

RD0

RD1

RD2

RD3

RD4

RD5

RD6

RD7

RD0

RD1

RD2

RD3

RD4

RD5

RD6

RD7

CD0 CD1 CD2 CD3

CD4 CD5 CD6 CD7

CD8 CD9 CD10

LTS4301ELD1

CC CCdp

10

1

a9

b7

c5

d4

e2

f

g

3 8

6

RD0

RD1

RD2

RD3

RD4

RD5

RD6

RD7

CD12

LTS4301ELD2

CC CCdp

10

1

a9

b7

c5

d4

e2

f

g

3 8

6

RD0

RD1

RD2

RD3

RD4

RD5

RD6

RD7

CD13

RD7

RD6

RD5

RD4

RD3

RD2

RD1

RD0

CD0 CD1

CD2 CD3

CD4 CD5

CD6 CD7

CD8 CD9

CD10 CD11

CD12 CD13

CD14 CD15

Figure 1b. Une nuée de LED remplace désormais l’écran de la télé.

C3,C4 = 22 pFC5 = 100 µF/10 V radialC6 à C8 = 100 nFC9 = 10 µF/63 V radialC10 = 470 µF/25 V radial

Semi-conducteurs :D1 à D8 = LED 5 mm rouge à haut

rendement tel que, par exemple, HLMP-

D101 de HP (Farnell-nr. 323-044)D89 = 1N4001LD1,LD2 = LTS4301E LiteOnT1 à T9 = BC547BIC1 = PIC18F452-I/PIC2 = 74HC4514 (74HCT4514 ou

4514)IC3,IC4 = ULN2803IC5 = 4805

Liste des composantsRésistances :R1,R2 = 1 kΩR3 à R6 = 10 kΩR7 = 10 ΩR8 à R15 = 56 ΩP1,P2 = ajustable 100 kΩ

Condensateurs :C1,C2 = 100 nF

Page 31: Generic Array Logic - Doctsf.com

ConstructionLa platine (figure 2) se compose dedeux parties à relier entre elles par ducâble plat. Le plus gros du travailconsistera à assembler la matrice deLED. La besogne n’est pas compli-quée, à condition de faire bien atten-tion à la polarité des LED avant d’avoirsoudé, systématiquement à l’envers, laquatre-vingt huitième ! La plupart dutemps, la cathode, la barre du symbole,correspond à la plus grande surface àl’intérieur de la LED et à la patte deraccordement la plus courte. N’empê-che, mieux vaut en contrôler au préala-ble la polarité à l’aide d’un testeur decontinuité, c’est très simple et telle-ment rassurant !

L’orientation des chiffres à 7 segmentsvous paraît peut-être incorrecte, maissi vous les installez sur la platinecomme l’indique la figure 2, ils fonc-tionneront comme il faut.Il faudra encore vous soucier de lapolarité des transistors et des conden-sateurs électrolytiques et les CI doi-vent aussi se monter dans le bon senssur la platine. Le processeur, contrôlez-le plutôt deux fois qu’une, c’est lui quicoûte le plus cher !

Il est conseillé d’incorporer le montagedans un boîtier capable d’héberger lesinterrupteurs, potentiomètres, raccordsd’alimentation et diodes électrolumi-nescentes. Un filtre rouge devant ladécoupe pour la matrice et l’affichagedu score sera du plus bel effet.Vous pouvez éventuellement remplacerl’alimentation secteur par quatre pilesbâton. En ce cas, prenez la consomma-tion des LED en considération et peut-être serait-il bon d’augmenter la valeurde R8 à R15 pour épargner les piles.

Le logicielIl subsiste la question du logiciel àcharger dans le PIC18F452. Comme

nous avons affaire à un jeu dont le prixse doit de rester modeste, nous avonschoisi un logiciel très simple que cha-cun pourra très facilement program-mer à partir de son PC. Un autre arti-cle de ce même numéro vous fourniratoute indication utile à ce sujet. Etcomme nous en avons l’habitude à

présent, ce logiciel est disponible gra-tuitement sur le site Internet d’Elektor(EPS030320-11).

(030320)

Projet: Andy MorellRédaction: David Daamen

6/2004 - elektor 41

Divers :K1 = P3 = potentiomètre 4kΩ7 linéaire,

mono, + embase SIL à 3 contactK2 = P4 = potentiomètre 4kΩ7 linéaire,

mono, + embase SIL à 3 contactK3,K4 = embase HE-10 à 2 rangées de

8 contactsK5,K6 = connecteur pour câble plat à

16 conducteurs encartable

S1 = bouton-poussoir unipolaire à contacttravail

S2 = n’existe pasS3 = interrupteur unipolaire à contact

travailX1 = quartz 4 MHzBZ1 = résonateur piézo CC 5 V

C1C2

C3 C4

C5

C6

C7

C8

C9C10

D1

D2

D3

D4

D5

D6

D7

D8

D9

D10

D11

D12

D13

D14

D15

D16

D17

D18

D19

D20

D21

D22

D23

D24

D25

D26

D27

D28

D29

D30

D31

D32

D33

D34

D35

D36

D37

D38

D39

D40

D41

D42

D43

D44

D45

D46

D47

D48

D49

D50

D51

D52

D53

D54

D55

D56

D57

D58

D59

D60

D61

D62

D63

D64

D65

D66

D67

D68

D69

D70

D71

D72

D73

D74

D75

D76

D77

D78

D79

D80

D81

D82

D83

D84

D85

D86

D87

D88

D89

IC1

IC2

IC3

IC4

IC5

K1 K2

K3 K4

K5 K6

LD1 LD2

P1 P2

R1R2

R3

R4

R5

R6

R7

R8R9

R10R11R12R13R14R15

S1

S2

S3

T1

T2

T3

T4

T5

T6

T7

T8

T9

X1

-++

0T030320-1

T

BZ1

Figure 2. La platine est en deux parties, raccordées l’une à l’autre par deux câblesen nappe.

Page 32: Generic Array Logic - Doctsf.com

Ce montage sophistiqué élimine, lors d’un enregistrement, les blocspublicitaires, ô combien gênants.

Attila – Bloque-pub TVFin des enregistrements de pubs

elektor - 6/200444

Michael Schulze Dipl.-Ing.

Page 33: Generic Array Logic - Doctsf.com

Ce problème, vous le connaisseztous : lors de l’enregistrement d’uneémission d’une chaîne commercialesur magnétoscope ou graveur de DVD,on a le choix soit de suivre l’émissionen « stand-by » et d’appuyer sur latouche STOP (en veillant à ne pasoublier d’appuyer à temps sur le bou-ton RECORD lorsque le programmereprend), soit on élimine la pub àgrand renfort de technique, soitencore on l’accepte tout simplement àcontre coeur.

Mais on peut également se résigner àpasser à la caisse : pour une chaîne dePay-TV sans pub, soit pour un servicede suppression de celle-ci, demandé àla « fée-télévision », notre approche.

Grâce à la législationLe bloqueur de pub que l’auteur a bap-tisé « ViConti » (VideoContinue ouViConti sont des marques déposées)peut uniquement fonctionner grâce aucontrat état-chaînes d’émission du 31août 1991 (en allemand :www.swr.de/imperia/md/content/rund-funkgebuehren/rfg staatsvertrag.pdf).Les paragraphes établissent en effetune différentiation nette entre lesémissions publicitaires et les contenusrédactionnels, ce qui se traduit par lasituation de fait que les contenusrédactionnels (dont font partie égale-ment les films) sont émis dotés du logode la chaîne alors que la pub ne lecomporte pas.

Une électronique reposant sur cetteconstatation doit :

– Reconnaître la présence ou non dulogo de la chaîne dans l’image detélévision,

– Surveiller l’image de télévision et, aucas où le logo disparaîtrait,

– Interrompre, au niveau de l’appareilenregistreur (magnétoscope, enregis-treur de DVD) l’enregistrement parune commande par infrarouge,

– Continuer de surveiller l’image TV et,lors de la réapparition du logo, redé-marrer l’enregistreur.

De nos jours, le traitement d’image entemps réel n’a plus rien d’exceptionnel.Les PC et des processeurs de signalspécialisés sont des outils prédestinéspour ce faire. Ceci à un coût (relative-ment) élevé il est vrai. Les microcontrô-leurs « ordinaires » sont visiblementtrop lents et le chapitre bloqueur depub serait ainsi rapidement clos, s’iln’existait pas un minuscule microcon-trôleur, le SX28 de Scenix (devenu Ubi-com) qui, en raison de son incroyablevitesse, constitue, dans des cas spéci-fiques du moins, une alternative auxprocesseurs de signaux.Si à l’origine le SX28 était spécifié pour50 MHz des essais ont montré qu’iltournait sans le moindre problème jus-qu’à 80 MHz au moins. Actuellement75 MHz sont devenus standard, uneversion 100 MHz si annoncée depuisun certain temps n’est pas encoredisponible.Puisque nous en sommes à parler ducontrôleur pourquoi ne pas jeter uncoup d’oeil rapide sur le schéma de lafigure 1. Outre le contrôleur, les com-posants les plus importants s’appel-lent LM1881, IC9, un séparateur desynchro vidéo et ADC1175, un CAN(Convertisseur Analogique/Numé-rique). On retrouve 2 périphériquespour microcontrôleur, IDT6698, IC5,une RAM 64 K x 4 servant à la mémo-risation des informations d’image etune EEPROM I2C. Le contrôleur pilotela RAM en mode sériel au travers decompteurs rapides, IC3 pour les pointsd’image par ligne (pixels) et IC8 pourles lignes d’image. Le multiplicateurd’horloge ICS502 dérive du quartz de

20 MHz l’horloge de 80 MHz nécessaireau contrôleur. Le CAN est lui cadencéà 20 MHz.L’ampli T1/T2 rehausse le signal vidéoà traiter à 2 V environ et en filtre lachroma (porteuse couleur) par le biaisde L1, C5 et C6. Le CAN, IC2, numérisesur 8 bits le signal amplifié, le résultatattaquant le port RC du contrôleur.Le séparateur de synchro extrait dusignal vidéo d’une part le signal deligne (BP) utilisé pour la synchronisa-tion du contrôleur et le pilotage du cir-cuit de verrouillage, IC7.C et T3 defaçon à ce que le signal vidéo coupléen alternatif garde le niveau requis. Lelogiciel a en outre besoin du signalPair/Impair (Odd/Even) pour pouvoirreconstituer correctement les deuxdemi-images mémorisées.Il faut tout d’abord que la télécom-mande IR « apprenne » au contrôleur lesignal servant à arrêter l’enregistreurlors d’une pub. D’où la présence d’unrécepteur IR du type SFH203A. À l’ori-gine, le récepteur attaquait directe-ment une entrée à trigger de Schmitt,mais une porte NON-ET (NAND) clas-sique de IC7.D remplit ici la mêmefonction. Il n’est pas nécessaire de pré-voir d’amplification vu que la sensibi-lité de l’ampli doit être, à dessein, fai-ble (quelques cm d’écart de fonctionseulement). Depuis le trigger deSchmitt le signal est, si besoin était,transféré à l’entrée RB1 du contrôleurpar le biais du circuit multiplexeur queconstituent IC7 et T4.Les 2 signaux IR (enregistrement etpause) reçus par le magnétoscope sontmémorisés dans l’EEPROM sérielleIC6, une 24C08, d’où ils sont, en cas debesoin, extraits et émis par le biais dela diode d’émission IR LD1, uneLD271H.Si le bloqueur de pub ViConti ne pos-sède pas d’affichage pour visualisationde son état, il n’en comporte pas moins2 LED, D3 et D4. Pilotées par une seuleligne elles peuvent visualiser 4 situa-

6/2004 - elektor 45

Page 34: Generic Array Logic - Doctsf.com

tions (éteintes, vert allumé, rougeallumé et allumées).

Logo: 3 phasesÀ quoi un être humain reconnaît-il unlogo de chaîne ? Un coup d’oeil auxhebdomadaires donnant les program-mes et on aura reconnu les caractèreset graphiques... Un contrôleur lui ne litpas de journal et ne comporte pasd’entrée de « déjà vu ». Comment fait-ilalors pour reconnaître le logo d’unechaîne ?Le logo de chaîne est, en règle géné-rale, le seul contenu d’image statiquealors que le reste de l’image changeplus ou moins rapidement. Il faut par-tant voir à quel endroit de l’image TV

le contenu ne change pas, exceptionfaite du moment où le logo disparaîtchangement signalant le début d’unbloc de pub.Le logo étant également détectable surles écrans N&B, on pourra se conten-ter d’un traitement de l’imageNoir&Blanc. À l’endroit où se trouve lelogo, les pixels conservent la mêmeluminosité. Le pixel numérisé conservela même valeur, les pixels environnantprésentant des variations de lumino-sité plus ou moins importantes.

Phase 1Si l’on attribue au logo de chaîne unniveau de luminosité minimal de, dis-ons, 20%, on pourra attendre que lespixels environnants passent, en fonc-

tion du type d’émission, tôt ou tard,mais espérons-le avant l’arrivée dubloc de pub, au minimum une fois endessous indiquant ainsi qu’ils ne fontpas partie du logo. C’est ce qu’il fautdétecter de façon à établir une « carto-graphie » en N&B de l’écran (noir = 0,blanc = 1 = logo). La figure 2 montreune partie d’écran avec logo et le logofiltré.Le contrôleur prend en compte sur leport RC les pixels présentés sous laforme d’un nombre à 8 bits et les com-pare à une valeur de seuil et place,lorsqu’ils sont reconnus comme ne fai-sant pas partie du logo, dans lamémoire d’image un pixel noir (= pre-mier bit, couleur de base = blanc) àl’emplacement correspondant.

elektor - 6/200446

C19

10µ16V

C20

10µ16V

C2

100n

C3

100n

R1

47

Ω

C21

10µ16V

C22

10µ16V

24C08

IC6

SDA

SCL

A0

A1

A0

NC1

5

8

4

62

3

7

ICS502

IC1

CLK

REF

S1X1

S0X2

7

4

8

1

5

6

2

3

CTR12

IC3

CT=0

74AC4040

10

11

13

15

14

12

11

10

CT

16

4

2

3

5

6

7

9

1

+

9

8

7

6

5

4

3

2

1

0

8

CTR12

IC8

CT=0

74AC4040

10

11

13

15

14

12

11

10

CT

16

4

2

3

5

6

7

9

1

+

9

8

7

6

5

4

3

2

1

0

8

+5V

+5V

+5V

+5V

+5V

+5V

+5V

61298P6

IC6 I/O1

I/O2

I/O3

I/O4

A10

A11

A12

A13

A14

A15

A0

14 13

OE

12CS

28

16

17

18

19

NC20

NC21

NC

15

WE

A1

A2

A3

A4

A5

A6

A710 A811 A922

23

24

25

26

27

2

1

3

4

5

6

7

8

9

A10

A11

A12

A13

A14

A15

A10

A11

A12

A13

A14

A15

D0

D1

D2

D3

D4

D5

D6

D7

D0

D1

D2

D3

D4

D5

D6

D7

R16

12

0k

R17

22

0k

C17

33p

R21

1k2

R20

27

Ω

T5

BC337/40LD1

C25

100µ 16V

+5V

D3

D4

D1

1N4148

D2

1N4148

R18

1k

5

R19

1k

5

+5V

+5V

X1

20MHz

+5V

DRBR

C1

10n

SX28AC/DP

IC4

OSC1

OSC2

RTCC

MCLR

RC7

RC6

RC5

RC4

RC3

RC2

RC1

RC0

RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0

RA3

RA2

RA1

RA0

NC1

25

27

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

26

28

NC

2

4

9

8

7

6

1

3

5

R10

3k

9

C7

100n

+5V

S1

RESET

R2

8k

2

R3

22

R4

10

R5

3k

6

R6

10

R7

*R8

12

C24

*

T1

BC547B

T2BC557B

L1

4µH7

C5

220p

C6

56p

ADC1175

IC2

CIJMVRBS

VRTS

CLK

VRB

VRT

VIN

D0

OE

11

24

D1

D2

D3

D4

D5

D6

D710

12

20 21

1314 15

23

22

16

17

18

19

3

1

4

5

6

7

8

9

2

A A A

A A

DD

DD

+5V

C4

100n

T3

BC547B

R9

10

k

C9

100p

9 10

8

IC7.C&

4

56

IC7.B

&

12

1311

IC7.D

&

1

23

IC7.A

&

D5

SFH203FH

R22

22

0k

C18

220n

+5V

R15

10k

T4

BC547B

R14

3k3

+5V

C23

10µ16V

C11

100n

C10

560p

C13

220n

R13

68

0k

R12

62

R11

75

Ω LM1881

CSYNCVIDEO

VSYNC

IC9

RSETO/E

BP

1

5

6

2

7

3

8

4

C8

100n

K1VIDEO

78L05

IC10

C12

220n

C14

100n

C15

100n

C16

100n

+5V

K2

+5V

IC7

14

7

IC7 = 74HCT00

IR REMOTE CONTROL OUT

IR TRANSMITTER

IR REMOTE CONTROL IN

DC IN

7V5280mA

040051 - 11

Figure 1. Le coeur du bloqueur de pub ViConti est un microcontrôleur de Scenix surcadencé.

Page 35: Generic Array Logic - Doctsf.com

En raison de la taille limitée de la RAMinterne du SX28, 136 octets seulement,il faut le doter d’une mémoire externe.Il a fallu, pour conserver les lignes deport précieuses, intercaler une circui-terie auxiliaire constituée de 2 comp-teurs rapides chargés du pilotage deslignes d’adresse de la mémoire.Avec un SX28 travaillant à 80 MHz, leprogramme en assembleur requierttrès exactement 9 cycles-machine(instructions) à 12,5 ns chacune pour letraitement d’un pixel. (Cf. EXTRAIT DELISTAGE 1)

Dans ces conditions on pourra, sur unelongueur de ligne visible de l’image TVde 52 µs, traiter un nombre approxima-tif de 460 pixels par ligne. La synchro-nisation du programme avec les lignesd’images fournies se fait ligne parligne par une interruption externegénérée par le signal lignes duLM1881.Le traitement se limite à une bande de128 lignes dans le tiers supérieur de l’i-mage, vu que c’est l’endroit de prédi-lection des logos de chaîne. À inter-valle régulier on vérifie s’il se trouvedes pixels blancs (faisant partie dulogo) dans un rectangle réservé typi-quement au logo dans le coin en hautà gauche ou à droite de l’écran. Si telest le cas, c’est le début de la

Phase 2Vu qu’il faut, en cas d’absence du logo,réagir rapidement, en quelques dixiè-mes de seconde dans la situationidéale, il nous faut des critères permet-tant de détecter, indépendammentd’un mouvement aléatoire du contenude l’image, la présence ou non du logoidentifié. Ici encore on peut se conten-ter de l’image N&B. Le logo constituéde quelques centaines de pixels pos-sède une luminosité moyenne par pixeltypique qui se différencie normalementfort bien de la valeur des pixels envi-ronnants. Les paramètres typiques cor-

respondant au logo présent et à sonenvironnement sont déterminés aucours de cette phase avant le début del’étape de surveillance.La taille du logo est déterminée par unexamen ligne par ligne des pixels enmémoire à la recherche des pixelsblancs « les plus extérieurs ». Ajoutons-y 3 pixels tout autour et les coordon-

nées de la plage de surveillance dulogo (le rectangle du logo) sont fixées !On compte les pixels blancs présentsdans le logo et on distribue alors aléa-toirement exactement le même nombrede pixels noirs dans le rectangle dulogo. Les pixels restants sont neutrali-sés (peints en gris) par le biais dusecond bit dans la mémoire d’image.

6/2004 - elektor 47

Figure 2. On voit en haut une partie de l’image d’origine en N&B, en dessous lelogo en ayant été filtré.

Figure 3. Partie de l’image d’origine, à côté partie d’image stockée ligne par lignequi sera comparée au logo en dessous. Les pixels blancs représentent le logo, lesnoirs sont les pixels de référence, les gris sont neutres. Les nombres donnent lesvaleurs de seuil et de référence.

EXTRAIT DE LISTAGE 1

mov W,#$02 ;Compteur de pixels: 460 pixels par ligne!

mov $1E,Wmov W,#$CDmov $1D,W ;Boucle pour le test d’une ligne d’image

:loop1 setb RA.0 ;Remise à zéro impulsion écriture mémoire ext.

clrb RA.1 ;Remise à zéro horloge compteur pixels ext.

mov W,#$33 ;Seuil de recherche de logo

mov W,RC-W ;Si W < RC positionner Carry-Flag

rl RA ;Impulsion écriture mémoire ext. si Carry pas positionné

;Horloge compteur pixels ext.

decsz $1Djmp :loop1decsz $1Ejmp :loop1

Page 36: Generic Array Logic - Doctsf.com

Phase 3Suivi du programme en temps réel,c’est-à-dire image par image. On déter-mine, pour chaque image, la moyennede luminosité des pixels du logo etd’un nombre identique de pixels repré-

sentatifs ne faisant pas partie du logo.Lorsque la différence entre les2 valeurs passe à plusieurs reprises endeçà d’une valeur de seuil prédétermi-née, cela constitue un indice signalantla disparition du logo.

La figure 3 montre, en haut, un extraitde l’image originale, à côté l’extrait d’i-mage mémorisé ligne par ligne com-paré au logo en dessous. On voit à cetendroit les pixels blancs du logo et lespixels de référence noirs. Les pixelsgris sont neutres, les nombres repré-sentant les valeurs de seuil et de réfé-rence.Le patron de bit stocké en EEPROM dela télécommande IR pour l’interruptionde l’enregistrement vidéo est émis parl’émetteur IR dans l’espoir que l’enre-gistreur le détectera et fera en sorted’interrompre l’enregistrement.La surveillance du programme se pour-suit, sachant que l’on relève quelquepeu la valeur de seuil de la différencede luminosité moyenne pour la recon-naissance du retour du logo de chaîne.Dès que le logo a été identifié avec cer-titude, l’émetteur IR émet en directionde l’enregistreur le signal pour lareprise de l’enregistrement.Pendant la phase de surveillance laposition du logo dans l’image TV estconnue. Maintenant, on mémorisedans la RAM interne du microcontrô-leur, ligne par ligne, la série des pixelsconstituant le logo.Pour obtenir la même résolution qu’enphase 1, on travaille à nouveau à9 cycles-machine par pixel (Cf.EXTRAIT DE LISTAGE 2)

Au cours de l’intervalle de tempsavant la fin de ligne on détermine si lepixel mémorisé à cet instant fait par-tie du groupe des pixels du logo(blanc), des pixels de référence (noir)ou des pixels neutres (gris) tout en fai-sant une moyenne de la somme deluminosité à cet instant (Cf. EXTRAITDE LISTAGE 3)

Une fois que toutes les luminosités depixel ont été additionnées, on crée ladifférence des sommes de luminositédu logo et des pixels de référence et onprocède, en fonction de la taille du

elektor - 6/200448

EXTRAIT DE LISTAGE 2

mov W,$1D ;Contient largeur du rectangle du logomov $04,W

:loop4 setb $04.4nopmov W,RC ;xxx octets lire l’image du CAN dans la mémoire

RAMmov $00,Wnopincsz $04jmp :loop4

EXTRAIT DE LISTAGE 3

mov W,$1Dmov $04,W

:loop5 inc RA ;Lire xxx octets de la mémoire RAM et lesadditionner

setb $04.4mov W,$00snb RB.6 ;Bit de mémoire ext. de la mémoire d’imagejmp :grausb RB.7 ; Bit de mémoire ext. de la mémoire d’imagejmp :schwaadd $09,W ;Additionner blancssnb C_Flagincsz $0A ;Somme blancs dans $0B, $0A, $09dec $0Binc $0Bdec RAincsz $04jmp :loop5ret

:schwa add $0C,W ;additionner noirssnb C_Flagincsz $0D ;somme noirs dans $0E, $0D, $0Cdec $0Einc $0Edec RAincsz $04jmp :loop5ret

:grau jmp :x3 ;dummy pour pixel gris:x3 jmp :x4:x4 dec RA

incsz $04jmp :loop5ret

Note : langue d’origine du fichier assembleur est l’allemand.

Page 37: Generic Array Logic - Doctsf.com

logo, à une comparaison avec unevaleur de seuil adaptée. Si, successive-ment, on trouve des images TV présen-tant une différence trop faible, on endéduit que le logo a disparu et onenvoie la commande par infrarouged’arrêter l’enregistrement.Scenix propose un module logiciel depilotage du bus I2C baptisé Virtual Per-ipheral; nous l’avons modifié pour lacommande de l’EEPROM en vue de lamémorisation du code de télécom-mande IR de l’enregistreur à télécom-mander.

Comme il n’est nécessaire d’envoyer àl’enregistreur que 2 commandes IR,l’intégration d’une fonction d’appren-tissage tombe sous le sens. Lespatrons d’impulsions enregistrés parinterruption subissent, en mode d’ap-prentissage, une quantification sur unechrono-trame, les valeurs obtenuesétant stockées définitivement enEEPROM. En cas de besoin, les don-nées en EEPROM sont transférées enRAM de sorte que le train d’impulsionspourra être reconstruit, indépendam-ment du code utilisé avant d’être émispar l’émetteur IR.

Mise en oeuvrePour un fonctionnement correct il fautdisposer d’un très bon signal vidéo. Sil’image ne se synchronise pas à 100%,le logo frétille (ce que l’on ne détectepas à l’oeil nu) mais qui empêche uneidentification correcte.Après application de la tension d’ali-mentation ou une action sur la touched’initialisation (Reset), le programmese déroule en 4 étapes. Au cours de lapremière on peut choisir les 2 comman-des IR servant au pilotage de l’enregis-treur.

APPRENTISSAGE DU CODE IRAllumer la LED verteAttendre le signal IR

On dispose alors de 4 secondes envi-ron pour actionner la touche requise(REC par exemple). Il faudra placer l’é-metteur IR de la télécommande àquelques centimètres seulement de ladiode IR de réception du bloqueur depub. S’il ne reçoit pas de signal IR aucours de ces 4 s, le programme passeà l’étape suivante : RECHERCHE DULOGO, sinon il passe aux points sui-vants :

Détection d’un signal IRClignotement de la LED verteLecture du signal IRMémoriser le code en EEPROMExtinction de la LED verteAllumage de la LED rougeAttendre un signal IR

Le processus d’apprentissage du codePAUSE est similaire à ceci près quel’on ne dispose que de 2 s. En l’ab-sence de réception de signal IR aucours de ces 2 s, le programme passeà l’étape suivante : RECHERCHE DULOGO, sinon il passe aux points sui-vants :

Détection d’unsignal IRClignote-ment dela LEDrougeLecture dusignal IRMémoriserle code enEEPROMExtinction dela LED rouge

La saisie descommandes d’en-r e g i s t r e m e n t(Record) et d’arrêt(Pause) –il est bienentendu possible deprogrammer d’autres

commandes de télécommande– ne sefait qu’une fois, lors de la première uti-lisation ou lorsque l’on veut modifierles commandes. Sinon il suffit de mettrel’appareil sous tension !

RECHERCHE DU LOGOAllumer les LED rouge et verte

Voici la procédure exécutée successi-vement pour la première et la secondedemi-image :

Attendre une interruption de début d’i-mageAttendre les interruptions de ligneTraitement des lignes 33 à 96

S’il est impossible de détecter le logodans la mémoire d’image externe, leprogramme reste dans cette boucle,sinon il passe à l’étape

ANALYSE DU LOGONous avons examiné ce processusdans le détail dans le paragraphe inti-tulé Phase 2.

6/2004 - elektor

Remarque :Il est important, pour le fonctionnement du bloqueur de pub que :

– Le logo de la chaîne se trouve dans le tiers supérieur de l’image et àune position fixe (ce qui est le cas avec nombre de chaînes françai-ses et la majorité des chaînes étrangères)

– Le signal vidéo soit de très bonne qualité. Si l’image ne synchronisepas à 100%, le logo frétille (ce qui n’est pratiquement pas visible àl’oeil nu) ce qui empêche une identification correcte du logo.

Page 38: Generic Array Logic - Doctsf.com

SURVEILLANCE DU LOGO

La procédure suivante est exécutéesuccessivement pour la première et laseconde demi-image :

Attendre une interruption de début d’i-mageAttendre les interruptions de ligneTraitement des lignes 33 à 96

Après traitement, le logiciel prend unedécision :

Logo présentLa LED verte clignote périodiquementRetour à la procédure SURVEILLANCEDU LOGO

À nouveau pas de détection de logoLa LED rouge clignote périodiquementOn passe à ÉMISSION DU CODE IR 1

Le logo est à nouveau détectéLa LED verte clignote périodiquementOn passe à ÉMISSION DU CODE IR 2

elektor - 6/200450

Liste des composants Résistances :(toutes à film métallique, 0,25 W/5%)R1 = 47 ΩR2 = 8kΩ2R3 = 220 ΩR4,R6 = 100 ΩR5 = 3kΩ6R7 = non implantéeR8 = 120 ΩR9,R15 = 10 kΩR10 = 3kΩ9R11 = 75 Ω

R12 = 620 ΩR13 = 680 kΩR14 = 3kΩ3R16 = 120 kΩR17,R22 = 220 kΩR18,R19 = 1kΩ5R20 = 27 ΩR21 = 1kΩ2

Condensateurs :C1 = 10 nF/63 V NP0C2 à C4,C7,C8,C11,C14 à C16 =

100 nF/63 V X7RC5= 220 pF/63 V NP0C6 = 56 pF/63 V NP0C9 = 100 pF/63 V NP0C10= 560 pF/63 V NP0C12,C13,C18 = 220 nF/63 V X7RC17 = 33 pF/63 V NP0C19 à C23 = 10 µF/16 V E2,5-5C24 = non implantéC25 =100 µF/16 V E2,5-6

Semi-conducteurs :

Figure 4. La sérigraphie de la platinedouble face montre que le « client »source de problèmes potentiels est laSRAM en boîtier SOJ à 28 pattes.

Page 39: Generic Array Logic - Doctsf.com

ÉMISSION DU CODE IR 1Chercher le premier code IR apprisdans l’EEPROM et l’émettre 3 foisRevenir à la procédure SUR-VEILLANCE DU LOGO

ÉMISSION DU CODE IR 2Chercher le second code IR apprisdans l’EEPROM et l’émettre 3 foisRevenir à la procédure SUR-VEILLANCE DU LOGO

ConstructionLes dimensions de la platine doubleface à trous métallisés du bloqueur depub sont telles qu’il se glisse exacte-ment dans le coffret mentionné sansqu’il ne soit nécessaire de câbler decomposants. L’implantation des compo-sants appelle quelques remarques vuque le multiplicateur d’horloge, leCANet la RAM sont des CMS. Si le soudagedes 2 premiers composants ne requiertqu’un fer à souder à pointe fine et unemain assurée, la mémoire SRAM elle seprésente sous la forme d’un boîtier SOJ

dont les broches se trouvent sous lecomposant. On utilisera une méthode« brutale » mais efficace :1. Fixer le circuit en 2 endroits diamé-

tralement opposés en soudant sesconnexions extérieures.

2. On soude aussi rapidement que pos-sible, sans tenir compte des pontsde soudure pouvant être occasion-nés par cette opération, toutes lespattes. On préférera un fer à soudernormal (pas de pointe en aiguille)les choses allant plus vite.

3. On positionne devant les pattessoudées un morceau de tresse àdessouder imbibée de flux de dés-oudage et on fait passer un fer àsouder bien chaud le long des pat-tes. Avec un rien de chance, on aurapu éliminer ainsi tout excédent desoudure, les soudures paraissantfort honnêtes. Il va bien entendu fal-loir vérifier qu’il n’existe plus depont de soudure. L’important estque la soudure contienne suffisam-ment de flux de soudage et que leschoses aillent vite.

La mise en place du reste des compo-sants n’appelle pas de remarque parti-culière. Attention à la polarité correctedes diodes, condensateurs, transistorset circuits intégrés.

L’embase au centre de la platine sertuniquement lors d’une programmationen circuit (In-Circuit-Programming àl’aide de la SX-Key de Parallax) ducontrôleur. Pour une utilisation nor-male, il suffit, comme le montre lafigure 5, d’implanter un cavalier enposition 1, de manière à fournir l’hor-loge au contrôleur.

La figure 6 montre, en guise de conclu-sion, la technique de réalisation de l’é-metteur IR. On soude une diode IR àun jack, l’ensemble étant placé dansun support pour jack en équerre. Ladiode est verrouillée à l’aide d’une ron-delle en plastique. Il suffira ensuite d’o-rienter la LED pour qu’elle soit parfai-tement dirigée sur la diode de récep-tion de l’enregistreur.

(040051-1)

6/2004 - elektor 51

Figure 6. La tête d’émission IR est constituée d’un jack auquel on soude la diode aulien d’un câble.

Figure 5. Le cavalier placé ainsi surl’embase de programmation sert autransfert de l’horloge vers lemicrocontrôleur.

D1,D2 = 1N4148D3 = LED 5 mm rouge (faible courant)D4 = LED 5 mm verte (faible courant)D5 = SFH203FA (Infineon)T1,T3,T4 = BC547BT2 = BC557BT5 = BC337/40LD1 = LD271-H (Infineon/Osram) *IC1 = ICS502M (ICS)IC2 = ADC1175CIJM (National)IC3,IC8 = 74AC4040IC4 = SX28AC/DP (Scenix, devenu

Ubicom)IC5 = 61298P6 SOJ28-3 (IDT)IC6 = NM24C08N08E (Fairchild)IC7 = 74HCT00IC9 = LM1881N08E (National)IC10 = 78L05

Divers :X1 = quartz 20 MHz (HC49U-H)L1 = self 4µH7K1 = embase ChinchK2 = embase basse tension 2 mm

K3 = mini-embase jackS1 = bouton-poussoir à contact travail (tel

que, par exemple, Schurter 1301.9502sans capuchon)

alimentation secteur 7,5 à9 VCC/300 mA

boîtier

Tête d’émission IRjack mâle (tel que, par exemple, Lumberg

KLS2SL)diode d’émission IR LD271-H (Infineon)

Page 40: Generic Array Logic - Doctsf.com

elektor - 6/200452

Hans Weber

Cela fait plus de 10 ans que l’on travaille en Europe àl’introduction commerciale de la radiodiffusion numérique,le DAB. Si dans certains pays d’Europe de l’Ouest etCentrale, le réseau se développe selon les plans, il n’enva pas de même en ce qui concerne la vente desrécepteurs. Depuis fin 2002, les choses ont changé enGrande-Bretagne et les premiers signes d’un retournementde tendance se font jour sur le reste du Continent.

La DAB en Europe10 ANS PLUS TARD

Operational ServicesPre-Operational Services

Page 41: Generic Array Logic - Doctsf.com

Il est un point sur lequel tous les stratèges et les techniciensdes organismes de radiodiffusion européens sont d’accord :les systèmes analogiques trafiquant en FM voire même enPetites Ondes sont techniquement dépassés, la qualité deréception n’est pas optimale et les fréquences disponibles nesont plus suffisantes. Dans les 15 prochaines années la radio-diffusion analogique devra être complètement numérisée. Etpourtant la DAB (Digital Audio Broadcasting) est resté coin-cée dans ses starting-blocks. La France, et l’Allemagne aussi,constituent un exemple type d’une stratégie ratée.

Un peu de patience, S.V.P.Depuis quelque temps déjà, tous les 2 ans, le Salon de laRadio de Berlin prévoyait la percée définitive de DAB. Lesplans de la réalisation d’un réseau d’émetteurs voyaient lejour, les producteurs de programmes d’état et commerciauxannonçaient leur intention de passer très bientôt à l’âge de laradiodiffusion numérique, certains fabricants n’hésitaientmême pas à présenter des prototypes, puis récemment desappareils de série, dont le prix ne répond cependant pas auximpératifs d’un marché de masse.Dans les couloirs des organisations ayant trait à la radiodiffu-sion on se mit à parler d’approche synthétisée, de répartitiondes fréquences. Les experts ne sont pas encore d’accord quantà la réponse à donner à la question de savoir s’il faut proposeà l’auditeur ses programmes habituels en numérique cette fois(en « Simulcast ») ou s’il faut lancer de nouveaux program-mes en vue d’attirer une nouvelle clientèle. La radio classiquesuffit-elle comme application ou seront-ce de nouveaux servi-ces de données qui produiront la percée finale ? Mais il se faitégalement jour une sorte de « guerre des religions » : DAB ou

TNT (Télévision Numérique Terrestre) ? Voire même DRM ?L’an dernier, la décision semble avoir été prise : le successeurnumérique de la radio FM ne pourrait être que DAB. Il estutopique, d’imaginer un réseau d’émetteurs TNT couvranteffectivement la totalité de l’Hexagone dans les prochainesannées. Qui le financerait ? Il ne serait pas rentable d’imagi-ner un multiplex TNT réservé à la radiodiffusion, sauf pourcertaines zones à forte densité de population, de sorte que lesprogrammes de radio se verraient toujours voyager en piggy-back sur les programmes de TV. Une troisième forme de radionumérique terrestre, DRM (Digital Radio Mondiale) neconvient pas, sous sa forme actuelle, pour une distributionrégionale et encore moins locale. En conclusion, DAB, TNT-R et DRM ont été conçus pour 3 domaines d’applications dif-férents; ces systèmes peuvent coexister voire se compléter,mais pas se substituer l’un à l’autre.Tout le monde était d’accord sur un point, la mise en place duréseau DAB ne pouvait se faire qu’avec une aide importantede l’État. Dans le domaine technique les choses avancentgrâce à des fonds importants. Si la France est en retard parrapport à la plupart des pays européens, 25% de la populationseulement a accès à DAB, alors que ce pourcentage atteintplus de 80% en Allemagne, de 85% en Angleterre avec unchoix de services doubles de celui de la FM, 98% en Bel-gique, 75% au Danemark, 50% en Espagne, 70% au Portugal,50% en Norvège et plus de 40% en Finlande, il sembleraitque l’on mette les bouchées doubles maintenant que la déci-sion d’installer DAB a été prise. Les plus optimistes prévoientune couverture numérique de la France achevée en 2006. Letemps presse. Mais d’autres sources sont bien moins optimis-tes… En effet, hormis d’anciens sites de diffusion pilote dontles autorisation sont à ce jour caduques, il n’existe pas encore,

6/2004 - elektor 53

Figure 1.Couverture DABdans le monde(source World DAB Forum).

Page 42: Generic Array Logic - Doctsf.com

à l’écriture de ces lignes, d’autorisation de diffusion officielledu DAB en France.Pour nous faire une idée de ce qui pourrait nous attendre, pre-nons l’exemple de la RFA. Le nombre de programmes propo-sés ne cesse de croître, les partisans de l’approche « nouveauxprogrammes » comme la Bavière, jouent la carte de nouveauxprogrammes impossibles à écouter en FM, se trouvantconfrontés à ceux qui préfèrent la philosophie Simulcast,principalement pour des raisons de coûts.

Récepteur à 99 €Les choses se présentent tout autrement en Grande-Bretagne :Le marché a pris vie fin 2002. On s’y était rendu compte quele succès des récepteurs DAB serait inévitablement lié à leurprix de revient. On y considérait que la « barrière magique »se situait en deçà des 100 livres. L’initiative de propose un« récepteur pour cuisine à 99 livres » n’avait pas pour origineles fabricants, mais les producteurs de programmes. La BBCet d’autres stations privées dont Digital One en particulier,mirent des moyens à disposition pour le développement d’unepuce, « Chorus », dont la fabrication coûtait si peu qu’il deve-nait possible de franchir cette barrière magique, avecquelques subventions au départ il est vrai. Juste avant Noël2003, “PURE Digital Evoke-1” fut, soutenu par une campa-gne publicitaire, proposé dans différents magasins sélection-nés et vendus en quelques heures seulement. Ce « pré-allu-mage » a incité d’autres fabricants à se lancer dans la batailleavec d’autres offres intéressantes. L’impact de cette multipli-cation d’offres fut une chute des prix, le récepteur le moinscher ne coûtant plus que 70 £ (105 €), et une prise de cons-cience par le grand public de l’existence de ces produits,même si le prix est encore (relativement) élevé.Le nombre des récepteurs DAB vendu passa de quelque50 000 mi-2002 à plus d’un demi-million et ceci avec unecouverture territoriale similaire à celle de l’Allemagne voiredevenue même moindre depuis.À noter au passage qu’en Grande Bretagne la situation dedépart était autre que celle existant en RFA : les stations trafi-quant en Petites Ondes y étaient bien plus courantes de sorteque la différence de qualité par rapport à DAB était sensible-ment plus évidente qu’elle ne l’est par rapport à la FM. Deplus, la DAB s’est vu attribuer des programmes impossibles àcapter en analogique fort bien soutenus par les média.Autre avantage par rapport à la RFA : en Grande Bretagne iln’existe qu’une plage de fréquences pour DAB, la bande III(de 174 à 240 MHz). En RFA on émet également en bande L(1 452 à 1 492 MHz), ce qui accroît la complexité et limite laportée des émetteurs.

Europe de l’Ouest : différencesComme nous le disions plus haut, la Belgique peut se targuerd’une couverture presque complète, avec 98%, ce qui situe cepays en tête de DAB.Nous en venons à la situation en France, où, dès le départ, ons’est concentré sur les régions à forte densité de population.Comme le montre la carte plus haut, Paris, Lyon, Marseille,Toulouse et Nantes furent les premières métropoles régionalesà pouvoir capter des programmes DAB. Les Pays-Bas furentle dernier pays de la Communauté Européenne (dans son étatd’avant le 1er mai 2004) à avoir, le 27 février dernier, décidé

elektor - 6/200454

Figure 2.Couverture DAB

en France.

Figure 3. Tuner DABhaut de gamme

EDAB de Restek.

Figure 4. Il existedéjà des récepteursDAB compacts avec

gamme L pourmoins de 200 E

(www.thiecom.de).

Page 43: Generic Array Logic - Doctsf.com

de se lancer dans la DAB après avoir procédé à des tests ayantduré pas moins de 5 ans. Ici aussi, on a opté pour l’approche« forte densité de population » de sorte que 40% de la popula-tion est actuellement « à portée » de DAB.Le point commun de ces derniers pays est que le nombre derécepteurs vendus se situe bien en retrait de l’évolution duréseau d’émetteurs DAB. Cela peut tenir au fait que ce mar-ché-niche n’est pas encore assez « juteux » pour le moment.

Les appareils du marchéLe marché grand public se subdivise en 4 parties importantes.Les auto-radios, considérées comme le segment de marché leplus important, ce qui explique l’entrain mis à couvrir lesaxes routiers importants (celui de Tours à Poitiers a servi dezone de test). Les prix restent relativement constants. Le lea-der du marché Blaupunkt propose son « Woodstock 53 » pour579 €. Le Allixx de Grundig est un peu plus abordable à

399 €. Les prix en varient guère d’un pays à l’autre. Seule laGrande Bretagne est, avec une offre inférieure à 200 £ (300 €

pour le « Goodmans »), en avance sur le reste de l’Europe.Il en va autrement pour les récepteurs mobiles ou portatifs :au Royaume Uni ce sont les petits récepteurs bon marché(tout est relatif) qui ne connaissent que la bande III, quiconstituent l’offre la plus intéressante. Il est possible detrouver des récepteurs portatifs pour de l’ordre de 70 £(105 €). En Allemagne, les prix sont, jusqu’à présent, restéscoincés au-delà de 200 E. Jusqu’à présent, car au SalonCeBIT 2004 TechniSat a présenté des récepteurs meilleurmarché : le DAB-Man 1 pour 169,99 € et comme récepteurde salon, le Digit-Radio DAB pour 159,99 €. À noter quec’est à CeBIT que fut présenté le premier récepteur tantpour DAB que pour DRM, le Starwaves Prelude. Ce récep-teur fabriqué par une petite société de Hanovre ne seradisponible qu’en fin d’année : son prix, un « nombre d’eurosà 3 chiffres haut de gamme ».

6/2004 - elektor 55

Au coeur de DABLors d’une recherche de composants pourrécepteur DAB on bute inévitablement sur2 fabricants anglais : FrontierSilicon(www.frontier-silicon.com) et RadioScape(www.radioscape.com). Le Chorus FS1010constitue le produit de base de la palette deFrontierSilicon. Il s’agit d’un processeur multi-media à forte intégration doté d’un CAN enentrée, d’un noyau de processeur DSP, d’uncoprocesseur DAB, de RAM embarquée et demémoire cache, sans oublier une paletteimpressionnante de périphériques. Il ne com-porte pas de CNA de sorte que l’utilisateurpotentiel peut compliquer les choses à loisir,avec ou sans CNA pour écraser les coûts.FrontierSilicon propose également des modulescomplets à l’intention des fabricants de récep-teurs, modules comportant déjà le tuner (frontend) et quelques autres périphériques. Avantde disposer d’un récepteur complet il faudraau fabricant ajouter sa propre interface utilisa-teur (processeur de commande, affichage, tou-ches), la partie BF (CAN, tampon,embases/Toslink, etc.) et bien entendu le coff-ret. RadioScape va encore plus loin, proposant,avec sa minuscule carte-module RadioScapeRS200, sur laquelle règne le circuit DABDRE200 de Texas Instruments, qui intègre latotalité des fonctions d’un récepteur DAB/FMnumérique. Comme le montre le croquis, ilreste à ajouter quelques touches, un encodeurrotatif, un affichage LCD standard (2 x 20 caractères) et une alimentation, pour disposer d’un tunerDAB/FM. Les dimensions de ce module permettent de réaliser des récepteurs de poche à base demodule Radioscape.

On ne sera guère étonné d’apprendre que la plupart des récepteurs DAB sont dotés de tels modules.La photo montre l’intérieur du tuner DAB de la série « Audio Mini Modul » de Restek.

DRE200DSP

Radio Scape RS200

AudioDAC

FlashROM

RFDownconvert

5V PSU Input

FM/ DABInput

Keypad / Display

General PurposeInput / Output

Digital Audio

Stereo LineOut

Proche du Plug&Play : le module tuner DAB/FM RS200 deRadioScape (www.radioscape.com).

Au coeur du tuner DAB de la série « Audio Mini Modul » deRestek (www.restek.de).

Page 44: Generic Array Logic - Doctsf.com

Les tuners DAB pour installation audio Hi-Fi sont encore l’a-panage de fabricants haut de gamme tels que, par exemple,Restek, (www.restek.de). Il se peut que l’on ait, si l’on veutacheter un tel tuner DAB, à débourser 2 700 €, alors que l’ontrouve en Grande Bretagne un tuner DAB/FM-Tuner pour soninstallation audio pour de l’ordre de 150 E. Il n’existe prati-quement pas encore de récepteur DAB piloté Par PC. Le seulsystème distribué dans les différents pays est le DR Box 1 deTerraTec (399 € ou 270 €).Pour un panorama des récepteurs disponibles on pourra faireun tour sur Internet, sur, par exemple, www.digitalradio.depour l’Allemagne et sur www.digitalradionow.com pour laGrande Bretagne.

L’avenir ?Il y a eu une époque où DAB avait été jugé « moribond ». Lasituation actuelle mérite une approche plus positive. On peuts’attendre à ce que les prix baissent encore à l’avenir. Lasociété anglo-israélienne Sonarics propose son module DABCSM 1 pour 25 dollars et un DSP Blackfin d’Analog Devices,permettant une implémentation logicielle des fonctionnalitésDAB coûte, en grosses quantités, 5 dollars à peine. Finale-ment, les grands fabricants, Sony en particulier, se disent prèsà entrer sur le marché « très prochainement ».La situation est complexe, vu qu’il n’est pas question d’unerévolution du type tout ou rien, mais d’une évolution du typefusée à 3 étages comme le dit VRN (Vivement la RadioNumérique) : une couverture significative, de nouvelles radios

et de nouveaux contenus, des récepteurs disponibles à desprix abordables.

(040101-1)

Littérature :DAB, la Radio Numérique, Elektor 03/1998,page 62 et suivantes et 04/1998, page 20 et sui-vantes

Liens Internet:www.worlddab.orgwww.VRN.comwww.radiofrance.fr/chaines/radio-france/

diffusion/dab.phpwww.tdf.fr/article/articleview/701/7/21/www.digitalradio.dewww.radionumerique.orgwww.pure-digital.comwww.drdb.orgwww.digitalradionow.comwww.restek.dewww.sonarics.comwww.thiecom.dewww.technisat.dewww.radioscape.comwww.frontier-silicon.com

elektor - 6/200456

HD-Radio au lieu de DABDans l’article « DAB, la Radio Numérique » dunuméro de mars 1998, nous disions que laNBA (Organe représentatif de nombre de sta-tions de radio) était contre DBA, lui préférantla Radio numérique In-Band pour la FM et lesPetites Ondes, sachant que l’on n’a pas encoretrouvé de solution pratique jusqu’à présent.Ceci est dépassé : sous la dénomination « HD-Radio », iBiquity Digital Corporation (www.ibi-quity.com) a mis au point un procédé permet-tant une transmission numérique sur les fré-quences FM et MA existantes par le biais desémetteurs disponibles et ceci parallèlement auxprogrammes MA et FM actuels qui continuentd’être émis sur les mêmes fréquences. Il suffit, pour jouir des nouveaux services de radio et de don-nées de HD-Radio, de disposer d’un récepteur supportant HD-Radio. SI les programmes en FM attei-gnent alors la qualité CD, les programmes en MA arrivent au niveau de la FM actuelle. On disposedans les 2 cas d’une réception sans parasites dotée de fonctions de données additionnelles. La plu-part des récepteurs HD-Radio sont en mesure de recevoir les programmes en FM et MA normaux(lire non HD-Radio).

Avant même la mise sur le marché du premier récepteur, iBiquity avait donné des licences à plus de280 stations de radio dans 37 états. Des fabricants de composants tels que ALPS, (tuner, CAN etCNA, processeurs de signal) et Philips (SAF3350, processeur HD Radio), on l’intention de prendre letrain en marche au courant de cette année.

!"#$%

&

!"#$%

&

'

(!$#$

'(!$

#$

Signal HD-Radio hybride : porteuse principale modulée en FMavec bandes latérales HD-Radio à modulation numérique.

Page 45: Generic Array Logic - Doctsf.com

elektor - 6/2004

e ? comment ça marche ? comment ça marche ? com

Tout compte fait, les servo-commandes analogiques sontdéjà des condensés d’ingéniosité. Il est bien entendu pos-sible de faire encore mieux... passer au numérique !Nous allons voir, en prenant une servo analogiquecomme référence, les avantages du numérique.

nage pour la démultiplicationet d’une paire de butéesmécaniques pour éviter quel’axe n’aille trop loin. La servopossède en outre un potentio-mètre servant à coupler laposition de l’axe de sortie à del’électronique.

Cette électronique constitue lemaillon entre le moteur, la

position mesurée et le mondeextérieur.Une triplette de fils fournit à laservo la tension d’alimenta-tion, la ligne de masse et lesignal de commande. Ce der-nier –fourni par le récepteurradio en modélisme– définit laposition à prendre par l’axe desortie de la servo. Si des élé-ments extérieurs (la pression

de l’air sur une gouverne deprofondeur d’un avion parexemple) risquent de modifierla position de l’axe de sortie,une réaction de l’électroniquede commande la maintient enposition. Tant que le signal decommande ne change pas, laservo maintiendra la positioninstantanée de l’axe de sortie(la corrigeant au besoin). Ce

58

1 ms

1,5 ms

Position servo

2 ms020356 - 12

t

t

t

Ucommande[V]

Ucommande[V]

Ucommande[V]

Motricité numériquePilotage de servos intelligentGiel Dols

Une servo est une combinai-son de moteur à courantcontinu, alternatif ou sansbalais et d’un « circuit dedétection de position ». Lesmodèles les plus utilisés enmodélisme et en robotiquesont les servos à courantcontinu trifilaires. Une telleservo se compose d’un moteurà courant continu, d’un engre-

Figure 1. La largeur d’impulsion détermine la position.

Page 46: Generic Array Logic - Doctsf.com

à en modifier la position. Si lechangement est faible il ne sepassera pas grand chose. Eneffet, à petit changement peti-tes impulsions ! La puissanceeffective envoyée au moteurest souvent trop faible pour lefaire bouger. Ce comportementse traduit par une sorte d’effetd’hystérésis. En deçà d’unelimite donnée, la réaction de laservo n’est pas linéaire parrapport aux changements deposition induits. Dans le casde la servo numérique la pro-grammation du microcontrô-leur tient compte des caracté-ristiques du moteur pour lepilotage. La largeur des impul-sions envoyées vers le moteursera ainsi plus large que ne leserait celle observée sur uneservo standard. Le programmedu processeur pouvant calcu-ler avec précision la quantitéet la longueur optimales desimpulsions en cas d’actionparasite dans une positiondonnée, une servo numériqueest plus rapide et plus précise.Le meilleur comportementobtenu n’est pas uniquementdû à un programme intelligent.La fréquence de commutationdes impulsions de commande

du moteur a été sensiblementaccrue elle aussi, avec commeconséquence, une meilleureprécision mais aussi la possi-bilité d’appliquer une « force »plus importante, le moteur setrouvant alimenté plus sou-vent. Un surplus de puissancetombe à pic non seulementpour maintenir une positionmais aussi pour ne changer.L’accélération est plus rapide,une nouvelle position étantatteinte plus vite.

Desinconvénients ?Une activation plus fréquentedu moteur se traduit bienentendu par une augmenta-tion de la consommation d’é-nergie. C’est dans les applica-tions de modélisme qu’il fau-dra en tenir compte. Lesprogrès de la technologie desaccumulateurs font qu’il nes’agit plus là d’un problèmemajeur.

(040041-1)

6/2004 - elektor

ment ça marche ? comment ça marche ? comment ça

n’est qu’en cas de change-ment du signal de commandeque l’axe de sortie prendraune autre position.

FonctionnementUn signal de commandeprend la forme d’impulsionsrectangulaires d’une ampli-tude de 5 V. La durée depériode des impulsions estconstante; la largeur des dif-férentes impulsions du traindétermine la position. Le neu-tre (point 0) d’une servo cor-respond à une largeur d’im-pulsion de ±1,5 ms. En fonc-tion de la rotation souhaitée,les impulsions devront soits’allonger, soit devenir pluscourtes. La durée de périodede 20 ms ne change pas elle.L’axe de sortie est couplé à unpotentiomètre. La position deson curseur correspond tou-jours à la position de l’axe desortie de la servo. Partant,chaque position du potentio-mètre correspond à une lar-geur d’impulsion donnée. Si laservo doit bouger, elle le ferajusqu’à ce que le curseur dupotentiomètre ait atteint une

position qui corresponde à lalargeur de l’impulsion reçue.L’électronique interne assurele maintien de cette positionjusqu’à ce que la largeur d’im-pulsion du signal de com-mande change à nouveau.

NumériqueAu cours des dernièresannées, les servos ont beau-coup évolué : dimensions,vitesse et puissance ne ces-sent d’être améliorées. Lavariante la plus récente, la« servo numérique » constitueun nouveau pas en avant. Laservo numérique est en prin-cipe une servo standard. Laseule différence est qu’unmicroprocesseur analyse lesignal de commande et pilotele moteur. Sa structure estsimilaire à celle de son homo-logue « analogique ».

La mise en oeuvre d’un micro-processeur présente d’indénia-bles avantages. Comme nousle disions, sur une servo ana-logique, le moteur reçoitquelques impulsions pourcontrer une force qui tendrait

59

t

Umoteur[V]

0

1

2

3

4

5

20 ms

t

Umoteur[V]

0

1

2

3

4

5

20 ms

Analogique

Forc

e fa

ible

Forc

e im

port

ante

t

Umoteur[V]

0

1

2

3

4

5

20 ms

t

Umoteur[V]

0

1

2

3

4

5

20 ms

Forc

e fa

ible

Forc

e im

port

ante

Numérique

Figure 2. La tension de moteur pour le maintien d’une certaine position (analogique à gauche, numérique à droite).

Page 47: Generic Array Logic - Doctsf.com

ALLEZ !ACTIVONS !ActiveX pour la centrale USB

La centrale d’acquisition USB décrite dans le numérode novembre 2003 peut se targuer d’avoir été l’un desmontages publiés dans Elektor ces dernières années ayantgénéré le plus de courrier et de Courriels (E-mail).

elektor - 6/200460

Eddie Brador

Page 48: Generic Array Logic - Doctsf.com

Le programme accompagnant ce montage connaissait deslimites qu’il aurait été bon de faire sauter. L’auteur, sollicitéde toutes parts, en était conscient, ce qui l’a amené à nousproposer un outil permettant à tout utilisateur de la centraled’acquisition USB de créer son propre programme pourcontrôler un périphérique de son choix.Le module de contrôle ActiveX présenté ici permet de récupé-rer les grandeurs analogiques et les sorties numériques.Ce type de contrôle permet de programmer l’interface à partirde n’importe quel langage de programmation évolué tel queDelphi, Visual-Basic ou C++ de Borland.Comme Delphi est l’un des langages de programmation lesplus utilisés, nous allons voir comment procéder en utilisantce langage comme référence.

Contrôle ActiveX, connais pas !Un contrôle ActiveX est un composant logiciel qui s’incor-pore à une application-hôte gérant les contrôles ActiveX,comme C++Builder, Delphi, Visual dBASE, Visual Basic,Internet Explorer ou Netscape Navigator et en étend lesfonctionnalités.Ainsi, Delphi est fourni avec plusieurs contrôles ActiveX :graphes, tableurs ou graphiques. Vous pouvez ajouter cescontrôles à la palette des composants de l’EDI (Environne-ment de Développement Intégré) et les utiliser comme toutcomposant VCL (Visual Component Library) standard en lesdéposant dans des fichiers et en définissant leurs propriétésavec l’inspecteur d’objets.Vous pouvez également déployer sur le Web un contrôle Acti-veX, en le référençant dans des documents HTML et en levisualisant dans un navigateur Web gérant ActiveX.Ce qui suit est une présentation générale de la façon de créerun contrôle ActiveX dans l’environnement Delphi. Vous n’ytrouverez pas les détails complets de l’écriture des contrôlesActiveX. Pour cela, consultez la documentation Microsoft

Developer’s Network (MSDN). Le site web deMicrosoft sur ActiveX donne également des informa-

tions sur ce sujet.

Le contrôle ActiveXpicus_brxProj1.ocx :

Pour le réaliser l’auteur s’est inspiré du programme BASICprécédent, la compilation ayant été faite sous Delphi 4. Il est

évident qu’il n’est pas question dans le cadre restreint de cetarticle, de nous lancer dans un cours sur la création d’uncontrôle ActiveX. Delphi et sa fonction Aide (Help) vous enapprendront bien plus.7 autres fichiers sont nécessaires pour l’installation complètede cet ActiveX.Tous les fichiers nécessaires sont inclus dans le répertoirefich_ocx (cf. recopie d’écran de la figure 1).

InstallationOn va utiliser une étape de base, en effet cette approche est pré-férable à une installation automatique qui ne nous apprend rien.

1) Installer le fichier picus_brxProj1.ocx dans le répertoirec:\windows\system pour Windows 98 et Me, ou dansc:\windows\system32 dans Windows 2000 et XP, ouc:\WINNT\system32 pour Windows 2000 pro.Cela permettra de recenser le contrôle ActiveX grâce àregsvr32.exe du système d’exploitation.

2) Tous les autres fichiers du répertoire fich_ocx dans lerépertoire c:\Program Files\Borland\Delphi4\Imports pourDelphi 4.

3) En cliquant sur Démarrer puis Exécuter regsvr32picus_brxProj1.ocx (cf. recopie d’écran de la figure 2).Si cela réussit on a le message de succès ci contre(figure 3).

4) Sous Delphi 4, choisir, sous Composant, l’option demenu Importer un contrôle ActiveX, à l’aide de l’ascen-seur sélectionner picus_brxProj1.ocx, puis installer, sau-vegarder (figure 4).Si tout se passe bien sous le menu ActiveX on doit voirapparaître le contrôle ActiveX.

Vous voilà prêt à exploiter votre centrale à plein.

6/2004 - elektor 61

Figure 1. Lerépertoire fich_oxcomprend tous lesfichiers du projet.

Figure 2. Le moduled’exécution que toutle monde a déjàutilisé une fois danssa vie.

Figure 3. Unmessage qui faitplaisir.

Figure 4. Les différents modules ont vite fait d’encombrer l’écran.

Page 49: Generic Array Logic - Doctsf.com

Mise en oeuvre de notre contrôleActiveX à l’aide d’un exempleRien de tel qu’un exemple pour saisir le fonctionnement. Nousallons faire tout simple : tenter l’acquisition de température ens’aidant d’un classique capteur de température LM335 de Dal-las Semiconductor. Celui ci est donc tout simple, puisque lesignal proportionnel à la température est amplifié par un cir-cuit non inverseur faisant appel à un amplificateur opération-nel du type TL271. Le schéma de l’électronique est représentéen figure 5. La tension d’alimentation positive nécessaire,VDD, est fournie par une sortie numérique de la centrale USB,le point K2 étant connecté à la première entrée analogique.

Le programme1) Ouvrir Delphi puis après avoir lancé une nouvelle appli-

cation aller dans le menu ActiveX,

Cliquer sur le composant picus_brx, et le placer sur lafiche form1 (figure 6)..

2) Placer un bouton (à récupérer dans le menu Standardsdes composants Delphi), puis un edit.

Ensuite placer un timer (à récupérer dans le menu Stan-dards des composants Delphi) cf. les recopies d’écran(figure 7).

3) Cliquer deux fois sur bouton et ajouter le code suivant :

procedure TForm1.Button1Click(Sender: TObject);var Val_T:real;beginVal_T:=(picus_brx1.AN0*5/255); conversion ten-

sion températureedit1.text:=floattostr(val_T);end;

et cliquer deux fois sur timer :

procedure TForm1.Timer1Timer(Sender: TObject);beginTEMP.Click;end;

lancer l’application et vous avez la tension variant en fonctionde la température de votre bureau.

Utilisation des sortiesUne fonction de l’ocx permet de contrôler les sorties de lacentrale, nous allons l’examiner à l’aide d’un exemple.Mettre en forme la fiche Delphi en y ajoutant les différentscomposants suivants :– 4 composants edit à récupérer dans la palette standard– 1 timer à récupérer dans la palette système– 1 button à récupérer dans la palette standard

et bien sur notre fameux ocx picus_brx1 dans la palette active x(cf. recopie de la figure 8).double cliquer sur la fiche et ajouter le code suivant :

procedure TForm1.FormCreate(Sender: TObject);beginpicus_brx1.active;picus_brx1.visible:=false;end;

elektor - 6/200462

R1

1k

R2

48

LM335

IC1

R3

10k

R4

47k

IC2

2

3

6

7

4

TL271

D1

2V7

K2

+5V

030431 - 11

Figure 5.Schémad’un petit circuit de

capture detempérature à base

de LM(3)35, unfameux capteur de

l’écurie NationalSemiconductor.

Figure 6. Le boutonUSB Centrale a été

placé dans laForm1.

Figure 7. Lesboutons TEMP et untimer ont été mis enplace dans Form1.

Figure 8. Lafonction de l’ocx

permet de contrôlerla centrale.

Page 50: Generic Array Logic - Doctsf.com

double cliquer sur le composant button et ajouter le code sui-vant :

procedure TForm1.Button1Click(Sender: TObject);beginpicus_brx1.J(Ord(Checkbox1.Checked));picus_brx1.J1(Ord(Checkbox2.Checked));picus_brx1.J2(Ord(Checkbox3.Checked));picus_brx1.J3(Ord(Checkbox4.Checked));picus_brx1.lance;end;

double cliquer sur le composant Timer et ajouter le code sui-vant :

procedure TForm1.Timer1Timer(Sender: TObject);beginbutton1.Click; end;

mettre des 0 ou des 1 dans les edit et regarder l’action sur lessorties.

ConclusionMais là ne s’arrêtent pas les applications possibles de la com-binaison Centrale USB + ActiveX. Nous laissons à votreféconde imagination la tâche d’en trouver d’autres. N’hésitezpas à nous en faire part, l’interaction lectorat/rédaction estimportante si un magazine veut rester tel que le souhaitent seslecteurs.

(030431-1)

Liens Internet :ActiveX Controlswww.microsoft.com/com/tech/ActiveX.asp

JEDI Visual Component Libraryhttp://homepages.borland.com/jedi/jvcl/

VCLComponents.comwww.vclcomponents.com/

Site de l’auteur (en construction) :http://dorelec.web.oo.fr

6/2004 - elektor 63

ILE DE FRANCEHAUT-RHIN (68)

AIN (01)SUISSE

Pour tous renseignements sur cette rubrique,veuillez contacter

David Teixeira21/23 rue des Ardennes - 75019 Paristél: 01-44-72-29-33 fax: 01-44-72-28-44

EMail: [email protected]

Abonnement Elektor: 1 an Fs. 104,-Prints et composants pour montages Elektor

Composants électroniques - LivresKits Velleman - Outillage - Mesure

URS MEYER ELECTRONIC SA - CH-2052 FONTAINEMELONAv. Robert 12 - Tél. 032/854 44 11 - Fax 032/854 44 00http://www.ursmeyer.com - e-mail: [email protected]

Réalise vos CIRCUITS IMPRIMES S.F. ou D.f. étamés, percés sur V.E. 8/10° ou 16/10°, Œillets, face alu, sérigraphie et

vernis d'épargne. Qualité professionnelle. Tarifs contre uneenveloppe timbrée ou par tél.

IMPRELEC 102, rue Voltaire 01100 OYONNAX Tél 04 74 73 03 66 Fax 04 74 73 00 85

Email: [email protected].

Appareils de mesures électroniquesd’occasion.

Oscilloscopes, générateurs, etc.(très grand choix).

HFC Audiovisuel Tour de l’Europe68100 MULHOUSE Tel.: 03.89.45.52.11

RCS Mulhouse B306795576

Pour tous renseignements sur cette rubrique, veuillez contacter

SL Régie – Sophie Lallonder39, Rue Lamarck, 75018 Paris

F-75010 ParisTel : 06 98 29 27 04

E-mail : [email protected]

RUBRIQUE PUBLI-RÉGIONListe d’annonceurs classés par pays, puis par région(fabricants, distributeurs, revendeurs, librairies ...)

Pour tous renseignements sur cette rubrique, veuillez contacter

SL Régie – Sophie Lallonder

39, Rue Lamarck,

75018 Paris

Tel : 06 98 29 27 04E-mail : [email protected]

Publicité

CHERCHE Testeur deTransistors, de RSE Condosn°291 Elektor Catalogue Farnell– Livres d’équivalents – ALLAINLe Rit 41310 St Amand-Longpré

VENDS Oscillo Hameg HM412 –2 x 20 MHz – 5 MV/cm – Tuberectangulaire Notice Technique– Parfait état de marche – Prix250 € – TroncoTél. : 01 43 81 90 06

VENDS multimètre Racal-Danatype 5003 51/2 digits program-mable GPIB IEEE488 : 300 €,période/fréquencemètreEnertec-Schlumberger type2616 2 voies 120Mhz : 200 € -Tél. : 05 56 05 92 65

VENDS Carte pour PC GPIBIEEE488-2 National Instrumenttype PCIIA avec drivers MS-DOS, WIN3.1 et 3 câbles

IEEE488 : 230 €. Matériel enparfait état et avec docs tech-nique. Tél. : 05 56 05 92 65

RECHERCHE TubeElectronique (Œil Magique)Type UM4 ou UM34 Tél. : 01 6906 28 62 ou [email protected]

ECHANGE tiroir 7A19 contre7B53A – Vends Analyseurlogique 100 MHz 32 voiesNotice et Sondes 150 € - 760070 € - Tél.: 02 48 64 68 40

Débutant en électroniqueCHERCHE personnes pouraide à la réalisation des mon-tages présentés Départements 11, 31, 34, 66. Tél. : 06 30 18 43 75

es petites annonces gratuites petites annonces gratu

Page 51: Generic Array Logic - Doctsf.com

Donner un NOM au bouton. Dans notre exemple, ce sera« BoutonTestMessage ».

Puis remplacer le texte affiché sur le bouton par « Veuillezcliquer sur ce bouton! ». On peut aussi modifier la taille, lapolice, la couleur du fond, placer une image en arrière plan,…

Remarque sur les fenêtres : Sous Visual Basic, les fenêtressont nombreuses et rangées d’une façon très simple : rienn’est rangé ! Cette charge est laissée à l’utilisateur. À vous dene pas vous laisser embrouiller par toutes les fenêtres.

Etape 5Effectuer un double clic sur le bouton.L’éditeur Visual Basic apparaît. La procédure « BoutonTest-Message_Click » est créée si elle n’existait pas et le curseurest placé ICI, à l’endroit où vous allez écrire votreprogramme ! (figure 6)

Cette fonction est exécutée chaque fois que l’on « Click » surle bouton « BoutonTestMessage ».En termes plus évolués, l’événement « Click » est associé àl’objet « BoutonTestMessage », de type « CommandButton »,(on dit aussi appartenant à la classe « CommandButton »).Le code correspondant est situé dans cette fonction « privée »,c’est-à-dire propre à l’objet.

VB SOUSWORDCréer ses programmes VISUAL BASIC sous WORD

Vous avez bien lu : un PC équipé de « Word » suffit pourcréer un programme en langage Visual Basic, et s’initier àla programmation. C’est à la portée de tous maisbeaucoup de gens l’ignorent.

elektor - 6/200464

T. Fondrat

Cet article est destiné à permettre à ceux qui n’ont pas VisualBasic, et qui souhaitent s’initier à la programmation sousWindows, de débuter facilement, tout en se faisant plaisir.L’astuce consiste à utiliser « Visual Basic pour Applications »,présent aussi, notamment, sous « Excel ».

Etape 1Ouvrir Word. Toutes les images et les programmes présentésici ont été créés sous Word 2000, mais les autres versionsfonctionnent aussi, même Word 97 !

Etape 2Cliquer sur le menu « Affichage », puis sur « Barre d’outils ».Cocher « Visual Basic » (figure 1).

Etape 3La barre d’outils « Visual Basic » apparaît (figures 2 et 3).

Etape 4Vous créez ainsi un bouton, appelé « CommandButton », quiapparaît sous la forme ci-contre (figure 4).Pour voir ses caractéristiques, déplacer la souris au dessus dubouton, cliquer sur le bouton droit, et appuyer sur « Propriétés ».Une nouvelle fenêtre apparaît, dans laquelle sont décrites tou-tes les propriétés de l’objet.Les deux plus importantes propriétés sont « name » et « cap-tion » (figure 5).

Page 52: Generic Array Logic - Doctsf.com

6/2004 - elektor 65

Cliquer sur la boîte à outils« Contrôles »

Activer le mode« Création »

Cliquer sur l’icône« Bouton de commande »

Le NOM ou « name » du bouton.Choisir un nom COHERENT et SIGNIFICATIF,qui indique à la fois le type d’objet et son rôle.

Par exemple : « BoutonAllumer ».

L’inscription figurant sur le boutonou « caption ».

Attention à ne pas confondre avec le nom !

1

2

3 7

6

5

4

Page 53: Generic Array Logic - Doctsf.com

Etape 6Entrer au clavier la ligne : MsgBox (“Vous avez cliqué ici !”)

Etape 7Retourner dans « Word », par exemple en cliquant sur « ALTTAB », et passer en mode « Exécution », en désélectionnantles deux icônes.

Vous pouvez aussi enlever la barre d’outils « Visual Basic »,si vous souhaitez un document « propre ». Mais il vous faudrala faire réapparaître, pour modifier le programme (figure 7).

Etape 8Enregistrer au format « Word », et tester le fonctionnement.

ConclusionIl suffit de quelques secondes pour créer un programme sous« Word ». Vous avez maintenant une idée de ce qu’il est possi-ble de faire. On de même aussi programmer en « Visual Basic »depuis « Excel » : créer des fenêtres complètes avec des bou-tons, des zones de saisie, des images et enregistrer des données,les afficher sous forme de graphiques, personnaliser le menu de« Word » avec des commandes « perso », lancer d’autres pro-grammes… Il est aussi possible, mais ceci mériterait d’autresarticles, d’utiliser les API de Windows, pour programmer leport parallèle, par exemple. Des applications complexes ont étéécrites ainsi, en cachant le menu par défaut. L’utilisateur a alorsl’impression d’être dans un programme spécial alors qu’il tra-vaille en réalité sous « Excel » ou « Word » !

elektor - 6/200466

Mon programme nefonctionne pas ! Trois solutions possibles et quelques conseils…

1 ) Niveau de sécurité :Si un bouton par exemple ne fonctionne pas, vérifiez quevous êtes au niveau de sécurité « moyen ». Ce niveauvous laisse le choix, lorsque des macros ou du code« Visual Basic » sont trouvés dans un programme, de lesexécuter ou non.« Word » vous propose systématiquementla question de l’ouverture du fichier. En niveau « haut », cechoix ne vous est pas laissé. Il n’est pas possible d’exécu-ter des programmes écrits en « Visual Basic ».

Modifiez votre niveau de sécurité sous Word :– cliquer dans le menu « outils » puis sur « macros » et sur

« sécurité ».– Choisir le niveau de sécurité « moyen ».– Fermer le fichier, sortir de « Word ».– Ouvrir à nouveau le document.

Lors de l’ouverture, « Word » vous demande si vous sou-haitez activer les macros. Dans le cas présent, cliquer sur« oui ».

2 ) Problème d’exécution du programme :Votre programme peut aussi contenir une erreur, qu’il fautlocaliser.

Le « débogueur », ou « indicateur d’erreur » est un outilqui arrête automatiquement votre programme et pointe surl’endroit où elle se situe ! La recopie d’écran ci dessousmontre la fenêtre qui s’affiche dans ce cas.

L’éditeur « VisualBasic » s’ouvre alors automatiquement.

3 ) Si cela ne marche toujours pas :Il se peut que le problème ne vienne pas de vous. Essayezalors cette astuce : Enregistrez votre programme et fermez« Word ». Ouvrez alors à nouveau votre document. Celasuffit souvent à faire fonctionner miraculeusement les pro-grammes…

Mais si rien ne marche, il vous reste la Toile, et les forumsde discussion.Liens InternetPour en savoir plus sur Visual Basic

http://msdn.microsoft.com/vbasic/Visual Studio

http://msdn.microsoft.com/vstudio/Source de codes en VB

http://www.vbcode.com/

Cliquez sur ’ débogage’.Le programme s’arrête et pointe

sur l’erreur.

Le programme est bloqué ici.L’indicateur permet de localiser

la source de l’erreur.

Cliquez sur « réinitialiser »pour arrêter le programme.

Vous pouvez alors corriger votre code,et relancer l’exécution.

Page 54: Generic Array Logic - Doctsf.com

elektorINFOCARTE 6/2004

ICS502Multiplicateur d’horloge

Fabricant :Integrated Circuit Systemshttp://www.icst.com/pdf/ics502.pdf

Caractéristiques :– Boîtier SOIC à 8 broches ou puce (die)– Disponible en boîtier sans plomb– Horloge PLL bon marché– Pas d’erreur de multiplication– Facile à cascader avec la série ICS5xx– Fréquence de quartz d’entrée 5 à 27 MHz– Fréquence d’horloge d’entrée 2 à 50 MHz– Fréquence d’horloge de sortie jusqu’à 160 MHz– Gigue (jitter) faible– Compatible avec toutes les CPU courantes– Rapport cyclique de 45/55 jusqu’à 160 MHz– Tension de service de 3,0 à 5,5 V– Courant de sortie de 25 mA à niveau TTL

Description :Le ICS502 constitue une option bon marché pour lagénération d’un signal d’horloge haute fréquence dehaute qualité. On pourra utiliser comme élémentde base un quartz de fréquence faible ou un signald’horloge basse-fréquence. Cette approche permetde se passer, dans la plupart des systèmes, d’oscilla-teurs à quartz « rapides » chers. Le ICS502 faitappel à un circuit de PLL pour rehausser la fréquen-ce d’un quartz standard bon marché jusqu’à160 MHz.

La ROM interne mémorise 6 facteurs différentspouvant servir de multiplicateurs pour la fréquenced’entrée. Il est possible ainsi de choisir nombre defréquences d’horloge courantes. La sélection desfacteurs se fait par le biais d’une paire d’entréeslogiques. Ayant été développé pour la générationd’horloge, il est logique que le ICS502 soit caracté-risé par une gigue (jitter) faible en sortie, il n’acependant pas été prévu de définition de l’asymé-trie du signal entre l’entrée et la sortie (input to out-put skew). Si l’application concernée requiert unevaleur garantie de ce facteur il est recommandé delui préférer le ICS570B.

ICS502Multiplicateur d’horloge

l’électronique imaginative

Formes de boîtier et brochage :

Broche Dénomination Fonction

1 X1/ICLK Connexion du quartzou entrée d’horloge

2 VDD Tension d’alimentation+3,3 ou +5 V

3 GND Masse

4 REF Sortie tamponnée del’oscillateur à quartz

5 CLK Sortie de l’horlogemultipliée

6 S0Entrée de sélection durapport d’horloge(VDD ou GND)

7 S1

Entrée de sélection durapport d’horloge(VDD, GND ouOuvert)

8 X2Connexion du quartz,ouvert si entrée d’horloge

X1/ICLK

VDD

GND

S1

REF

S0

CLK

X21

2

3

4

8

7

6

5

8 Pin (150 mi l ) SOIC

Pin 1

IndexArea

Page 55: Generic Array Logic - Doctsf.com

elektorINFOCARTE 6/2004

ICS502Multiplicateur d’horloge

Application typique :Attila, bloqueur de pub, Elektor juin 2004

Composants externes :Condensateur de découplageComme c’est le cas avec tout circuit intégré« mixed-signal » puissant, le ICS502 se doit lui aussid’être parfaitement découplé de la tension d’ali-mentation de manière à réduire au maximum lebruit et permettre un fonctionnement optimal ducircuit intégré. Il faudra prendre un condensateurde découplage de 100 nF entre les broches VDD etGND et ceci le plus près possible des pattes demanière à limiter au mieux les influences inductivesparasites des pistes. Le ICS502 ne requiert pas defiltrage externe de la tension d’alimentation.

Résistance de terminaisonLa ligne CLK peut être dotée d’une résistance determinaison de 33 Ω. La capacité totale représentée

par la puce est de 12 pF. Il faudra, s’il oscille à safondamentale, connecter un quartz en résonanceparallèle.

Condensateurs de charge du quartz :Les condensateurs de faible valeur pris respective-ment entre les connexions X1 et X2 et la masseont pour fonction d’assurer une charge correcte duquartz et une réduction au minimum de l’influencedes capacités parasites de la platine. Comme, enprincipe, ceci ne peut être obtenu que par une aug-mentation de la charge, il est important, dès ledépart, de minimiser au maximum les capacitésparasites (pistes courtes, pas de métallisation entrele quartz et le circuit intégré). La valeur (expriméeen pF) se calcule par la formule (CL – 12 pF) *2,formule dans laquelle CL représente la capacité decharge du condensateur.

l’électronique imaginative

Décodage de l’horloge :S1 S0 CLK0 0 × 2

0 1 × 5

ouvert 0 × 3

ouvert 1 × 3,33

1 0 × 4

1 1 × 2,5

Valeurs maximales :Paramètre ValeurTension d’alimentation VCC 7 V

Tension sur toutesEntrées/Sorties

–0,5...(VDD+0,3 V)

Plage des températures deservice –40...+85 °C

PLL ClockMultiplier

Circuitry andROM

Crystal orClock input

VDD

CrystalOScillator

S1, S0

X1/ICLK

X2

2CLK

REF

GND

Page 56: Generic Array Logic - Doctsf.com

elektorINFOCARTE 6/2004

ICS502Multiplicateur d’horloge

l’électronique imaginative

Caractéristiques électriques :

VDD = 5,0 V ±5%, Température ambiante de 0 à 70 °C, sauf mention contraire

Paramètre Symbole Conditions Min. Typ. Max. Unité

En continu

Tension d’alimentation VDD 3 5,5 V

Tension d’entrée Haut VIH ICLK, broche 1 (VDD/2)+1 V

Tension d’entrée Bas VIL ICLK, broche 1 (VDD/2)-1 V

Tension d’entrée Haut VIH OE, broche 7 2 V

Tension d’entrée Bas VIL OE, broche 7 0,8 V

Tension d’entrée Haut VIH S0,S1 VDD-0,5 V

Tension d’entrée Milieu VIM S1 VDD/2 V

Tension d’entrée Bas VIL S0,S1 0,5 V

Tension de sortie Haut VOH IOH = -25 mA 2,4 V

Tension de sortie Bas VOL IOL = 25 mA 0,4 V

Consommation de courant IDD quartz 20 MHz, facteur 5,

hors-charge 20 mA

Courant de court-circuit sortie CLK ±70 mA

Résistance pull-up intégrée broche 7 270 kΩ

Capacité d’entrée S1, S0, OE 4 pF

Page 57: Generic Array Logic - Doctsf.com

elektorINFOCARTE 6/2004

ICS502Multiplicateur d’horloge

l’électronique imaginative

Caractéristiques électriques :

VDD = 5,0 V ±5%, Température ambiante de 0 à 70 °C, sauf mention contraire

Paramètre Symbole Conditions Min. Typ. Max. Unité

En alternatif

Fréquence d’entrée FIN Entrée quartz 5 27 MHz

Fréquence d’entrée FIN Entrée horloge 2 50 MHz

Fréquence de sortie FOUTVDD = 4,5 à 5,5 V, 0 à 70 °C 14 160 MHz

Fréquence de sortie FOUTVDD = 3,0 à 3,6 V, –40 à 70 °C 14 160 MHz

Temps montée horloge sortie

tOR 0,8 à 2,0 V 1 ns

Temps chute horloge sortie

tOR 2,0 à 8,0 V 1 ns

Rapport cyclique horloge sortie

tOD 1,5 V, jusqu’à 160 MHz 45 49...51 55 %

Bande passante PLL 10 kHz

Durée validation sortie OE Haut jusqu’à activation sortie 50 ns

Durée désactivation sortie OE Bas jusqu’à désactivation sortie 50 ns

Gigue absolue périoded’horloge

tja ±70 ps

Gigue 1 Sigma périoded’horloge

tjs 25 ps

Page 58: Generic Array Logic - Doctsf.com

elektor - 6/200470

Faire un touren disco peut

avoir son attrait,mais l’être humain

n’est pas fait pour setrouver confronté

journellement à une telleviolence acoustique. Un mini-orgue

lumineux permet d’ajouter une teinte disco lorsquel’on écoute de la musique chez soi. LED it be...

Orgue lumineuxde pocheMinuscule beauté

Mini-Projet

Burkhard Kainka

Page 59: Generic Array Logic - Doctsf.com

Un orgue lumineux transforme dessons en impressions lumineuses. Onutilise, le plus souvent, 3 canaux pourdifférentes plages de fréquence. Lecanal des graves reproduit le rythmede la musique par un clignotementplus ou moins synchrone, les 2 autrescanaux rendant les plages de fré-quence plus élevées.Avec ses 3 LED, la version de poched’orgue lumineux présentée ici brillemoins violemment que son homologueen grandeur nature, mais son fonction-nement est identique. Il n’est cepen-dant pas besoin de prévoir une liaisonavec l’amplificateur, l’informationsonore étant fournie par un micro.Autre spécificité : la sensibilité s’a-dapte au niveau sonore du moment.Tout ceci permet de se passer de toutorgane de commande. L’alimentationde l’orgue fait appel à une pile com-pacte 9 V. La consommation de courantmoyenne n’est que de quelque 20 mA.Il est recommandé, pour en avoir pourson argent quant à la durée de vie dela pile, d’opter pour des LED de trèsforte luminosité.

AmplifierIl est nécessaire, pour que le signal dumicro à électret ait un quelconqueeffet, de l’amplifier très fortement. Surle schéma de la figure 1, c’est la paire

d’amplificateurs qui s’en charge; elleintroduit un gain de l’ordre de 1 000x.L’entrée du premier amplificateur opé-rationnel, IC1.A, est reliée au micro àcapsule électret par le biais d’uncondensateur, C2. La capsule se trouveau 9 V par le biais des résistances R1et R2. Épaulée par C1, R1 découple latension d’alimentation du micro sensi-ble, R2 constituant la résistance de tra-vail pour la capsule électret, aux bor-nes de laquelle la tension de signal dumicro apparaît sous la forme de petitesvariations de la tension (continue). Lecondensateur C2 fait en sorte queseule cette ondulation (la composantealternative de la tension) arrive à l’en-trée de l’ampli op. Le diviseur de ten-sion constitué par R3 et R4 fournit latension continue à l’entrée de l’ampliop. Ces résistances ayant la mêmevaleur, la tension continue à l’entrée deIC1.A est égale à la moitié de la ten-sion d’alimentation soit, avec une pilede 9 V, 4,5 V. Cette même tension conti-nue se trouve aussi à la sortie du pre-mier ampli op et, à l’entrée du second,IC1.B, par le biais de R7, la sortie deIC1.B prenant la même valeur. En d’au-tres termes, les 2 amplis op sont forcés,par le biais de R3 et R4, en continu, àla moitié de la tension d’alimentation.Les 2 amplis op ne sont pas inverseurset ont un gain unitaire (1x) pour lestensions continues.

Pour les tensions alternatives, et par-tant le signal du micro, le gain estbeaucoup plus élevé. Au niveau dupremier ampli op, il est déterminé parle rapport des résistances R6/R5, parcelui de R11/R10 pour le second ampliop. Cela nous donne, pour IC1.A, ungain de 100, le gain introduit par IC1.Bétant de 10x.On a, sur le second ampli op, unréglage de gain automatique qui entreen fonction aux niveaux sonores plusimportant et évite toute surmodula-tion. La tension de signal à la sortie deIC1.B, redressée par les diodes D1 etD2, lissée par C6, attaque le transistorNPN T1 qui, en combinaison avec R7,constitue un diviseur de tension pourla tension de signal en aval du premierampli op. Si la tension de signal aug-mente, la tension redressée aux bornesde C6 augmente, le courant de base dutransistor, arrivant via R9, augmente,celui-ci voit alors son impédance dimi-nuer, réduisant ainsi la tension alterna-tive BF en aval de R7.On pourra s’étonner de l’utilisation icid’un transistor NPN sans courantcontinu de collecteur. On aurait pu s’at-tendre à trouver à cet endroit un trans-istor à effet de champ (FET) faisantoffice de résistance pilotée, approchecourante. Ce que l’on sait moins estqu’il est également possible d’utiliserun transistor ordinaire bon marché, un

6/2004 - elektor 71

MIC1

R2

10k

R110

kR3

10

0k

R4

10

0k

R5

1k

R6

100k

R7

10k

R8

10k

R9

10k

R10

10k

R11

100k

R12

10k

R14

10k

R16

10k

C1

10µ

C3

10µ

C13

22µ

C4

2µ2

C6

4µ7

C5

22n

C7

100n

C8

1µ2

3

1IC1.A

6

5

7IC1.B

T1

BC548C

T2

BC548C

D2

1N4148

D1

C2

100n

D3

1N4148

C9

100n

R13

390Ω

D4

vert

T3

BC548CD5

1N4148

C11

10n

R15

390Ω

D6

jaune

T4

BC548CD7

1N4148

R17

390Ω

D8

rouge

C10

22n

C12

4n7

BT1

9V

2x

IC1

8

4

IC1 = LM385

030019 - 11

x 100x 10

16V

16V

16V

16V

16V

16V

Figure 1. L’électronique de l’orgue lumineux constitué d’un amplificateur piloté doté en aval d’un filtre 3 voies.

Page 60: Generic Array Logic - Doctsf.com

elektor - 6/200472

Résistances :R1,R2,R7 à R10,R12,R14,R16 = 10 kΩR3,R4,R6,R11= 100 kΩR5 = 1 kΩR13,R15,R17 = 390 Ω

Condensateurs :C1,C3 = 10 µF/16 V radialC2,C7,C9 = 100 nFC4 = 2µF2/16 V radialC5,C10 = 22 nFC6 = 4µF7/16 V radial

C8 = 1 µF/16 V radialC11 = 10 nFC12 =4nF7C13 = 22 µF/16 V radial

Semi-conducteurs :D1 à D3,D5,D7 = 1N4148D4 = LED verte (cf. texte)D6 = LED jaune (cf. texte)D8 = LED rouge (cf. texte)IC1 = LM385N (sur support)

T1 à T4 = BC548C

Divers :BT1 = pile compacte 9 V avec connecteur

à pressionMIC1 = capsule micro à électret, telle

que, par exemple, 302147 - 8A(Conrad)

Platine EPS 030019-1 (dessin des pistes etau téléchargement sous www.elektor.fr)

Liste des composants

030019-1(C) ELEKTOR

C1

C2

C3

C4

C5

C6

C7

C8

C9

C10

C11

C12C13

D1

D2

D3

D4D5

D6

D7

D8

IC1

MIC1

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12R13

R14

R15

R16

R17

T1 T2

T3

T4

030019-1

+

-

T

Figure 2. Une platine simple face sans pont de câblage.

comporte un filtre passe-haut/passe-bas combiné (R14/C10 et C11). Le der-nier canal est piloté par un filtre passe-haut, R16/C12. On pourra, par modifi-cation prudente des valeurs decondensateurs, adapter à son goût lecomportement du montage.

La platineBien que ce montage soit simple, laplatine représenté en figure 2 en sim-plifie la réalisation. Les 2 amplis op setrouvent dans le même circuit intégré,un LM385, que l’on placera de préfé-rence sur support. Attention à la pola-rité. De par l’absence de pont decâblage, il suffit de se concentrer sur lapolarité des condensateurs, des diodeset des LED. On pourra utiliser n’im-porte quel type de capsule micro à

électret à 2 broches du commerce.Le courant de LED maximal atteint, àmodulation maximale des transistors,quelque 18 mA, de sorte que l’onpourra utiliser des LED standard,haute luminosité ou très forte lumino-sité. Si l’on utilise ce dernier type deLED, l’effet d’orgue lumineux sera plusmarqué; pour une utilisation « enchambre » on pourra se contenter deLED standard. Si l’on veut utiliser desLED faible courant, il faudra augmen-ter la valeur des résistances de limita-tion R13, R17 et R17 à 3kΩ3 voir 3kΩ9.Ceci permettra, comme le couranttombe à 2 mA par LED, à l’orgue derester fonctionnel sensiblement pluslongtemps sur la même pile.

(030019-1)

BC548C ici). En fait, un transistor NPNconstitue lui aussi une résistancevariable se laissant piloter sur unelarge plage. Il faut cependant, si l’onveut limiter la distorsion du réglage devolume, que la tension de signal appli-quée au collecteur ne dépasse pasquelques millivolts. Ce n’est pas le casici, le réglage de la tension de sortie sefaisant à de l’ordre de 1 VCC. Avec ungain de 10 du second étage, on a del’ordre de 100 mVCC sur le collecteur.Ceci se traduit par des distorsionsinacceptables pour d’autres applica-tions. Cela ne pose pas de problèmedans le cas de cet orgue lumineux, lesignal de sortie n’étant pas à écoutermais à visualiser sous la forme delumière. Il faudra, si l’on veut utiliser cecircuit de réglage à des fins audio, n’at-taquer le transistor qu’à des tensionsde signal faible et le placer plus enamont de la chaîne d’amplification.

FiltresLe signal de sortie du second ampli opattaque directement, mais par le biaisde filtres rustiques, les étages de com-mande de LED de l’orgue lumineux,dotés chacun d’un transistor NPN, T2à T4. Pour éviter que la base des trans-istors ne puisse se charger négative-ment, chacun d’entre eux est dotéd’une diode, D3, D5 et D7, montée entête-bêche (anti-parallèle). De ce fait,l’étage n’est passant que lors desdemi-ondes positives. En dépit de cela,on a quand même, en raison des fré-quences relativement élevées, uneimpression de luminosité moyenne.Les filtres sont des réseaux RC clas-siques se laissant dimensionner gros-sièrement pour leur fréquence de cou-pure (fc = 1/(2 πR C). Avec ses valeursde 10 kΩ et 100 nF, le filtre passe-basR12/C9 possède une fréquence de cou-pure de 160 Hz. Les sons de fréquenceinférieure à cette valeur pilotent lecanal de la LED verte. Le canal central

Page 61: Generic Array Logic - Doctsf.com

Gradateur ou pas gra-dateur, that’s the ques-tion La prise d’un gradateurentre le réseau secteur et unelampe permet-elle d’économi-ser de l’énergie ou vaut-ilmieux utiliser une ampoulede wattage plus faible ? (Question posée à plusieursreprises)

La prise d’un gradateur entre uneampoule et le réseau secteur dimi-nue la quantité de lumière et aussila consommation d’énergie. Leremplacement de l’ampoule d’o-rigine par une ampoule de wat-tage plus faible sans utiliser degradateur permet des économiesd’énergie encore plus importan-tes. Cela est dû à la températuredu filament. Une ampoule ordi-naire produit, outre de la lumière,également de la chaleur, ces2 phénomènes requérant de l’é-nergie. N’oublions pas qu’uneampoule ne convertit en lumièreque 10% environ de l’énergiequ’elle dérive du réseau secteur, lereste étant « gaspillé » en chaleur.Plus la température du filamentaugmente, plus les 2 types d’éner-gies consommées augmentent,mais la production de lumièreaugmente plus que la productionde chaleur (cf. la loi dite « dudéplacement de Wien »). Ainsi, lerendement d’une ampoule aug-mente avec l’augmentation de latempérature du filament. Un fila-ment à forte température a unedurée de vie plus courte. Il a doncfallu trouver un compromis entreces 2 facteurs de rendement et dedurée de vie. La combinaisonampoule de wattage plus impor-tant + gradateur se traduit par unabaissement de la température dufilament, et partant du rapportlumière/chaleur et donc du ren-dement. L’utilisation d’un grada-teur a une autre conséquence :celui d’augmenter la « chaleur »de la lumière fournie, plus derouge et moins de bleu. À noterque ceci ne vaut que pour lesampoules à incandescence clas-siques et non pas pour les ampou-les faible consommation qui ne

possèdent pas de filament maisutilisent le principe de la déchargegazeuse et produisent moins dechaleur et ont de ce fait besoin demoins d’énergie pour produire lamême quantité de lumière.

Remplacant pour leLM16A21 Impossible detrouver le LM 16A21 deSharp pour le testeur detransistor intelligent. Après denombreux mois de recher-ches, j’ai enfin trouvé un affi-chage LCD compatible avecle LM16A21 de Sharp utilisépar Elektor dans le testeur detransistor intelligent.Chez Go-tronic, le LCD1602A (réf. 03335) faitexactement l’affaire, le bro-chage étant cependant exac-tement inversé par rapport àcelui de l’affichage Sharp.Mais il doit également existerdes équivalents chezSelectronic pour cet affichage2 x 16 caractères.Louis Caruelle

Projet c+ Salut la rédaction,J’ai lu ma revue aujourd’huiavec du retard mais cet articlem’a tout de même interpellé.J’ai donc testé avec succès lemontage proposé !-). Seulepetite amélioration j’ai utiliséune impulsion dont la formerépond à la loi de poisson(d’avril évidement) !!! @+Philippe

Nous apprécions le fait que cer-tains de nos lecteurs aient appré-cié ce petit clin d’oeil au moisd’avril, une bien vieille tradition…

Silence sur la fréquenceMa carte à MSC1210 (Elektor09/03) fonctionne sans pro-

blème avec le programmefourni (les valeurs de tempéra-ture changent lors d’un échauf-fement) mais le téléchargementd’un nouveau programme nemarche pas, de mêmed’ailleurs que la démonstrationTi-MSC120-ADC. Le Ti-Down-loader se rebiffe lors d’untransfert et émet le messagesuivant :‘No Response to initial CR’Uwe Kall

Je serais enclin à penser à uncâble zéro modem mal câblé, ouà un positionnement erroné descavaliers. Vous trouverez dansl’article « carte à MSC1210 » dunuméro de décembre 2003 enpage 340, un exemple decâblage de zéro modem (nullmodem) ou sur mon « vieux » siteInternet à l’adresse www.mikro-controller.info/kabelsalat/ (enallemand). Pour le téléchargementil vous faut doter les 2 embases àcavalier alignées, JP1 et JP2, d’uncavalier, seule l’embase JP3 doitrester ouvert, ce dernier cavaliern’étant utilisé qu’à de très raresoccasions.Jürgen Wickenhäuser

Un bon petit vieuxoscille J’ai réalisé, toutrécemment, The Compact, unamplificateur décrit en 1997.Losrque je tourne le potentio-mètre de réglage de la pola-risation (bias) en butée àgauche, je retrouve toutes lesvaleurs indiquées sur le sché-ma. Si au contraire je tournele potentiomètre vers la droiteaux 3/4 de sa course les2 amplificateurs (gauche etdroite) se mettent à oscillerentre 1 et 4 MHz. J’ai laquasi-cirtiture que je n’ai pascréé de boucle de terre dansmon appareil et cela ne doitpartant pas être la raison demon problème. Avez-vousdéjà eu des échos de problè-mes de ce genre, ou aurais-je

quand même fait une erreurquelque part ?Dick Flanderijn

Pour autant que nous nous enrappelions, il s’agit en effet d’uneréalisation de fin 1996 ! Nouspouvons à raison qualifier leCompact de vrai « evergreen » etaimons y revenir à l’occasion. Sinous devons en croire le nombrede platines vendues, cet amplifi-cateur a été énormément cons-truit, mais il est exact que nousavons eu à l’occasion une obser-vation du même genre que lavôtre. La solution est simple : pla-cez un condensateur de 100 pFentre la base du transistor T16 etla masse. Ceci présente cepen-dant l’inconvénient d’avoir une(légère) influence sur la caracté-ristique de transfert de l’amplifi-cateur.

Sons Il était possible, dutemps du Commodore C64,de programmer soi-même lecircuit intégré générateur deson. J’avais même à l’époqueécrit un programme qui mepermettait de faire passer untest d’audition à toute lafamille. En cette ère du PC, ilest quasiment impossible defaire quoi que ce soit avecune carte-son. Du moins c’estma première impression. J’aiouvert différents ouvrages deprogrammation mais je nem’en sors pas. Ne pourriez-vous pas, amis d’Elektor, m’ai-der pour faire en sorte quemon PC produise mes sons ?Klaus Bartges

Notre propre expérience sur lesujet est limitée. Quelques recher-ches sur Internet nous ont fourni,entre autres, les adresses suivan-tes :www.vbexplorer.com/VBExplo-rer/sound1.asphttp://users.bigpond.net/au/gradley/vbatutor/VBALesson6.htmwww.officecomputertraining.com/

elektor - 6/200474

courrier courrier courrier courrier courrier courier

Page 62: Generic Array Logic - Doctsf.com

vbtutorial/tupages/page41.asphttp://experts.about.com/q/1048/3376005.htmÀ noter au passage que dansl’ouvrage Publitronic « Je pro-gramme les interfaces de mon PCsous Windows) » malheureuse-ment épuisé, comportait quelqueschapitres expliquant comment tra-vailler avec la carte-son sous Del-phi. Il y était même décrit un testauditif automatisé !

Climat-Logger Dans la listedes composants du Climat-Logger (Elektor de janvier2004) il est mentionné, auniveau des condensateurs C1à C3, cf. texte; dans le sché-ma aussi il est cf. texte, maisdans le texte on ne mentionneque C1, encore que sa valeurne soit indiquée nulle part.Ma question est partant : quel-les sont les valeurs descondensateurs C1 à C3 ? J’aien outre remarqué que vousavez interverti les piles BT1 etBT2. BT1 est la paire de pilesAA, BT2 la pile au lithium.C’est d’ailleurs ce que confir-me la photo.H.R. Jannink

La taille de C1 à C3 n’apparaîten effet nulle part dans le texte.Le but de la manoeuvre est defaire en sorte que la combinaisonC1 à C3 ait la valeur la plus pro-che possible de 370 pF. L’auteurl’a obtenue à par la mise enparallèle de 2 condensateurs, l’unde 220 pF l’autre de 120 pF.Nous n’avions pas remarqué l’in-terversion des piles, mais vousavez parfaitement raison.

EDiTS Pro J’ai acquis lacarte de contrôleurd’EDiTS Pro (juin 1999). Il sup-porte le format Motorola II.Comme les décodeurs de loco-motive d’Elektor étaient trop

minuscules pour que je puisseles réaliser, j’ai acheté undécodeur de locomotive chezConrad (type LD-W-1). Conradindique que ce décodeur sup-porte le format Motorola II. Jepensais partant qu’il me seraitpossible d’utiliser les déco-deurs de loco de Conrad avecEDiTS Pro. Cependant, il s’a-vère qu’ils ne sont pas inter-changeables : avec EDiTS Proil est possible de définir unmaximum de 80 adressesalors que le décodeur deConrad est capable de255 adresses ! Ai-je mal com-pris quelque chose ou s’avère-t-il en pratique que la mention« supporte Motorola II » n’estpas suffisante. Existe-t-il peut-être plusieurs versions de cefameux format ?W.G. Wouterse

L’auteur Steffen van de Vriesrépond : « Officiellement, (selonMärklin) le format Motorola II nesupporte que 80 adresses.Sachant cependant que le formatpermet en principe jusqu’à255 adresses, certains décodeursde loco supportent cette possibilité(la dernière version du super-décodeur de locomotived’EDiTS Pro et le LD-W-1). La ver-sion 1.2 du logiciel d’EDiTS Prosupporte elle aussi 255 adresses. »

Mini-carte-son USB Unepetite question concernant lamini-carte-son USB (décem-bre 2002) : il est difficilevoire impossible d’obtenir lesmini-selfs L1 et L2 (selfs CMSblm31a601a) par paire etelles coûtent trop cher pourqu’on en achète 10 ! D’oùma tentative de les rempla-cer par des selfs plus couran-tes, mais ni le site de Farnell,ni celui de Murata ne don-nent de valeur. Maquestion : quelle est la valeuren µH ou mH de ces selfs ?Flor Coppens

Murata indique pour ce type deselfs une impédance de 600 Ω à100 MHz, la résistance ohmiqueétant elle de 0,9 Ω. Si nous nousbasons sur ces valeurs, nous endérivons une valeur de l’ordre de1 mH. Cette valeur n’a d’ailleursrien de critique, mais il est impor-tant d’utiliser des selfs aussi com-pactes que possible pour qu’ellessoient efficaces.Vous pouvez aussi envisager defaire vous-même vos 2 selfs. Bobi-nez par exemple 2 ou 3 couchesde fil de cuivre émaillé fin l’unesur l’autre, diamètre intérieur de1 mm, longueur 2 mm. Leur fonc-tion est principalement l’élimina-tion de parasites, le montagefonctionnera sans aucun douteavec elles aussi.

Ah ces schémasElektor ! Chère Rédaction,quels logiciels ou program-mes de CAD utilisez-vouspour « croquer » vos sché-mas et dessiner vos platines ?Je suis curieux car votre stylede dessin semble remonter àla nuit des temps et en 1990il n’existait pas encore, pourautant que je le sache, deprogramme de dessin.Serdar Ulukonakci (E-mail)

Cher Serdar, cette question nousest posée en moyenne au moinsune fois par semaine, ce quiexplique que nous ayons pris ladécision de rendre publique unsecret bien gardé. Nous avonscommencé par dessiner nos sché-mas sur PC dès 1985, avecOrCAD, les platines étant faites àl’aide de Ultiboard. Aujourd’huinous utilisons des versions deMcCad (www.mcdac.com) et Ulti-board (toujours et encore)(www.ultiboard.com) fortementmodifiées il est vrai et dotées denos propres bibliothèques desymboles de circuits et de formesde boîtiers.

6/2004 - elektor 75

rrier courrier courrier courrier courrier courrier co

Règles du jeu

– Publication de la correspondancede lecteurs à la discrétion du

Rédacteur en chef– Les points de vue et opinions

exprimées par les correspondants nesont pas nécessairement ceux duRédacteur en chef ou de l’Éditeur.

– La correspondance pourra, le caséchéant, être traduite ou éditée

en longueur, clarté et style.– En cas de réponse à COURRIER,

veuillez S.V.P. indiquerle numéro concerné.

– Veuillez S.V.P. adresser votre correspondance :

[email protected] ou

Rédacteur en chef ElektorChez W.W.S. 38,

Rue Croix des Petits Champs75001 Paris - France

MISES AU POINT

MIDI-Lights, Elektormars 2001, page 70(000179) Quelques lec-teurs signalent que la lampedu projecteur scintille aucours du réglage, à luminosi-té constante ce phénomènen’apparaît pas. Ceci est dû àune impulsion de synchroni-sation trop courte. Le remèdeest d’augmenter quelque peuC1 et C2 et de faire passerleur valeur de 2nF2 à 3nF3.

Codeur pour simulateurde vol, Elektor février2004, page 28(030066-I) Dans la listedes composants, le numérode nomenclature des mini-manches P1 et P2 cor-respond à la version 100kΩ. Le schéma utilise lui desmanches de 10 kΩ (modèleCTS 25A103A60TB). Lesversions 10 et 100 kΩ fonc-tionnent tout aussi bien dansle montage.

Page 63: Generic Array Logic - Doctsf.com

vbtutorial/tupages/page41.asphttp://experts.about.com/q/1048/3376005.htmÀ noter au passage que dansl’ouvrage Publitronic « Je pro-gramme les interfaces de mon PCsous Windows) » malheureuse-ment épuisé, comportait quelqueschapitres expliquant comment tra-vailler avec la carte-son sous Del-phi. Il y était même décrit un testauditif automatisé !

Climat-Logger Dans la listedes composants du Climat-Logger (Elektor de janvier2004) il est mentionné, auniveau des condensateurs C1à C3, cf. texte; dans le sché-ma aussi il est cf. texte, maisdans le texte on ne mentionneque C1, encore que sa valeurne soit indiquée nulle part.Ma question est partant : quel-les sont les valeurs descondensateurs C1 à C3 ? J’aien outre remarqué que vousavez interverti les piles BT1 etBT2. BT1 est la paire de pilesAA, BT2 la pile au lithium.C’est d’ailleurs ce que confir-me la photo.H.R. Jannink

La taille de C1 à C3 n’apparaîten effet nulle part dans le texte.Le but de la manoeuvre est defaire en sorte que la combinaisonC1 à C3 ait la valeur la plus pro-che possible de 370 pF. L’auteurl’a obtenue à par la mise enparallèle de 2 condensateurs, l’unde 220 pF l’autre de 120 pF.Nous n’avions pas remarqué l’in-terversion des piles, mais vousavez parfaitement raison.

EDiTS Pro J’ai acquis lacarte de contrôleurd’EDiTS Pro (juin 1999). Il sup-porte le format Motorola II.Comme les décodeurs de loco-motive d’Elektor étaient trop

minuscules pour que je puisseles réaliser, j’ai acheté undécodeur de locomotive chezConrad (type LD-W-1). Conradindique que ce décodeur sup-porte le format Motorola II. Jepensais partant qu’il me seraitpossible d’utiliser les déco-deurs de loco de Conrad avecEDiTS Pro. Cependant, il s’a-vère qu’ils ne sont pas inter-changeables : avec EDiTS Proil est possible de définir unmaximum de 80 adressesalors que le décodeur deConrad est capable de255 adresses ! Ai-je mal com-pris quelque chose ou s’avère-t-il en pratique que la mention« supporte Motorola II » n’estpas suffisante. Existe-t-il peut-être plusieurs versions de cefameux format ?W.G. Wouterse

L’auteur Steffen van de Vriesrépond : « Officiellement, (selonMärklin) le format Motorola II nesupporte que 80 adresses.Sachant cependant que le formatpermet en principe jusqu’à255 adresses, certains décodeursde loco supportent cette possibilité(la dernière version du super-décodeur de locomotived’EDiTS Pro et le LD-W-1). La ver-sion 1.2 du logiciel d’EDiTS Prosupporte elle aussi 255 adresses. »

Mini-carte-son USB Unepetite question concernant lamini-carte-son USB (décem-bre 2002) : il est difficilevoire impossible d’obtenir lesmini-selfs L1 et L2 (selfs CMSblm31a601a) par paire etelles coûtent trop cher pourqu’on en achète 10 ! D’oùma tentative de les rempla-cer par des selfs plus couran-tes, mais ni le site de Farnell,ni celui de Murata ne don-nent de valeur. Maquestion : quelle est la valeuren µH ou mH de ces selfs ?Flor Coppens

Murata indique pour ce type deselfs une impédance de 600 Ω à100 MHz, la résistance ohmiqueétant elle de 0,9 Ω. Si nous nousbasons sur ces valeurs, nous endérivons une valeur de l’ordre de1 mH. Cette valeur n’a d’ailleursrien de critique, mais il est impor-tant d’utiliser des selfs aussi com-pactes que possible pour qu’ellessoient efficaces.Vous pouvez aussi envisager defaire vous-même vos 2 selfs. Bobi-nez par exemple 2 ou 3 couchesde fil de cuivre émaillé fin l’unesur l’autre, diamètre intérieur de1 mm, longueur 2 mm. Leur fonc-tion est principalement l’élimina-tion de parasites, le montagefonctionnera sans aucun douteavec elles aussi.

Ah ces schémasElektor ! Chère Rédaction,quels logiciels ou program-mes de CAD utilisez-vouspour « croquer » vos sché-mas et dessiner vos platines ?Je suis curieux car votre stylede dessin semble remonter àla nuit des temps et en 1990il n’existait pas encore, pourautant que je le sache, deprogramme de dessin.Serdar Ulukonakci (E-mail)

Cher Serdar, cette question nousest posée en moyenne au moinsune fois par semaine, ce quiexplique que nous ayons pris ladécision de rendre publique unsecret bien gardé. Nous avonscommencé par dessiner nos sché-mas sur PC dès 1985, avecOrCAD, les platines étant faites àl’aide de Ultiboard. Aujourd’huinous utilisons des versions deMcCad (www.mcdac.com) et Ulti-board (toujours et encore)(www.ultiboard.com) fortementmodifiées il est vrai et dotées denos propres bibliothèques desymboles de circuits et de formesde boîtiers.

6/2004 - elektor 75

rrier courrier courrier courrier courrier courrier co

Règles du jeu

– Publication de la correspondancede lecteurs à la discrétion du

Rédacteur en chef– Les points de vue et opinions

exprimées par les correspondants nesont pas nécessairement ceux duRédacteur en chef ou de l’Éditeur.

– La correspondance pourra, le caséchéant, être traduite ou éditée

en longueur, clarté et style.– En cas de réponse à COURRIER,

veuillez S.V.P. indiquerle numéro concerné.

– Veuillez S.V.P. adresser votre correspondance :

[email protected] ou

Rédacteur en chef ElektorChez W.W.S. 38,

Rue Croix des Petits Champs75001 Paris - France

MISES AU POINT

MIDI-Lights, Elektormars 2001, page 70(000179) Quelques lec-teurs signalent que la lampedu projecteur scintille aucours du réglage, à luminosi-té constante ce phénomènen’apparaît pas. Ceci est dû àune impulsion de synchroni-sation trop courte. Le remèdeest d’augmenter quelque peuC1 et C2 et de faire passerleur valeur de 2nF2 à 3nF3.

Codeur pour simulateurde vol, Elektor février2004, page 28(030066-I) Dans la listedes composants, le numérode nomenclature des mini-manches P1 et P2 cor-respond à la version 100kΩ. Le schéma utilise lui desmanches de 10 kΩ (modèleCTS 25A103A60TB). Lesversions 10 et 100 kΩ fonc-tionnent tout aussi bien dansle montage.

Page 64: Generic Array Logic - Doctsf.com

Proteus est un set completoffrant des possibilités profes-sionnelles à un prix abordable.

Proteus Virtual SystemModelling (VSM) est un logi-ciel permettant de simuler surPC des circuits numériques,analogiques, voire une combi-naison des deux. La premièreétape consiste bien évidem-ment à la saisie du schéma.Ici c’est le programme ISISSchematic Capture qui s’encharge. De la même source,ARES, un programme de des-sin de circuits imprimés quis’accouple parfaitement àISIS. À eux deux, ils consti-tuent une combinaison clas-sique qui fait de la conceptiond’un circuit et de sa « mise surcuivre » pratiquement un jeud’enfant.

Il comprend, cela va de soi,des fonctions telles que vérifi-cation des connexions (ERCC= Electrical Rule &Connectivity Check), place-ment automatique des com-posants (Auto Placer) et despistes (Auto Router). Rien deneuf jusqu’à présent direz-vous, il existe bien d’autresprogrammes présentant cesfonctionnalités.Dans le cas de Proteus, c’esttrès précisément la partie

simulation qui présente desoptions extrêmement intéres-santes. Il est en effet rare depouvoir incorporer des micro-contrôleurs dans le circuit. Ilest vrai que d’autres program-mes permettent également dele faire, mais Proteus VSM estégalement en mesure desimuler le code à l’intérieur ducontrôleur. En principe celanon plus n’est pas unique,mais il est possible, en coursde simulation, de travailler defaçon interactive avec le cir-cuit : il est possible de com-mander les interrupteurs etles potentiomètres toutcomme on le ferait dans laréalité, le résultat étant visua-lisé en temps réel sur des LEDou un affichage LCD parexemple. La simulation estmême en mesure de faireécouter, via la carte-son, dessignaux périodiques dont lafréquence se situe à l’intérieurdu domaine audio. ET toutcela, comme nous le disions,en temps réel. On pourraainsi, sur un système àPentium II 300 MHz, simulerun système à 8051 standardtournant à 12 MHz.

Le simulateurProSPICE est le noyau dusimulateur. Il s’agit d’une

combinaison entre un simula-teur analogique et un simula-teur numérique dit à comman-de par événement (event-dri-ven), ce qui permet de simulersans problème, un mélanged’électronique analogique etnumérique (mixed-mode).L’avantage de SPICE est qu’ilest possible, sans arrière-pen-sée, d’ajouter les modèles decomposants proposés par lesfabricants. À noter que le logi-ciel en comporte près de 6 000en standard.Le simulateur fonctionne éga-lement fort bien avec cesmodèles animés : des anima-tions graphiques dont laforme peut changer pour, parexemple, donner le sens dedéplacement du courant ousignaler l’allumage d’unepetite ampoule.Il est également possible dedéfinir soi-même des modèles(animés), en principe sansmême avoir à programmer. Lelogiciel est accompagné d’unSDK (Software Developers Kit)documenté permettant lacréation de modèles en tantque fichiers .DLL.

MesurerQui dit tests virtuels dit dumême coup mesures virtuel-les. Et ce non pas uniquement

avec un simple voltmètre ouampèremètre, mais aussi àl’aide d’un oscilloscope, d’ungénérateur de fonctions, d’ungénérateur de patrons, d’uncompteur et d’un terminalsériel. Leur mise en oeuvre estcelle de leurs homologues« réels ». Petit extra pratique :une possibilité de visualisa-tion en temps réel du niveaulogique de broches quel-conques à l’aide d’un petittrait de couleur.Des mesures plus exhausti-ves, sous forme graphique parexemple, ou la mesure decaractéristiques de fréquen-ce, analyse de distorsion oude bruit sont disponibles dansle set optionnel « AdvancedSimulation Option ».

Co-simulation demicrocontrôleursComme nous le disions, VSMest en mesure d’établir un lienentre la simulation du progi-ciel du microprocesseur et lasimulation de l’ensemble del’électronique qui l’environne.Ceci signifie que lorsque lecode écrit vers un port du pro-cesseur, les niveaux du circuitchangent en conséquence.Inversement, en cas de chan-gement de niveau sur le cir-cuit, le programme simulé en

elektor - 6/200476

sel grains de sel grains de sel grains de sel grains de s

Proteus VSMEssayez-vous à la simulation de µC

David Daamen

Dessiner un schéma, faire une platine et tester.De nos jours, tout cela se fait sur un PC ! Les programmes de simulation actuels sontmême en mesure actuellement de simuler des microcontrôleurs.

Page 65: Generic Array Logic - Doctsf.com

prend note.Les modèles de VSM ne sup-portent pas uniquement desports d’E/S simples, maisaussi, selon le processeur uti-lisé, des interruptions, destemporisateurs, des USART,etc. Il est même possible demettre plusieurs processeursdans un même circuit : il suf-fit de les placer et de lesconnecter !Lors de l’écriture de ceslignes, Proteus VSM estdisponible pour les proces-seurs des types BASIC Stamp,PIC, AVR, HC11 et 8051.

DébogageComme il est fort peu proba-ble que l’on réussisse à fairefonctionner un circuit à basede microprocesseur du pre-mier coup, l’élimination deserreurs, le débogage est unprocessus extrêmementimportant. Sur Proteus VSMc’est un point auquel on énor-mément travaillé. La fonctionpas à pas est très utile. À l’i-mage du débogueur de logi-ciel, il est également possibled’examiner, ligne après ligne,le code dans le processeur. Onvoit alors instantanément les

effets du code sur l’ensembledu circuit, y compris sur toutel’électronique connectée aucontrôleur. Il est même possi-ble, en fonction de la famillede processeur et des outils deprogrammation utilisés, defaire du pas à pas dans lecode écrit dans un langage deprogrammation de hautniveau comme C.Nous ne pouvons que recom-mander Proteus aux concep-teurs de réalisations combi-nant l’électronique numériqueà l’électronique analogique.

(040043-1)

Prix de Proteus VSM :449 €, (ex-TVA, par famille de proces-seur)

Pour de plus amplesinformations :AntratekE-mail: [email protected]: www.antratek.nl

6/2004 - elektor 77

el grains de sel grains de sel grains de sel grains de se

Répertoire des annonceursBETA LAYOUT www.pcb-pool.com . . . . . . . . . . . . . . . . . . . . .57

ESPACE COMPOSANT ELECTRONIQUE www.ibcfrance.fr . .23

EUROCIRCUITS www.thepcbshop.com . . . . . . . . . . . . . . . . . .77

FARNELL IN ONE www.farnellinone.be . . . . . . . . . . . . . . . . . .17

GÉNIBRÈDE www.genibrede.com . . . . . . . . . . . . . . . . . . . . . .57

GSE www.gsenet.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57

HFC AUDIOVISUEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63

HI TECH TOOLS www.hitechtools.com . . . . . . . . . . . . . . . . . . .31

IMPRELEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36

LEXTRONIC www.lextronic.fr . . . . . . . . . . . . . . . . . . . . . . . . . .84

LKC ELECTRONIQUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63

MULTIPOWER www.multipower.fr . . . . . . . . . . . . . . . . . . . . . .31

NATIONAL INSTRUMENTS www.ni.com/france . . . . . . . . . . .31

OPTIM INFO www.optiminfo.com . . . . . . . . . . . . . . . . . . . . . . .57

PROGRAMMATION www.programmation.fr . . . . . . . . . . . . . . .22

SELECTRONIC www.selectronic.fr . . . . . . . . . . . . . . . . . . . . . .2

Réservation d’espaces publicitaires

Réservez dès aujourd’hui votre espace publicitaire dans le maga-zine Elektor du mois de juillet/août 2004 !

Date limite de réservation : le 7 juin 2004.

Pour toute information concernant la publicité aussi bien dans notre magazine que sur notre site internet

www.elektor.fr contactez :

SL Régie – Sophie Lallonder39, Rue Lamarck, 75018 Paris

Tel : 06 98 29 27 04E-mail : [email protected]

www.elektor.frPlus qu’unesimple vitrine...

c’est aussi unatelier d’applications !

Publicité