Académique Documents
Professionnel Documents
Culture Documents
CaDAU
2ème partie : réalisation et utilisation
Benoît Bouchez
Bien que le schéma de la carte soit pour le et des trous de fixation associés. Réalisation
moins touffu, le laboratoire d’Elektor a réussi Chapeau bas, messieurs...
le tour de force à tout faire rentrer sur une Bien évidemment, étant donnée la Nous vous en proposons le dessin
carte au format simple Europe (100 x densité de la carte, l’utilisation d’un des pistes et la sérigraphie de l’im-
160 mm), et en respectant les exigences de circuit double face à trous métallisés plantation des composants en
positionnement du connecteur PC/104 8 bits est incontournable. figure 1. L’installation des différents
8 Elektor 6/2003
MICROCONTRÔLEUR
0 +
H2
IC17
H3
C14
D1
C18 K6
C3
R5
IC6
D2
IC11
C27 IC18
C4
S1
TP3 TP1
IC16
C12 IC9
C1 C2
JP1
C24
IC4 C17
IC1
CANH
IC15
CANL IC10
R2
C10
IC2
K1
C15
C8 C5 T
R4 R3 R6 -5V
BAT1
C7 C11 C19
IC3
C21 IC14 IC13
C9
010103-1
H
H1
JP2
C22 JP3 C23
Figure 1a. Sérigraphie de l’implantation des composants de la platine dessinée à l’intention de CaDAU.
Liste des composants lez pas vous exposer à des problèmes à plus
IC8,IC9 = 27C128 -90 ou C256 ou moins long terme.
Résistances : (si programmées EPS 010103-21 et
R1 à R3,R6 = 4kΩ7 010103-22)
R4 = 1kΩ5 IC10,IC11 = 62256 –55 (RAM) Les EPROM du moniteur
R5 = 1kΩ IC12 = GAL16V8 (programmée EPS Les EPROM 27C128, IC8 et IC9, comportent
010103-31)
le programme de moniteur permettant le
Condensateurs : IC13 = 74HCT14
développement et la mise au point de pro-
C1 à C5,C10 à C21,C24 = 47 nF IC14 = ADM691A
C6 à C9 =1 µF/25 V radial IC15 = PCA82C250T grammes personnels. Une remarque à leur
C22,C27 = 100 nF IC16 = L7805CP sujet. Ces circuits de mémoires sont dispo-
C23 = 2nF2 IC17 = bloc oscillateur 16 MHz nibles préprogrammées auprès des sources
C25 = 220 nF IC18 = bloc oscillateur 1,843 2 MHz habituelles sous la dénomination EPS010103-
C26 = 10 µF/35 V radial 21 et EPS010103-22 (il s’agit ici de 27C256 en
Divers : raison des problèmes d’approvisionnement
Semi-conducteurs : BAT1 = pile au lithium 3V6 évoqués plus haut). Si vous souhaitez les pro-
D1 = 1N4001 JP1 à JP3 = cavalier grammer vous-même, sachez qu’il vous fau-
D2 = LED faible courant (low current) K1 = embase Sub-D 9 points femelle dra un outil de programmation d’EPROM
IC1 = PXAC37KBA (Philips, cf. texte) en équerre encartable dans lequel vous pourrez transférer chacun
IC2,IC3 = 74HCT573 K6 = connecteur PC104 à 1 rangée
des fichiers HEX disponibles sur la disquette
IC4,IC5 = 74HCT245 de 64 contacts (cf. texte)
IC6 = 74HCT244 S1 = octuple interrupteur DIP d’accompagnement EPS010103-11 en vue
IC7 = MAX232 (Maxim) radiateur SK104 pour IC16 d’une programmation de chacune des 2
EPROM (nous vous les proposons en 4 ver-
sions, EPS010103-21 et EPS010103-22,
comme évoqué plus haut, au cas où vous tra-
composants ne pose pas de réels Pour le XA en boîtier PLCC44, c’est vailleriez avec des 27C256 et EPS010103-23
problèmes, mais certains points, même une obligation, car nous ne et EPS010103-24 au cas où vous utiliseriez
notamment le connecteur PC/104 se voyons pas comment il serait pos- des 27C128). Attention à bien choisir les
doivent d’être clarifiés. sible de souder ce composant à fichiers correspondant au type d’EPROM que
Comme d’habitude, nous vous 44 broches en carré aux 2 rangées de vous utilisez et à bien identifier chacune
recommandons très chaudement pistes concentriques prévues sur la d’entre elles pour éviter de vous tromper lors
l’utilisation de supports pour les cir- platine. Utilisez des supports tulipe de leur mise en place sur le circuit imprimé.
cuits intégrés, surtout les mémoires. d’excellente qualité, si vous ne vou- Il est absolument impératif que IC8 et IC9
6/2003 Elektor 9
MICROCONTRÔLEUR
(C) ELEKTOR
010103-1
soient du type 27C128 (et surtout pas des Pour conclure, il nous faut revenir sur 27C256 (faciles à trouver et moins
27128, faute de quoi la carte ne fonctionnera un problème inattendu, qui a surgi chères, c’est d’ailleurs le type de
pas). De même, tous les circuits logiques doi- récemment. Les mémoires de type composant que nous proposons)
vent être du type 74HCT. Ne mélangez en 27C128 sont de plus en plus difficiles sans la moindre modification du cir-
aucun cas sur la carte des circuits logiques à approvisionner. Heureusement, il cuit imprimé. L’astuce est que la
de familles différentes. est possible de faire appel à des broche PGM de la 27C128 est rem-
10 Elektor 6/2003
MICROCONTRÔLEUR
Figure 2. Photo de l’un de nos prototypes. Sur la version définitive, les boîtiers des oscillateurs seront moins serrés.
placée par la ligne A14 sur les d’Elektor (www.elektor.fr) sous cette rents de ce connecteur : non traversant et tra-
27C256. Or, sur notre circuit, cette même dénomination. Pour ceux versant.
broche est ramenée au +5V. Lors de d’entre nos lecteurs qui n’ont pas Le modèle traversant est en fait un connec-
la programmation de l’EPROM, il suf- accès à Internet, nous les proposons teur que l’on pourrait qualifier d’hermaphro-
fit de mettre les données dans la également sur une disquette, dont la dite, car il est à la fois mâle et femelle. La par-
mémoire à partir de l’adresse $4000 dénomination est cette fois tie femelle est normalement placée « côté
au lieu de $0000. La plupart des pro- EPS010103-11, disquette disponible composants ». Quant à la partie mâle, elle est
grammateurs d’EPROM acceptent ce auprès des adresses habituelles. en fait formée par des broches qui passent à
genre d’opération en direct. Sinon, il Le moniteur XA est configuré de telle travers le circuit imprimé. Ces broches vien-
suffit de générer un fichier de 32 Koc- façon à utiliser les cycles de bus les nent s’encastrer dans la partie femelle du
tets dont les 16 premiers Koctets plus lents, ce qui autorise l’utilisation connecteur de la carte située en dessous.
contiennent $FF, et les 16 Koctets de mémoires 250 ns. Rien ne vous Il existe une version simplifiée du connecteur,
suivants contiennent l’image du empêche de modifier le contenu des formée uniquement de la partie femelle, que
moniteur. Cette opération demande registres BTRH et BTRL par la suite l’on rencontre généralement sur les cartes
à peine quelques secondes avec un pour accélérer la carte, si les contrôleurs (ou maîtres).
éditeur hexadécimal. mémoires installées le permettent. Notre carte s’accommode aussi bien du
ATTENTION : pour l’instant, le Si vous décidez d’implanter un connecteur complet que du connecteur sim-
moniteur proposé par Elektor ne XA-C3 (avec le moniteur adéquat), il plifié ; c’est l’approche que nous avons choisie
convient que pour les processeurs vous faudra installer l’adaptateur (cf. la photo en tête d’article).
XA-G3. Il n’est pas compatible avec IC15, le PCA82C250T, pour vous La hauteur standard de la partie femelle est
les XA-C3. Une version spécifique a connecter aux lignes du bus CAN. Le de 0,6 pouce (soit 1,52 cm). Avec les compo-
été développée et est en cours de circuit imprimé est prévu pour rece- sants installés sur supports, il est possible
validation. Nous vous informerons voir une version DIL8. Cette version (mais rare) que la partie supérieure des com-
dès que possible de sa disponibilité. étant très difficile à trouver, n’hésitez posants dépasse cette limite, gênant alors
La GAL IC12 est elle aussi dispo- pas à vous rabattre sur une version l’insertion des cartes d’extension sur la face
nible programmée en s’adressant CMS SO8, installée sur un support supérieure de la carte de développement.
aux adresses habituelles sous la adaptateur. Dans ce cas, les cartes d’extension pourront
dénomination EPS010103-31. Au cas être installées de l’autre côté de la carte de
où vous disposeriez d’un program- développement, cette dernière étant placée
mateur de GAL, le fichier source PC/104 dans ce cas “ en haut de la pile “.
GAL_IC12.SRC et le fichier compilé Le point particulier le plus délicat Il peut être difficile de se procurer des
GAL_IC12.JED sont disponibles au concerne le connecteur PC/104. Il connecteurs PC/104 traversants. Sachez qu’il
téléchargement sur le site Internet existe en fait deux modèles diffé- est alors possible d’utiliser de simples bar-
6/2003 Elektor 11
MICROCONTRÔLEUR
Quant à l’opération d’implantation émulateur de terminal, capable de
des composants proprement dite, dialoguer sur une ligne série à
elle n’appelle que peu de remarques. 9 600 bauds, 8 bits de donnée, sans
Tous les circuits intégrés sont orien- parité (Paramétrage de la transmis-
tés dans le même sens… L’espace sion : 1 bit d’arrêt, no flow control).
entre les supports où doivent se glis- Un logiciel comme Hyperterminal ou
ser les condensateurs est relative- Procomm fera parfaitement l’affaire
ment restreint, il faudra partant uti- (connecter la carte à un port COM
liser des condensateurs de faible libre par le biais d’un câble RS-232
épaisseur, de préférence du type sans interversion de ligne, un 1 : 1).
Sibatit. Les condensateurs C1 et C2 Après avoir vérifié une dernière fois
sont à monter, comme l’illustre le votre carte, vous pourrez la relier au
gros-plan de la figure 3, sur le des- port série du PC émulateur de termi-
sous de la platine, son « côté pistes » nal, et la mettre sous tension. Vous
devriez alors voir apparaître sur
l’écran un message de bienvenue
Utilisation de la carte (*** XA-G3 Monitor V1.03 *** etc),
Les informations données précé- suivi d’un signe d’invite (« > »). La
demment vous auront déjà permis carte n’attend alors plus que vos
de comprendre comment exploiter la ordres.
carte d’un point de vue matériel. Les commandes du moniteur sont
Toutefois, un microcontrôleur sans peu nombreuses et ne devraient pas
Figure 3. Gros-plan sur l’implantation des logiciel est réduit à l’impuissance, et poser de problèmes aux lecteurs
condensateurs C1 et C2 sur le dessous de la avant d’écrire vos premiers pro- habitués aux développements sur
platine. grammes autonomes pour le XA, il cartes à microprocesseur. Elles sont
vous faudra très probablement reprises dans le tableau 1.
prendre vos marques.
rettes mâles HE10 au pas de 2,54 mm. Dans Pour faciliter cette étape indispen-
ce cas, il faut les souder côté cuivre, de façon sable, nous avons écrit un logiciel
Programmation
à pouvoir installer les cartes d’extension par- moniteur, simplifié mais puissant, en assembleur XA
dessous de la carte de développement. qui permet de tester vos pro- Avoir une carte performante et
Dans le cas d’un connecteur PC/104 non tra- grammes en condition réelle. flexible, c’est bien, mais pouvoir l’uti-
versant, celui-ci s’installe de façon tout à fait Pour communiquer avec ce moniteur, liser, c’est mieux. L’un des points les
classique « côté composants ». il suffit de disposer d’un programme plus redoutés, tant par les amateurs
que par les professionnels, lors du
choix d’un nouveau microcontrôleur,
est l’achat des outils nécessaires,
tant logiciels que matériels.
Du point de vue matériel, la carte
présentée ici montre qu’il est pos-
sible d’atteindre des possibilités de
développement très souples, sans
nécessiter de gros investissements
(pour avoir une meilleure flexibilité,
il faudrait faire appel à des émula-
teurs ICE, dont le prix est considéra-
blement plus élevé).
Au niveau logiciel, le prix des
chaînes de développement (assem-
bleur/compilateur/éditeur de liens/
gestionnaire de librairies/ simula-
teur) peut atteindre des sommets
vertigineux. Pour notre carte, il n’en
est rien, du moins tant que vous
programmerez en assembleur, car
Philips propose une chaîne de déve-
loppement semi-professionnelle,
pour un prix on ne peut plus
modique : 0 Euros !
Cette chaîne de développement,
Figure 4. Cette recopie d’écran vous montre ce à quoi vous pouvez vous attendre avec appelée XADEV, comprend un
l’environnement de développement XADEV. assembleur absolu, un simulateur et
12 Elektor 6/2003
MICROCONTRÔLEUR
un environnement de développe-
ment, le tout d’excellente qualité. Ce
logiciel n’est cependant plus sup-
Tableau 1. Commandes du moniteur XA
porté par Philips (car écrit à l’origine
Commande Fonction
pour Windows 3.1), mais il fonc-
tionne toujours parfaitement sous les ? Affiche l’aide sur les commandes
versions 32 bits actuelles (au moins P Affiche le contenu de la mémoire Programme
95 et 98, nous n’avons pas vérifié D Affiche le contenu de la mémoire Données
sous NT4, XP et 2000). M Modification de la valeur d’un oude plusieurs octets
Nous avons obtenu de Philips le G Appel d’un programme utilisateur
droit tacite -après des contacts répé- H Téléchargement d’un fichier HEX
tés ils ne nous ont pas interdit de le
faire et comme leur disquette origi-
nelle comporte explicitement la men-
tion d’une autorisation de recopie- tion, autre différence : les registres assembleur mises à disposition, afin de com-
de diffuser cet outil sur une dis- R0 à R15 résident dans une zone prendre comment fonctionne le pavé.
quette d’accompagnement, mais il spécifique, différenciée de la RAM !). À ce sujet, commencez par lire (et com-
est également disponible en télé- Selon les versions, cette RAM prendre !) le programme SKEL.ASM, livré
chargement libre sur les sites Inter- s’étend sur 512 octets à 1 Koctet. avec l’environnement XADEV, qui contient le
net de l’auteur et d’Elektor L’activation des mémoires externes squelette minimal d’un programme Assem-
(www.elektor.fr). Ce programme, se fait automatiquement lorsque le bleur XA. N’oubliez pas que les XA n’ont plus
XADEV.zip, se trouve sous forme programme accède à une adresse grand chose en commun avec leurs cousins
comprimée sur la disquette ; il fau- supérieure à la limite de la mémoire 8 bits, et qu’il faut prendre de nouvelles habi-
dra partant le décomprimer sur une interne. tudes de programmation, faute de quoi les
disquette ou dans un sous-répertoire Une autre remarque importante surprises sont nombreuses.
pour pouvoir l’installer. concerne l’accès aux SFR (Special (010103-2)
Seul reproche que nous aurions pu Function Register) : les commandes
faire au sujet de cet environnement du moniteur ne permettent ni de lire,
de développement : aucun manuel ni d’écrire le contenu de ces
utilisateur n’est joint au logiciel, la registres. En effet, l’accès à ces
seule assistance disponible étant registres nécessite l’utilisation d’un
l’aide en ligne (et elle est un peu mode d’adressage spécifique, incom-
légère...). Heureusement, l’auteur a patible avec l’adressage indexé uti-
retrouvé un manuel écrit par l’un des lisé dans les instructions D et M du
ingénieurs d’applications de chez moniteur. Liens Internet
Philips Semiconductors, manuel qu’il Si vous avez besoin de déverminer Site de l’auteur :
a scanné et met à votre disposition un programme au niveau de l’accès http://benoit.bouchez.free.fr
au téléchargement depuis son site à un de ces registres, vous devrez Philips : www.philips-semiconductors.com
(http://benoit.bouchez.free.fr) sous la écrire dans votre programme une
dénomination XADEV_manual.zip. instruction MOV spécifiquement Raisonance :
Comme le montre la copie d’écran de adressée au SFR visé, ce qui est loin version de démo pour le XA
www.raisonance.com/download/index.php
la figure 4, XADEV n’a rien à envier d’être complexe, rassurez-vous.
aux environnements de développe- Une fois le programme testé, on
ment actuels, malgré son âge : une pourra récupérer le fichier HEX
fois le programme source écrit dans généré par XADEV et le télécharger
l’éditeur intégré, l’assemblage se fait dans la carte de développement, via Tableau 2.
en cliquant sur un bouton dans la un simple logiciel d’émulation de ter- Contenu de la disquette EPS010103-11
barre de menu. Le programme peut minal (Hyperterminal ou Procomm – GAL_IC12.SRC : Fichier source de la GAL
alors être exécuté dans le simulateur par exemple), configuré pour des – GAL_IC12.JED : fichier compilé
interne, en continu, pas à pas (répé- téléchargements en ASCII. – Mon_g3.asm : fichier source du moniteur
titif ou classique), les variables et Bien entendu, rien ne vous empêche – Mon_g3.hex : fichier assemblé du moni-
registres peuvent être modifiés à par la suite d’acquérir des outils de teur
volonté... Bref, rien que du bon ! développement plus complexes – 010103-21.hex : contenu de l’EPROM IC8
À noter ici une différence importante (comme un assembleur relatif et/ou (27C256)
entre les XA et leurs cousins 8 bits : il un compilateur C). – 010103-22.hex : contenu de l’EPROM IC9
n’y a pas de distinction entre la RAM Avant de vous attaquer à l’écriture (27C256)
interne au circuit et la RAM externe. de votre premier programme en XA, – 010103-23.hex : contenu de l’EPROM IC8
(27C128)
Sur les XA, toute la RAM est consi- nous ne saurions trop vous recom-
– 010103-24.hex : contenu de l’EPROM IC9
dérée comme unifiée entre l’adresse mander de télécharger sur le site de
(27C128)
0000HEX et FFFFHEX. La RAM Philips (http://www.philips-semi- – XADEV.zip :Logiciel d’environnement
interne du processeur commence conductors.com, rubrique Microcon- XADEV à décomprimer
toujours à l’adresse 0000HEX (atten- trôleurs/XA) les différentes sources
6/2003 Elektor 13
PC&AUDIO
Enregistreur audio
USB
Carte-son complète pour le bus sériel universel
Projet : Genio Kronauer et Thomas Zepf
14 Elektor 6/2003
PC&AUDIO
lisée n’a pas la moindre importance. 3 LED D1 à D3 visualisent le taux
Nous avons opté à dessein pour un
mode de fonctionnement sans ROM
d’échantillonnage (sample rate). On
dispose alors à la sortie I2S du signal
Caractéristiques :
(ROM-less) parce que les progiciels audio numérique qui arrive au – Compatible avec USB Spec à partir de 1.0
des versions à ROM sont tellement UDA1325 par le biais des bornes DA, – Compatible avec USB Audio Spec à partir
verminés (pleins de bugs) qu’ils ne WS et BCK de ce dernier. Le compo- de 1.0
sont pas utilisables si l’on veut être sant met également à disposition, – Entrée analogique (ajustable de –3
assuré d’un fonctionnement correct par le biais des condensateurs de à+27 dB)
du système. Comme les auteurs de découplage C28 et C29, une entrée – Entrée S/PDIF Cinch coaxiale
ce montage se sont intéressés dès la analogique, sous la forme des lignes – Entrée numérique optique (TosLink)
mise sur le marché de ce composant, VINR et VINL. La sélection de l’en- – Sortie analogique (plage de 60 dB)
ils ont pu identifier, laborieusement trée se fait par l’intermédiaire du – Taux d’échantillonnage en analogique : 8 à
il est vrai, les nombreux bugs et par- pilote d’enregistrement de Windows. 48 kHz
tant pu les contourner. Le résultat de Nous y reviendrons un peu plus loin. – Taux d’échantillonnage en numérique : 32,
ces efforts vaut la peine : cet enre- Les données d’enregistrement d’au- 44,1 et 48 kHz
gistreur audio USB, alias carte-son dio numérique arrivent, par le biais – Possibilité de fonctionnement en mode full
USB, fonctionne de façon bien plus du canal Wave In, au PC au travers duplex
stable que la totalité des cartes-son du port USB, les données de repro- – Supporte fonctionnement Plug&Play
USB du commerce basées elles aussi duction audio étant elles transmises
sur le UDA1325. du PC vers le canal Wave Out. Le
Nous utilisons, pour la conversion réglage du volume se fait à l’aide du
des données S/PDIF vers I2S, le DSP dont est doté le UDA1325. resse sachent que l’on peut trouver la fiche de
TDA1315H sachant que ce dernier Après une conversion caractéristiques, il serait plus exact de parler
composant possède déjà 2 entrées numérique/analogique on dispose, de recueil de caractéristiques vu le volume de
S/PDIF. Il est possible, par son biais, au travers des condensateurs de la documentation en question, à l’adresse
de réaliser une commutation entre découplage C37 et C38, sur K4, du Internet ci-après :
S/PDIF-RCA (Cinch) et TosLink signal à un niveau de 0 dBu. On www.semiconductors.philips.com/acro-
(optique) sans avoir besoin de péri- pourra brancher à cet endroit une bat/datasheets/UDA1325 N 1.pdf
phérique additionnel, opération entrée Ligne (Line) mais aussi un ainsi que /TDA1315H 5.pdf pour le second
confiée directement au UDA1325. Il casque d’écoute à haute impédance composant.
devient possible, dans ces condi- provenant, par exemple, d’un bala- La source du signal d’horloge est un quartz
tions, de connecter non seulement deur CD (Discman). de 48 MHz, ce qui se traduit par une horloge
les lecteurs de CD les plus modernes Le bus d’adresses/de données de la CPU de 24 MHz. Le réseau LC constitué par
dotés d’une sortie optique, mais CPU 80C52 intégrée dans le C32 et L1 force le quartz à osciller à 48 MHz
aussi les lecteurs plus anciens ne UDA1325 est, comme cela est le cas et non pas à 16 MHz. Le condensateur pris à
comportant aucune autre sortie avec de type d’unités centrales inté- la broche VREFDA (broche 40) du UDA1325
qu’une sortie Cinch. Une EPROM grées, relié directement, par le biais remplit une double fonction : d’une part il
épaulée par son incontournable ver- du verrou IC4, à l’EPROM IC5. PSEN assure une impulsion de remise à zéro (reset)
rou d’adresse, sans oublier l’indis- est le signal d’échantillonnage correcte pour le microcontrôleur et de l’autre
pensable régulateur de tension 3,3 V (strobe) de lecture à destination de fournit une tension de référence à l’intention
chargé de l’alimentation du l’EPROM. Le signal ALE différencie du CNA interne. Le transistor T2 assure la
UDA1325 complètent le tableau (de les données des adresses au niveau commutation de la résistance R10 prise dans
chasse) électronique. de P0. Nous avons forcé la ligne la ligne D+ de la liaison USB, ce qui permet
d’adresse A15 à la tension d’alimen- à l’hôte de détecter une connexion USB et
tation positive de manière à pouvoir l’amène à tenter d’effectuer une initialisation
Le schéma utiliser, pour l’EPROM, tout autant du périphérique.
Le récepteur S/PDIF est activé en une 27C256 qu’une 27C512. Il faudra L’alimentation de notre carte peut se faire tout
mode matériel (hardware mode). Il veiller, en cas d’utilisation d’une aussi bien par le biais du port USB que de
reçoit ses données directement de 27C512, à ce que le code soit « miro- façon autonome. Comme les paramètres de
K1 (Cinch) ou de IC1 (Toslink), lignes risé » (se retrouve en double) à configuration diffèrent selon le mode adopté, le
de signal qui attaquent directement, compter de l’adresse 0x8000. Les cavalier JP1 permet une commutation de la
comme l’illustre le schéma de la lignes RD et WR n’étant pas acces- ligne d’adresse A14 (opération qui se fera
figure 1, selon le cas, soit la broche sibles de l’extérieur, il est totalement impérativement montage hors-tension !).
IECIN0 soit la broche IECIN1. impossible de connecter des compo-
En cas de présence d’un signal sur sants externes au bus de la CPU. Au
l’une des 2 entrées, la PLL (Phase coeur de la puce, les signaux RD et Le progiciel (firmware)
Locked Loop = boucle à verrouillage WR servent à l’adressage de diffé- Le progiciel proposé par Philips ne supporte ni
de phase) du récepteur essaie de se rents registres matériels. Il ne nous une commutation de la source de signal à
verrouiller sur le dit signal. Le niveau paraît pas judicieux d’entrer ici dans enregistrer ni le rehaussement de la sensibi-
appliqué à la broche 7 de IC2, IEC- le détail du fonctionnement interne lité d’entrée en mode de fonctionnement ana-
SEL, détermine l’entrée utilisée. de ce composant complexe qu’est le logique. Ces « déficiences » constituèrent une
Après verrouillage de la PLL, les UDA1325. Que ceux que le sujet inté- raison supplémentaire de développement
6/2003 Elektor 15
6/2003
Figure 1. L’électronique se résume en fait au récepteur S/PDIF TDA1315 et au UDA1325 qui intègre lui l’interface USB et un DSP.
+5V +5V
IC1 L2
R4
TORX173 L3 C8 C9
+5V +5V
1Ω
Elektor
IC4 C42
R8 R12 R13 R19 R14
2 4 5 6 100n 10
100n 100n 100n
22k
22k
22k
22k
1Ω
100n
3 42 17 T2
VDDD1
VDDD2
12 28 9 32 38 42 52 28
VDDA
S/PDIF IC4
C1 6 22
K1 IECIN0 LADDR
VDDE
VDDX
VDDA1
VDDA2
VDDA3
10n
VDDO
VDDI
5 23 R5 R7 R6 R9 2 56 AD0 AD0 2 19 A0 A0 10
IECIN1 LMODE C10 BC557B BCKO/GP4 P0.0 1D A0
4k7
4k7
4k7
22k
32 24 1 58 AD1 AD1 3 18 A1 A1 9
MUTE LCLK R10 WSO/GP3 P0.1 A1
75Ω
R1 12 25 60 AD2 AD2 4 17 A2 A2 8
UNLOCK LDATA P0.2 A2
1k5
2 26 2 6 30
VREF STROBE 22Ω D– P2.7 +5V OE CE R28
43 1
2n2 CLKSEL +5VUSB 22 14 20
10k
L4 C12 C11
28 50
TESTA ALE
10 33 4 31
TESTB I2SSEL 22p 22p PSEN
L5
VSSD1
VSSD2
11 38
VSSA
TESTC I2SOEN
C2 C4
R26
K3 C28 47µ 47 37 C37 47µ K4
4 41 18 VINR VOUTR 100Ω
10µ 100n LINE 25V 25V LINE
25V R27
C29 47µ 43 34 C38 47µ
VINL VOUTL 100Ω
25V 25V
+5V VDDE
51 54
VRP XTAL1A
L8 +5VUSB 19 53
SCL/GP6 XTAL2A
21 4
IC6 SDA/GP7 SHTCB
C26 C27 +5V VDDX VDDI C13 C14 35 VDDO VDDA1 VDDA2 VDDA3
JP1 LE33CZ TC
36
100n 100n POWER USB +3V3 100n
RTCB +3V3
10µ 25V
VSSA1
VSSA2
VSSA3
49 48
VSSO
VSSE
VSSX
VRN EA
VSSI
EXT L6 L7 XTAL2B XTAL1B VREFDA VREFAD R21 R20 R23 R22
D4 IC7
1Ω
1Ω
1Ω
1Ω
26 25 10 11 33 24 39 44 55 40 41
1N4002 7805 +U A14
X1
> 9V C32
R17 R18 10n R24 R25
C47 C46 C45 C44 C43 C15 C16 C17 L1 C31 48MHz C30 C36 C35 C33 C34 C39 C40 C20 C21 C18 C19 C24 C25 C22 C23
10k
10k
220k
220k
1µH5
470µ 100n 10µ 100n 100n 100n 100n 100n 10p 10p 10µ 100n 100n 47µ 10p 10p 10µ 100n 10µ 100n 10µ 100n 10µ 100n
25V 63V 25V 25V 25V 25V 25V 25V
PC&AUDIO
16
PC&AUDIO
d’un progiciel propre. En raison peut télécharger sans le moindre tisseur de taux d’échantillonnage ou le
d’une erreur au niveau du pilote problème depuis Internet (et cela en CAN.
audio de Windows 98, cette commu- toute légalité même) pour quelques Dans ce cadre, la matériel centré sur le DMA
tation d’entrée ne fonctionne qu’à poignées d’euros seulement. (Direct Memory Access) se charge, sans la
partir de Windows 98SE (Second Le progiciel remplit 4 fonctions moindre intervention extérieure, de la trans-
Edition). Il vous suffira de faire un majeures : mission de données d’audio numérique de
tour dans les propriétés système de – Pilotage du noyau (core) USB sorte que l’on n’a pas besoin de logiciel pour
votre machine pour découvrir quelle – Traitement des demandes (request) cela.
est la version de Windows sous de l’interface USB 1.0 Std (GET- En USB, les périphériques audio travaillant
laquelle tourne votre machine. La Descriptor par exemple) avec ce port sont des extensions dites coum-
première version de Windows 98 se – Traitement des demandes de pount, ce qui signifie qu’elles comportent plu-
contente de valider que les signaux classe de l’USB Audio 1.0 (le sieurs interfaces. Dans le cas présent il s’agit
analogiques. La seule solution volume par exemple) des 3 interfaces Control, Wave Out et Wave
consiste à passer à la version SE98 – Pilotage des périphériques embar- In. Pour chacune de ces interfaces, Windows
de Windows, réactualisation que l’on qués sur la puce comme le conver- installe un pilote (driver) spécifique. Il est très
facile ainsi d’intégrer de nouvelles interfaces
dans la liste des descripteurs (HID par
exemple).
R28 C39
L1
R21
C31
H2
C32
H1
R24
C20 K4 Structure du descripteur de
OUT1
R27
C38
R20
C42 C30 X1
C15 L6 C37
configuration d’un
C21 C18 C36 périphérique audio USB :
IC5
C27
IC4
C19
C26
C17
R26 Config
IC3
C40
C35
C34
L8
C33 R25 Interface0 pipe (control)
L7 C25 R18
AC Control audio (Topologie)
C16 C13
....
C24
C41 C29
R23
C14
Interface (alt0) pipe
K2 C12 C28
R12
R14
R13
C23
R11
L4 JP1
C43 C4 ….
0 C44
R8
EXT
R9
R6
R3
H3
C7
D4 D3 D2 D1 1-310210 ACEndpoint audio (samplerates)
ROTKELE )C(
(C) ELEKTOR
012013-1
Figure . Dessin des pistes et sérigraphie de l’implantation des composants de la platine de l’enregistreur Audio USB.
6/2003 Elektor 17
PC&AUDIO
Liste des composants
Résistances :
R1 = 75 Ω
R2 = 470 Ω
R3 = 680 Ω
R4,R19 à R23 = 1 Ω
R5 à R7 = 4kΩ7
R8,R9,R11 à R14 = 22 kΩ
R10 = 1kΩ5
R15,R16 = 22 Ω
R17,R18 = 220 kΩ
R24,R25,R28 = 10 kΩ
R26,R27 = 100 Ω
Condensateurs :
C1,C32 = 10 nF céramique RM5
C2,C9,C13,C18,C20,C22,C24,C36 =
10 µF/25 V radial RM5
C3 = 2nF2 céramique RM5
C4,C6,C7,C14 à C17,C19,C21,C23,C25 à
C27,C33,C35 = 100 nF (CMS1206)
C5,C8,C10,C41 à C44,C46 = 100 nF
céramique RM5 Il faut, si l’on veut qu’un périphérique topologie USB. Chaque canal (pipe)
C11,C12 = 22 pF USB soit reconnu par le système d’ex- audio doit disposer d’un paramètre
C28,C29,C34,C37,C38 = 47 µF/25 V radial ploitation comme étant un appareil dit Alternate Setting 0 pour éviter les
C30,C31,C39,C40 = 10 pF
audio, que le descripteur de configu- pertes inutiles de bande passante
C45 = 10 µF/63 V radial
ration une série de descripteurs ayant lors de la clôture du canal.
C47 = 470 µF/25 V radial
trait aux interfaces et Endpoint spé-
cifiques de l’Audio Class (AC).
Inductances :
Selon la taille de la topologie et le
Implantation
L1 = 1µH5
L2 = 47µH nombre de paramètres de configura- des composants
L3 à L8 = BLM31A601S (Murata CMS1206 tion (Interface Alternate Settings) la Un premier coup d’oeil au dessin des
chez Farnell 581-094) quantité de données recueillie a vite pistes de la platine double face à
fait d’atteindre le kilooctet. On défi- trous métallisés représenté en
Semi-conducteurs : nit, dans le descripteur AC-Control, figure 2 aura vite fait de nous
D1 à D3 = LED 3 mm les caractéristiques de la carte-son apprendre que nous nous trouvons
D4 = 1N4002
(entrées, sorties, liaisons, réglages). en présence, dans le cas de IC2 et de
T1 = BC547B
T2 = BC557B Le DDK de Microsoft comporte un IC3 (de même d’ailleurs de celui de
IC1 = TORX173 outil baptisé grapher.exe. Cet outil certains des composants passifs), de
IC2 = TDA1315H/N2 (Philips) permet, de définir facilement une composants CMS. Vu le nombre
IC3 = UDA1325H/N106 (Philips)
IC4 = 74HC573
IC5 = 27C512-10 (EPROM programmée :
EPS 012013-21)
IC6 = LE33CZ (ST, chez Farnell par
exemple) ou LP2950CZ-3.3 (National
Semiconductor)
IC7 = 7805
Divers :
JP1 = embase mâle à 1 rangée de 3 contacts
+ cavalier
K1 = embase Cinch encartable telle que,
par exemple, T-709G (Monacor)
K2 = embase USB de type B encartable
K3,K4 = embase jack 3,5 mm stéréo
X1 = quartz 48 MHz 3ème harmonique
résonance parallèle
Téléchargements :
Dessin de la platine et code hexadécimal de
l’EPROM (mais pas le code-source) à :
www.elektor.fr/dl/dl.htm
18 Elektor 6/2003
PC&AUDIO
important de pattes des dits compo-
A
sants il est difficile de parler de jeu Courbes de mesure +1
+0.5
sion de vous faire la main sur ce sont montés en série. Nous avons uti- d
-1.5
B
genre de composants nous vous lisé, pour cette mesure, un pilote mul-
r
A
-2
-3
utilise un fer à souder ordinaire. Une full duplex vu qu’il retarde le signal du -5
20 50 100 200 500 1k 2k 5k 10k 20k
d’un immense secours dans le cas que le CNA cette bosse ne dépasse
1
0.5
présent. Le coût d’une telle station de pas 0,5 dB de hauteur. 0.2
soudage est important de sorte que La courbe B rend le facteur distorsion % 0.1
l’achat d’un tel équipement ne se jus- + bruit en relation avec la fréquence. 0.05
tifie que si l’on doit implanter souvent Cette fois encore, les convertisseurs 0.02
Comme d’habitude, une fois que les étant principalement dues au CAN. 0.005
2 circuits intégrés et les 21 conden- Les valeurs sont pratiquement 2 fois 0.002
sateurs et selfs CMS auront été sou- supérieures à ce que la fiche de carac- 0.001
20 50 100 200 500 1k 2k 5k 10k 20k
Hz 012013 - 13
Après l’étape délicate de la mise en tion (0 dB), mesurée à l’aide d’un -30
-40
place des CMS, cette opération ne signal de 997 Hz échantillonné à une -50
-80
la polarité des condensateurs élec- somme distorsion + bruit est, à une -90
-120
seront montées que plus tard, que le bruit augmente au-delà de -150
20 50 100 200 500 1k 2k 5k 10k 20k 50k 90k
Hz
lorsque l’on saura exactement où 20 kHz (ce qui est typique de la mise
012013 - 14
elles devront se trouver sur le boîtier. en forme du bruit, le noise shaping, dans le cas des convertisseurs Delta-Sigma) les distor-
La dernière étape de l’opération de sions ne vont pas au-delà de 0,03%, lorsque l’on augmente à 80 kHz la bande passante à
soudage consiste à la mise en place laquelle la mesure est faite.
des embases et connecteurs :
2 embases mini-DIN, les embases Valeurs de mesure (alimentation via le bus)
TosLink, Cinch et USB. Dès lors que Consommation de courant (via le bus) 96 mA
votre platine ressemble comme une Consommation de courant (autonome) 109 mA
goutte d’eau à celle représentée sur CNA
la photo, et que vous vous serez Tension de sortie nominale (0 dB) 0,66 V
assuré de l’absence de pont de sou- Plage de fréquences (–3 dB) 23,9 kHz (fech = 48 kHz)
dure ou de toute autre erreur de Amplitude (20 kHz) +0,38 dB (fech = 48 kHz)
montage, vous pouvez estimer que Impédance de sortie 110 W
l’étape de mise en place des compo- Rapport signal/bruit >96 dBA
sants est terminée avec succès. DHT+B (THD+N) (1 kHz) 0,008% (B = 22 kHz)
,03% (B = 80 kHz)
Diaphonie >100 dB (1 kHz)
Mode d’emploi 87 dB (20 kHz)
CAN
Le cavalier JP1 est mis en position
Sensibilité d’entrée maximum 58 mV
extPwr (external Power, comme vous
Sensibilité d’entrée minimum 1,42 V
l’avez sans doute déduit de vous- Impédance d’entrée 12 kW
même) et l’alimentation assurée par DHT+B (THD+N) (1 kHz, –0,5 dBFs) 0,02% (B = 24 kHz)
un module d’alimentation. La Diaphonie >69 dB (1 kHz)
consommation de courant devrait se 47 dB (20 kHz)
situer aux alentours de 110 mA. Mais
6/2003 Elektor 19
PC&AUDIO
il est également possible, contrairement à ce
qui avait été le cas de la mini-carte-son USB
décrite dans le n° 294 (décembre 2002), d’en-
visager une alimentation de ce montage à
l’aide d’un hub USB à condition bien entendu
d’avoir mis le cavalier dans la position cor-
respondante. On devrait découvrir un signal
de quelque 4 MHz sur la broche 11 de IC4; si
tel n’est pas le cas il faudra examiner l’oscil-
lateur centré sur X1, à la recherche d’erreurs
de soudure ou d’implantation de composants.
Les utilisateurs de Windows 98SE/Me
devront, avant de passer à l’installation, ins-
taller les patchs correspondants proposés par
Microsoft. Les raisons et le mode opératoire
sont expliqués dans un encadré. Plug&Play
simplifie très sensiblement l’installation de
l’enregistreur audio. Dès que l’appareil est
connecté à un port USB du PC Windows le
reconnaît automatiquement et installe les
pilotes pour l’enregistreur audio USB,
SNDREC10.INF pour le mode autonome et Déverminage de Windows
SNDREC11.INF pour le mode à alimentation Windows, par le biais de Sndvol32.exe, ne pilote pas correctement les appareils
par le bus (les fichiers sont placés dans le audio USB servant à l’enregistrement ou à la reproduction sachant que ce sys-
répertoire INF). Il est bon d’avoir à portée de tème d’exploitation (SE) ne différencie pas des appareils portant la même déno-
main le CD-ROM d’installation de Win- mination. Cette situation peut avoir des conséquences diverses. Après l’installa-
dows 98SE au cas où l’on en aurait besoin. tion de l’appareil Audio et le redémarrage du SE on ne dispose plus d’une possi-
Une fois l’installation effectuée et après avoir bilité de réglage du volume du lecteur de CD. La dénomination du régleur de
redémarré l’ordinateur l’appareil est reconnu volume est erronée et si l’on se trouve en présence de plus d’un unique sélec-
et le gestionnaire de matériel est redémarré teur d’entrée les 2 se trouvent baptisés USB Audio Device et ne peuvent pas
une seconde fois. Cette fois on a installation être commandés séparément. Le matériel tel que cette carte-son qui supporte
des pilotes pour USB Audio. l’enregistrement et la reproduction en mode full duplex est représentée de
Si l’on a installé les patches le gestionnaire façon erronée lui aussi. Les options Line In et Mic sont visualisées sous la forme
PnP découvre la présence, dans le dossier des de USB Audio Device, il est impossible de choisir l’un des sélecteurs d’entrée. Le
potentiomètre de volume maître de la reproduction est identifié en tant que
pilotes, de nouvelles versions de VDM Audio.
USB Audio Device.
Il faut veiller à ne pas écraser par une opéra-
tion ultérieure ces nouvelles versions. Si l’ins-
Il existe, sous la dénomination Q269601.EXE et Q280127.EXE, des programmes
tallation s’est faite correctement on devrait
de réparation (bug fix) de ces imperfections, programmes disponibles sur le site :
trouver dans le gestionnaire système l’appa- www.media-assistance.com/English/index english.html
reil Audio USB dans la rubrique Audio Vidéo, www.pcsound.philips.com/driverfiles/patch269601usa8/269601 usa8.exe
Contrôleur de manette. Il est possible dès lors (pour Windows 98SE uniquement).
d’enregistrer et de reproduire des données Sur le site Web de Microsoft
audio par n’importe quel logiciel de son sup- http://support.microsoft.com/?scid=KB;en-us:280127
portant les pilotes multimédia de Windows. on trouvera également le patch pour Windows Me.
L’un des avantages de l’enregistreur Audio
USB par rapport à la mini-carte-son USB est Si l’on procède à l’installation des programmes de réparation après l’installation
qu’il permet une sélection par menu de la de l’enregistreur Audio USB audio ou que l’on rencontre des problèmes de visua-
source d’entrée. Il est possible, dans le menu lisation des appareils audio on pourra tenter de les éliminer par une suppression
Wave In du paramétrage de l’enregistrement, du USB Audio Device du Registry en s’aidant de l’outil RegEdit. Cette opération
de choisir, parmi les 3 entrées proposées, Digi- requiert un minimum d’expérience sachant qu’une modification erronée à ce
tal Audio Interface pour l’entrée S/PDIF niveau, qu’il s’agisse d’une adjonction ou d’une suppression, peut avoir des consé-
coaxiale, SPDIF Interface pour l’entrée optique quences fatales quant à la stabilité voire au fonctionnement du système.
et Line pour l’entrée analogique. Dans le cas Le premier pas consiste à chercher la Key
des entrées numériques les LED visualisent le HKEY_LOCAL_MACHINE\Enum\USB. Si le système est (ou a été) connecté à
taux d’échantillonnage, le niveau n’étant bien plusieurs appareils USB, ces derniers sont classés par identificateur fabricant
(Vendor ID) et identificateur produit (Product ID). L’entrée d’identification de
entendu pas réglable lui. Le réglage de niveau
l’enregistreur Audio USB commence par VID_0C7D.... On interrompt ensuite la
de l’entrée ligne bat la plage d’amplification
liaison USB vers l’appareil et on vire toutes les Keys du Registry concernant l’ap-
du préamplificateur interne qui va de –3 à
pareil en question. On quitte RegEdit et on reconnecte l’enregistreur Audio USB
+27 dB (dans le cas de la mini-carte-son il au port USB. Tous les pilotes sont à nouveau installés. L’installation ne pose par
n’était possible de définir que 2 niveaux et contre pas le moindre problème sous Windows XP, MacOS et, bien évidemment
cela matériellement et non pas par logiciel). diront ses défenseurs irréductibles, Linux.
(012013)
20 Elektor 6/2003
INFORMATIONS
Refroidissement
de composants
électroniques
Des développements vraiment « cools »
Reg Miles regmiles@lycos.co.uk
Le radiateur ne constitue plus la solution uni- applications militaires et aérospatia- transfert calorifique par fragmenta-
verselle qu’il constituait auparavant, mais son les où l’on avait grand besoin de tion, au niveau des ailettes, de la
utilisation reste fréquente. L’efficacité de n’im- grandes surfaces sous un poids fai- couche d’air au déplacement lent,
porte quel concept dépend de l’aire des ailet- ble; il s’est rapidement répandu décrochage causé par la friction
tes et du coefficient de transfert de la chaleur dans les autres domaines de l’élec- entre les particules d’air et le métal,
(l’efficacité de dissipation de la chaleur par la tronique. Dans le cas de flux d’air région connue sous la dénomination
surface). Le problème de l’utilisation de l’air omnidirectionnels la transformation de couche-limite. Les ailettes en
à cet effet est que l’air est un assez bon iso- d’ailettes plates en sections de aiguille (colonnes rondes elliptiques
lant. Il n’en reste pas moins que ce fluide pré- forme cylindrique se traduit par une ou hexagonales) produisent le même
sente des avantages certains -dans le amélioration de près de 20% par rap- effet -et peuvent toujours encore ren-
domaine des applications grand public en port aux ailettes bi-directionnelles. dre d’excellents services par con-
particulier. De nouvelles techniques soit ajou- vection naturelle dans le cas d’une
D’habitude, les ailettes de radiateur sont min- tent un galbe au bord d’attaque ou masse d’air se mouvant à faible
ces et plates. Plus récemment cependant, on au bord de fuite vertical des ailettes vitesse.
mis sur le marché des ailettes galbées faites séparées (ailette torse) ou découpent La plupart des radiateurs sont fait en
de feuilles de métal extrudé, fixées par sou- et recourbent les ailettes pour leur aluminium. On utilise également le
dage ou autre technique à la surface de base donner la forme d’un diapason de cuivre lorsque sa meilleure conduc-
du radiateur. manière à créer une certaine turbu- tion pèse plus lourd que les aug-
Ce concept a été introduit à l’origine dans les lence; cette approche améliore le mentations de poids et de coût
22 Elektor 6/2003
INFORMATIONS
qu’entraîne son utilisateur. Le car-
bure silicique d’aluminium (AlSiC),
apparu récemment sur le marché,
constitue une alternative; il est léger,
solide et bon conducteur, mais reste
coûteux pour le moment.
Le graphite naturel est un autre nou-
veau-venu; il présente la conduc-
tivité du cuivre tout en ayant une
densité plus de 4 fois moindre. Le
graphite pyrolytique et les matériaux
basés sur les fibres de graphite Figure 1. Représentation du stockage de l’énergie par changement de phase (avec
voient leurs propriétés de conduc- l’autorisation du Consortium de recherche sur les technologies du refroidissement)
tivité s’améliorer sans cesse; leur
fabrication requiert des températu-
res supérieures à 3 000 °C, ce qui est en action lorsque la température mosiphon prend la forme d’un tube fermé, la
coûteux et partant réservé, pour l’in- regrimpe. Il existe des radiateurs plupart du temps en cuivre, contenant une
stant, aux applications aérospatiales remplis de PCM, sachant que l’on petite quantité de fluide, très souvent de
et aéronautiques. Notons au passage peut fixer des réservoirs de PCM à l’eau. Comme le fluide se trouve dans le vide,
que les matériaux à base de graphite des platines ou à des composants l’application de chaleur se traduit par sa
présentent de fortes propriétés ani- spécifiques. vaporisation aisée, transition qui permet
sotropes avec des conductivités dif- d’absorber une quantité importante de cha-
férentes selon les axes directionnels, leur, la valeur montant vers l’autre extrémité
ce qui limite leurs domaines d’appli- Ventilateurs et jets du tube où se fait l’évacuation de la chaleur
cations. Lorsque l’on se trouve en présence et où prend place la condensation de la valeur
de composants chauffant beaucoup sur la paroi intérieure du tube, de sorte que
la solution prend probablement la le liquide redescend et le cycle reprend au
Pâtes pour radiateur forme d’un ventilateur. Le pulseur début. Il suffit d’une faible chute de tempéra-
On a coutume, en vue de maximiser d’air (jet actuator) est un développe- ture pour obtenir la condensation de la
la conduction entre le(s) compo- ment récent. Ce dispositif prend la vapeur de sorte que le système est très effi-
sant(s) et la base du radiateur, d’ap- forme d’une cavité dite chambre cace.
pliquer, sous une forme ou une autre, associée à un petit diaphragme L’intérieur d’un caloduc est recouvert d’une
un produit thermoconducteur ser- piloté électromagnétiquement et qui couche poreuse qui entraîne une recirculation
vant à combler les interstices dus par ses mouvements aspire de l’air du liquide par capillarité vers l’extrémité
aux inégalités des surfaces, de pour le rejeter ensuite. Cette appro- chaude. Plus la structure des pores est fine,
manière à éviter la présence d’une che impulsionnelle permet d’éviter mieux la capillarité sera en mesure de vain-
couche d’air à l’effet isolateur. Le les problèmes de couche-limite évo- cre la gravité : des tubes à structure interne
produit le plus couramment utilisé qués plus haut, vu que la couche striée et à écran fin ne permettent qu’une
est une pâte thermoconductrice à d’air va s’amincir entre les jets. Une légère inclinaison du dispositif, l’évaporateur
base de silicone; il existe cependant version miniaturisée de ce produit ne se trouvant que très légèrement au-dessus
bien d’autres produits de ce genre. baptisée Micro-Jet Array a été mise du condenseur, alors que des tubes dotés
L’un des développements récents au point; le pulseur peut être placé d’un revêtement interne à base de poudre
dans ce domaine est l’utilisation juste en dessous du composant sur métallique peuvent s’accommoder de n’im-
d’un matériau à changement d’état lequel il « souffle » de l’air à une porte quelle orientation.
(dit PCM pour Phase Change Mate- vitesse de l’ordre de 70 km/h. Les thermosiphons et les caloducs devien-
rial). Ce matériau est solide à une nent de plus en plus intéressants en raison
température prédéterminée, se de leur efficacité et de leur fonctionnement
liquéfiant lorsque sa température Thermosiphon & Co. passif. Ils ont également des dimensions
dépasse cette valeur, le forçant à se Une autre méthode pour éviter les compactes, 3 à 4 mm de diamètre, des versi-
répandre et à combler les interstices points chauds, plus efficace au ons miniaturisées plus fines font leur appari-
libres. demeurant, consiste à évacuer la tion et, de plus, à la longueur adaptée à l’ap-
On peut également utiliser ce type chaleur produite par le composant plication. Un téléphone mobile par exemple
de matériau pour éviter que des vers un endroit où il est possible de pourra se contenter d’un caloduc de petite
composants ne dépassent une cer- refroidir à proximité de la sortie taille et d’ici qu’il utilise l’antenne comme
taine température de fonctionne- (voire même à l’extérieur du boîtier condenseur...
ment voire pour refroidir des compo- si tant est que cela soit réalisable). Dans un ordinateur portable, le caloduc sera
sants travaillant en mode transitoire. Cela peut être réalisé à d’aide d’un un peu plus grand et utilisera une plaquette
Il se dilate lorsqu’il change de phase thermosiphon ou heat-pipe (caloduc d’aluminium placée sous le clavier ou un
et se liquéfie, absorbant ainsi l’excé- semble être meilleur que la traduc- radiateur comme condenseur. Plusieurs calo-
dent de chaleur (cf. figure 1); lorsque tion pipe à chaleur proposée par ducs pourront être utilisés en vue du trans-
la température retombe, le matériau Google) sans qu’il n’y ait besoin de fert de la chaleur produite par plusieurs com-
se resolidifie prêt à entrer à nouveau la moindre énergie externe. Un ther- posants vers un unique radiateur.
6/2003 Elektor 23
INFORMATIONS
Une nouvelle approche du thermosiphon et
du caloduc est d’en faire un tore. La vapeur
va de l’évaporateur au condenseur et le
liquide condensé retourne par un prolonge-
ment du tube vers l’évaporateur. L’avantage
de l’approche en tore est de permettre d’uti-
liser pour les lignes de vapeur et de liquide
des éléments flexibles et que leur longueur
peut être sensiblement plus importante -
dépassant le mètre linéaire. Une nouvelle
variation sur le thème caloduc est le caloduc
à pulsion doté d’un serpentin interne dans
lequel les phénomènes d’expansion et de
contraction induits respectivement par la
vaporisation et la condensation produisent un
mouvement pulsateur repoussant la vapeur
vers la partie froide et le liquide vers la par-
tie chaude.
24 Elektor 6/2003
INFORMATIONS
le refroidissement thermoélectrique tués de deux couches alternées de revenir en arrière. La basse tension signifie
(TEC, Thermoelectric Cooler) – aussi matériaux semi-conducteurs pour que le refroidissement peut être obtenu
connu comme unité Peltier. Ceci con- piloter le transport de phonons et sans réchauffement non désiré. Le problème
siste en deux éléments semi-con- d’électrons dans les super-réseaux principal du modèle utilisant un espace de
ducteurs, principalement des tellur- (superlattice) : les super-réseaux de vide est d’obtenir un espace d’une certaine
ures de bismuth, fortement dopés type p Bi2Te3/SbTe3 bloquent les taille à travers une zone mesurée en cen-
pour créer des couples de type n et premiers (pour empêcher la chaleur timètres carrés -au laboratoire, puis ensuite
de type p (cf. figure 3). A la jonction d’être renvoyée à son origine) et en production.
froide, la chaleur du composant est transmettent les seconds. Il est
absorbée par des électrons propul- réputé être 2,4 fois plus efficace que
sés par un courant électrique d’un le TEC traditionnel ; et répond L’approche frigidaire
bas niveau d’énergie dans l’élément 23 000 fois plus rapidement, grâce à En revenant au refroidissement par liquide,
de type p vers un niveau d’énergie sa minceur. un tel système peut utiliser le refroidissement
plus élevé dans l’élément de type n ; Apparemment, des points de ce traditionnel pour rafraîchir le liquide. Dans ce
à la jonction chaude, les électrons matériau uniquement placés aux système à liquide réfrigéré (appelé aussi
retournent du type n vers le type p points chauds sur un composant liquide à liquide), le réfrigérateur remplace
de bas niveau et la chaleur est expul- électronique seraient plus efficace l’échangeur de chaleur. De la même façon,
sée. Le flux d’électrons est maintenu que le refroidissement du dispositif l’eau est probablement le liquide circulant.
par le courant continu, qui monte complet -et économiseraient de la S’il faut la refroidir à des températures en des-
dans un couple et redescend dans puissance. En attendant, la DARPA sous de zéro, elle peut-être mélangée à de
l’autre, tandis que le courant porteur, finance une recherche dans les pla- l’antigel -qui réduit les propriétés de très bon
et la chaleur, descendent tous les ques intégrées réfrigérantes ther- transfert de chaleur de l’eau et augmente la
deux. Normalement, les couples de moélectriques à liquide, pour rem- viscosité, mais pas significativement. Autre-
type n et de type p sont combinés en placer le duo TEC-liquide refroidis- ment, le système peut devenir un réfrigéra-
nombre variés pour constituer un sant séparé plus onéreux et moins teur lui-même, ce que l’on appelle habituelle-
module, dans lequel ils sont connec- efficace -un projet conduit par la CFD ment un refroidisseur par compression de
tés électriquement en série et ther- Research Corporation. vapeur. VapoChill (www.vapochill.com) pro-
miquement en parallèle. Un module L’unité de refroidissement ther- pose une gamme de stations de travail, de PC
peut être petit, mais tout de même moélectronique est une variante du de puissance, et un kit pour les constructeurs
produire une différence de tempéra- TEC. Elle utilise deux matériaux amateurs (cf. figure 4). Pour gagner de la
ture typique de 70 degrés Celsius. séparés par une couche-barrière place, un tube capillaire est utilisé pour
Pour un refroidissement plus impor- d’environ un micron d’épaisseur ou réduire la pression avant l’évaporateur monté
tant, les modules peuvent être un espace de vide de quelques nan- sur l’unité centrale, sinon cela ressemble à un
montés en cascade. omètres : au fur et à mesure que les réfrigérateur normal. Ces systèmes sont
électrons absorbent la chaleur et prévus pour être utilisés à basse température,
gagnent de l’énergie, ils franchis- entre +20 et –40° C. Parce que c’est le réfri-
Bloc super-réseau sent un tunnel depuis le côté froid gérant lui-même qui circule, le flux peut être
Un nouveau développement venant (émetteur) vers le côté chaud inférieur qu’avec un liquide de refroidisse-
du Research Triangle Institute pro- (collecteur), aidés par une tension ment réfrigéré. Un projet conduit par l’Uni-
met de donner une considérable polarisée -et la couche-barrière ou, versité de Stanford pour le compte de la
accélération au TEC. Il utilise des plus particulièrement, l’espace de DARPA étudie l’utilisation d’un micro-refro-
empilages de films minces consti- vide empêchent les phonons de idisseur, utilisant une pompe électrocinétique
et un micro-évaporateur incorporant un cap-
teur de température. Le but à long terme est
de développer des unités réfrigérantes
basées sur des compresseurs originaux pour
la phase de vapeur utilisant la technologie
électrocinétique.
En faisant fonctionner des unités CMOS à
basse température, on obtient une augmen-
tation significative de performance. C’est
principalement dû à une diminution expo-
nentielle des courants de fuite et à une aug-
mentation de la vitesse de basculement des
transistors. Cette dernière provient d’une
amélioration de la mobilité, qui augmente lor-
sque la température baisse parce que les
vibrations thermiques dans le réseau molé-
culaire du semi-conducteur diminuent et,
avec elles, la diffusion électro-phononique qui
Figure 3. Structure de base d’un refroidisseur thermoélectrique (TEC) (avec ralentit la vélocité porteuse (la vitesse de bas-
l’autorisation de Melcor) culement des transistors étant propor-
6/2003 Elektor 25
INFORMATIONS
tionnelle à la vélocité porteuse moyenne dans Surveillez vos calories Jusqu’à récemment, on avait besoin
l’unité). Toutefois, certaines unités peuvent pour ce procédé d’un aimant supra-
défaillir à cause de défauts d’appariement En plus des systèmes de réfrigéra- conducteur. Mais les chercheurs des
dans l’expansion thermique de leurs tion utilisant des liquides ou des gaz Laboratoires Ames, travaillant en
matériaux, ou de défaillances électroniques pour obtenir le refroidissement, la partenariat avec l’Astronautics Cor-
dues à des effets de porteuse chaude -elles recherche se poursuit dans des poration, ont développé un réfrigéra-
doivent être adaptées pour l’usage à ces bas- systèmes employant l’effet magnéto- teur utilisant un aimant permanent,
ses températures. calorique. Cet effet est obtenu en et un disque tournant contenant un
Un autre obstacle à l’utilisation du refroidis- appliquant par cycles un champ alliage de gadolinium, de silicium et
sement par liquide réfrigéré est la condensa- magnétique à un solide parama- de germanium (GdSiGe) comme
tion qui se forme lors du contact entre l’air gnétique pour lui faire expulser la matériau paramagnétique. Des
ambiant, chaud et moite, et les parties froides chaleur absorbée lorsque le champ matériaux nanocomposites ont aussi
du système. Toutes les parties internes du est en fonction, parce que tous les été proposés pour augmenter encore
système de refroidissement doivent donc spins des électrons sont alignés et l’effet magnétocalorique.
être isolées pour prévenir la formation de con- l’entropie (et sa capacité à garder la Une variante de la réfrigération
densation. chaleur) réduite ; et pour lui laisser magnétocalorique consiste en une
Une technologie de réfrigération qui semble absorber la chaleur lorsque le champ réfrigération électrocalorique, qui uti-
particulièrement prometteuse pour le refro- est coupé, parce que les spins des lise des champs électriques pour
idissement des dispositifs électroniques (et il électrons se repositionnent au has- obtenir les mêmes effets. Elle a été
existe plusieurs alternatives au système tra- ard, accroissant ainsi sa capacité développée à l’origine par des cher-
ditionnel par compression de vapeur) est d’absorption. cheurs en Russie.
celle de l’unité de réfrigération thermo-acou- Lorsque le réfrigérant (qui peut être Son avantage est que les champs
stique (TRD, Thermoacoustic Refrigeration de l’eau additionnée d’antigel, ou électriques sont plus faciles et plus
Device) ou refroidisseur thermo-acoustique n’importe quel autre liquide adé- économiques à produire que les
(TAC, Thermoacoustic Cooler). Il utilise les quat) est pompé et entre en contact champs magnétiques. La recherche
ondes acoustiques stationnaires dans une du matériau paramagnétique alors sur les matériaux paramagnétiques
cavité fermée pour comprimer ou dilater que le champ magnétique est continue, pour trouver la combinai-
mécaniquement un gaz sous pression (nor- coupé, sa chaleur est absorbée et le son optimale qui permettra d’obtenir
malement de l’hélium), en conjonction avec liquide froid refroidit le(s) compo- des changements de température
un cœur thermo-acoustique consistant en une sant(s) électronique(s) ; le liquide réalistes.
pile poreuse de plaques. Il opère à la manière réchauffé revient alors auprès du
d’une pompe : l’expansion du gaz permet matériau (le champ magnétique
d’absorber la chaleur, alors que sa compres- étant mis en fonction) et emporte la Autres développements
sion expulse la chaleur ; lorsque les molécu- chaleur précédemment absorbée Pour être exhaustif, il faut citer aussi
les de gaz oscillent dans la pile à travers les vers un échangeur à ventilation. Le une paire d’autres méthodes de
plaques, elles refroidissent la pile en absor- cycle se reproduit ensuite. refroidissement par liquide utilisées
bant la chaleur dans un sens, et la réchauf-
fent dans l’autre – ce qui crée un gradient de
température dans la pile. On exploite ce
mécanisme par un échangeur de chaleur
chaude et un de chaleur froide à chaque
extrémité, traversés par un fluide circulant
(eau, avec ou sans antigel).
Parce que cette technique semble très effi-
cace sans nécessiter de liquides réfrigérants
ni de pièces mécaniques mobiles (sauf pour
le pilote acoustique), elle s’adapte parfaite-
ment à la miniaturisation. La DARPA a lancé
un projet, conduit par le Rockwell Scientific
Center, de développement d’une version
système micro-électromécanique (MEMS,
microelectromechanical) utilisant des
matériaux piézoélectriques et des transduc-
teurs pour obtenir une production acoustique
de haute performance. Un autre projet en
relation avec ce dernier, conduit par l’Univer-
sité de l’Utah, consiste à l’intégrer dans des
microcircuits électroniques. Un avantage sup-
plémentaire de l’unité TRD est de pouvoir
régler l’amplitude du degré de rafraîchisse-
ment, au lieu de la mettre en et hors service Figure 4. Système de refroidissement par compression de vapeur pour les
comme un réfrigérateur ordinaire. constructeurs amateurs (avec l’autorisation de Vapochilla/Asetek).
26 Elektor 6/2003
INFORMATIONS
Le Consortium étudie en ce moment les
caractéristiques du transfert de chaleur et de
mécanique des fluides dans les micro-canaux,
qui diffèrent sous plusieurs aspects des con-
ceptions traditionnelles à cause de leur petite
taille.
Un autre projet traite des ventilateurs pié-
zoélectriques –développés par Garimella et
Arvind Raman, professeur assistant d’ingé-
nierie mécanique à Purdue. Ces ventilateurs
disposent de pièces piézocéramiques,
attachées sur de minces lames souples
vibrant à basse fréquence, pour amener le
ventilateur à sa fréquence de résonance – le
courant alternatif induit une expansion-con-
traction de la céramique, provoquant un mou-
vement de battement (la figure 5 en montre
Figure 5. Principe du “battement” des ventilateurs thermoélectriques (avec le principe). La technologie est séduisante
l’autorisation du Consortium de recherche sur les technologies de parce que les ventilateurs peuvent être de
refroidissement). petite taille : suffisamment pour entrer dans
un téléphone mobile ou un ordinateur porta-
ble ; et suffisamment toujours pour être
pour des applications spécialisées. La NASA a aussi expérimenté le installés sur une puce et la refroidir directe-
La première est le refroidissement refroidissement par pulvérisation ; et ment, avec des lames longues de seulement
par pulvérisation, où, comme le nom l’immersion liquide, où les compo- 100 microns. Ils ne consomment que 2 mW
l’indique, les composants et les pla- sants sont plongés dans un bain d’électricité, à comparer aux 300 mW à peu
tines sont aspergés. Des chercheurs liquide. Ceci permettra à la NASA près consommés par un ventilateur tradi-
de l’UCLA (Université de Californie d’utiliser dans l’espace de plus en tionnel. Et, sans aimant, il n’y a pas d’inter-
Los Angeles) ont annoncé un raffi- plus de composants disponibles férences électromagnétiques avec les sig-
nement de cette méthode : ils ont dans le commerce ; en leur permett- naux. Le Consortium étudie et améliore aussi
développé des micro-pulvérisateurs ant d’être découplés du châssis et les caloducs plats et les matériaux à change-
qui refroidissent les composants protégés par un bouclier contre les ment de phases.
individuels, en utilisant une matrice radiations, en plus d’une bonne pro-
de becs de 35 microns de diamètre. tection thermique.
Ceux-ci sont fabriqués par gravure à Le Consortium de recherche sur les Conclusion
ion réactif, procédé qui donne une technologies du refroidissement de Le refroidissement était autrefois pris en
paroi interne particulièrement lisse l’Université Purdue dans l’Indiana a compte en dernier ressort, et considéré
pour minimiser les obstructions par été fondée par Suresh Garimella, pro- comme un art là où il était appliqué. Mais les
encrassage. L’eau pulvérisée refroidit fesseur d’ingénierie mécanique indu- récents composants fonctionnant sous haute
à la fois par convection thermique et strielle à Purdue, et comporte aujour- température ont mis fin à cette approche
par évaporation. La matrice des becs d’hui dix membres : Aavid Thermal- désinvolte. Il est aujourd’hui essentiel de le
est personnalisée selon la distribu- loy, Apple, Delphi-Delco Electronics, prendre en considération dès les premières
tion de chaleur du composant, qui Eaton Corporation, General Electric, étapes de la conception, et la recherche trans-
est revêtu d’une couche de Intel, Modine Manufacturing, Nokia, forme dorénavant cette discipline en science.
Parylène C, un polymère enrobant Rockwell Automation et Sandia (020411)
possédant d’excellentes propriétés National Laboratories. Le Consor-
diélectriques. La DARPA finance des tium dispose en outre de deux souti-
recherches similaires, conduites par ens : Johnson Matthey et Philips
l’Université Carnegie Mellon. Dans Research.
ce cas, les gouttelettes atomisées « L’industrie vient nous voir avec des NdlR :
(de fluides diélectriques) sont créées problèmes techniques, et nous con- Le phonon nous vient de l’univers quantique ;
par des coupelles rotatives et des duisons la recherche pour les résou- cette quasi-particule est une onde sonore quanti-
transducteurs piézoélectriques dre », annonce Garimella. fiée pouvant naître dans des solides et l’hélium
vibrants, aussi bien que par des Un certain nombre de projets sont à liquide II.
micro-pulvérisateurs. Il est prévu l’étude, dont l’étude de radiateurs à
d’utiliser un logiciel intégré dans la micro-canaux. Ceux-ci disposent de
puce pour contrôler la taille des gou- canaux de la taille de quelques Addendum :
ttelettes et la fréquence et l’empla- microns qui transportent un liquide Maplin (www.maplin.co.uk) propose, en plus d’un
cement des pulvérisations, selon la réfrigérant ; ils offrent un coefficient kit de réfrigération par liquide, un refroidisseur
température, les gradients thermi- de transfert de chaleur bien plus per- thermoélectrique, et une gamme de ventilateurs,
ques et l’épaisseur du film détectés formant que les radiateurs tradi- de radiateurs et de composants thermiques pour
simultanément. tionnels refroidis par liquide. le constructeur amateur.
6/2003 Elektor 27
LOISIRS
MahPong
Tennis en chambre avec µC AVR
Marcus Hasenstab MAH@jkdesign.de
28 Elektor 6/2003
LOISIRS
3 fois rien de matériel on commencera par déterminer les Tension de sortie au niveau du port :
courants devant être présents sur la 4,0 V à 6,7 mA
Le schéma très lisible représenté en résistance d’entrée de 75 Ω de l’em- Résistance totale requise :
figure 1 est l’exemple type d’un pro- base CVBS du moniteur. On en 4 V / 6,7 mA = 600 Ω
jet à base de microcontrôleur. Un dérive les valeurs des différentes Résistance de limitation :
programme sophistiqué et une utili- résistances : 600 Ω – 75 Ω = 525 Ω (580 Ω)
sation judicieuse des périphériques
intégrés dans le microcontrôleur per- R1 : Sync R3 : PixelOut0
mettent de réaliser des fonctions Niveau du noir : 0,3 V Niveau de gris foncé : 0,5 V
puissantes et à grande portée. La Courant à fournir par la broche 14 Courant fourni par la broche 24 :
circuiterie externe ne représente pas (Sync) : (0,5 V – 0,3 V) / 75 Ω = 2,7 mA
grand chose. 0,3 V/75 Ω = 4 mA Tension de sortie au niveau du port :
Les résistances R1 à R3 prises entre Tension de sortie au niveau du port : 4,6 V à 2,7 mA
le µC et K3 constituent, de pair avec 4,5 V à 4 mA Résistance totale requise :
la résistance de terminaison de 75 _ Résistance totale requise : 4,6 V / 2,7 mA = 1 700 Ω
du téléviseur, un diviseur de tension. 4,5 V/4 mA = 1 125 Ω Résistance de limitation :
L’AVR 90S8515 est capable de com- Résistance de limitation : 1 700 Ω – 75 Ω = 1 625 Ω (1,2 kΩ)
mander, au niveau de ses lignes de 1 125 Ω – 75 Ω = 1 050 Ω (1 kΩ) (de ce fait, le gris foncé s’éclaircit quelque
port, un courant de l’ordre de 18 mA. peu mais reste encore parfaitement distin-
Cependant, en raison de la résis- R2 : PixelOut1 guable du gris clair)
tance interne, la tension de sortie Niveau de gris clair : 0,8 V
dépend énormément du courant. Si Courant fourni par la broche 28 :
l’on veut effectuer des calculs précis (0,8 V – 0,3 V) / 75 Ω = 6,7 mA Côté sortie son sur le bornier K4, la tension
de R4/R5 se trouve ramenée à de l’ordre de
1 V. On pourra jouer sur le volume par le biais
IC1 de la commande correspondante sur le télé-
D1
1N4148 78L05 +5V
K1
viseur. Si vous préférez une sonorité plus
5
« moelleuse » vous pouvez ajouter le conden-
9 sateur C2 en parallèle sur R5.
S1 C3 C4 C5
4
16V C1 3
de commande numérique. Sur un manche de
7
BT1 100n 2
commande numérique chacune des direc-
6 tions est dotée d’un interrupteur (contact)
40
1 qui, lorsqu’il est activé (fermé), met à la
masse la ligne de commande correspondante.
1 39 RIGHT2
T0 AD0 SUB D9
2 38 LEFT2
+5V T1 AD1
K2 Les résistance de forçage au niveau haut (pull
3 IC2 37 DOWN2
AIN0 AD2
K5 4 36 UP2 5 up) intégrées dans le microcontrôleur per-
AIN1 AD3
2 1 5
SS AD4
35 RIGHT1 9 mettent une prise en compte fiable des mou-
4 3 6 34 LEFT1 4 vements des manettes.
MOSI AD5
6 5 7 33 DOWN1 8
L’interface K5 prend la forme d’une embase à
Joueur 1
MISO AD6
8 7 8 32 UP1 3
SCK AD7
10 9 7
2 rangées de 5 contacts (avec détrompeur) tel
29 17
OC1B RD 2 qu’on le trouve sur la carte d’évaluation du kit
9 16
RESET WR 6 d’évaluation AVR d’Atmel. De ce fait, il est
10
AT90S8515 21 1
RXD PC0 possible de programmer le microcontrôleur
11 22
TXD PC1 directement sur la platine à l’aide de l’un des
12 23
INT0 PC2 SUB D9
13 24
R3 programmateurs AVR classiques. Le résona-
INT1 PC3 1k2
K4 teur 8 MHz fournit la fréquence d’horloge. Si
14 25
Son R4 PD4 PC4
820Ω
15
OC1A PC5
26
K3
l’on dispose d’une alimentation 5 V, on pourra
31 27
ICP PC6 R2 Vidéo se passer du régulateur 78L05.
30 28
ALE PC7 580Ω
X1 X2
R5
20 19
X1
18 Un programme sophistiqué
C2
150Ω
6/2003 Elektor 29
LOISIRS
– Le programme principal attend les informa- 2ème trame
tions de sélection de jeu et accède, en cours 1ère trame 2
de jeu, régulièrement à la routine de jeu. 1
4
3
– La routine de jeu PLAYPONG est synchro- 6
nisée avec la sortie écran et attend, après
avoir été appelée, le lancement d’une nou- 620
velle image (VSYNC). On procède ensuite à 621
622
l’interrogation des paramètres de jeu et on 623
calcule, à partir de ces informations, la posi- 624
tion des raquettes. La première étape 625
030026 - 14.eps
030026 - 15
– un ensemble de fonctionnalités pour l’écri-
ture et la lecture de la mémoire d’écran Figure 4. Le signal de ligne VBS.
30 Elektor 6/2003
LOISIRS
mov HCOUNT, XL ; shift Low Byte of picture memory pointer to
subi HCOUNT, -13 ; HCOUNT and add 13 to value
; cycles; comment
ld REGA, X+ ; 2 ; Load picture data from SRAM into REGA
; ; The following code takes 16*12 cycles: 192 cycles = 24 us
STREAMLINE_SHIFTER: ;
out PIXELPORT, TMPL_I ; 1 ; Write pixel 0 onto pixel port (PORTC)
; note that only PC7 (bright grey) and
; PC3 (dark grey) are used, hence
; any values may be present on other pins.
mov REGB, REGA ; 1 ; Copy REGA into register REGB
lsl REGB ; 1 ; Shift REGB 1 bit left
nop ; 1 ; Idle
constate que, sur la première demi- d’image proprement dit (ici un esca-
pour mémoriser une surface de 48 x 30 pixels
image, que VSYNC et HSYNC débu- lier de niveaux de gris). en 4 niveaux de gris (2 bits : 00 = noir, 01 =
tent au même instant, mais qu’elles gris foncé, 10 = gris clair et 11 = blanc). Il
sont décalées d’une demi-durée de nous reste même dans ces conditions
ligne (32 µs) lors de la seconde Génération de la vidéo 152 octets pour la pile et la mémoire de
demi-image. Cette différence permet par le µC AVR variables. La cartographie de la mémoire
au moniteur de différencier les Le module de graphisme qui effectue d’image est donnée dans le tableau 1.
2 demi-images et ainsi de les visua- son travail sans que le programme Le décompte débute en haut à gauche avec
liser correctement. utilisateur ne le remarque vraiment les coordonnées 0:0. Chaque octet correspond
requiert une part importante du à 4 pixels, la valeur haute/basse de la lumi-
La figure 4 représente la structure temps de calcul disponible. Cepen- nosité est répartie sur les 2 quartets (un
d’une ligne vidéo VBS. La ligne dant, si l’on envisageait de mettre le demi-octet). La mémoire d’image est consti-
débute en aval du palier arrière (le processus de génération d’image tuée d’un bloc.
bord droit invisible de l’image). L’im- dans une routine d’interruption, cela Une ligne vidéo se compose d’une partie
pulsion HSYNC indique au moniteur n’aurait pour effet que de ralentir le active d’une durée de 52 µs. Partant, dans le
le début d’une nouvelle ligne. On programme utilisateur sans que cas d’une résolution horizontale de 48 pixels
trouve ensuite le palier avant (le celui-ci ne prenne conscience du on dispose de l’ordre de 1 µs seulement par
bord gauche invisible de l’image). Ce labeur intense prenant place en pixel. La durée de cycle de l’AVR est de
niveau de signal constitue la réfé- arrière-plan. 125 ns, ce qui implique qu’il faut, en 8 cycles,
rence pour les endroits les plus Commençons par nous intéresser à indiquer l’adresse de mémoire d’image, char-
sombres du signal d’image en aval. la mémoire d’image. L’AVR dispose ger la valeur de gris de la mémoire d’image
Le domaine actif contient le signal de 512 octets de SRAM, ce qui suffit et positionner les lignes de port correspon-
dantes. Le code reproduit en figure 5 consti-
tue, pense l’auteur, l’ap-
proche la plus rapide
Tableau 1. Cartographie de la mémoire d’image pour transférer des don-
OCTET 0: H00,00 H01,00 H02,00 H03,00 L00,00 L01,00 L02,00 L03,00 nées de pixel vers un
OCTET 1: H04,00 H05,00 H06,00 H07,00 L04,00 L05,00 L06,00 L07,00 port. On y voit comment
... sont combinés les temps
OCTET 359: H44,29 H45,29 H46,29 H47,29 L44,29 L45,29 L46,29 L47,29 d’exécution différents des
différents instructions en
6/2003 Elektor 31
LOISIRS
030026-1 Liste des composants programmé (EPS 030026-41)
H1
C4
K5
Résistances : Divers :
C2
K1 R1 = 1 kΩ X1 = résonateur 8 MHz
sound
player 2
R2 = 576 Ω/1% Bt1 = pile compacte 9 V +
R3 = 1kΩ2
O1
connecteur à pression
R4 = 820 Ω
T
K1,K2 = embase Sub-D 9 points
R5 = 150 Ω
R5
Condensateurs :
T K5 = embase mâle à 2 rangées de
K2 C1 à C4 = 100 nF
R2 C5 = 10 µF/16 V radial 5 contacts (HE-10) avec ergot de
R1 détrompage
R3
player 1
C5
D1
1-620030
C3
H2
IC1
ROTKELE )C( nous limiter, comme mentionné plus compte de ce que l’on appelle le
haut, à 48 x 30 pixels, une résolution temps de latence d’interruption.
(C) ELEKTOR
supérieure pourrait être l’affaire de Ceci ne signifie rien d’autre que la
030026-1 projets ultérieurs. Les pixels sont ici CPU ne se laisse pas interrompre par
de forme carrée, ont une largeur de une interruption lorsqu’elle est cours
1 µs soit 8 cycles d’horloge et possè- d’exécution d’une instruction-
dent une hauteur de 16 lignes. machine. Bien au contraire, elle
L’image vidéo a partant une taille de mène à bien l’exécution de l’instruc-
48 µs (des 52 µs possibles) et une tion démarrée, place sur la pile
hauteur de 480 lignes (des 625 à l’adresse de l’instruction suivante
notre disposition). Le contour noir pour l’utiliser comme adresse de
ainsi créé permet une visualisation retour et ce n’est qu’ensuite qu’elle
fiable de l’image visible sur toutes passe au traitement de l’interruption
sortes d’écrans (de télévision) quel (ISR = Interrupt Servicing Routine).
que soit leur paramétrage. La raison de ce mode d’opération est
Après avoir résolu le point critique que l’AVR possède des instructions
du transfert de la vidéo il nous reste de durées d’exécution différentes.
encore à ajouter les signaux de syn- L’appel de ISR peut durer entre
chronisation aux données des pixels. 4 cycles (minimum) et 7 cycles
Un coup d’oeil à la figure 4 que le (maximum). Comme nos pixels ont
processeur doit, au cours d’une ligne une largeur de 8 cycles, cela signifie
d’image, s’occuper des données des que la ligne d’image supérieure peut
pixels et qu’il ne lui reste pas de « trembloter » sur une largeur d’un
temps pour faire quoi que ce soit demi-pixel. Pour cette raison, la rou-
Figure 6. Ce petit montage se contente d’une d’autre. De ce fait, le contrôle au tine d’interruption n’est plus quittée
platine simple face. cours de la totalité du processus de du début des 2 dernières lignes
génération de l’image reste « aux noires de la demi-image visible jus-
mains » de la routine de service d’in- qu’à la fin de celles-ci. Toutes les
vue d’écrire très précisément un pixel par terruption TMR0 (T0-TSR). Lors du durées situées à l’intérieur de cette
bloc de 4 cycles. Cet extrait montre que l’AVR traitement des lignes noires du haut plage sont interdépendantes par le
est capable, en continu, de visualiser un pixel et du bas de l’écran la routine T0-TSR biais de durées d’exécution d’ins-
tous les 4 cycles (500 ns). Techniquement et se contente de générer les signaux truction parfaitement calibrées.
mathématiquement, une telle vitesse devrait HSYNC. Ensuite, on quitte T0-TSR et Notre image vidéo active comporte
permettre une résolution horizontale de le contrôle passe pendant de l’ordre 480 lignes l’image VBS étant elle
104 pixels. En raison de la résolution horizon- de 59 µs au programme utilisateur constituée de 625 lignes. Nous met-
tale plus faible adoptée, chaque bloc d’écri- qui a été interrompu. Comme le tem- tons 4 lignes à contribution pour la
ture/de décalage a été doté de 4 instructions porisateur a été paramétrée à 64 µs compensation des durées de latence
NOP (No OPeration) de manière à ralentir la (une durée de ligne) la routine T0- d’interruption. Le programme d’ap-
logique de décalage à 1 µs par pixel. TSR pourra être remise à contribu- plication dispose, pour chaque
En ce qui concerne la résolution verticale, le tion à temps pour l’impulsion image de 40 ms, de quelque (625 –
maximum possible correspond bien évidem- HSYNC suivante. 480 –4) ⋅ 59 µs = 8 319 µs. Ceci cor-
ment au nombre de lignes affichées. Pour des Il faut malheureusement, lors de l’ap- respond à 20% environ de la totalité
raisons de capacité de mémoire nous devons pel de la routine T0-TSR, tenir du temps processeur.
32 Elektor 6/2003
LOISIRS
SETPIXEL permet l’écriture d’un quence/durée) extensible.
pixel possédant un niveau de gris Une fois lors de chaque création de demi-
donné en vue de représenter la balle image, c’est-à-dire partant toutes les 20 ms,
ou les raquettes. La fonction GET- le programme d’application fait appel à a
PIXEL permet d’évaluer la valeur de fonction DOSOUND, fonction qui compare un
gris d’un pixel ce qui permet, par compteur VSYNC à la durée de la note qui
exemple de détecter l’impact (colli- vient d’être jouée et qui passe, le cas échéant,
sion) de la balle sur un obstacle. à la notre suivante. Les fonctions START-
SOUND et STOPSOUND permettent, à tout
instant, de démarrer ou d’arrêter un nouveau
Génération du son morceau de musique.
Nous avons ajouté une génération
Figure 7. Écran de bienvenue du jeu de sons sans trop de prétentions.
de tennis sur téléviseur. C’est Output-Compare-A-Pin C’est parti !
(OC1A) du temporisateur à 16 bits, La réalisation du montage sur la platine
Timer 1 qui est utilisée en tant que simple face dont la figure 6 donne le dessin
Le programme d’application dispose sortie son. Lorsque l’état du comp- des pistes et la sérigraphie de l’implantation
de 3 fonctions pour accéder à la teur atteint la valeur du registre de des composants ne devrait pas poser de pro-
mémoire d’image. PLOTSCREEN comparaison A, on a inversion de la blème. Le seul composant « délicat », le
permet de copier dans la mémoire sortie son et remise à zéro du microcontrôleur, prendra place dans un sup-
graphique une image (écran du titre contenu du compteur. Le système port de bonne qualité. Il n’est pas nécessaire
ou surface de jeu vide) présente de génération de sons comporte une de mettre en place l’embase K5 si l’on n’a pas
dans la mémoire Flash. La fonction liste de notes de musique (fré- l’intention de programmer le contrôleur alors
Manette numérique
Les manettes de jeu numérique étaient, à l’époque de bon vieux C64, le standard ; il est malheureusement aujourd’hui de plus en plus dif-
ficile de les trouver. Si, après avoir écumé les marchés aux puces locaux, vous n’êtes pas arrivé à mettre la main sur une paire de manettes
de ce type, il n’y a pas raison de baisser les bras. Il
est en effet possible de réaliser soi-même un tel
manche de commande. L’électronique n’est en
effet rien de plus qu’un quarteron de touches de
S1 direction, une paire de bouton feu (que notre
K1
tennis sur TV n’utilise d’ailleurs pas) et d’un câble
HOLE36
OL1
OL2
S6
doté d’un connecteur. Nous avons même déve-
loppé à l’intention d’une telle manette de jeu de
fabrication maison un dessin de platine
S3 S4 S5
(EPS030026-2)dont les dimensions sont telles
qu’elle pourra trouver place dans le type de boî-
tier indiqué dans la liste des composants (Ham-
030026-2 2-620030 mond). Notons que les dessins de ces 2 platines
OL3
OL
S2
ROTKELE )C( sont téléchargeables depuis notre site Internet
HOLE35
(www.elektor.fr).
K2 SUB D9
1 6 2 7 3 8 4 9 5
(C) ELEKTOR
030026-2
K1 2 4 6 8 10 K1' 2 4 6 8 10
1 3 5 7 9 1 3 5 7 9
S1
S5
UP
S3 S4
FB1
LEFT RIGHT S6
S2
FB2
DOWN
030026 - 12
6/2003 Elektor 33
LOISIRS
Publicité
34 Elektor 6/2003
DOMESTIQUE
Carillon de porte
Polyphonique et multi-mélodies à PIC 16F84
Daniel Manier
36 Elektor 6/2003
DOMESTIQUE
nom et partant la hauteur) de la d’une raison de racine douzième de
note. Ici les 4 notes de la figure 1 2 (1,05962…). Pour générer ces notes
sont, successivement, un LA, un on pourra utiliser dans le programme
SOL, un DO et un FA. des décompteurs que l’on chargera
La représentation de la note (pleine avec une valeur correspondant à la
ou évidée, avec ou sans queue, avec fréquence à obtenir. À chaque fois
ou sans crochet), détermine sa qu’un décompteur atteindra la valeur
durée. Ici nous avons, dans l’ordre, zéro il suffira d’inverser l’état d’une
020354 - 12
une noire, une croche, une ronde et ligne de port (RB0 à RB3 pour
une blanche. 4 notes) pour générer un signal carré
En durée, une ronde dure deux fois tel celui représenté en figure 2. Figure 1. Le ba-a-ba de la musique : une portée
plus longtemps qu’une blanche, une avec les 4 types de notes les plus courants.
blanche dure deux fois plus long-
temps qu’une noire et une noire Synoptique
deux fois plus longtemps qu’une Nous allons prendre dans l’ordre les
croche. blocs présents sur le synoptique de RB0
Il existe bien d’autres durées et bien ce montage représenté en figure 3.
d’autres notions de musique mais ce Le montage se subdivise en 4 sous-
paragraphe n’est qu’une approche ensembles majeurs : l’alimentation, le
condensée abordant les notions cerveau et la mémoire, sous la forme
importantes dans le cadre de ce du PIC16F84, qui prend en fait en temps
montage, à savoir celles de note et compte la totalité des fonctions 020354 - 13
de durée. actives, un mélangeur (mixer) et l’am-
Les partitions des morceaux de plificateur audio chargé d’attaquer le
musique correspondant aux diffé- haut-parleur reproduisant la mélodie. Figure 2. Signal carré disponible sur la ligne de
rentes sonneries sont mémorisées port RB0.
dans le PIC programmé sous la L’alimentation
forme de matrices (tableaux) asso- La mise en route de la sonnerie s’ef-
ciant note et durée. fectue en appuyant sur le bouton et C5 alimente alors le microcontrôleur PIC
Une gamme chromatique tempérée poussoir S1.Le transistor T2 devient 16F84. D’autre part la tension disponible sur le
se compose de douze notes (DO, DO alors conducteur et rend le transistor collecteur de T1 est envoyée vers l’amplifica-
dièse, RÉ, RÉ dièse, MI, FA, FA T1 conducteur à son tour. T1 étant teur audio, le TDA2006.
dièse, SOL, SOL dièse, LA, LA dièse, passant, une tension de 5,1 volts Dès le démarrage le PIC met au niveau haut
SI). Ces notes ont des fréquences apparaît aux bornes de la diode (« 1 ») la sortie RA3 envoyant ainsi une ten-
allant en progression géométrique zener D1. Cette tension filtrée par C4 sion de 5 volts sur la base de T2 par l’inter-
médiaire de R6 et autorisant alors le relâche-
ment du bouton-poussoir. C’est à la fin de la
sonnerie que le PIC fait retomber au niveau
bas (« 0 ») la sortie RA3 et si le bouton-pous-
soir est relâché, T1 et T2 se bloquent provo-
Alimentation
quant la mise hors-tension de la carte.
6/2003 Elektor 37
DOMESTIQUE
RB0
14
R2
4 6
MCLR RB0 100k
7
RB1 temps
17 IC1 8
RA0 RB2 020354 - 16
18 9
RA1 RB3 R1
1 10
RA2 RB4 330Ω
2 PIC16F84 11
RA3 RB5 Figure 5. Le générateur d’enveloppe
3 12
RA4 RB6 donne du « corps » au signal carré.
13
RB7
OSC2 OSC1
C1
5 15 16
ce mode de fonctionnement a été
3µ3 obtenu en faisant fonctionner RB0 à
10V
RB3 de la manière suivante :
020354 - 15
– Port en sortie s’il est à « 0 »
– Port en entrée s’il est à « 1 »
Figure 4. Le principe du générateur d’enveloppe.
Une ligne paramétrée en sortie et
présentant un niveau bas corres-
Générateur d’enveloppe empêchant ainsi le condensateur de pond bien à un transistor à collec-
Le principe de ce générateur est représenté se décharger. teur ouvert « sortant » un zéro.
dans la figure 4. Les générateurs de notes (RB0 à RB3) En entrée, la ligne correspondante
À chaque début de note, le condensateur C8 sont reliés aux générateurs d’enve- est à haute impédance et c’est la
est chargé durant une durée très brève à tra- loppes par des résistances de forçage résistance de forçage de la ligne de
vers une résistance de faible valeur (330 Ω) de valeur élevée (100 kΩ). Pour obtenir port qui impose un état « 1 ».
reliée à une ligne de port, ce dernier étant la courbe représentée, il aurait fallu C’est à travers ces résistances de
configuré en sortie (RB4 à RB7), puis cette que les sorties RB0 à RB3 soient des tirage de forte valeur (100 kΩ) que
ligne de port est immédiatement basculée en sorties à collecteur ouvert (style RA4), les condensateurs du générateur
entrée c’est-à-dire mise à haute impédance or ce n’est pas le cas pour RB0 à RB3 ; d’enveloppes vont de décharger. Ici
+9V T1
+9V
R14
BD240 100k
R13
R5 R21
R1 100k
100k
1k
10k R12
100k
S1 R11
100k
R18 R22
100k
100k
R17
14 100k
R2 R4 IC2
C3 R16 C10
5
470Ω
4 6 1
10k
RB7 330Ω
LS1
OSC2 OSC1 R8
T2 100k
BC547 5 15 16 330Ω
X1
R7
330Ω
R3 D1 R19 R20 4Ω
C4 C5 C1 C2 C6 C7 C8 C9 C11 C12 C14
100k
100k
10k
020354 - 11
Figure 6. L’électronique se résume à une paire de circuits intégrés enrobés de composants passifs.
38 Elektor 6/2003
DOMESTIQUE
la constante de temps avoisine les T1
0,3 secondes. Liste des composants S1 C5
HOEK4
HOEK1
R5
La forme d’onde disponible sur une R2 D1 R21
Résistances :
020354-1
sortie RB0 à RB3 aura donc la forme R3 C2
R1 à R3,R6 = 10 kΩ
R1
R20
représentée en figure 5. X1
R4 = 470 Ω T2
C11
Cette forme d’onde, attaque brutale R5 = 1 kΩ C1
IC1
et évanouissement exponentiel R7 à R10 = 330 Ω +9V
R4
R6
C4
donne aux notes générées un timbre R11 à R22 = 100 kΩ 0V
R22
P1
R23 = 1 Ω
1-453020
se rapprochant du piano (pardon aux
R10
C3
R9
R8
R7
puristes !). P1 = potentiomètre 100 kΩ log
Les 4 sorties « note » RB0 à RB3 sont C12
R17
R16
R15
R18
ROTKELE )C(
mixées par les résistances R15 à Condensateurs : C10 C15
R14
R13
R12
R11
R18. Le son global est disponible aux C1,C2 = 22 pF C14
bornes de la résistance R19. C3 = 220 µF/10 V radial R19 R23
C13
Ce son global est envoyé à l’amplifi- C4 = 100 nF IC2
C5 = 1 µF/10 V radial
HOEK2
HOEK3
6/2003 Elektor 39
DOMESTIQUE
possible (au quel cas il est remis à
Liens Internet
Mise sous Tension zéro) et il est sauvegardé avec son
complément pour la prochaine mise MPLAB IDE 5.70de Microchip
sous tension. www.microchip.com/1010/pline/
Pour finir la procédure initialisation tools/picmicro/devenv/mplabi/
Initialisation autorise encore les interruptions mplab5x/index.htm
timer.
40 Elektor 6/2003
OUTILSdeDÉVELOPPEMENT
halvedDisc
Système d’apprentissage pour microcontrôleurs
Par le professeur Olaf Hagenbruch, dr ingénieur et Heiko Polster
42 Elektor 6/2003
OUTILSdeDÉVELOPPEMENT
Hintergrund- programmation ne constitue donc pas un obs-
beleuchtung tacle insurmontable. L’affichage LCD à
3 lignes, l’horloge en temps réel et les divers
Strom- LCD-Anzeige capteurs sont raccordés à l’interface TWI
versorgung (Two-Wire Interface) du maître (bus I2C). L’in-
terface SPI est utilisée pour la programmation
I2C-Bus sérielle du microcontrôleur ; le lecteur à
Funktions-
MC
tasten contact pour cartes à puces est aussi rac-
cordé aux broches de cette interface.
Real- Temp.-
Optokoppler- Time- Sensor
Feuchte-
Sensor
Les touches de fonction peuvent déclencher
Clock
eingang une interruption mais aussi être interrogées
(optional)
ATmega8 Laut-
(polling) pour exécuter les fonctions de com-
Fotowider- sprecher mande. Deux bascules monostables sont rac-
stand cordées à une seule broche du microcontrô-
Lastrelais leur dans le but de diminuer le courant de
Analog- commande du relais. Les impulsions de lon-
eingänge
gueur différente permettent en effet de le
Drucksensor LED commuter sans que le courant passe conti-
(optional)
nuellement par les bobines.
Le halvedDISC est alimenté par un bloc sec-
ISP-Stecker
(Programmierung) teur externe, une pile 9 V ou un accumulateur.
Quarz Chipkarten- La carte du halvedDISC a été développée
Kontaktier- sous forme d’une demi-lune autonome. L’uti-
4 MHz einrichtung 020368 - 11
lisateur a directement accès aux afficheurs,
éléments de commande, connecteurs et à la
plupart des autres composants. Les caracté-
Figure 1. Composants du halvedDISC, édition Atmega8. ristiques techniques décrivent les particula-
rités des composants et des paramètres choi-
sis pour le halvedDISC.
halvedDisc
Dimensions Demi-lune de Ø = 160 mm Outils logiciels
Microcontrôleur ATmega8 (8 Koctets de Flash ISP, 1 Koctet de
Il existe des outils gratuits et peu coûteux
SRAM, 512 octets d’EEPROM ISP, 3 temporisa-
pour développer ses propres programmes.
teurs, CAN, etc.)
L’outil gratuit d’Atmel AVRStudio (ver. 3.55 ou
Fréquence d’horloge MC 4 MHz
4) permet de développer relativement rapi-
Affichages Afficheur LC 3 lignes
LED rouge (fonction programmable au choix) dement des applications en langage assem-
LED jaune (alimentation secteur externe) bleur et de les tester au moyen du simulateur
Rétroéclairage Rétroéclairage LED pour affichage LCD, réglable intégré. Les fonctions et exemples de pro-
Alimentation Bloc d’alimentation secteur 7,5 V= ou 7 à 9 V~, grammes sur la page web du halvedDISC
ou bloc 9 V facilitent énormément les premiers pas dans
Horloge en temps réel DS1307Z (I2C) avec pile de sauvegarde la programmation d’applications. AVRStudio
Capteur de température LM75 (I2C) (dans le menu Tools – AVRISP) donne accès à
Capteur d’humidité (option) SHT11 l’interface du programmateur AVRISP ; celui-
Capteur de pression (option) MS5534A ci permet de programmer la mémoire Flash,
Cellule photoconductrice FW300 (seuil de déclenchement ajustable) le domaine EEPROM et les bits à fusibles
Haut-parleur Haut-parleur miniature (fuse bits) du ATmega8.
Relais Relais à 2 contacts inverseurs et commande par Il existe plusieurs compilateurs pour la pro-
impulsions grammation en C. Le compilateur GNU
Charge des contacts 0,5 A à 125 VAC et jusqu’à AVRGCC fait bien l’affaire, et il est aussi gra-
1 A à 30 VDC tuit. Ce compilateur étant lancé par une ligne
Éléments de commande 2 à 3 touches de fonction de commande, il peut être intégré facilement
Bouton RESET dans AVRStudio 3.55. Un seul environnement
Lecteur à contact pour cartes à puce de développement suffit donc pour éditer,
Connectique Système de connexion 2 mm
compiler, mettre au point et pour programmer
Possibilités de raccordement Entrée optocoupleur (TTL) et 2 sorties relais de
la mémoire.
type inverseur
Le compilateur C de l’entreprise Code Vision
Composants I2C externes (TTL)
est un outil professionnel qui n’est pas hors
Connexion programmateur (TTL)
De 4 à 6 entrées analogiques du CAN sur puce de prix (de l’ordre de 150 € ). Ce logiciel est
Consommation ≥ 4 mA (selon l’application et les composants très bien adapté à la famille de microcontrô-
inclus) leurs AVR. Le compilateur AVR de Code
Vision est en fait un environnement de déve-
6/2003 Elektor 43
OUTILSdeDÉVELOPPEMENT
loppement complet qui offre tout le néces- le capteur de température LM75, Fax : +44(0)3727/6205 - 22
saire pour développer des programmes en C. peut être téléchargé à partir du site Web: www.imm-ingenieurbuero.de
AVRStudio n’est nécessaire que pour la mise web Elektor (www.elektor.fr). Le E-Mail: IMMDM@t-online.de
au point. Une version d’évaluation du compi- fichier, qui se trouve sous la rubrique
lateur se trouve sous www.hpinfotech.ro. Téléchargement de ce numéro Littérature :
D’autres compilateurs C pour microcontrô- d’Elektor, porte le numéro 020368- ATMEL: AVR Instruction Set,
leurs AVR sont fournis par les entreprises IAR 11. Rev. 0856D-AVR-08/02
(www.iar.com) et ImageCraft (www.image- (020368)
craft.com). Sources : Liens Internet :
Le halvedDisc© avec sa documentation www.halveddisc.de
Un article exhaustif en allemand et au format en allemand est disponible chez : www.atmel.com
.pdf sur le halvedDISC décrivant aussi la com- IMM Ingenieurbüro, Mittweida www.avrfreaks.net
mande d’un composant I2C, en l’occurrence Tél. : +44 (0)3727/6205 - 0 www.national.co
Le microcontrôleur ATmega8
Le ATmega8 est un rejeton des dérivés AT90 bien connus. Les megaAVR (largeur de structure 35 µm) comportent un CPU compatible
AVR ainsi que des mémoires Flash et EEPROM, toutes deux programmables in-system. Le ATmega8 monte jusqu’à 16 MHz, de sorte que
le cycle d’une instruction dure 62 ns.
– 8 Koctets de Flash autoprogrammable avec possibilité de verrouiller le bloc d’amorçage (boot block)
– 1 Koctet de RAM statique
– Diverses interfaces série (USART, SPI, TWI)
– Convertisseur A/D 10 bits de haute précision à référence interne
– Détection programmable de baisse de tension (brownout)
– Oscillateur RC calibré sur puce
– Multiplicateur hardware (réalisation simple de la fonction MAC)
– 5 modes programmables d’économie de courant
– Tension de fonctionnement 2,7 à 5,5 V
Un microcontrôleur de la famille megaAVR permet d’effectuer jusqu’à 10 000 cycles écriture/effacement de la mémoire Flash intégrée, ce
qui est fort utile ici, car qui dit « système d’apprentissage » dit aussi « reprogrammation ».
La taille mémoire et les composants périphériques du microcontrôleur ATmega8 ouvrent la porte à une foule d’applications. En fait, les 3
ports de la puce – qui ne possède que 32 broches – ne sont pas entièrement disponibles pour les E/S numériques. De nombreuses
broches des ports exercent des fonctions multiples qui ne peuvent donc être exécutées qu’à tour de rôle.
C’est alors que l’interface série bifilaire (TWI : Two-Wire Interface), qui permet de réaliser très facilement un système de bus I2C, dévoile
tout son potentiel. Le raccordement de nombreux capteurs/actionneurs ne pose aucun problème vu les 128 adresses esclave disponibles.
L’unité TWI présente aussi de nombreux avantages fonctionnels : elle gère entre autres le débit, la commande du start/stop, la sérialisa-
tion/parallélisation des données, le processus d’arbitrage et le filtrage des signaux parasites aux broches TWI. La taille des programmes de
commande du bus I2C, qui ne doivent pas contenir ces fonctions, en est réduite d’autant.
mode de comparaison
– 1 temporisateur/compteur 16 bits avec prédiviseur, mode Bus Interface Unit Bit Rate Generator
de comparaison et mode de capture Start / STOP Spike Supression Prescaler
Control
– 3 canaux PWM
– CAN avec 8 entrées analogiques max. (résolution 10 ou Arbitration
Address/Data Shift
Register TWDR
Bit RateRegister
TWBR
8 bits) Interner Bus
– Interface série bifilaire (TWI)
– USART programmable
– SPI programmable Adress Match Unit Control Unit
– Comparateur analogique Address Register Status Register Control Register
TWAR TWSR TWCR
– Temporisateur chien de garde (Watchdog Timer) program-
mable, à oscillateur incorporé Address
Comperator
State Machine/
Status Control
44 Elektor 6/2003
DOMESTIQUE
Interrupteur-
gradateur
Télécommandable par RC5
Andreas Kneer
46 Elektor 6/2003
DOMESTIQUE
blèmes. Restons-en donc à notre TR1
47k
R6 R4
C5 C4 D2
une alimentation secteur 5 V avec
150Ω
10k
R2
mini-transformateur, un 10µ 100n
47k
16V
récepteur/décodeur infrarouge rac- 20
Récepteur IR
cordé à K2, un bouton pour allumer 1 R3
+5V RST
et éteindre manuellement, une LED
1k
12
P1.0
d’état (brille lorsque la lampe est K2 2
P3.0 IC2 P1.1
13
3 14
P3.1 P1.2
éteinte) et un triac. Ce triac IC4 pos- 6 15
P3.2 P1.3
sède une entrée compatible TTL qui 7
P3.3 P1.4
16
Structure du logiciel
Le logiciel, lorsqu’il n’est pas en train d’interpréter un code RC5, mesure conti-
nuellement la tension du secteur pour déterminer la durée de la période. La
valeur mesurée est divisée par 2, ce qui suffit au logiciel pour prédire quand
amorcer le triac lors de l’alternance négative « manquante ». La reconnaissance
du passage par zéro repose sur une interruption externe (EX0Interrupt) qui
réagit au flanc descendant de P3.2 (broche 6) du contrôleur. Ces interruptions Détection de la
demi-onde positive Attendre une
mettent en marche le temporisateur Timer1 qui génère à son tour une inter- demi-période
ruption « Timer1 » lorsque sa capacité est dépassée. Cette interruption cause Passage par zéro 020377 - 12
l’amorçage du triac. Puis Timer1 est réinitialisé à la valeur de l’alternance mesu- Déclencher le triac Déclencher le triac
6/2003 Elektor 47
DOMESTIQUE
1-733020 C1 020337-1
ROTKELE )C( (C) ELEKTOR
C2
H2
K1
H1
IC1
C5 C3 C4
B1
R5
S1
F1 2AT
TR1
IC2
C7
C6
X1
IC3 D1
R2
R3 R1
D2 020337-1
R6
R4
K2
H3
H4
IC4
48 Elektor 6/2003
INFORMATIONS
Voulez-vous
du continu ?
Modifiez donc une alim. de PC AT
Ing. Joost Waegebaert
Quand il nous faut une source à basse ten- nécessaires à la fabrication d’un commutateurs est délivré par le
sion, notre premier réflexe est habituellement onduleur s’y trouvent déjà. transformateur de commande T2, ce
d’associer un transformateur à un pont qui préserve l’isolation galvanique
redresseur. Une combinaison pleine d’avan- totale de la partie secondaire.
tages, la simplicité, l’excellente isolation par Alimentation de PC AT La partie primaire se limite au circuit
rapport au secteur, la robustesse et l’immu- La structure d’une alimentation pour autour des transistors Q1 et Q2, des
nité aux perturbations. S’y rattachent aussi PC est très classique, il s’agit du condensateurs C1 et C2, des trans-
quelques défauts bien connus, l’encombre- convertisseur va-et-vient. La tension formateurs T1 et T2, principalement.
ment, le poids, le faible rendement à forte du secteur est immédiatement Mais attention : toute cette partie
puissance et le prix. redressée (figure 1) pour en faire du est connectée au réseau de distri-
L’autre solution, c’est l’onduleur, l’alimenta- 320 V. La moitié de cette tension bution électrique !
tion à découpage au primaire. Pour un ama- continue est envoyée par un transis- Notez que la figure 1 est un schéma
teur, se lancer dans la construction de pareil tor de commutation au primaire du de principe et que certaines cellules
circuit se révèle onéreux, malaisé et peu sûr. transformateur T1. En commutant à n’y sont pas représentées, par souci
La moindre erreur se solde la plupart du tour de rôle Q1 et Q2, le transforma- de clarté.
temps par un transistor de commutation teur se voit magnétisé dans les deux Dans une alimentation de PC, c’est
grillé : il n’est pas gratuit non plus. Parmi les sens. Le transfert d’énergie res- toujours une puce des temps
composants nécessaires, plusieurs sont diffi- semble ainsi très fort à la formule héroïques qui assure la commande
cilement disponibles au détail. Quant à la habituelle. Côté secondaire, on des transistors commutateurs : le
sécurité, il suffit de dire que le primaire doit trouve pour chacune des tensions un TL494 de Texas Instruments, qui ne
se brancher directement au secteur ! À cela bobinage à prise médiane et deux représente pas, vu son âge, le nec
s’ajoute encore la crainte (injustifiée, celle-là) diodes qui redressent à pleine onde, plus ultra en matière de rendement,
de tout ce qui s’articule autour d’un noyau D1 et D2 pour le 12 V, D3 et D4 pour si l’on voulait construire du neuf.
magnétique et de bobines de fil de cuivre. le 5 V. Elles sont alors filtrées. Les Mais pour notre projet, il offre l’avan-
Mais nous allons ici même envisager une quatre autres diodes servent à former tage d’une adaptation aisée.
recette peu dispendieuse dont l’ingrédient les tensions négatives Dans la plu- La fréquence de commutation se
principal est l’alimentation d’un PC AT ordi- part des AT, ces tensions-ci restent situe autour des 30 kHz, R1 et C1 la
naire. Il s’agit d’un ensemble produit en dépourvues de toute régulation, elles déterminent. Dans chaque période
grande série, disponible partout, voire à récu- sont considérées comme accessoires. de 33 µs, on règle le temps de
pérer sur un vieux PC. Tous les composants Le courant de base des transistors conduction de Q1 et Q2. Ce temps
50 Elektor 6/2003
INFORMATIONS
+12V/8A pouvons pas dépasser lors de l’adaptation de
T1 D1 L1a
T2 C1
D3 L1b
l’alimentation.
Q1
+5V/20A
– La puissance secondaire totale ne peut
jamais dépasser 200 W, le transformateur
Q2
Filter T1 et les transistors Q1 et Q2 sont calculés
C2
-5V/0,5A en conséquence.
D4
D2
L1c – Le courant dans chaque bobinage de 12 V
Vaux L1d -12V/0,5A doit toujours être inférieur à 4 A, limite
imposée par L1a, D1 et D2.
+12V +5V -12V -5V – Le courant maximum dans chaque enrou-
4
R1 R3 R4 R7
lement de 5 V est fixé à 10 A par L1b, D3
VCC 6 D9
8 Osc
R et D4.
5
C
9 P 1 C1
– La charge du transformateur doit rester
W R8
11 M 2 symétrique pour égaliser les polarités
R5
10 16 R2
R9 magnétiques, ce qui implique des redres-
14 Vr 15
Gnd
Ref
3 C9 sements pleine onde partout.
– Les tensions de sortie choisies doivent res-
ter dans le voisinage de ±5 et ±12 V, Le rap-
030006 - 11
port des nombres de spires du transforma-
teur T1 est ce qu’il est, mais on peut tabler
Figure 1. Le schéma théorique d’une alimentation de PC AT. sur une plage de ±30 %, donc entre 3,5 et
6,5 V d’une part, 9 et 15 V de l’autre. Mais
le rapport restera invariable de l’une à
définit finalement la tension de sor- Adaptation l’autre. Si vous fabriquez du 6 V sur le cir-
tie, parce qu’il fixe le rapport à ses desiderata cuit à 5 V, vous obtiendrez 6 x 12/5 = 14,4 V
cyclique de l’onde sur les cathodes côté 12 V.
des diodes (D1 et D2), comme on le Voici les valeurs nominales que four-
voit sur la deuxième trace de la nit une alimentation AT de 200 W :
figure 2. 1er exemple : 6 V/16 A
La tension continue en sortie est +5 V 3 à 22 A Le 6 V souhaité ici est suffisamment proche
approximativement la valeur +12 V 0,5 À 8 A de 5 V. Le courant demandé à chaque redres-
moyenne de l’onde carrée. On com- –12 V 0,5 A seur sera de 8 A, ce qui reste sous la limite de
pare à une référence interne de 5 V, –5 V 0,5 A 10 A et la puissance totale atteindra 96 W.
via un diviseur de tension (R3 à R5), C’est donc possible. Nous n’avons pas besoin
les tensions aux sorties 5 V et 12 V. Ceci nous donne une idée des des sorties +12, –12 et –5 V, elles peuvent
Si elles sont trop basses, le TL494 contraintes imposées aux compo- disparaître et nous obtenons le schéma de la
allonge le temps de conduction des sants (transformateur, diodes, figure 3. Nous ne devons conserver que D1 et
transistors commutateurs, ce qui bobine de filtrage) dans chacune des D2 pour fournir l’alimentation Vaux du TL494.
fait remonter d’autant la tension de branches. La tension de sortie est déterminée par R4 et
sortie. Il y a d’autres limites que nous ne R5. Le TL494 s’arrange pour que les tensions
aux broches 1 et 2 restent égales. Celle de la
broche 2 est fixée par la référence de 5 V. La
tension sur R5 est aussi de 5 V, il en résulte
une chute de 1 V aux bornes de R4. Calculons
la valeur de R4 dans ces conditions :
R4 = (6 – 5) x R5 / 5
Si nous choisissons 4,7 kΩ pour R5 et 1 kΩ
pour R4, la tension de sortie sera théorique-
ment de 6,06 V.
2e exemple : 24 V/4 A
Le 24 V ne se situe pas dans la fourchette de
30 % évoquée. Il faudra faire appel à une autre
méthode pour atteindre cette « haute » ten-
sion. La figure 4 présente une solution pos-
sible. On a ajouté au redresseur deux diodes,
D5 et D6, qui doivent être des modèles de
puissance du même type que D1 et D2. Pas
question d’utiliser celles qui fournissent le
Figure 2. Formes d’onde typiques au secondaire. –12 V / 0,5 A du circuit d’origine. Finalement,
6/2003 Elektor 51
INFORMATIONS
on branchera l’appareil qui consomme du T1 D1
D3 L1b +6V/16A
24 V entre les sorties +12 et –12 V, rebapti-
sées pour la cause +24 et 0 V.
Pour ajuster la tension de sortie, on part de la
relation :
R3 = (12 – 5) x R5 / 5 D4
D2
Vaux
Avec R5 = 3,3 kΩ, R3 passe à 4,7 kΩ et la ten-
sion de sortie vaudra 2 x 12,1 = 24,2 V. Même
+6V +6V
si le –12 V ne participe pas à la chaîne de 4
R1 R4 R7
réglage, cette tension suivra exactement la VCC
R
6
8 Osc
branche positive, à cause du couplage serré C
5
9 P 1 C1
entre les deux enroulements secondaires de W
2 R8
11 M
T1 et du filtre bobiné L1. Les formes d’onde 10 16 R2 R5
030006 - 13
Autres configurations
Il y a des alimentations pour PC dont les deux Figure 3. Une configuration possible pour obtenir 16 A sous 6 V.
enroulements secondaires de T1 sont faits du
même fil. Cela signifie que chacun des bobi-
nages de 12 V peut alors délivrer 10 A, pour tout en comptant soigneusement le nombre de spires en conséquence.
autant que la puissance totale de 200 W ne nombre de spires. Ensuite, nous Pour 15 V par exemple, on multiplie
soit pas dépassée. Dans l’exemple 2, la sortie pourrons rembobiner la self en deux leur nombre par 15 / 12 = 1,25. Ce
24 V est capable dans ce cas de fournir enroulements seulement, chacun n’est pas absolument nécessaire, la
200 / 24 = 8,3 A, si les diodes et la bobine de comptera le même nombre de spires conséquence d’un trop petit nombre
filtrage le permettent. que L1a et le diamètre du fil doit de spires se manifestera par une
Avec le schéma de la figure 4, si l’on se sert valoir au moins celui du fil de L1a, de ondulation résiduelle un peu plus
de l’enroulement de 5 V, on atteint manière à autoriser le passage de grande.
10 V / 10 A, par exemple. Le même schéma 4 A. Les deux enroulements se bobi- Dans le second exemple, il est aussi
peut aussi servir à fournir ±12 V/ 2x4 A ou nent ensemble, en bifilaire, pour cou- possible d’utiliser les deux parties
±5 V/ 2x10 A, si nécessaire. On le voit, les vrir la totalité du noyau d’origine. de L1b, puisqu’elles sont capables
possibilités sont nombreuses. Tenez compte de leur polarité pour le de soutenir 10 A. Le résultat sera
raccordement. une augmentation relativement forte
Il est recommandé, quand on doit de l’ondulation résiduelle, mais pour
Choix des composants rembobiner cette self pour une autre effectuer une vérification rapide, il
Bobine de filtrage L1 tension de sortie, d’adapter le n’y a pas de souci à se faire.
La self L1 d’une alimentation AT compte
d’habitude cinq bobinages en bifilaire. En rai-
son du fort courant dans L1b, le fil y est en T1 D1 L1a +24V/4A
double. (+12V)
52 Elektor 6/2003
INFORMATIONS
D1 L1a à 100 V et 3 A. Visiblement, certains T1 L1a
T1
fabricants d’alimentations (à bon
marché) sont persuadés qu’il ne fau-
10Ω 10n dra jamais plus de 6 A en continu. Si
100V votre projet en réclame davantage, il
030006 - 15
L1b
existe de meilleurs choix, par
exemple la PBYR20100CP de Philips
Figure 5. Réseau d’amortissement sur (100 V/2x10 A) ou éventuellement la
la diode pour atténuer les pointes de PBYR10100 (100 V/10 A). Sous leur
surtension. boîtier TO220, on les refroidit beau- Vaux
TL494
coup plus aisément.
6/2003 Elektor 53
INFORMATIONS
fication. Mais l’indice indubitable qui vous y L1b Vout
mènera, c’est qu’il constitue l’unique lien
entre le régulateur et les sorties –5 V et –12 V.
Dès que vous l’aurez localisé, mesurez la ten-
sion au nœud, en évitant de toucher les Vaux R10
4 R4
Détection de surcharge VCC 6
R1
R
Il y a deux formes de détection de surcharge 8 Osc 5
C
en fonction sur l’alimentation AT. La version 9 P 1 C1 VC
W R11
11 2
ancienne met en œuvre un petit transforma- M
R5
10 16 R2
teur de courant en série avec le primaire de 14 Vr 15
Ref
T1. Cette mesure d’intensité, après redresse- Gnd 3
54 Elektor 6/2003
6/2003
DS1302 DS1302
Horloge en temps réel Horloge en temps réel
sur flanc montant du signal SCLK, lors de la lecture par le biais d’une interface sérielle dépouillée. La
http://pdfserv.maxim-ic.com/arpdf/DS1302.pdf
au contraire ce processus se fait sur les flancs des- 1 1 8 kΩ transmission des données se fait par le biais de
cendants. Chaque transfert de données est précédé 3 lignes seulement : RAZ (Reset), horloge sérielle
La valeur du courant de charge répond à la Caractéristiques : (SCL = Serial Clock) et E/S (I/O). Il est possible de
d’un octet d’instruction. – Circuit d’horloge en temps réel donnant la secon-
formule suivante : I = VCC2 – tension de seuil)/R faire transiter les données dans les 2 sens, soit octet
Le bit de poids fort (MSB = Most Significant Bit) de, minute, heure, jour du mois, mois, jour de la par octet soit en mode salve qui permet d’envoyer
doit se trouver à « 1 », le bit 6 indiquant la destina- semaine, et année (avec compensation des des groupes de 32 octets maximum.
tion des données, l’horloge (0) ou la RAM (1). Les années bissextiles jusqu’en 2100) L’horloge en temps réel/calendrier égrène les
bits 1 à 5 spécifient le registre concerné, le bit de – RAM statique de 31 octets de large avec sauve- secondes, minutes, heures, jours du mois, mois,
poids faible (LSB = Least Significant Bit) indiquant garde par pile jours de la semaine et année. L’horloge travaille en
enfin s’il s’agit d’un processus de lecture (1) de – Réduction au strict indispensable du nombre des mode 24 ou 12 heures avec mention AM/PM. En
d’écriture (0). fonctionnement, le DS1302 ne requiert que très
lignes d’E/S par transmission sérielle
Une fois le transfert de données terminé la ligne peu d’énergie et consomme moins de 1 µW pour
– Fonctionne à une tension d’alimentation comprise
RST est remise au niveau bas. Ceci définit égale- garder à jour les informations de date et d’heure.
entre 2,0 et 5,5 V Le DS1302 remplace le standard de l’industrie
ment s’il s’agit d’une opération concernant un octet – Consommation de courant faible, inférieure à qu’était devenu son prédécesseur, le DS1202, mais
unique ou plusieurs octets (mode en salve). 200 nA sous 2,0 V contrairement à ce dernier, utilise 2 broches pour
La figure 4 donne les différentes adresses de – Mode salve (burst) pour la lecture/écriture de n son alimentation sachant qu’il utilise celle dont le
registre et leur contenu. Tous les autres bits doivent adresses dans la – RAM de l’horloge niveau de tension (VCC ou tension de pile) est le
se trouver à « 0 ». Si l’on a affaire au mode en salve – Boîtier à 8 broches plus élevé. Cela permet d’avoir une recharge d’en-
(burst) pour l’horloge ou la RAM, les emplacements – Interface 3 fils tretien de l’accu de sauvegarde..
A4 à A0 se trouvent à « 1 ». On a ensuite arrivée Le DS1302 possède en outre quelques octets de
– Compatible TTL
des données à compter de l’adresse 0. En fonction mémoire de brouillon (scratchpad).
horloge il faut commencer par écrire les 8 registres,
en fonction RAM, le processus de transfert peut Structure interne :
être interrompu après un nombre quelconque
d’adresses.
Chargeur goutte-à-goutte
Le registre de chargeur goutte-à-goutte (trickle
charger) détermine le courrant de (re)charge de
l’accu de sauvegarde (back-up). L’activation du char-
geur se fait par la série de bits TCS 1010 (bits 7 à
4). Les bits 3 et 2 indique la prise entre VCC2 et
VCC1 de une (01) ou de deux (10) tensions de seuil
de diode. Les bits 1 et 0, RS, définissent la valeur
d’une résistance de charge :
55
6/2003
DS1302 DS1302
Horloge en temps réel Horloge en temps réel
Elektor
Brochage et boîtiers :
Broche Fonction
X1,X2 Connexion du quartz 32,768 kHz
GND Masse
RST Remise à zéro
I/O Entrée/Sortie des données
SCLK Horloge sérielle
VCC1, VCC2 Alimentation
56
DOMESTIQUE
Temporisateur-
décompteur
Minutage précis à partir d’un micro-contrôleur AT90S1200
Projet : Andy Morell andy@morell.freeserve.co.uk
Caractéristiques principales
– Durée de compte à rebours
de 1 à 99 minutes
– Affichage 2 chiffres à affichage
7 segments à LED
– 3 boutons de commande
– Faible consommation de puissance
– Alimentation par batterie 3 volts
– Circuit micro-contrôleur AT90S1200
60 Elektor 6/2003
DOMESTIQUE
470Ω
470Ω
10k
10k
10k
10k
C2 C3
T1 T2
100n 10µ 16V
2mA/45mA
R2 20
BC327 BC327
470Ω
11 19 LD1 LD2
PD6 PB7 3 8 3 8
S1
9 18 R3 10 CA CA 10 CA CA
PD5 PB6 150Ω g g
8
PD4
IC1 PB5
17 R4 9 9
150Ω f f
7 16 R5 1 1
PD3 PB4 150Ω e e
6 15 R6 2 2
PD2 PB3 150Ω d d
3 14 R7 4 4
PD1 PB2 150Ω c c
2 13 R8 6 6 BT1
PD0 PB1 150Ω b b
AT90S1200 12 R9 7 7
1 PB0 150Ω a dp a dp
RESET 3V
XT1 XT2 5 5
HD1131 HD1131
10 5 4
S2 S3 S4 X1
C1
1µ
START TENS UNITS C5 C4
16V
22p 22p
4MHz
020296 - 11
Figure 1. Organigramme du temporisateur-décompteur. L’utilisation d’un micro-contrôleur a permis une belle diminution du nombre de
composants.
de l’oscillateur de l’AT90S1200.
Le micro-contrôleur AT90S1200 est reset
bon marché, facile à obtenir et à uti-
liser. De plus, il accepte, ainsi que
nous le montrons ici, de travailler à initialisation
interruptions
partir d’une alimentation par batte-
rie de 3 volts.
L’impulsion de remise à zéro est initialisation
des ports
générée par le réseau RC, R1/C1,
alors que les transistors T1 et T2
contrôlent les broches d’anodes com- non
munes (CA) des afficheurs HD1131O. action oui oui
incrémenter >9 effacer
Il y a sept résistances de 100 à 150 Ω sur les
unités les unités ? unités
qui limitent le courant à travers cha- ?
cun des sept segments de l’afficheur non
actif. La valeur réelle de ces résis- rafraîchissement non
tances dépend de la luminosité de affichage action oui oui
l’affichage souhaitée et impose de sur les incrémenter >9 effacer
dizaines les dizaines ? dizaines
trouver un compromis avec la conversion vers ?
consommation en courant (et donc la 7 segments
non
durée de vie de la batterie). Pour
commencer, nous recommandons action
non
d’utiliser des résistances de 150 Ω. sur
start
Il y a également trois résistances de ?
forçage de 10 kΩ pour les boutons
oui
poussoirs. Le niveau logique haut
(+3 V) créé par ces résistances pré- rafraîchissement
vient les déclenchements erratiques affichage
des broches d’entrée PD2, à PD4 du
micro-contrôleur.
attente d’interruption
Pour finir, le petit résonateur piézo 020296 - 12
utilisé est du type DC « actif ». Ce
composant est directement com-
mandé par la broche PB7 du micro- Figure 2. Organigramme du programme principal.
6/2003 Elektor 61
DOMESTIQUE
contrôleur et garantit d’obtenir le niveau
sonore adéquat quand cela est nécessaire. interruption
T1 T2
H3
H4
020296-1
D1
C3
+
3V
LD1 LD2
-
+
R13
R12
R10
R14
R11
R2
R1
R3
R4
R5
R6
R7
R8
R9
BZ1
-
C2
IC1
C1 C4 C5
X1
H1
H2
S2 S3 S4
ROTKELE )C( 1-692020 020296-1 (C) ELEKTOR
62 Elektor 6/2003
DOMESTIQUE
de sérigraphie du côté « composants » du
Liste des composants petit circuit imprimé simple face destiné au
IC1 = AT90S1200-12PC (Atmel
temporisateur-décompteur sont donnés à la
Résistances : figure 4. Ce circuit imprimé n’est pas dispo-
R1,R12 à R14 = 10 kΩ programmé, EPS020296-41)
LD1,LD2 = HD1131O (cf. texte) nible tout fait auprès des adresses habi-
R2,R10,R11 = 470 Ω
T1,T2 = BC327 tuelles, mais vous pouvez le trouver par le
R3 à R9 = 100 Ω à 150 Ω (cf. texte)
biais d’un lien (The PCBShop) présent sur le
Divers : site d’Elektor à l’adresse : www.elektor.fr.
Condensateurs : BT1 = 2 piles 1,5 V AA ou AAA avec Commencez la construction en plaçant
C1 = 1 µF/16 V radial porte-pile l’unique pont de câblage au-dessus de l’affi-
C2 = 100 nF Bz1 = résonateur CC 5 V chage LD1. Ensuite, montez les résistances,
C3 = 10 µF/16 V radial S1 = interrupteur marche/arrêt
C4,C5 = 22 pF
puis les condensateurs (attention à la polarité
S2 à S4 = bouton-poussoir unipolaire
de C1 et C3). Pour suivre, montez un support
à contact travail (cf. texte)
Semi-conducteurs : X1 = quartz 4 MHz (modèle bas de circuit intégré DIL à 20 broches et le
D1 = LED 3 mm rouge profil) quartz. Le résonateur piézo et la batterie sont
externes au circuit et y sont raccordés à l’aide
de morceaux de fil de câblage souples.
DISPLAY_DIGITS: exécute une boucle continue prenant L’affichage à anode commune HD1131 est dis-
également en charge le rafraîchisse- ponible en différentes versions, le suffixe indi-
IN SAVE_STATUS, SREG ment de l’affichage et bien sûr la quant la couleur. Nous recommandons ici la
CPI FLAG_1,$FF conversion vers les 7 segments utili- version « Q » super-rouge. La luminosité peut-
BRNE ALARM_NOT_SET sés ici. être indiquée séparément dans le code du
Les interruptions vont à présent se type du composant, par exemple par un « L ».
INC TIME_OUT produire et le RGI sera à chaque fois En choisissant une version très brillante, on
CPI TIME_OUT, 61 ;1 SECOND invoquée. atteint un bon compromis en consommation
BREQ TIMER_OUT Ce n’est pas seulement l’endroit où de courant et lisibilité. À ce propos, voyez
le décomptage se fait mais elle véri- aussi les notes concernant les valeurs des
Nous ne souhaitons cependant pas fie aussi si le décompte a atteint zéro résistances R3 à R9.
encore que cette interruption se pro- ou non (ce qui se fait en vérifiant si Selon le type de boîtier que vous choisirez
duise juste à ce moment et nous COUNT1 et COUNT2 valent tous les d’utiliser, les LED et les trois boutons pous-
allons donc l’inhiber grâce à l’ins- deux 0). Si ce n’est pas le cas, alors soirs devront peut être être un petit peu sur-
truction CLI (Clear Interrupt). le micro-contrôleur continue à affi- élevés par rapport à la surface du circuit afin
Maintenant, tous les ports sont ini- cher le temps restant et fait égale- de les amener à niveau avec la face avant du
tialisés dans leurs états respectifs ment appel à une routine de conver- boîtier. Dans le cas des boutons-poussoirs,
d’entrées et sorties. sion BCD (Binary Coded Decimal = cela peut nécessiter de rallonger leurs pattes
Vous pouvez aisément voir comment décimal codé binaire). L’objectif est à l’aide de morceaux de fil rigide.
fonctionne le logiciel dédié à la ges- d’empêcher l’affichage de caractères Soudez ensuite les transistors BC327 et les
tion des boutons poussoirs. Si vous alphanumériques autres que les afficheurs. Tout comme pour les LED et les
pressez le boutons « Units » (unités), chiffres de 0 à 9. boutons-poussoirs, vous pourriez vouloir sur-
cela invoque la routine d’incrémen- Notez que l’interruption est désacti- élever les afficheurs de la surface de la pla-
tation. Il en va de même pour le bou- vée à l’entrée de la ISR et réactivée tine en les insérant dans des sections de sup-
ton « Tens » (dizaines). C’est seule- à sa sortie. Finalement, on quitte la port SIL. Il y a quelques bornes « Vero » des-
ment quand vous poussez sur le ISR et le programme retourne à l’exé- tinées à la batterie, au résonateur et à
bouton « Start » que le programme cution de la boucle principale décrite l’interrupteur « on/off » qui sont montés en
se branche (finalement) vers la sec- précédemment. Cela continuera de face avant. Notez que la batterie est consti-
tion de décomptage. la sorte jusqu’à ce que COUNT1 et tuée de deux piles AAA qui sont parfaite-
Avant que le bouton « Start » ne soit COUNT2 atteignent tous les deux 00. ment suffisantes pour plusieurs heures d’uti-
poussé, le programme se trouve Il y a bien plus à découvrir et à lisation effective.
dans une boucle dans laquelle on apprendre du listage du code source (020296)
réalise le rafraîchissement de l’affi- qu’il ne peut être décrit ici et le
chage. Il y a aussi une routine « Get fichier du code source (gratuit) est
Seven Segment » qui réalise l’affi- recommandé non seulement à ceux
chage du motif approprié. d’entre vous qui sont en mesure de
Le programme n’attend plus, pour programmer leurs propres circuits Téléchargements Gratuits
passer à l’étape suivante, que vous mais également aux programmeurs
retiriez votre doigt du bouton travaillant avec les AVR à la – Fichiers code-source et HEX.
« Start ». recherche d’idées neuves. Numéro de fichier : 020296-11.zip
À ce moment, l’interruption est – Tracé du circuit au format PDF. Numéro
armée et la ISR (Interrupt Service de fichier : 020296-1.zip
Routine = routine de gestion des
Comment construire le
temporisateur www.elektor.fr/dl/dl.htm choisissez le mois
interruptions) est appelée toutes les de la publication.
secondes. Maintenant le programme Le tracé du côté « pistes » et le plan
6/2003 Elektor 63
MICROCONTRÔLEUR
Pilotage de LCD
2e partie : le matériel
Wim Huiskamp
64 Elektor 6/2003
MICROCONTRÔLEUR
druple à deux entrées. Les quatre sorties du
RAM
Alimentation multiplexeur sont envoyées aux entrées du
module LCD (D0 à D3). Ces quatre bits de
donnée seront lus par le module au moment
DONNÉES
du flanc descendant du signal XSCL. Le mul-
ADRESSE WR RD
XSCL tiplexeur choisit alternativement le quartet
Module bas (AD0 à AD3) et le quartet haut (AD4 à
LP LCD AD7) du bus de données. C’est ainsi que la
CPU Y0 (FLM) CPU peut mettre à disposition les huit bits de
DISP_ OFF donnée en une seule opération de lecture. La
sélection d’entrée du multiplexeur est com-
020114 - 2 - 12 mandée par une bascule 74HC74 (IC2a) qui
change d’état à chaque flanc montant du
Figure 1. Diagramme fonctionnel d’un contrôleur de LCD à bas prix. signal XSCL. Le bit de poids faible (AD0) s’af-
fiche à gauche sur écran, le bit de poids fort
(AD7) apparaît le plus à droite. Si, pour un
autre modèle, on devait obtenir l’inverse, il
A0...A15 ADRESSE 0 ADRESSE 1
faudrait modifier la séquence des lignes du
bus de données à l’entrée du multiplexeur.
RD Pour être sûr que la bascule reste en syn-
chronisme, elle est toujours positionnée
quand le signal LP devient actif à l’aide de
DB0...DB7 OCTET 0 OCTET 1
l’inverseur IC3.A.
Le signal XSCL dérive de RD On commence
Q IC4.A
par tamponner, par IC4.A et IC4.B, la ligne RD
pour éviter de la surcharger. IC4c empêche
que XSCL soit actif lors d’une opération nor-
Q IC4.B male de lecture. On utilise à cet effet le signal
LP, qui est haut pendant une lecture normale
par la CPU et ne passe au niveau bas que lors
XSCL
du rafraîchissement de l’affichage. En soi, ce
serait suffisant pour obtenir XSCL, mais on
SEL obligerait la CPU à lire deux fois pour envoyer
un octet complet à l’affichage, une pour le
quartet haut, une autre pour le bas. Les deux
D0.3
monostables IC5.A et IC5.B vont nous déli-
DB0...DB3 DB4...DB7 DB0...DB3 DB4...DB7
020114 - 2 - 13
vrer de la corvée. Le signal RD déclenche la
première bascule, dont la sortie Q déclenche
le second monostable qui fournira une
Figure 2. Diagramme temporel d’un contrôleur de LCD du même genre. deuxième impulsion XSCL à chaque opéra-
tion de lecture. Bien entendu, la chronométrie
est critique, dans cas-ci. D’une part, il faut
trale qui s’en charge. mémoire RAM externe (par exemple une impulsion de longueur suffisante pour
Mais comme le module LCD dispose 32K x 8 bits). La ligne RD et trois E/S permettre un transfert fiable de données,
d’un accès direct au bus de données, du port 1 doivent être disponibles. d’autre part, elle doit être suffisamment brève
il faut prendre les précautions néces- Le circuit a été mis au point à l’aide pour rester dans le cycle de lecture du bus
saires pour qu’il ne réagisse pas au de la carte 89S8252 Flash [1] et la (environ 500 ns pour une horloge de proces-
trafic normal entre CPU et RAM. Il mono-carte « high-speed » à seur à 11,059 2 MHz). C’est pourquoi IC5.A
faut aussi veiller à lui envoyer les DS89C420 d’Elektor [2]. fournit des impulsions de 100 ns et IC5.B, de
signaux convenables lors de la mise Le schéma du montage se trouve à 50 ns. Si vous utilisez un processeur plus
en marche et de la mise à zéro de la la figure 3. Vous pouvez voir à la rapide (comme le 80C51 de Dallas), il est mal-
CPU. Dans pareille situation, il faut figure 2 l’analyse des signaux du aisé de dédoubler l’impulsion XSCL. Vous
éteindre l’afficheur pour éviter de l’en- cycle de rafraîchissement d’écran et pouvez alors débrancher la fonction à l’aide
dommager en le soumettant à des notamment la chronologie des évé- du cavalier JP1. S’il est à l’état haut, le dou-
tensions continues, ainsi que nous nements lorsque l’unité centrale blement sera actif, s’il va à la masse, celui-ci
l’avons vu dans la première partie. envoie une adresse sur les lignes A0 n’aura pas lieu. Et si vous ne comptez jamais
à A15 du bus, puis active la ligne RD vous en servir, inutile d’installer les mono-
La mémoire RAM place ensuite le stables (IC5).
Interface CPU contenu de cette adresse sur le bus C’est l’unité centrale qui génère le signal LP. Il
et contrôleur LCD de données (AD0 à AD7). Les huit est d’abord tamponné par IC3.A et IC3.B. Il
Lors de la conception, nous sommes lignes de données sont reliées aux sert à empêcher la création d’impulsions
partis du 8051 standard avec entrées de IC1, un multiplexeur qua- XSCL lors des opérations de lecture normale.
6/2003 Elektor 65
MICROCONTRÔLEUR
K2
µC Connector
IC1
34 33 AD0 AD0 2 K1
1 MUX 4
32 31 AD1 AD4 3
1
30 29 AD2 AD1 5 D3
7
28 27 AD3 AD5 6 D2
26 25 AD4 AD2 11 D1
9
24 23 AD5 AD6 10 D0
22 21 AD6 AD3 14 XSCL
12
20 19 AD7 AD7 13 LP
18 17 FLM
16 15 RD 1 FR
G1
14 13 DISP_OFF
15
12 11 +5V EN
+5V
10 9 74HC157
8 7
6 5
+5V
4 3 IC4.A
1
2 1 IC4.B IC4.C
2 12 5 9
≥1
13 4 6 10 8 R1 R2
≥1 ≥1
10k
10k
3 11
IC3.C
5 6 +5V
12
1 C1 C2
1 13 10p 10p
15 14 7 6
9 R 12
13 D RX/CX CX RX/CX CX
IC3.F IC2.B 1 13 9 5
8 11 2 & 10 &
C
S 3 IC5.A 4 11 IC5.B 12
K3 10
P1.0 IC3.A IC3.B
P1.1 1 2 3 4
1 1
P1.2
+5V
IC3.D IC3.E
JP1
9 8 11 10 +5V
1 1
1
+5V 2 R 5
D
IC2.A
+5V +5V
3 6
16 C12 C
S
IC1
4
8 C3 C4
100n 8 8 D2 P1
C8
2 100n 2 100n
C5 CAP+ C6 CAP+
+5V +5V IC6 IC7 10µ 12V
D1 10k
10µ 4 5 10µ 4 5
CAP– OUT CAP– OUT
14 MAX1044 MAX1044
C10 14 C9 14 C11 16 C13 6 7 6 7 BAT85
LV OSC C7 LV OSC
IC2 IC3 IC4 IC5
7 7 7 8 IC2 = 74HC74
3 10µ 3
100n 100n 100n 100n IC3 = 74HC04
IC4 = 74HC27
IC5 = 74HC123 020114 - 11
On l’utilise également pour initialiser le sélec- sion »). À vous d’en changer le bro- Le circuit de pilotage, notre proto-
teur de quartet IC2.B. chage si vous utilisez un autre type, nous l’avons relié par un petit
Même origine pour le signal FLM, tamponné module non compatible. câble en nappe à la carte 89S8252
lui par IC3.D et IC3.E. Le signal de trame FR Le connecteur K2 alimente le mon- Flash. Les liaisons nécessaires à
en dérive, par l’intermédiaire de la première tage. Les puces IC6 et IC7 forment la cette platine (AD0 à AD7, RD et le
bascule de IC2. Cette cellule change d’état à tension Vee (–10 V) à partir de la port A) passent par un support de
chaque flanc descendant de FLM et fait en tension d’alimentation Vcc (+5 V). Il connexion par enroulement (wire-
sorte que FR soit alternativement haut et bas s’agit d’un circuit inverseur de ten- wrap) sur la platine.
sur les trames successives. sion qui travaille avec une pompe de
L’inverseur IC3 traite le signal DISP_OFF, qui charge. Former Vee à partir de Vcc a Modules LCD utilisables
a pour mission d’éteindre l’afficheur lors pour avantage qu’il n’y aura jamais Pour notre prototype, nous avons
d’une mise à zéro du processeur. Il exploite le de Vee sans Vcc. Si l’on avait prévu fait usage de l’écran LCD de
fait que tous les bits de donnée du microcon- une alimentation négative distincte, 160x160 pixels provenant d’un ordi-
trôleur deviennent hauts en pareil cas. on n’en aurait pas été sûr. nateur de jeu « Supervision ». Il ne
Le connecteur K1 met à disposition tous les nous a pas été possible de décou-
signaux de données et de contrôle, ainsi que vrir le type de circuits de com-
les tensions d’alimentation pour le module Construction du matériel mande employés sur ce module, du
LCD. L’ordre des broches correspond à celui Le montage méritait bien une platine fait que les boîtiers sont montés
du module LCD utilisé sur notre prototype à son intention, vous en trouverez les directement sur la platine.
(récupéré sur un ordinateur de jeu « Supervi- deux faces reproduites à la figure 4. Mais d’autres modules sont utili-
66 Elektor 6/2003
MICROCONTRÔLEUR
Liste des composants
HOEK1
HOEK2
R2
Résistances :
K2
C2
JP1
K3
R1,R2 = 10 kΩ
P1= ajustable 10 kΩ
C5
IC4 IC1
C11
C12
IC5
Condensateurs :
C1,C2 = 10 pF
R1
IC6
C3,C4,C9 à C13 = 100 nF
C1
C5 à C8 = 10 mF/16 V radial
C13
C6
C4
C9
C3
Semi-conducteurs :
IC7
D1 = BAT85
(c) ELEKTOR
D2
020114-1
C8
P1
IC1 = 74HC157
HOEK3
HOEK4
D1 IC2 = 74HC74
IC3 = 74HC04
IC4 = 74HC27
IC5 = 74HC123
IC6,IC7 = MAX1044/CP (Maxim)
020114-1
Divers :
JP1 = embase mâle à 1 rangée de 3
contacts + cavalier
K1 = embase mâle à 1 rangée de 12
contacts
K2 = embase mâle à 2 rangée de 17
contacts (HE-10)
K3 = embase mâle à 1 rangée de 3
contacts
KS086 de Samsung.
– L’afficheur Ampire AG240128 également de
240x128 pixels. L’attaque des segments sur
ce module s’effectue par un circuit du type
T6A39, celle des lignes communes par le
T6A40, tous deux de Toshiba.
Naturellement, si vous adoptez un écran
d’une résolution différente de 160x160, il vous
faudra adapter le logiciel en conséquence.
Le logiciel
Parlons-en, précisément. Il a été écrit en lan-
gage assembleur 8051. Tous les signaux de
commande pour l’écran (sauf XSCL) sont pro-
duits par logiciel et commandent des lignes
d’E/S bit par bit. La conception a fait appel à
l’assembleur bien connu Metalink (du
domaine public), que l’on peut télécharger
gratuitement de www.metaice.com/ASM51/
Figure 4. Une platine de petite dimension, elle aussi. ASM51.htm. Mais il doit être malaisé de
modifier le code source pour l’utiliser avec un
autre assembleur. Il faudrait probablement
sables : et fait –20 V. Il y a quatre lignes de transformer toutes les définitions de macro et
– L’afficheur Optrex DMF660N-EW commande (FLM, CP, LP et une les autres directives pour l’assembleur.
possède 240 pixels en largeur sur ligne FR repérée ici par la lettre M). La structure du logiciel est modulaire. Il y a
128 de haut. Il est équipé de cir- – Le Densitron LM3024, de 240 des modules distincts pour gérer le port
cuits d’attaque Hitachi (HD61105 et pixels de large sur 128 de haut. sériel, la commande du LCD et pour les rou-
HD61104). L’entrée de données de – LeTruly MG-160-160-3 fait aussi tines de support. Simplification de la mise à
ce module compte quatre bits. Sa 240 (large) x 128 (haut) pixels. Les jour et de la réutilisation du logiciel. Tous les
tension de contraste est négative circuits de commande sont du type modules se présentent de la même façon. Ils
6/2003 Elektor 67
MICROCONTRÔLEUR
se composent de deux parties : Mod_cnst.inc
DISP_OFF
(définition des constantes et déclaration des
INTERRUPTION TIMER INTERRUPTION TIMER
variables) et Mod_sub.asm (code exécutable
et données mémorisées en zone de pro- RAZ & MAINTIEN RAFRAICHISSEMENT NORMAL
gramme, comme les tables).
LP
Le logiciel de commande a été testé avec une
série d’exemples que nous allons utiliser
aussi pour en expliquer le fonctionnement XSCL
général.
Et pour commencer, analysons brièvement les D0...D3 1 2 n 1 2
différents modules. De plus amples détails se 020114 - 2 - 14
trouvent en commentaires dans le code
source.
Figure 5. Diagramme de la chronométrie par logiciel.
Routines de commande de bas niveau
La routine LCD_Init initialise la routine d’in-
terruption du rafraîchissement, la RAM et les trame de 50 Hz (20 ms). On peut et LCD_Crs_H.
lignes de commande du LCD. Les broches voir à la figure 5, dans le dia- Nous pouvons déterminer la propor-
d’E/S qu’il faudra utiliser, c’est LCD_cnst.inc gramme temporel, comment LP est tion de capacité de travail que la rou-
qui le définira. LCD_Init commence par posi- envoyé au niveau bas. Du coup, la tine d’interruption distrait au pro-
tionner au niveau de départ les broches rangée de l’affichage qui vient d’être cesseur en mesurant le rapport
d’E/S, entre autres DISP_OFF. Puis, c’est au chargée lors de l’interruption précé- cyclique du signal LP. Cette ligne est
tour de la mémoire et des pointeurs de don- dente est stockée dans les verrous et basse aussi longtemps que le pro-
nées, qui devront la balayer. Et bien sûr, elle le chargement de la ligne suivante cesseur est occupé par ladite rou-
initialise la routine d’interruption qui assure peut commencer. Dès que la totalité tine, elle est haute le reste du temps.
la réactivation récurrente des pixels. de la rangée a pu glisser dans le Nous avons ainsi une idée de la
Il y a des routines d’aide pour le décalage de registre à décalage, LP repasse haut capacité dont dispose encore le pro-
l’affichage en horizontal et en vertical : et la routine d’interruption a terminé. cesseur pour exécuter d’autres
LCD_Up, LCD_Down, LCD_Left et LCD_Right. La routine refresh conserve chaque tâches. Sur notre prototype, LP res-
La routine LCD_Home restaure la position de fois l’adresse de la rangée dans les tait bas durant environ 100 µs et 25
départ : elle ramène l’affichage à la même adresses de mémoire LCD_Ptr_L et µs haut. Autrement dit, la CPU passe
zone de mémoire que lors du démarrage. LCD_Ptr_H et le numéro de colonne 80 % de son temps à exécuter la rou-
C’est la routine LCD_Hsync_Int qui fournit la dans LCD_Row_Ct. La même routine tine d’actualisation.
plus grosse partie du travail, dans le logiciel s’occupe de fournir une impulsion Le processeur Dallas 89C420 offre, à
de commande du LCD. Une interruption, celle FLM à la fin d’une image complète. côté de sa plus grande vitesse,
du temporisateur 0, la rappelle toutes les 125 Il existe un autre pointeur qui fait l’avantage de disposer d’un jeu
µs. Sur un écran de 160 lignes comme celui de office de repère de curseur dans d’instructions plus efficaces. Une
notre prototype, cela donne une fréquence de l’écran. Il s’inscrit dans LCD_Crs_L seule instruction est capable de
Supposons que vous vous décidiez pour un écran, encore faut-il trouver son brochage. Distinguons deux situations :
68 Elektor 6/2003
MICROCONTRÔLEUR
ou fabriqué spécialement pour un appareil déterminé. Chez 6
Seiko, par exemple, vous pourrez le savoir grâce au numéro de
type, qui dans ce cas commence par les lettres « ECM » (Epson
Custom Made).
Avec un moteur de recherche, sur Internet, interrogez sur le
numéro de type complet ou sur une partie seulement. On trouve
parfois des renseignements dans les groupes de discussion [5].
La figure 6 vous montre l’intérieur du jeu électronique dont nous avons prélevé l’écran pour notre prototype. Il était toujours en état de
marche. Il est clair que le microcontrôleur du jeu assurait également la commande de l’écran LCD. Après avoir ouvert le boîtier avec cir-
conspection, nous avons entrepris de déterminer, à l’oscilloscope, le brochage de l’afficheur.
Il ne nous a pas été possible de savoir quels circuits d’attaque étaient employés, vu que ce sont des puces collées. On reconnaît sur la
photo les gouttes de résine. À la figure 7, on voit une partie du circuit de polarisation. Vous reconnaîtrez aussi les résistances du diviseur
de tension, l’amplificateur opérationnel LM324 en tampon et les condensateurs intercalés. Nous avons dû compter le nombre de pistes
imprimées qui conduisent à l’afficheur pour déterminer le nombre de lignes et de colonnes. Il y a 160x160 pixels. Une opération plus aisée
en s’aidant d’une fine aiguille et d’une loupe.
Le processus que nous avons décrit permet généralement de retrouver le brochage de l’écran LCD, surtout que la plupart d’entre eux
fonctionnent de la même manière que celui qui nous a servi d’exemple. Vous saurez ainsi grosso modo comment vous y prendre pour
vous faciliter la vie. Après quelques essais, il est aisé de retrouver la fonction de beaucoup de broches, mais attention à Vee et Vadj. En
général, les autres broches tolèrent bien une tension négative. Tâchez donc d’identifier d’abord ces deux lignes et vérifiez bien tout avant
d’appliquer la tension d’alimentation.
6/2003 Elektor 69
MICROCONTRÔLEUR
mettre en œuvre un pointeur et de l’incré- contient les bitmaps utilisés pour le pour le port sériel. En outre, le
menter en même temps, en vue de la pro- rendu des signes littéraux et des nombre de NOP dans la macro
chaine instruction. Cela peut réduire encore autres symboles. Ce sont des LCD_LOAD_X devra aussi être modi-
la prédominance de la routine d’interruption. matrices de 8x8 à recopier dans la fié pour respecter la bonne chrono-
Il faut évidemment modifier le logiciel de mémoire d’écran pour reproduire la métrie pour l’écran LCD.
manière à l’employer. forme des signes. Ils s’inspirent Il est possible, à l’aide des directives
d’une ancienne version de police de l’assembleur du Tst51LCD ou de
Routines de commande de haut niveau VGA. Le logiciel recèle aussi des rou- l’un des modules ajoutés, de s’adap-
Outre les routines de service qui passent les tines capables de modifier la ter au type de processeur (entre 8051
données de la mémoire vers l’affichage, il y a séquence des bits, en cas de besoin et 80C535, par exemple) et à d’autres
des routines de niveau supérieur qui appro- d’autres symboles. Sous la version à réglages (comme le débit sur le port
visionnent la mémoire d’écran en informa- carte 89S8252 Flash, nous n’avons sériel). Le programme Tst51LCD
tions. pas repris ces matrices, faute de commence par initialiser le port
Commençons par la routine LCD_PutChar, place en mémoire. sériel, le pointeur de pile et d’autres
qui écrit un caractère à la position actuelle du choses semblables, avant de s’occu-
curseur sur l’écran. On trouve encore les rou- per du LCD. Ensuite, il lance les rou-
tines LCD_PutStrCnst et LCD_PutStrBuf, qui Bitmap tines de rafraîchissement. L’utilisa-
y inscrivent des chaînes de caractères Il est aussi possible d’afficher des teur est alors en mesure de se servir
variables ou fixes. On clôture une chaîne de présentations graphiques sur écran. de l’affichage à l’aide de commandes
caractères par une valeur nulle. Après l’ins- Le logiciel contient d’ailleurs un simples. Il peut ainsi lui envoyer des
cription d’une lettre, le curseur se déplace exemple d’image, c’est le module textes et faire glisser la fenêtre affi-
automatiquement d’une position vers la lcd_girl.asm. Il s’agit d’une image de chée de gauche à droite et de haut
droite, mais il ne va pas d’initiative à la ligne. 160x160 pixels extraite d’un fichier en bas.
On peut envoyer le curseur à n’importe quelle .bmp de Windows. Vous pouvez obtenir le logiciel sur
position sur écran grâce à la routine On peut aisément ajouter des rou- disquette ou le télécharger du site
LCD_GoTo. tines pour d’autres fonctions gra- Elektor. Il contient le code source,
Les caractères à présenter sont stockés sous phiques, par exemple pour tracer mais aussi deux fichiers HEX, les-
forme de matrices de 8x8 dans le fichier des lignes droites. Il n’est pas diffi- quels mettent à disposition le pro-
Chr_sub.asm. cile d’adapter le logiciel standard gramme directement utilisable, sans
La routine LCD_Load copie la représentation destiné à d’autres contrôleurs d’affi- assemblage préalable. FLASH.HEX
complète d’une position donnée vers l’écran. chage comme le SED1330. La diffé- convient à la carte Flash et DAL-
On peut prendre comme exemple rence principale avec le SED1330, LAS.HEX à la mono-carte « high-
LCD_Girl.asm. À la lecture de l’étiquette, les c’est que le processeur peut alors speed ».
données sont copiées de la mémoire de pro- accéder directement à la mémoire
gramme (ROM) vers la mémoire d’écran d’écran. Vous pouvez trouver sur
(RAM). Pendant ce temps, l’affichage est Internet des exemples de fonctions Finalement
éteint pour accélérer le chargement. Nous graphiques en assembleur 80C51, Ce contrôleur de LCD peu onéreux
disposons ainsi de 100 % du temps du pro- comme l’algorithme de Bresenham donne à des écrans remisés au pla-
cesseur, au lieu des 20 % habituels. Pour arrê- pour tracer des lignes. card la chance d’entamer une nou-
ter la routine de rafraîchissement, nous fai- velle vie. Il offre en effet d’intéres-
sons appel à LCD_Off et pour la relancer, à Routines de démonstration santes possibilités d’utiliser des sys-
LCD_On. Le programme principal se trouve tèmes basés sur le 8051 standard
dans le fichier Tst51LCD.asm. Des associés à une pincée de matériel.
Port sériel instructions #include vous permet- La rédaction d’Elektor se réjouit de
Le logiciel pour le port sériel (fichiers tent d’ajouter les modules auxiliaires découvrir les projets que les lecteurs
ser_cnst.inc et ser_sub.asm) se charge d’ini- nécessaires. Le logiciel est configuré auront envie de réaliser à partir de
tialiser le matériel inclus dans le port sériel pour travailler avec la carte 89S8252 ce montage et les extensions ou
du 8051 ou du 80535. Le débit est réglé sur le Flash. Pour traduire le programme améliorations, tant matérielles que
standard de 9 600 bauds. Il existe des direc- pour la mono-carte « high-speed » à logicielles, quelles ils voudront
tives en assembleur pour le régler à 4 800 ou DS89C420 [2], il vous faudra modifier consacrer leurs efforts.
9 600 bauds. Il y en aussi pour sélectionner la ligne 43 pour lire : (020114-2)
la fréquence d’horloge de 11,059 ou 12 MHz.
FLASH EQU UNDEFINED
Assistants Références :
On trouve encore un module qui regroupe des et à la ligne 42 : [1] Carte 89S8252 Flash,
fonctions générales d’aide. Le module UTL DALLAS EQU DEFINED Elektor décembre 2001
(utl_cnst.inc et utl_sub.asm) contient les fonc- [2] Mono-carte « high-speed » à
tions de conversion d’ASCII vers Hex, des Le logiciel a été testé sur la mono- DS89C420, Elektor juin 2002
fonctions de retardement et autres. carte « high-speed » à une fré- [3] www.seiko-instruments.de/
quence d’horloge de 27 MHz. Si [4] www.optrex.co.jp/us/product/
Jeu de caractères vous utilisez une autre fréquence, il catalog/index.html
Le module CHR (chr_cnst.inc et chr_sub.asm) faut adapter le code d’initialisation [5] www.eio.com/public/lcd
70 Elektor 6/2003
PC&AUDIO
Loin d’être indispensable pour des haut-par- avec laquelle on peut apprécier de la satisfaction morale d’être parvenus
leurs de PC, un réglage de tonalité se révèle bonne musique. La publication de ce au bout de nos ambitions dans le
bien pratique sur une chaîne multimédia, montage nous procure en outre la cadre de ce système actif.
72 Elektor 6/2003
PC&AUDIO
tures discrètes bien pensées, alors que notre
système multimédia explore la veine de l’in-
tégration. Comme pour l’amplificateur des
satellites et du caisson de grave, nous
sommes partis à la recherche d’une formule
à puce unique.
Le LM1036
Si naguère les puristes considéraient encore
avec dédain les circuits intégrés dans les ins-
tallations de haute-fidélité, les scrupules sur
la qualité de ces puces ne sont plus de mise
aujourd’hui. Au cours des dernières années,
une demande accrue de ce genre de CI pour
les minichaînes et les autoradios a poussé les
fabricants à développer des composants à
plus hautes performances.
Notre choix s’est porté finalement sur le
LM1036 de National Semiconductors, un cir-
cuit intégré DIL à 20 broches qui, associé à
Figure 1. Brochage et diagramme fonctionnel du LM1036. une poignée de composants extérieurs, per-
met de réaliser une régie stéréo complète,
avec réglages de volume, balance, tonalités
Dans la conception de notre réglage tout autant comme module indépen- et même de contour. Toutes les commandes
de tonalité, nous avons encore voulu dant d’une chaîne Hi-Fi. s’opèrent en courant continu, aucun risque de
une solution d’un emploi aussi uni- Voilà qui repose la question de l’em- ronflement induit sur les câbles de liaison aux
versel que possible, bien dans la ploi des puces. En haute-fidélité potentiomètres. L’alimentation peut se situer
ligne des enceintes actives, mais pure, nous préférons les architec- entre 9 et 16 V (donc en concordance avec la
plage de réglage du grave (volume –40 dB) +15 dB à –15 dB (20 Hz) A +24
+21
plage de réglage de l’aigu (volume –40 dB) +16 dB à –13 dB (20 kHz) +18
+15
+9
rapport signal / bruit 78 dBA (250 mV d’entrée) +6
r +0
-6
-15
-21
B +10
+0
Courbes mesurées :
-10
les deux sens des réglages de grave et d’aigu, la ligne du milieu s’obtient -30
d’isotonie (loudness). Nous avons repris les mesures de niveau par pas -70
(700 mV) et un filtre passe-bande, pour rendre plus visible le domaine 20 50 100 200 500
Hz
1k 2k 5k 10k
020054 - 4 - B
20k
6/2003 Elektor 73
PC&AUDIO
trouve à la figure 2, il démontre que
16V max
+15V l’on peut construire une mini régie
C21 C12 avec bien peu de composants. À
+15V part la puce, vous n’y découvrirez
100µ 10n
25V que quelques résistances et conden-
sateurs, des bornes d’entrée et de
sortie ainsi que quatre potentio-
C4
R6
C6 C8 C10 REF C13 C15 C20
R12 mètres, un point c’est tout.
100k
Question de simplifier les branche-
1M
(+5V4)
1n 10n 10µ 390n 220n 220n
63V S1 100p ments, outre les inévitables entrées
R4 LOUDNESS R13
1k 47k VOLUME Cinch (K1 et K2), nous avons prévu
R K2
OFF ON R15 une entrée pour mini-jack (K3). Mais
47k BASS
soyons clairs, le but est d’utiliser un
genre ou l’autre de raccords, sinon,
R
R10 les signaux appliqués à R1/R3 et
220Ω
R2/R4 seront simplement addition-
18 16 15 11 17 7 12 14
K3 nés et vous les entendrez, pas forcé-
CT2
ACBP2
CB2
ZV
LCC
VLC
BSC
R2 C2 C19 R11 R
19
IN2 OUT2
13 ment de concert, mais ensemble !
1k 220Ω
1µ IC1 2µ2 Pour les sorties vers le canal gauche
R1 C1
2
LM1036 8
C17 R7 et le canal droit, on dispose d’une
IN1 OUT1
ACBP1
1k 220Ω
double rangée de cosses à souder,
CB1
CT1
TRC
BLC
1µ 2µ2 L
ISD
32mA T
iront à VL, BL, BS et TR, donc aux
K4 C30 C27
IC2
broches 4, 9, 12 et 14.
47n 47n LM317 +15V
B1
C29 C28
R19 R17 Les cellules en détail
6k8
560Ω
47n 47n
C23 C22
Chaque entrée de réglage se voit
déparasitée par un réseau RC (R13 à
2x 7V5 D1 R18 10µ 100n
B80C1500 63V R16, C13 à C16). Les réglages de
1VA8 C26 C25 C24
6k04
74 Elektor 6/2003
PC&AUDIO
également d’une commande de (broche 12). Nous avons dessiné sur nous avons opté pour du 15 V parce que sous
volume compensée en fonction de la le schéma un commutateur à cet cette tension, le circuit est capable de traiter
courbe d’isotonie (loudness control), effet, parce que l’auditeur, en général, des signaux d’entrée de 2 Veff. Pour vous évi-
qui relève le gain du grave et de souhaite garder la liberté de s’en ser- ter l’embarras de chercher une bonne ali-
l’aigu à mesure que le volume vir ou pas. Vous pouvez également mentation stabilisée de 15 V, nous l’avons
demandé est plus bas (cf. caractéris- monter sur la platine une barrette à incorporée au projet.
tique B). Si vous reliez la broche 7, trois broches pour cavalier, de quoi Comme stabilisateur, nous avons préféré le
l’entrée de commande de compensa- établir une sélection permanente. LM317 (IC2) au modèle coutumier 78XX,
tion « loudness », à la tension de parce que son atténuation du ronflement est
zener interne (broche 17), vous supérieure. Ce sont les résistances R17 et
débranchez la fonction. Pour l’activer, Alimentation R18 qui fixent la tension de sortie à 15 V, du
il suffit de connecter la broche 7 à Bien que la tension nominale d’ali- moins pour des valeurs nominales (1,25 V
l’entrée de commande de volume mentation du LM1036 soit de 12 V, entre la sortie et l’entrée de réglage), pour
~ ~
Résistances :
L R
H1
H7
H2 H8
K1 K2 F1 R1 à R4 = 1 kΩ
K4
C3 C4 R5,R6 = 1 MΩ
R1 R2
C11
TR1
R7,R8,R10,R11 = 220 Ω
R5 R6
R3 R4 R9,R12 = 100 kΩ
C5 C1 C2 C6
Ref R13 à R16 = 47 kΩ
R17 = 560 Ω
OUT5
4-450020
C16
C8
OFF
S1 ON
ROTKELE )C( R18 = 6kΩ04
R16
R19 = 6kΩ8
IC1
C10
Treble
C7
Loudness
020054-4 P1 à P4 = 47 kΩ lin. (mono)
R15 32mA/T
Bass IC2 C28
C13 C15
C14 C9
Condensateurs :
C29
C25
Balance Volume
R17
C27
C1,C2 = 1 µF MKT au pas de 5/7,5 mm
C12 B1
R14 C21 R13 R18
R19
C3,C4 = 1 nF
C30
T
C5,C6,C12 = 10 nF
C17
C19
C23
C7,C8,C23,C24 = 10 µF/63 V radial
R12
R9
C24
C18 R7
0
+ R11 C20 D1
+ 0 C9,C10 = 390 nF
C22
R8 R10
C11 = 47 µF/25 V radial
16Vmax
H3
H5
H4 H6
LT LT T R R
T
OUT1 OUT2 OUT3 OUT4
C26
C13 à C16 = 220 nF
C17,C19 = 2µF2 MKT au pas de 5/7,5 mm
C18,C20 = 100 pF
C21 = 100 µF/25 V radial
C22,C25 = 100 nF céramique
C26 = 470 µF/40 V radial
C27 à C30 = 47 nF céramique
Semi-conducteurs :
D1 = LED à haut rendement (high
efficiency)
IC1 = LM1036N (National Semiconductor)
IC2 = LM317 (TO-220, National
Semiconductor)
Divers :
(C) ELEKTOR
K1,K2 = embase Cinch encartable telle que,
020054-4 par exemple T-709G (Monacor)
K3 = jack 3,5 mm stéréo encartable tel que,
par exemple, Conrad 73 28 93-88)
K4 = bornier encartable à 2 contacts au pas
de 7,5 mm
S1 = inverseur unipolaire
B1 = B80C1500 pont plat (~+~–)
F1 = porte-fusible encartable + fusible 32
mA/T
TR1 = transfo secteur secondaire 2 x
7V5/1VA8 (tel que, par exemple, Gerth
Figure 3. Tracé des pistes et agencement des composants sur la platine. La section 304.15-2)
alimentation peut faire bande à part.
6/2003 Elektor 75
PC&AUDIO
un courant de polarisation de 50 µA. Mais vie ! Le transformateur encartable dans le commerce susceptibles
suite aux inévitables tolérances, notre pro- repris dans la liste, un Gerth de d’abriter les deux platines et les
totype ne fournissait que 14,43 V comme 1,8 VA, présente une architecture quatre potentiomètres. Pour le rac-
tension de sortie. Le perfectionniste peut standardisée ; d’autres modèles, de cordement au secteur, il va de soi
toujours, pour atteindre exactement 15 V, 1,5 VA par exemple, s’y conforment d’utiliser un cordon bien isolé et soli-
adapter légèrement R18 : l’augmenter relè- également. dement fixé au boîtier par un sys-
vera la tension de sortie. La construction de la mini régie pro- tème anti-traction qui évite toute
Le reste de l’alimentation est classique, avec prement dite ne devrait pas vous contrainte mécanique sur le connec-
C26 comme condensateur électrolytique de prendre beaucoup de temps : peu de teur K4. Vous trouverez davantage
lissage, associé à C25 en découplage des composants et une implantation lim- de conseils pratiques sur les précau-
hautes fréquences, une cellule en pont B1 pide. La logique est aussi respectée tions à prendre vis-à-vis de la ten-
avec ses condensateur antiparasites C27 à pour les raccordements, avec les sion du secteur sur la page « Sécu-
C30, un transformateur avec fusible secteur bornes d’entrée sur l’un des bords, rité » que nous publions régulière-
et la LED D1 pour témoin. les cosses de sortie sur le bord ment dans ce magazine. Prévoyez
opposé et celles pour les quatre aussi une plaquette d’identification,
potentiomètres, à savoir aigu, à coller à l’extérieur du boîtier, avec
Platine balance, volume, grave, ainsi que le numéro de la platine et la valeur
La figure 3 représente la platine de mini masse (⊥) et Ref, équitablement du fusible de remplacement.
régie. Remarquez-y, à droite, le compartiment réparties des deux côtés. Un avantage appréciable de ce mon-
alimentation que vous pourrez, si le cœur Nous avons déjà parlé du commuta- tage, c’est que les réglages de fonc-
vous en dit, séparer du reste pour le loger teur de contour S1. Notre prototype tions opérés par les potentiomètres
ailleurs dans le boîtier. L’éloigner quelque peu est équipé d’une barrette et d’un s’effectuent en courant continu et les
de l’endroit où les signaux sont traités, c’est cavalier. Les raccordements d’ali- conducteurs ne transportent donc
tout bénéfice dans la chasse aux parasites. mentation de la mini régie se situent pas de signal audio. Cela élimine en
Nous le répétons à chaque coup, mieux vaut aussi près que possible des conden- pratique la nécessité de les réaliser
installer les composants les plus gros en sateurs de découplage C12 et C21 et en câble faradisé, un simple fil
finale. L’illustration en est claire aujourd’hui : des sorties. La figure 4 vous montre souple suffit, sans risque de ronfle-
tenter d’insérer C27, C28 et C29 après avoir notre platine d’essai en photo. ment intempestif.
soudé à demeure le transformateur et le Chacun sera libre du choix d’un cof- (020054-4)
pont redresseur, voilà qui ne simplifie pas la fret adéquat. Il en existe quantité
76 Elektor 6/2003
MICROPROCESSEUR
Le présent article décrit un envoi qui nous a été adressé dans le cadre du
Concours « Flash » de l’an passé; il s’agit d’un logiciel créant une horloge
en temps réel (RTC pour Real Time Clock), c’est-à-dire sans nécessiter
l’utilisation de quelque circuit intégré périphérique spécialisé prévu pour
cela. Comme il faut tenir compte de l’heure d’été et de l’heure d’hiver et
pouvoir éliminer toute dérive, il est même prévu une correction
automatique basée sur DCF.
78 Elektor 6/2003
MICROPROCESSEUR
LED qui visualise les impulsions cette tolérance (cf. un peu plus loin). disions plus haut, nous avons, à chaque
DCF et pour terminer le port sériel Une augmentation de la valeur de impulsion d’horloge des 50 ms, activation
pour la liaison vers le PC. départ se traduit par une remise à d’une interruption de routine. Nous utilisons
zéro plus rapide du temporisateur et cette même routine pour interroger à inter-
une horloge avançant plus vite et valle régulier l’état de cette entrée.
Principe de l’horloge en inversement. Il ne faut pas oublier la Nous détectons un bit « 0 » lorsque l’entrée
temps réel correction effectuée par DCF qui, si reste au niveau haut pendant 1 ou 2 impul-
Nous utilisons un temporisateur la réception se fait correctement, sions d’horloge (impulsion de 100 ms), un bit
interne en mode intervalle. Lorsqu’il remet l’horloge à l’heure toutes les « 1 » se traduisant par un maintien au niveau
travaille dans ce mode, le tempori- minutes. haut pendant 3 à 5 impulsions d’horloge. Si,
sateur/compteur est incrémenté à Il n’est pas bien sorcier, dans la rou- pendant plus de 30 impulsions de tic-tac (soit
chaque cycle-machine, c’est-à-dire tine d’interruption appelée toutes les 1,5 s), nous ne détectons aucun niveau haut,
toutes les 12 impulsions de l’oscilla- 50 ms, d’additionner les impulsions nous savons que nous sommes arrivés à la fin
teur à quartz. Si nous utilisons un d’horloge pour en faire des secondes, du code horaire et que la prochaine impulsion
quartz de 11,059 2 MHz, cette incré- d’additionner les secondes pour en identifiera un changement de minute.
mentation se fait partant : faire des minutes, de passer des Il va sans dire que parmi les 59 bits, nous ne
11 059 000 / 12 = 921 600 fois par minutes aux heures et ainsi de suite. décodons que ceux qui nous sont nécessaires
seconde. La remise à la date est elle bien plus à l’obtention de l’heure exacte.
Comme nous travaillons en mode délicate. C’est la raison pour laquelle
16 bits, nous sommes confrontés à nous utilisons les informations four-
un dépassement lorsque la valeur du nies par l’émetteur DCF. En cas de Implémentation de l’horloge en
temporisateur atteint 65 535. Il est perte de réception de DCF, la date temps réel
remis à 0 (ou le cas échéant à une restera dans son état le plus récent. Ce processus se joue au début et à la fin de
valeur préprogrammée différente) et Cette situation ne devrait pas poser la routine « Clocktimeroverflow ». Nous com-
on a génération d’une interruption. de problème pour la majorité des mençons par prépogrammer le registre du
On aura ainsi une nouvelle interrup- applications. Si vous pensez que temporisateur. Après un dépassement il faut
tion non, il vous faudra ajouter la logique le positionner à la valeur de remise à zéro pré-
921 600 / 65 535 = 14,06 fois par requise. calculée. Comme il se peut que l’on utilise,
seconde. dans l’application dont l’horloge fait partie,
Cette valeur n’a rien de bien excitant d’autres interruptions, il vaut mieux ajouter
en tant que signal d’horloge. La Le signal DCF la valeur de RAZ à la valeur déjà atteinte par
valeur la plus proche, supérieure et Comme vous le savez sans doute, le temporisateur. Il se peut en effet que le
arrondie, est 20 impulsions par l’émetteur DCF77 se situe tout près saut vers notre routine temporisateur soit
seconde, ce qui se traduit par une de Frankfurt (RFA); il émet un signal reporté au cas où une autre interruption
période de 50 ms. Il est possible modulé en MA (Modulation d’Ampli- serait déjà en cours de traitement (à la même
d’obtenir cette valeur en configurant tude) : chaque seconde, il envoie un priorité ou à une priorité supérieure).
le temporisateur différemment, de bit par réduction de jusqu’à 25% de Pendant ce temps-là, le compteur a déjà
manière à ce qu’il soit remis à zéro l’amplitude de la porteuse. La durée passé par zéro. Une horloge précise en tient
plus tôt : de cette réduction d’amplitude défi- compte : nous procédons à une lecture du
921 600 / 20 = 46 080. nit l’état du bit émis : 100 ms repré- registre du temporisateur, ajoutons la valeur
Si nous configurons le temporisateur sente un « 0 », 200 ms un « 1 ». de RAZ à la valeur lue et écrivons le résultat
de manière à ce qu’il induise une Le récepteur DCF convertit ces de cette opération dans le registre.
RAZ après 46 080 cycles, nous variations d’amplitude en impulsions La constante « Reset_value » est mise en prin-
aurons un mouvement d’horloge tra- présentes sur ses sorties à collecteur cipe, comme nous le disions plus haut, à
vaillant à une période de 50 ms. Il ouvert. Il comporte une sortie posi- 19 455. Nous allons l’augmenter d’une valeur
reste cependant encore une dérive tive (au niveau haut lors des impul- de décalage. Dans notre exemple, cet ajout,
induite par la précision du quartz et sions envoyées par l’émetteur DCF) de 150, est destiné à compenser le retard
le déroulement du programme. et une sortie négative (descend à 0 V introduit par le programme. En effet, il se
Nous n’avons pas la possibilité de lors des impulsions). passe plusieurs cycles-machine entre la lec-
modifier la valeur à laquelle se fait la Si vous désirez de plus amples infor- ture et la réécriture dans le registre du tem-
remise à zéro du temporisateur : mations au sujet des différents bits porisateur, cycles au cours desquels le tem-
celle-ci est toujours de 65 535. Il nous que comporte le signal DCF77 nous porisateur ne travaille pas. Nous nous testons
est cependant possible de jouer sur vous renvoyons à l’article consacré en outre le cas extrême d’une arrivée trop tar-
sa valeur de départ. Nous allons au « DCF pour le PICÉE » cf [1]. dive de l’interruption du temporisateur. Dans
donc opter pour une valeur de ce cas-là l’horloge en temps réel n’est pas
départ différente de zéro. Elle sera compatible avec le programme principal : les
de : Le décodage du signal routines d’interruption de l’application prin-
65 535 – 46 080 = 19 455. DCF cipale durent plus de 50 millisecondes.
Si vous tenez à une horloge extrê- Nous connectons la sortie positive Comme un processeur du type 8052 connaît
mement précise vous pourrez tenter du récepteur DCF à l’une quel- au minimum 2 priorités d’interruption, il est
de jouer sur cette valeur de départ conque des entrées numériques préférable de donner à l’interruption du
du temporisateur en vue d’éliminer (P3.3 dans le cas présent). Nous le Timer0 le niveau de priorité le plus élevé. Les
6/2003 Elektor 79
MICROPROCESSEUR
DCF subit une conversion au format un inconvénient de BASCOM : la lon-
décimal, impulsion après impulsion. gueur des lignes varie en fonction
Cette routine se trouve tout à la fin. des valeurs de l’heure et de la date.
Il faut également faire attention à Il n’est pas possible d’afficher (ins-
l’instruction Return de la routine tructions Print, LCD) des nombres
d’interruption : il ne doit y avoir avec des formats comportant des
qu’une seule instruction de ce type. zéros ou des espaces non significa-
BASCOM convertit la première ins- tifs. Même « Print Using... » du lan-
truction Return en une instruction gage de référence Qbasic est impos-
4 3 2 1
assembleur RETI (RETurn from Inter- sible en BASCOM.
rupt). Cela n’est pas le cas des sui- Au niveau du port sériel, on a émis-
pull up vantes de sorte que le programme sion, toutes les minutes, de la date
10k
Masse ne fonctionne pas correctement bien et de l’heure selon le format suivant
que la compilation se fasse sans (ASCII) :
+ 5V
signalisation d’erreur. Si nous vou- N° d’octet
Sortie lons quitter prématurément la rou- 1à3: Texte d’entête : ‘DCF’
vers E/S µP
tine « Clocktimeroverflow » nous 4 : Jour de la semaine
020410 - 12
sautons, à l’aide d’une instruction 1 = lundi, etc.
Goto, vers le label « Clocktimerover- 5 et 6 : Jour (1-31)
Figure 2. On pourra, pour réaliser une flow_return », routine où se trouve la 7 et 8 : Mois (1-12)
correction DCF, brancher un module de seule instruction Return. 9 et 10 : Année (0-99)
réception DCF tout fait. 11 et 12 : Heures (0-24)
13 et 14 : Minutes (0-60)
Lecture de l’heure 15 et 16 : Secondes (0-60)
autres interruptions sont paramétrés au Il faudra, pour obtenir un set de 17 et 18 : Code d’erreur à la
niveau de priorité plus faible (par défaut). De variables de temps parfaitement réception DCF
cette façon, des interruptions de longue durée consistant, les recopier vers des 19 et 21 : Nombre de minutes
en provenance du programme principal ne variables propres. Il faudra, pendant depuis le dernier décodage correct
peuvent pas gêner le fonctionnement de l’hor- cette opération, désactiver l’inter- 22 et 23 : Somme de vérification
loge en temps réel. Elles sont dans ces condi- ruption du temporisateur. Cela n’est (checksum) (0-98)
tions interrompues momentanément par la pas nécessaire dans le programme 24 et 25 : Chaîne de terminai-
routine d’interruption « Clocktimeroverflow ». de démonstration (LCD et port son :
sériel) vu que nous n’utilisons l’heure Retour chariot/retour à
qu’après une remise à l’heure des la ligne (carriage-return/linefeed)
Implémentation secondes. La raison du choix d’une somme de
du décodage DCF Il faut également veiller à ce que la vérification est le fait qu’il soit diffi-
Au cours de la minute que dure le décodage variable « Dcfsince » soit inférieure à cile d’implémenter facilement un bit
on peut être confronté à nombre d’erreurs. 255, vu que sinon l’heure est inva- de parité avec le 8051. Voici com-
Cette situation est visualisée par le biais de lide. ment se fait le calcul de la somme de
la variable d’erreur Dcferror; cf. le début du vérification : nous effectuons la
fichier BASIC. somme mathématique de tous les
Dans la routine « Increment_dcf » le codage LCD et port sériel nombres envoyés (jour de la semaine
L’heure de l’horloge en temps réel est + jour + mois + année, etc.). Nous
visualisée sur l’affichage LCD à des calculons le reste de la division de
fins de diagnostic. Cet affichage est cette somme par 99. Cela nous
+5V connecté selon les informations de donne un nombre à 2 chiffres.
BASCOM (l’auteur ne disposait mal- À nouveau il nous faut nous
heureusement pas encore de la ver- débrouiller sans l’instruction « Print
sion la plus récente de BASCOM qui Using... ». Les zéros non significatifs
330 ...470Ω permet de configurer les broches du ont été ajoutés à la main de manière
LCD pour correspondre à la carte à à donner au message une longueur
89S8252 Flash d’Elektor). fixe.
On voit apparaître sur la première
De E/S µP NPN
ligne de l’écran l’heure et le nombre
10k de minutes s’étant écoulées depuis Programme de
BC549 la dernière correction (S = Since, visualisation pour le PC
depuis). La seconde ligne visualise La mise en oeuvre du programme
la date et le dernier code d’erreur (E pour le PC est l’évidence même :
020410 - 13 = Error) : commencer par une sélection du
14h1m10s S:0 port COM et appuyer ensuite sur le
Figure 3. Le pilotage des LED est d’une Fr 18/10/2 E: 0 bouton « Connect ». Si la dernière
simplicité exemplaire. Nous nous trouvons ici confrontés à réception correcte du signal DCF
80 Elektor 6/2003
MICROPROCESSEUR
s’est faite il y a moins de mat « minimisé » et la fenêtre n’ap- vent parasiter la réception du signal DCF. Il
255 minutes, on pourra synchroniser paraît pas. Le programme reste faudra de préférence, positionner le récepteur
l’horloge du PC par une action sur le ainsi, dans le cas du choix de l’op- à 1 mètre au moins du PC. Tout le monde sait
bouton « Adjust PC clock » (cf. tion /boot, au travail en arrière-plan. qu’en fonction de sa position géographique
figure 1). Pour information : la taux de trans- ou topographique (surtout dans le Sud de
Il est également possible de réaliser mission (baudrate) du port COM est l’Hexagone), la réception du signal DCF peut
une connexion et une remise à paramétré automatiquement : être délicate voire impossible. Il est recom-
l’heure du PC automatiques. Il est 19 200 bauds, 8 bits, sans parité, mandé de monter le récepteur le plus haut
possible dans ce cas-là d’ajouter les 1 bit d’arrêt. possible dans la maison (au grenier ?). N’ou-
options de paramétrage suivantes bliez pas de mettre en place la résistance de
lorsque l’on démarre le programme forçage au niveau haut (pull up) représenté
dans une fenêtre DOS ou par le biais Connexions matérielles en figure 3 à la sortie du récepteur.
d’un fichier batch ou d’un raccourci : Entrée DCF : P3.3 (requis) (020410)
/comx : connexion automatique au LED des secondes : P3.4 (option)
port COM indiqué sans avoir à LED de contrôle DCF : P3.5 (option)
appuyer sur le bouton « Connect ». Bibliographie :
Affichage LCD 16*2 connecté selon
Exemple : /com1. [1] DCF pour le PICÉE,
BASCOM (option).
/boot : correction automatique de Elektor n° 292, octobre 2002,
l’horloge du PC sans avoir à appuyer page 28 et suivantes
sur le bouton « Adjust PC clock »; le Pour éviter toute ambiguïté, nous
programme s’arrête ensuite de lui- vous proposons en figure 2 et 3 le
même. Cette option ne fonctionne plan de câblage, respectivement, du
que si l’option du port COM est pré- récepteur DCF et des LED. Le logiciel de ce projet est disponible gratui-
sente elle aussi. Sa fonction est de tement sur le site Internet d’Elektor à
remettre l’horloge du PC à l’heure l’adresse www.elektor.fr sous la rubrique
fournie par le module DCF lors de Aspects pratiques
TELECHARGEMENTS sous la dénomination
chaque démarrage de Windows. Il faut être conscient du fait qu’un PC EPS020410-11 du mois de publication.
/min : le programme est lancé en for- et son moniteur en particulier, peu-
6/2003 Elektor 81
ÉLECTRONIQUEEN LIGNE
Construire
ses électrostats
Produire du son avec de la HT
Harry Baggen
Réaliser ses propres enceintes est et reste un violon d’Ingres pratiqué par
de nombreux « amateurs » depuis bien longtemps. Ces dernières années
il semblerait cependant que l’enthousiasme de la fin du siècle se soit
refroidi. Si vous faites partie des pionniers qui voudraient s’essayer à
quelque chose de relativement inédit, pourquoi ne pas prendre la voie
des haut-parleurs électrostatiques ? Le coût des matériaux de base est
ridiculement faible et les résultats peuvent être « renversants ».
Le principe du haut-parleur électrostatique ker) repose en fait sur le fait que (et conduisant électriquement) se
(acronyme ESL pour Electro-Static Loudspea- 2 plaques se trouvant sous tension repoussent lorsqu’elles présentent la
même polarité et s’attirent lors-
qu’elles sont de polarités contraires.
Sur un panneau électrostatique on
utilise, en règle générale, 2 pan-
neaux perméables à l’air, les stators,
entre lesquels est tendue une fine
membrane tenue en place par des
fixateurs très fins. Lorsque l’on
applique une tension alternative de
valeur élevée, une HT, entre la mem-
brane et les stators, la membrane
bougera entre les 2 stators au
rythme de la tension alternative,
mouvement qui se traduira par un
déplacement de l’air. Il est possible
d’obtenir, en raison de la petitesse
de la masse mobile, de la surface
importante et la force d’attraction
répartie uniformément sur l’en-
semble de la surface, une reproduc-
tion sonore très propre.
82 Elektor 6/2003
ÉLECTRONIQUEEN LIGNE
d’amateurs se sont essayés aux sur-
faces d’acier percées, de films plas-
tique et autres variantes sur ce
thème. Ces expériences se sont tra-
duites par l’apparition, sur Internet
d’un nombre impressionnant de sites
décrivant ces expérimentations à
base d’électrostatiques.
6/2003 Elektor 83
ÉLECTRONIQUEEN LIGNE
vu qu’ils permettent à des amateurs moins
expérimentés de réaliser d’excellents sys-
tèmes de reproduction. Le fabricant néerlan-
dais AudioStatic [8] propose son projet DCI-
LT en kit; ce kit comprend une paire de pan-
neaux tout montés et des unités
haute-tension complètes. Tout ce qu’il vous
reste à faire est un squelette sur lequel vien-
dront reposer les panneaux.
Adresses Internet :
[1] How to Make Electrostatic
Loudspeakers:
www.amasci.com/esloud/eslhwto.html
[2] Electrostatic Loudspeaker Design:
www.audiodesignguide.com/esl/esl.html
[3] Mini Mite ESL: www.audiocircuit.com/
9041-esl-circuit/Diy/Projects/
SheldonStokes-SS/9041DESS-MM.htm
[4] DIY ESL 1.0:
www.quadesl.com/diy_esl1.shtml
[5] Page Electrostatic Loudspeaker :
http://home1.gte.net/res0f2t3/index.htm
[6] Zelfbouwen Elektrostaten: adresse où commander le film plas- criptions d’électrostatiques tant
www.audio4.nl/zelfbouw/elektrostaten.htm
tique adéquat (souvent difficile à commerciaux que de réalisation per-
trouver), nous pouvons vous propo- sonnelle. On s’y intéresse également
[7] Elektrostatische hoofdtelefoon:
ser l’une ou l’autre adresse où vous aux systèmes adjacents tels qu’am-
http://headwize2.powerpill.org/projects/ trouverez non seulement ce genre de plificateurs pour ESL. On y découvre
showproj.php?file=radford1_prj.htm film plastique mais aussi bien en outre un forum où les amateurs
[8] AudioStatic-bouwkit: d’autres pièces utiles tels que spay rencontrent d’autres passionnés
www.audiostatic.com/page9.htm graphite. pour y échanger des informations en
[9] Metaxas MET 1: tout genre.
Twinstatic Audio [10] est une (035033)
www.metaxas.com/pages/masnewfiles/
société de Hi-Fi néerlandaise propo-
index.html sant une palette très complète de
[10] Twinstatic Audio: composants spéciaux dans ce
www.twinstaticaudio.nl/onderdelen/ domaine. D’autres fournisseurs tels
[11] The Electrostatic Loudspeaker que « The Electrostatic Loudspea-
ker Information Exchange » [11] et
NdlR :
Information Exchange: Nous avons eu la chance, au
ER Audio [12] se trouvent bien plus
www.hitechnetworks.net/bwaldron/ Salon Intertronic 2003, de faire la
loin, à savoir en Australie.
main.htm connaissance d’un grand amateur
Le site « The Electrostatic Loud-
[12] ER Audio: www.eraudio.com.au/ de réalisations d’ESL, Mr Voillot
speaker Circuit » [13] constitue une
de Villenave d’Ornon qui nous a
[13] The Electrostatic Loudspeaker Circuit: source d’inspiration inépuisable pour impressionné par son expérience
www.audiocircuit.com/ les amateurs d’électrostatiques. Le sur le sujet.
9041-esl-circuit/9041IMAI.htm site existe depuis 1998 et recèle une À bientôt dans Elektor ?
quantité impressionnante de des-
84 Elektor 6/2003
MUSIQUE&SCÈNE
DMX-1×3
Dérivateur, isolateur, répéteur
Projet : Jürgen Mack
Bis repetita
placent
Dès le premier coup
d’oeil au schéma de la
figure 1 il apparaît à
l’évidence que l’électro-
nique du DMX-1x3 se
Le dérivateur DMX-1x3 s’accommode de tous Rien de tel qu’un petit exemple : compose, principalement, de 3 sous-
les appareils se laissant piloter sous DMX supposons que nous ayons des équi- ensembles identiques. La résistance
512 et améliore sensiblement la fiabilité. Il pements DMX tant sur le côté R1 présente à l’entrée fait office de
facilite la prolongation des liaisons DMX vu gauche que sur le côté droit de l’ins- résistance de terminaison (termina-
que l’on peut toujours choisir la connexion la tallation. En l’absence de dérivateur tor) pour le bus DMX qui travaille,
plus courte. il faudrait commencer par poser le vous le savez sans doute, selon les
86 Elektor 6/2003
MUSIQUE&SCÈNE
+5V-1
C5
R3 IC6 8
100n
4k7
IC9 GND1
8
1 K3 IC2
2 R 7805 +5V-1
TR1
7 7
2 B1
6 6V
6 3
C2 C8
3 4 D
470µ 1µ
B40C1000 16V 16V
+5V 5 5
6N137 LTC485 GND1
GND1
C12 +5V-2 F1
IC1
R4 8 100mA T
100n
4k7
IC5 IC10 GND2 2x 1VA5 C1 C9
8 8
1 K4
K1
2 R 470µ 1µ
1 7 7 B40C1000 16V 16V
R 2
R1 2 6 GND
K2 6 6 3 230V
120Ω
7 3 4 D
3
D 4 IC4
5
6N137 5
LTC485 TR2 7805 +5V-3
B3
5 LTC485 GND2 6V
+5V-3
C4 C10
C7
GND
470µ 1µ
R5 IC8 8 B40C1000 16V 16V
100n
4k7
5 5 470µ 1µ
6N137 LTC485 B40C1000 16V 16V
GND3 GND2
020117 - 11
normes RS-485. L’adaptateur de LTC485, ce composant étant cette outre-Manche et Atlantique) spéciaux, cepen-
niveau IC5 fait subir au signal DMX fois utilisé en émetteur (D) unique- dant étant donné le faible courant nécessaire,
une conversion des niveaux RS-485 ment. Petite différence par rapport à il est coûte moins cher d’utiliser une paire de
aux niveaux TTL. Le LTC485 (le bien IC5 : comme les opto-coupleurs transformateurs de 1VA5 doté chacun d’une
nommé) de Linear Technology est un inversent les signaux, nous avons paire d’enroulements secondaires de 6 V,
circuit d’interfaçage qui convertit les procédé, sur chacun des LTC485 solution qui n’occupe d’ailleurs guère plus de
signaux RS-485 en signaux TTL concernés, à une interversion des place, même si elle n’est pas aussi élégante.
(récepteur R) et les signaux TTL en sorties de manière à tout remettre On trouve, en aval de chacun des enroule-
signaux RS-485 (émetteur D). dans l’ordre. ments secondaires, un petit pont de redres-
L’émetteur n’est pas actif dans la Le signal DMX « splitté » quitte le sement. La paire de condensateurs électro-
présente réalisation. La fiche de circuit au niveau des borniers K3 à chimiques et le régulateur de tension intégré
caractéristiques de ce composant K5. L’isolation galvanique des 3 sor- que l’on trouvent à la sortie de chaque pont
est disponible sur le site Internet de ties entre elles se manifestera posi- fournissent une tension continue de +5 V au
Linear Technology à l’adresse : tivement en cas de problèmes. S’il lissage suffisant.
www.linear-tech.com/pdf/485ff.pdf. devait y avoir une erreur, seule en
En aval de IC5 on a répartition du effet la sortie concernée sera mise
signal vers 3 circuits identiques. Les hors-fonction, les autres ne seront Construction ordonnée
opto-coupleurs à grande vitesse du pas affectées par la situation d’er- Un coup d’oeil sur la sérigraphie de l’implan-
type 6N137 assurent une isolation reur. tation des composants et la photo de la pla-
galvanique. La résistance R2 limite Sur la partie droite du schéma nous tine terminée (figure 2) montre que l’étape
le courant qui circule à travers les découvrons l’alimentation. Nous d’implantation des composants n’appelle
LED des opto-coupleurs. La pré- avons besoin, puisque nous avons guère de remarque. Il va sans dire qu’il est
sence d’un niveau logique haut sur affaire à 4 sous-ensembles séparés important de n’oublier aucun des 4 ponts de
la broche 7 valide les opto-cou- galvaniquement l’un de l’autre, à 4 câblage et vital pour le fonctionnement du
pleurs. Comme nous nous trouvons alimentations indépendantes l’une montage de s’assurer que tous les circuits
en présence d’opto-coupleurs à sor- de l’autre. Il serait possible de intégrés ont été implantés correctement dans
tie en collecteur ouvert, il nous faut répondre à ce cahier des charges par leur support (voire soudés directement sur la
prévoir des résistances de forçage l’utilisation d’une alimentation asso- platine en respectant leur polarité).
au niveau haut (pull up), R3 à R5. ciée à quelques convertisseurs Est-il bien nécessaire de le préciser que le
Ensuite, le signal retourne au continu/continu (CC/CC ou DC/DC boîtier dans lequel sera montée cette réalisa-
6/2003 Elektor 87
MUSIQUE&SCÈNE
tion doit répondre aux exigences
IC3 1-711020 020117-1
ROTKELE )C( d’une utilisation sur scène et per-
H2
H3
IC10
-
IC7
B3 IC4 C10 niveau est que l’écartement entre
T
toute partie véhiculant la tension du
R5 K5
C7 + secteur et le boîtier métallique doit
C4 C8
être d’au moins 6 mm, il ne saurait
IC11
-
IC8
B1
IC2 T partant pas être question d’utiliser
C12
R3 C5
des entretoises de 5 mm ! Les jacks
R2 + XLR mâles et femelles de même
IC9
IC6
TR1 C2 - d’ailleurs que l’embase d’entrée de
IC5
B2
IC1 C9
T la tension secteur seront fixés à
K3 l’aide de rivets.
R1
F1 100mAT
K2 (020117)
H4
H1
T
C1 - +
Condensateurs :
C1 à C4 = 470 µF/16 V radial
C5 à C7,C12 = 100 nF
C8 à C11 = 1 µF/16 V radial
(C) ELEKTOR
020117-1
Semi-conducteurs :
B1 à B4 = B40C1000 rond petit
modèle
IC1 à IC4 = 7805
IC5 à IC8 = LTC485CN8 (Linear
Technology) ou SN75176BP
IC9 à IC11 = 6N137
Divers :
F1 = porte-fusible encartable avec
fusible 100 mA lent (T)
K1 = bornier encartable à
2 contacts au pas de 7,5 mm
(RM7.5)
K2 à K5 = bornier encartable à
3 contacts au pas de 5 mm (RM5)
Tr1,Tr2 = transfo secteur 1VA5
(ou 2 VA), 2 x 6 V (sources :
Hahn, Monacor, Myrra)
embase d’entrée secteur miniature
3 embases châssis femelle XLR à
3 contacts sur 180 °
1 embase châssis mâle XLR à
3 contacts sur 180 °
boîtier tel que, par exemple, ISEL
131020 ou Conrad RFA 523224
Figure 2. 2 aspects de l’implantation des composants : théorique et pratique.
88 Elektor 6/2003
INFORMATIONS
Compilateurs C
pour le PIC
Travailler efficacement avec un langage de haut niveau
Olaf Beckman Laprè
Comme C a été conçu dès le départ en vue de il n’est guère surprenant de consta- n’importe quoi : microcontrôleurs (du
faciliter l’accès au matériel et que ce langage ter que son utilisation a pris son plus humble PIC aux gros monstres
peut se targuer d’une meilleure efficacité que envol. Il est possible aujourd’hui, tels que le Xscale), PNS (Processeur
nombre d’autres langages de programmation, sous C, de développer pratiquement Numérique de Signal = DSP pour
Digital Signal Processor), pro-
grammes pour systèmes d’exploita-
tion (SE) tournant sous Windows et
Linux voire même sous UNIX et ses
stations de travail, programmes
administratifs. Mais il est également
possible de créer des pilotes de péri-
phériques (device-driver) et même
des SE complets (au nombre des-
quels on compte Linus et Win-
dows 2000/XP), sans même parler,
bien entendu des applications que
nous utilisons journellement (de
Word à Mozilla). Tout cela fait indu-
bitablement de C le langage de pro-
grammation le plus « universel » et
vu l’efficacité de ce langage, les
choses ne sont pas près de changer.
Il vaut donc la peine de se mettre au
C et d’en apprendre le fin mot !
Nous allons, dans le présent article,
passer en revue 2 compilateurs C
pour le PIC. Comme nous le disions
plus haut, le PIC est l’un des micro-
contrôleurs les plus populaires
auprès des amateurs; sa mise en
Figure 1. Le compilateur standard de CCS en combinaison avec l’éditeur de programmation oeuvre est facile, et est, dans bien
ConTEXT. des cas, tout aussi adapté et puis-
90 Elektor 6/2003
INFORMATIONS
sant que le légendaire 8051.
Chaque amateur pose ses propres
exigences à un compilateur C. Il faut
qu’il soit et facile à utiliser et bon
marché, pour ne pas avoir à rendre
de comptes à qui que ce soit (suivez
mon regard).
Environnement
de développement
Si vous faites partie de ceux qui
développent plus ou moins réguliè- Listage 1.
rement un projet à base de micro-
contrôleur, vous savez sans doute Structure cartographiée
combien le confort d’utilisation est
un facteur important. Il est en outre
vers un port d’E/S.
vital qu’un développeur débutant Dans le cas du compilateur PCM les choses se passent de la manière suivante :
puisse se sortir d’affaire sans à avoir
à consulter à tout bout de champ les struct _keys
manuels (électroniques) et autres {
ouvrages grand public. Ces 2 compi- bit mode_sw; // LSB
lateurs supposent une assez bonne bit plus_sw;
connaissance du C vu que la docu- bit minus_sw;
mentation qui les accompagne est bit set_sw;
très sommaire et destinée plus par- bit unused : 4;
ticulièrement à la description des } keys
(im)possibilités ainsi que des rou-
tines de la bibliothèque. #byte keys = 5 // ‘keys’ struct is mapped to address 5 = PORTB
Les environnements de développe-
ment de ces 2 compilateurs diffèrent if (keys.mode_sw == 1)
très sensiblement. {
// mode switch was pressed
Le compilateur CCS standard ne }
connaît même pas d’environnement
de développement, il se contente Avec le compilateur C2C cela se fera par la prise en compte du port et le test, à l’aide de
d’être un compilateur. Il faudra le l’opérateur « & », pour vérifier si un bit est positionné (à « 1 ») ou non, processus illustré ci-
après
démarrer dans une fenêtre DOS ou
dans une console en ajoutant les char keys@5 // keys are mapped to address 5 = PORTB
paramètres (nom du fichier + autres
options) requis. Il est bien entendu if (keys & 1)
plus confortable de pouvoir démar- {
rer un compilateur depuis l’intérieur // mode switch was pressed
d’un éditeur. On pourra, à cet effet,
6/2003 Elektor 91
INFORMATIONS
avons parlé plus haut l’étant aux PIC Le compilateur PCM dispose d’une
Adresses Internet : 14 bits, sachant qu’il existe, depuis bibliothèque exhaustive pour I2C et
peu, une version PCH du compila- RS-232. Il intègre même le logiciel de
Compilateur PCB (pour PIC 12 bits), compi- teur destinée elle aux PIC 18 bits. Il commande pour le microcontrôleur
lateur PCM (pour PIC 14 bits), compilateur s’agit de lignes d’instruction pour d’affichage LCD, le HD44780, y com-
PCH (pour PIC 18 bits) et compilateur applications Windows qui à l’exécu- pris une instruction printf() plus mus-
PCW(H) (version Windows) : tion font apparaître un dialogue qui clée. Notons au passage qu’il est
visualise le déroulement du proces- possible de modifier la routine printf()
www.ccsinfo.com/picc.shtml
sus de compilation en cours. Il fau- par la définition d’une routine putc()
prix à compter de 125 $US + frais d’envoi dra partant les associer à un éditeur propre, routine qu’utilisera la routine
de programmation tel que ConTEXT printf(). Il est même possible ainsi
Éditeur de programmation ConTEXT : évoqué plus haut. Il existe cepen- d’envoyer la sortie de printf() vers un
dant aussi une version tournant sous affichage LCD graphique en se limi-
www.fixedsys.com/context/
Windows en 2 variantes, PCW et tant à l’écriture de la routine putc()
PCWH, mais elle coûte sensiblement pour le LCD en question (une sorte
Version de démonstration de PCW plus cher que les versions à ligne de pilote de périphérique en fait). Le
(1 Koctet) : d’instruction. compilateur est accompagné d’une
www.ccsinfo.com/demo.htm
Le compilateur C2C est proposé en profusion de pilotes (driver) exo-
shareware et coûte bien moins tiques qui permettent de faire quasi-
cher que les compilateurs CCS. Les ment n’importe quoi, de la com-
Compilateur C2C : nouvelles versions se bousculent; mande d’écrans tactiles à la lecture
www.picant.com/c2c/c.html l’auteur a testé les versions 4.0 et de capteurs de température. Il fau-
Enregistrement 59 $US 4.6, mais depuis il est apparu une dra bien entendu que votre applica-
version réactualisée et remodelée, tion utilise les circuits intégrés que
la version 5.0 qui est constituée les pilotes peuvent commander vu
d’un environnement de développe- que sinon il vous faudra écrire votre
fort bien utiliser l’éditeur-programmateur ment intégré (IDE = Integrated propre pilote pour le composant non
ConTEXT (cf. en fin d’article), programme que Development Environment) baptisé supporté.
l’on reconnaît sur la recopie d’écran de la PicAntIDE.
figure 1. Contrairement au compilateur C2C,
Le compilateur C2C (version 4.0e, cf. figure 2) PCM supporte également la virgule
possède un environnement de développe- Bibliothèque flottante IEEE 32 bits. Cette diffé-
ment tournant sous Windows qui est aussi Les compilateurs se différentient rence n’est pas nécessairement cri-
plus confortable à utiliser. L’inconvénient est très nettement l’un de l’autre au tique vu que le PIC de la majorité
que la version utilisée par l’auteur de cet niveau de la bibliothèque et des des applications sert uniquement à
article présentait encore un certain nombre capacités en C. Ainsi, le compilateur des fins de commande « rudimen-
de « bugs » qui rendait délicate la reproduc- C2C se trouve en contact plus taire ». Les 2 compilateurs peuvent
tion du texte. Le programme ne s’est cepen- « direct » avec le matériel parce que utiliser des variables 8 et 16 bits.
dant jamais « planté ». les choses se passent à un niveau
Le compilateur C2C connaît une option lui relativement bas (low level), tandis
permettant de programmer, depuis l’environ- que le compilateur PCM met l’ac- En guise de conclusion
nement de développement, un PIC en appe- cent sur la rapidité de la solution et Chacun de ces 2 compilateurs vaut
lant tout simplement un petit programme de la minimisation du travail de pro- son prix, ils conviennent tous deux
programmation externe. grammation. Nombre des routines aux applications personnelles, tout
Les 2 compilateurs sont en mesure de géné- de bibliothèque intégrées dans le en signalant cependant que C2C
rer un fichier .LST ce qui permet au compila- compilateur PCM sont également s’adresse plutôt à un utilisateur
teur d’inspecter le code assembleur produit. disponibles sur le site Internet du expérimenté. Le compilateur PCM
Il s’agit d’une bouée de sauvetage pratique compilateur C2C, écrits par des offre un certain nombre d’extra (tels
lorsque le code ne fait pas exactement ce que tierces parties. Les 2 compilateurs que virgule flottant, champs de bit)
l’on en attend ou lorsque l’on veut s’assurer possèdent une bibliothèque inté- et possède en outre une bibliothèque
de l’efficacité de son code. Il peut être inté- grée pour RS-232 et les temporisa- exhaustive qui permet de se mettre
ressant, dans certains cas, d’essayer un algo- tions chronologiques. rapidement à l’ouvrage, mais il coûte
rithme différent pour voir si le compilateur Le compilateur PCM présente le également 2 fois plus cher que C2C.
produit un code assembleur plus compact, grand avantage de supporter les
mais en règle générale cela n’est pas néces- structures et les champs de bits (bit- Il est recommandé de concevoir
saire. L’auteur a cependant rencontré des field). Il est possible de ce fait d’avoir votre montage de façon à pouvoir le
situations dans lesquelles le fait d’inhiber une structure interne qu’il est pos- programmer en mode ICP (In-Circuit
l’optimalisation du code par le compilateur sible de cartographier directement Programming), ce qui permet de rac-
avait permis de résoudre des problèmes. vers un port d’E/S dont on pourra courcir très sensiblement les cycles
Il existe pas moins de 5 versions du compila- attribuer individuellement les lignes compilation/effacement/programma-
teur CCS. La version PCB est destinée aux selon les besoins, situations tion/débogage.
PIC 12 bits, le compilateur PCM dont nous qu’illustre le code du listage 1. (030098)
92 Elektor 6/2003
LOISIRS
Moteur magique ?
C’est pas sorcier
Prof- Dr. –Ing Martin Ossmann
Parmi les petits ennuis auxquels on est confronté lors de la mise en service
d’installations techniques, mentionnons l’inversion du sens de rotation
d’un moteur. Les sarcasmes des collègues viennent s’ajouter aux dégâts
commis : « Inverse donc la fiche ! » …
94 Elektor 6/2003
LOISIRS
sera toujours (plus ou moins) 0 V. Mais la
P logique XOR fournit (presque) toujours 5 V si
230V les signaux sont en opposition de phase. La
moyenne de la tension de sortie XOR permet
donc d’identifier la position de phase de la
N Appareil tension du transformateur. Le filtre passe-bas
C1 C2
avec comparateur COMP3 qui suit XOR1 com-
mande le circuit en pont alimentant le moteur
I1 I2
à courant continu.
PE Inversons la fiche de courant par une rotation
Condensateurs Y de 180 degrés. La tension du transformateur
020274 - 11
subit une rotation identique par rapport à la
tension de ronflement et le moteur inverse
Figure 1. a) Raccordement de l’appareil avec un conducteur de protection b) les son sens de rotation.
courants passant par les condensateurs donnent les informations nécessaires.
Réalisation technique
C4 Y !!! Le circuit complet est reproduit dans la
2n2
figure 4. Une simple alimentation fournit 5 V
D1 et 2.5 V (masse de référence pour les amplifi-
P R3 cateurs opérationnels). La tension secteur est
RE1 D2
220k
1µ 1µ
R2 Il est converti en un signal rectangulaire par le
12k
XOR1
=1
Montage et fonctionnement
M
La plupart des composants du circuit sont
TR1 BPF2 APF COMP2 standard et leurs caractéristiques ne sont
pas critiques. Ils se passent donc de com-
230V
mentaires. Il va sans dire que les
connexions au 230 V doivent être isolées
020274- 13 avec soin ! Pour que « l’antenne » présente
une surface suffisante, on la réalisera par
exemple au moyen de 2 condensateurs élec-
Figure 3. Schéma de principe du moteur magique. trolytiques de grande taille (C6 et C11 dans le
schéma) raccordés comme composants « fac-
tices ». Pour accroître la perplexité des élec-
formateur secteur est aussi filtrée converti en un signal rectangulaire. trotechniciens chevronnés, il est important de
(BPF2). Elle est ensuite envoyée à un La logique OU exclusif XOR1 sert permettre l’inspection du câblage du trans-
filtre passe-tout APF qui permet de pour ainsi dire de redresseur sen- formateur TR1. On peut le munir par exemple
compenser les rotations de phase. sible à la phase. Si les 2 signaux d’un fond transparent. Les « experts » soup-
Ce signal, en synchronisme avec la 50 Hz (ronflement et tension secteur) çonneront sinon le circuit d’être une sorte de
tension du secondaire, est aussi sont en phase, la sortie de la logique testeur de phase. Mais dès qu’ils constateront
6/2003 Elektor 95
LOISIRS
IC1 +5V TR1
D1 7805 +5V
TR1
R1
IC2 = TL062, TLC272 T1 T2
33k
C1
R19 R21
IC3 = TL062, TLC272 6V
1000µ
6k8 2x 6k8
+2V5 IC4 = LM339 BC560
IC5 = 74HC86
230V
R2 R23
C2 25p
33k
56Ω M
6V
D2 47µ T3 M1 T4
R20 R22
6k8 2x 6k8
BC550
C4 R13 R15 +5V
33k 33k 020274 - 15
R3 R7
100n R17
33k
560k
6k8
C3 R5
100k
C5
R14 IC2.B +5V
Figure 5. Circuit équivalent du
470n 100n IC2.A IC4.A transformateur secteur.
R4 R6 100k
C9 IC5.B
1k
1k8
330n
=1
IC5.A
A1 R18
+2V5 +2V5
=1 100k R24 +5V
C7
C11
+5V
C10
IC4.C 6k8 Le transformateur secteur TR1 joue
R12 470n IC5.C
1000µ
100n
un rôle crucial. La capacité parasite
560k
R16
C6 IC5.D =1
entre le primaire et le secondaire est
6k8
R10 C8
IC3.A 6k8 =1 +2V5
1000µ
R8
100n IC3.B R25 de l’ordre de 25 pF pour ce modèle.
IC4.B
1k
R11
On peut se la représenter comme
10M
2k2
R9
+2V5
D3 située « au centre » des enroule-
10M
IA
IA
IA
rôle car sa surface est trop petite. les capacités ne change pas de sens
1p
230V
2 D2
IA
R8
Mais alors comment le ronflement lorsque la fiche est inversée. Nous
+
R9
IA
parvient-il par le circuit à l’amplifi- pouvons donc l’utiliser comme réfé-
cateur d’entrée IC3.A ? D’où provient rence pour déterminer la phase de la
le courant IA qui provoque la chute tension secondaire du transforma-
IA de tension aux bornes de R8+R9 ? teur secteur. Et voilà comment
020274 - 16
Certains électrotechniciens au fait réconcilier la théorie du fonctionne-
des tours que peut jouer la CEM ment de ce circuit avec la pratique.
Figure 6. Le courant crucial IA. connaissent peut-être la réponse. (020274)
96 Elektor 6/2003