Ad Code

analyse et réalisation du programmateur pour circuits HCS

En plus de la description d’un montage pratique et utile, ce qui nous intéresse dans cet article, dans lequel il s’agit de construire un récepteur de radiocommande à douze canaux, c’est d’approfondir la connaissance des systèmes “rollingcode” Keeloq de Microchip. Dans cette deuxième partie, nous vous présenterons ces techniques de codageldécodage puis nous construirons le programmateur pour circuits intégrés HCS. C’est dans la troisième et dernière partie que nous analyserons son logiciel.
Dans la première partie de l’article nous avons décrit D et construit le décodeur rolling-code” à 12 canaux
ET605 sans nous appesantir trop sur les aspects relatifs à la sécurité d’un tel montage. Cette fois nous partons du montage réalisé pour effectuer toute une série de modifications implémentatives nous permettant de décrire le paramétrage des télécommandes “rolling-code”. Il s’agit là d’un sujet peu traité dans la presse électronique et voilà pourquoi, dans le domaine de la sécurité, les sociétés qui
conçoivent et vendent des installations d’alarme effectuent la programmation des télécommandes “at home” et gardent jalousement secrets les paramètres utilisés. De plus, très souvent le passionné d’électronique se trouve confronté à des télécommandes “rolling-code” disponibles non programmées: ce qui poserait de graves problèmes de sécurité avec les décodeurs réalisés.., si on n’y mettait pas bon ordre, si on n’avait pas la parade! En effet, l’absence de programmation de ces télécommandes implique la mise à zéro du nombre série et surtout de la clé de cryptage à 64 bits. Aussi, quelqu’un qui s’y connaît un peu en programmation des PIC pourrait facilement accéder aux informations d’activation des charges reliées au décodeur. Et ce n’est pas tout: si quelqu’un se trouvait non loin du récepteur avec en main une télécommande similaire, il pourrait tranquillement s’en servir pour allumer et éteindre les charges à son gré. Souvent les amateurs ne prennent pas ce danger en considération et ils réalisent des systèmes de contrôle très simples, trop simples car faciles à déjouer.
Dans cette deuxième partie de l’article nous avons l’intention, justement, de vous montrer qu’avec une mise en oeuvre simple et une bonne programmation on peut pleinement sécuriser un système à “rolling-code” en transformant un décodeur amateur en une centrale de sécurité de niveau professionnel. Nous prendrons toujours comme exemples des télécommandes AUREL à 1, 2, 3 et 12 canaux avec modulation 00K en AM: elles sont faciles à trouver (sollicitez nos annonceurs) et leur réputation n’est plus à faire!
Ces émetteurs sont directement utilisables avec notre décodeur à 12 canaux et, selon notre habitude, nous passerons sans tarder de la théorie à la pratique. Il est toutefois de notre devoir de préciser que certains détails du développement du programme résident (à propos du sous programme de décryptage KEELOQ) sont protégés par des droits d’auteur: voir au besoin du côté de Microchip (www.microchip.com).
Figure 1: La figure montre clairement les trois fenêtres que nous appelons: validation, resynchronisation, bloc.
Le codeur HCS300/301
Le paramétrage des télécommandes “rolling-code” consiste à programmer les circuits intégrés codeurs présents à l’intérieur. A travers la valorisation de certains champs, il est possible d’introduire une série de niveaux de sécurité allant de la distinction des émetteurs au cryptage complet de la séquence envoyée. Les dispositifs à associer avec les codeurs correspondants sont donnés dans le Tableau 1. Les deux modèles de puce utilisent la même méthode de programmation et nous nous réfèrerons donc seulement au HCS3O1 (pour le HCS300 c’est la même chose). La seule différence entre les deux touche en effet la gamme des tensions de fonctionnement: pour le HCS3O1 de 3,5 V à 13 V et pour le HCS300 (utiliser un système “low-power”) de 2 V à 6,3 V.
Le codeur contient une mémoire EEPROM constituée de douze “words” (mots) à 16 bits pour un total de 192 bits. Cette mémoire a une structure précise permettant de personnaliser le fonctionnement de la télécommande. Analysons la signification des six champs constituant la séquence de programmation (Tableau 2).
Figure 2: Dans ces diagrammes on voit le détail des deux situations différentes en relation avec la température ambiante.
Figure 3: Dans la séquence PWM utilisée, le “Basic Pulse Element” constitue un tiers du délai nécessaire pour transmettre chaque bit.
CHIAVE-O...3: C’est la clé à 64 bits utilisée par l’émetteur pour crypter les 32 derniers bits de la séquence à 66 bits envoyée au décodeur. Il existe trois méthodes différentes pour produire cette clé (nous le verrons sous peu) et un certain degré de sécurité est attaché à chacune. Naturellement, il est possible aussi de décider de manière autonome quel système de production choisir... pourvu que le décodeur soit lui-même programmé en conséquence.
SYNCHRO: C’est la valeur de synchronisation initiale. Elle est utilisée par l’émetteur comme noyau pour crypter les 32 derniers bits de la séquence envoyée au décodeur.
Cette valeur augmente chaque fois que nous pressons une touche de la télécommande, ce qui rend chaque transmission différente et unique. Elle est appelée valeur de synchronisation car elle est partagée entre le codeur et le décodeur et elle est utilisée justement pour resynchroniser les deux dispositifs au cas où la télécommande serait utilisée en-dehors de la zone de réception du décodeur. En fait, au moment où le décodeur reçoit une séquence, il vérifie si la valeur de synchronisation suit bien celle qui a été mémorisée lors de la réception précédente. Si elle est comprise parmi les 16 valeurs suivantes, on la considère valide et les charges sont activées; la nouvelle valeur est mémorisée. Si, en revanche, elle est comprise entre les 16 et les 32 000 valeurs suivantes, on effectue une opération de synchronisation. En fait, le décodeur écarte la première transmission et attend la suivante, mémorise la nouvelle valeur de synchronisation et active les charges. Enfin, si la valeur dépasse de 32 000 celle mémorisée, le paquet est considéré comme non valide et écarté afin d’éviter la possibilité de réutilisation de codes précédents de la part de quelque “grabber”. La Figure I montre clairement les trois fenêtres que nous appelons: validation, resynchronisation, bloc.
SERIE-O...I: C’est le nombre identifiant la télécommande. Cette valeur est essentielle pour discriminer les séquences arrivant au décodeur. Elle est comparable à la plaque minéralogique d’une voiture. Durant la phase d’apprentissage le décodeur mémorise les nombres série de tous les dispositifs autorisés pour l’activation des charges. Cela constitue le premier niveau de sécurité du système. Au moment où une séquence lui parvient, le décodeur vérifie si l’identifiant de la télécommande en train d’émettre figure parmi ceux des télécommandes autorisées.
Si oui et après le décodage qui suit et autre vérification, l’accès aux charges est autorisé. Sinon le paquet est aussitôt écarté. Au cours de la première partie de l’article nous avons utilisé des télécommandes non paramétrées:
les codes série étaient donc tous à zéro. Il est clair que, dans ce cas, n’importe quelle émission est acceptée par le décodeur.
Mais qu’en serait-il de l’utilisation d’un tel système “simplifié” dans un milieu à risque et nécessitant par conséquent un bon niveau de sécurité? Le nombre série est constitué des 28 bits les moins significatifs. Le bit le plus significatif est utilisé comme drapeau (“flag”) pour activer ou non la fonction
Figure 4: Chaque fois que nous activons une des touches de la télécommande, une séquence composée de diverses phases (Préambule, En-tête, etc.) —en plus de celles nécessaires exclusivement pour les données— est transmise, comme le montre la figure.

Figure 5: Cette figure présente différents modes de transmission en relation avec les valeurs prises par la paire de bits BSLI,BSLO.
d’auto-extinction (Auto-Sh utoff”), cette fonction permet d’éviter que la télécommande ne consomme du courant lorsqu’une touche est pressée pendant plus de 25 secondes. Au-delà de cette limite, la transmission est interrompue automatiquement, ce qui évite le vidage involontaire de la pile. Si on met le bit à 1 l’auto-extinction est activée, Il n’est pas possible, avec les modèles basés sur les HCS300/301, de modifier ce délai.
SEME-0...I: C’est un code à 32 bits transmis au moment où les quatre broches SO, 51, S2, S3 du HCS3O1 sont mises au niveau logique haut . Elle permet de réaliser, nous allons le voir, un système d’apprentissage appelé “secure-learning” (apprentissage sûr). En fait, durant la procédure de configuration du décodeur on mémorise ce code comme noyau générateur de la clé à 64 bits qui sera utilisée pour le cryptage des émissions.
CLE-PACC: Ce champ contient une clé à 16 bits définie comme “Envelope Key”. Elle permet d’effectuer le cryptage de la totalité de la séquence de 66 bits envoyée par l’émetteur de manière à cacher également le nombre série du dispositif (normalement envoyé en clair). La fonction est réservée pour une utilisation expérimentale et certains “data-sheet” ne la mentionnent même pas! Pour l’activer, on utilise un drapeau présent dans le champ CON FIG de la séquence de pro- gram mati on.
CONFIG: Ce champ se compose de 16 bits subdivisés en cinq sous structures. Les 10 bits les moins significatifs constituent la séquence désignée par “Discrimination Value”. Elle permet d’effectuer un contrôle de la validité du paquet reçu du décodeur. Elle peut contenir n’importe quelle valeur mais normalement on utilise les 10 bits les moins significatifs du nombre série. Cette séquence fait partie de la portion de code crypté transféré vers le décodeur. Après décryptage, ce dernier vérifie s’il correspond avec celui mémorisé durant la procédure d’auto- apprentissage. Si ce n’est pas le cas, le paquet reçu est invalidé puis écarté.
Pour gagner de la place, on peut se débrouiller pour que la “Discrimination Value” coïncide avec les 10 bits les moins significatifs du nombre série; ainsi la vérification peut être faite “au vol’ en comparant directement cette valeur avec celle présente dans la section non cryptée du paquet.
Les deux bits suivants constituent les “Overflow Bits” (bits de dépassement de capacité). Ils permettent d’étendre le nombre de valeurs de synchronisation possibles (champ SYNCHRO). Le compteur en question fait 16 bits de long, soit 65 536 valeurs possibles avant que le code ne se répète. Avec dix activations par jour, la télécommande aura une autonomie de quelque 18 ans. Si cela ne suffit pas, il est possible de mettre à 1 les deux bits de dépassement de capacité.
Le bit le moins significatif est alors mis à zéro lorsque le compteur passe de FFFFh à 0000h pour la première fois. Le bit le plus significatif, en revanche, se met à zéro la seconde fois que le compteur passe de FFFFh à 0000h.
Ainsi, si le décodeur est programmé de façon à garder la trace des bits de dépassement de capacité, on dispose de 196 608 codes possibles avant répétition du code. Le bit suivant est appelé “Low Voltage Trip Point Select”. Il établit la tension de fonctionnement du HCS3O1 et par conséquent la limite sous laquelle l’émetteur met à 1 le drapeau de signalisation LOW BAT (batterie déchargée).
En fait, si le bit est à 1, on utilise une tension d’alimentation de 9 V ou 12 V et s’il est à O une tension de 6V. Dans les diagrammes de la Figure 2 on voit en détail ces deux situations en relation avec la température ambiante.
Si nous continuons avec la séquence de bits nous trouvons une autre paire permettant de sélectionner la vitesse de transmission. Normalement les deux bits sont à zéro et ce avec un “Basic Pulse Element” (Te) d’une durée de 400 ps. Dans la séquence PWM utilisée, le “Basic Pulse Element” constitue un tiers du délai nécessaire pour transmettre chaque bit, comme le montre la Figure 3.
Si nous considérons un Te = 400 ps, l’impulsion PWM pour chaque bit dure 1 200 js et atteint un taux de transfert (bit rate”) égal à 833 bps. La transmission d’une séquence complète vers le décodeur se compose de 270 Te et à cette vitesse on atteint environ 110 ms. Il faut considérer en effet que, chaque fois que nous activons une des touches de la télécommande, une séquence composée de diverses phases (Préambule, En-tête, etc.) —en plus de celles nécessaires exclusivement pour les données— est transmise, comme le montre la Figure 4.
Si on maintient un Te = 400 js la durée des composantes se ramène à ce que montre le Tableau 3. En modifiant la valeur de cette paire de bits, il est possible de sélectionner une durée inférieure de base de l’impulsion et donc une vitesse de transmission plus élevée, comme le montre le Tableau 4.
Attention, une modification de la vitesse de transmission implique une variation de l’amplitude des impulsions envoyées. Pour se soumettre aux limitations établies par les FOC partl5 (il s’agit d’un document établissant entre autres choses les limites de puissance des harmoniques que l’on peut engendrer avec un dispositif RF), en augmentant le “bit-rate” (taux de transfert) on active un système appelé BACW (Blank Alternate Code Word) et qui permet de diminuer la puissance moyenne d’émission en ménageant des pauses entre les séquences transmises.
Il est donc possible d’envoyer une séquence (word”) sur deux ou sur quatre en doublant ou en quadruplant l’amplitude du signal. La situation s’éclaircit quand on regarde le diagramme de la Figure 5: elle présente différents modes de transmission en relation avec les valeurs prises par la paire de bits BSL1,BSLO. Le dernier bit du “word” de configuration permet d’activer ou de désactiver le mode de cryptage de la séquence entière envoyée (Envolope Key Enable Bit). Dans beaucoup de tables de caractéristiques (data-sheet”) on considère un bit réservé devant être toujours mis à 0. Dans ce cas le cryptage de la partie fixe de la transmission doit être déshabilité selon la configuration standard.
Nous résumons la structure du champ CONFIG pour rendre plus simple la compréhension de la signification des divers bits qui la composent (voir Tableau 5).
Maintenant que nous connaissons les paramètres permettant de configurer le codeur HCS3O1, il est temps de décrire la théorie et la pratique de sa programmation. A la fin nous analyserons comment ces paramètres influent sur le niveau de sécurité du système et les moyens à adopter dans le développement du programme résident, afin de ne pas avoir de mauvaises surprises.
Figure 6: Schéma électrique du programmateur HCS3OI.
Ce circuit fort simple avec interface USB constitue le matériel nécessaire à la programmation des émetteurs qui utilisent les circuits intégrés HCS300/301.
Figure 7a: Schéma d’implantation des composants du programmateur HCS3OI.

Figure 7b: Dessin, à l’échelle 1, du circuit imprimé du programmateur HCS3OI.

Figure 8: Photo d’un des prototypes de la platine du programmateur HCS3OI.
Figure 9: La photo met en évidence un point rouge qui permet d’identifier une piste à couper avant d’effectuer la programmation.
La programmation du HCS3O1
Figure 10: Ce diagramme donne les formes d’onde des deux lignes, données et horloge (“dock”).
Avant d’utiliser une télécommande à “rolling-code”, il est nécessaire de la programmer convenablement.
Bien des fournisseurs, en effet, mettent sur le marché des dispositifs non paramétrés (sauf exception, en cas de commande en nombre). Quant à nous, nous avons opté pour la AUREL douze canaux (TX-12CH) et utilisé le décodeur réalisé dans la première partie de l’article. Il est vendu avec le HCS3O1 complètement mis à zéro. Le processus de programmation que nous décrivons dans ces lignes permet à l’usager de personnaliser le fonctionnement de sa télécommande en choisissant les niveaux de sécurité qu’il souhaite activer. Si nous ouvrons la télécommande en question en dévissant la petite vis postérieure, nous découvrons un circuit imprimé sur lequel il est facile d’identifier le codeur et le pad de progra mm ati on.
La photo de la Figure 9 met en évidence un point rouge qui permet d’identifier une piste à couper avant d’effectuer la programmation. En fait, il s’agit des lignes d’horloge lesquelles, en fonctionnement normal, correspondent à un des 4 bits d’état (S3) des poussoirs. La télécommande, en effet, utilise un PIC pour gérer l’interface avec le clavier, à chaque touche il associe une série de niveaux logiques sur le PORTA qui correspond aux broches SO, 51, S2, S3 (côté HCS). Comme cette dernière broche correspond justement à la ligne d’horloge, pour la procédure
de programmation il est nécessaire de l’isoler du PORTA. Le HCS3O1, en effet, utilise les broches 3 (S2) et 6 (PWM) respectivement comme lignes d’horloge et de données pour la procédure de programmation. Pour cette dernière, au niveau du programme résident, il est nécessaire de soigner scrupuleusement la temporisation. En forçant au niveau logique haut la broche PWM après avoir maintenu au niveau logique haut la ligne d’horloge pendant une durée de 3,5 ms à 4,5 ms, le HCS3O1 entre en mode de programmation. Ensuite, il est nécessaire de prévoir une brève période de pause appelée “Automatic Bulk Write Cycle” durant laquelle la mémoire EEPROM (192 bits) du codeur est entièrement mise à zéro. On peut alors programmer chacun des champs à 16 bits précédemment décrits en effectuant une pause de stabilisation d’au moins 50 ms entre un “word” et l’autre. La programmation se fait séquentiellement en partant de l’adresse inférieure, comme décrit dans le tableau précédent.
Après avoir transmis les douze champs, il est possible d’effectuer un cycle de vérification des données mémorisées. En fait, le HCS3O1 envoie sur la ligne des données le contenu entier de I’EEPROM qu’on vient d’écrire. Attention, cette opération de vérification ne peut être faite qu’une seule fois et doit
suivre immédiatement une opération de programmation. Il n’est par conséquent pas possible de relire les paramètres de fonctionnement d’une télécommande programmée pour des raisons de sécurité évidentes (clonage). Naturellement, l’opération peut être faite plusieurs fois mais les données précédentes sont alors effacées dès qu’on entre en mode de programmation. La procédure entière est réglée par une temporisation qui se doit d’être très précise. Analysons le diagramme de la Figure 10: il donne les formes d’onde des deux lignes, données et horloge (“dock”). Pour entrer dans le mode de programmation, il est tout d’abord nécessaire de mettre au niveau logique haut la ligne d’horloge pendant une durée égale à Tps (entre 3,5 ms et 4,5 ms).
Ensuite, il faut mettre au niveau logique haut la lignes des données pendant le temps Tphl (min 3,5 ms) en mettant la ligne d’horloge au niveau logique bas tout de suite après (Tph2 = 50 ps). La puce entre alors en phase de programmation et met à zéro le contenu de sa mémoire. Il est par conséquent nécessaire d’attendre le délai Tpbw (= 4 ms) afin que cette opération soit terminée.
La procédure de programmation prévoit la transmission en séquence des douze “words” à 16 bits en utilisant le signal d’horloge pour la synchronisation. L’envoi doit partir du champ d’adresse inférieure (CHIAVEO) et du bit le moins significatif (bit 0). En particulier, les intervalles de temps pendant lesquels cette ligne maintient son niveau logique, sont d’au moins 50 ps. A chaque “word” envoyé, il est nécessaire d’attendre un délai de programmation d’au moins 50 ms. Ces délais sont repris par le Tableau 6. Quand la séquence de programmation est terminée, on peut faire une vérification des données écrites.
Figure 11: Dans ce diagramme on peut voir les formes d’onde de la phase de vérification.
Cette possibilité n’est valide qu’une seule fois et doit suivre immédiatement la séquence de programmation. En fait la ligne des données change de direction et le microcontrôleur utilisé pour la programmation peut, à travers des cycles successifs, recevoir sur la ligne d’horloge la séquence totale des 192 bits écrite dans la mémoire de la puce. Dans le diagramme de la Figure 11 on peut voir les formes d’onde de la phase de vérification. On voit que la transmission des données écrites se fait en partant du “word” d’adresse inférieur et du bit le moins significatif. La disponibilité des données est garantie par la fin du dernier intervalle Twc nécessaire à la programmation du douzième champ.
Le logiciel
Il est nécessaire avant tout de relier le programmateur à un port USB libre afin que le SE de l’ordinateur installe les pilotes nécessaires à la communication. Etant donné que nous avons configuré le P1C18F2550 comme dispositif HID (Human Interface Device”), il est directement reconnu par tous les SE Windows à partir du 98SE, sans que l’usager ait rien à faire. Les pilotes sont en effet déjà intégrés au SE. Pour la procédure, nous donnons celle liée à Windows XP Pro 5P2, mais elle ne sera pas très différente avec les autres SE. Dès que nous connectons notre circuit, nous voyons apparaître une série de messages dans la barre des tâches: ils nous avertissent de l’identification du HID et de l’installation des pilotes (voir Figure 12).
Si nous ouvrons alors la Gestion périphériques nous trouvons l’indication “Human Interface Device” désignant notre dispositif (voir Figure 13). Faisons un clic droit sur “Périphérique USB Human Interface” et sélectionnons “Propriétés”: des détails du périphérique sont alors visualisés, comme le VendorlD (04D8), le ProductlD (0000) et le Serial Number (TAU444) que nous avons inséré dans la partie description (Figure 14). Quand l’installation est terminée, nous pouvons lancer le logiciel nous permettant de préciser les paramètres de programmation de la télécommande et de les envoyer au micro- contrôleur à travers l’interface USB.
Un double clic sur l’exécutable “hcsprg” et nous voyons apparaître l’écran visible Figure 15. Sur le panneau de droite, nous avons regroupé les habituels champs d’identification du dispositif USB avec l’état de la connexion, le 10g des opérations qui seront exécutées à travers le bus et la liste des dispositifs détectés. A gauche, en revanche, nous trouvons deux panneaux opérationnels. Le premier fournit à l’usager la possibilité d’insérer les champs de paramétrage du HCS3O1 et le second se compose de quatre poussoirs permettant de lancer les fonctions suivantes:
1) Envoi: Transfère les paramètres au microcontrôleur. Attention, tous les champs contiennent des valeurs hexadécimales dont la congruence est contrôlée avant le transfert. Dans le cas où l’on insère des valeurs de longueur inférieure à ce qui est nécessaire, le programme les formate en ajoutant des zéros en tête. La phase de para métrage est suivie d’une vérification des champs de la mémoire EEPROM du HCS: elles sont visualisées dans le tableau de dessous.
2) Reset: Restaure tous les champs à leur valeur par défaut.
3) Importer: Permet de charger un fichier .hcs contenant les paramètres à envoyer à la télécommande.
4) Exporter: Permet de transférer les valeurs des champs paramétrés dans un fichier .hcs de manière à pouvoir les réutiliser en un second
temps. Les fonctions d’importation et d’exportation sont utiles quand il est nécessaire d’effectuer le même paramétrage sur plusieurs télécommandes ou bien pour garder un enregistrement des opérations de programmation effectuées. Dans ce dernier cas, par exemple, on peut associer le nom du fichier au nombre série de la télécommande et conserver par conséquent une archive “historique” des dispositifs programmés.
Dans le tableau situé sous les deux panneaux nous avons reporté la séquence des champs (avec les mêmes désignations) décrite dans les “datasheet” du HCS3O1. Il se remplit après vérification avec les valeurs contenues dans les douze cellules de mémoire à 16 bits: il est par conséquent possible de faire une comparaison directe avec ce qui a été enregistré dans I’EEPROM du codeur. L’opération de programmation est fort simple. On insère les valeurs dans les divers champs ou bien on charge un fichier .hcs au moyen du poussoir “Importer”. On presse la touche “Envoi”. S’il y a des erreurs, un message d’avertissement s’affiche et la transmission n’a pas lieu. Sinon la barre située sous les poussoirs devient bleue brièvement et dans le tableau les valeurs écrites dans la mémoire du codeur apparaissent.
L’usager peut alors librement personnaliser le fonctionnement de la télécommande en insérant, par exemple, un nombre série identifiant et ensuite en faisant en sorte que le décodeur identifie correctement le dispositif qu’il reçoit.
Attention, la procédure d’apprentissage (Learning”) doit être répétée pour chaque télécommande. Autre point important: la modification de la clé de cryptage à 64 bits. Dans ce cas il faut considérer que divers modes de production de celle-ci existent et que ces algorithmes doivent être connus du décodeur. Les modifications de ce paramètre comportent essentiellement un développement complémentaire côté programme résident.
La clé de cryptage est généralement insérée directement à l’intérieur du microcontrôleur pour éviter que des personnes malveillantes puissent la lire; en outre il est clair qu’elle doit être connue de l’émetteur et du récepteur, sous peine d’incompréhension radicale des séquences envoyées. De même, l’utilisation de valeurs de discrimination personnalisées doivent être vérifiables par le programme résident du décodeur; sinon il finira par écarter
les paquets reçus en les considérant comme incorrects. Mais de cela nous parlerons plutôt dans la prochaine et dernière partie de l’article: nous analyserons concrètement les parties du programme résident consacrées à garantir la sécurité de la transmission vers le décodeur.
Nous présenterons les divers modes de production de la clé à 64 bits et les différents algorithmes permettant de les implémenter en insérant dans notre montage également les télécommandes AUREL les plus petites à 1, 2, 3 canaux.
Figure 12: Dès que nous connectons notre circuit, nous voyons apparaître une série de messages dans la barre des tâches, ils nous avertissent de l’identification du HID et de l’installation des pilotes
Figure 13: Si nous ouvrons la Gestion périphériques nous trouvons l’indication “Human Interface Device” désignant notre dispositif.
Figure 14: Faisons un clic droit sur “Périphérique USB Human Interface” et sélectionnons “Propriétés”, des détails du périphérique sont alors visualisés, comme le VendorlD (04D8), le ProductlD (0000) et le Serial Number (TAU444) que nous avons inséré dans la partie description.
Figure 15: Un double clic sur l’exécutable “hcsprg” et nous voyons apparaître l’écran visible ici.
La réalisation pratique
La réalisation pratique de ce programmateur de circuits intégrés HCS pour émetteurs de radiocommande ne présente aucune difficulté particulière.
La platine est constituée d’un tout petit circuit imprimé simple face, dont la Figure 7b donne le dessin à l’échelle 1:1. Commencez par placer le support de PIC 2 x 14 broches (vérifiez vos soudures: ni court-circuit entre pistes ou pastilles ni soudure froide collée). Insérez et soudez ensuite les quelques
composants (comme le montrent les Figures 7a et 8): les trois résistances, les LED LD1 et LD2, méplats vers la gauche de la platine et les cinq condensateurs (faites attention à la polarité de l’électrolytique: le - de C2 est vers le haut de la platine).
Montez le quartz debout et terminez par la barrette mâle et le connecteur USB/B pour circuit imprimé. Insérez maintenant le PIC dans son support, repère-détrompeur en U vers l’extérieur gauche de la platine.

Publié dans Electronique-Magazine N°_98 _2007

Enregistrer un commentaire

0 Commentaires

Close Menu