La carte d’interface USB à base du PIC18F2550 que je vous propose est pourvue de 4 canaux d'entrée numériques (interrupteurs) et 4 canaux de sortie numériques (LEDs). En outre, vous avez à votre disposition une entrée analogique avec une résolution de 10 bits et un afficheur LCD 2x16. Cette exemple vous permettra de créer n’importe quelle carte d’interface USB avec votre PC dont le nombre d'entrées/de sorties peut être augmenté.
Toutes les routines de communication sont mémorisées dans une Dynamic Link Library (DLL). Écrivez des applications Windows (98 SE, 2000, ME, XP) sur mesure en Delphi, Visual Basic, C++ Builder ou en utilisant n'importe quel outil de développement 32 bits pour Windows® capable d'appeler une DLL. Parfois en robotique et encore plus souvent en électronique, les fabricants imposent d’utiliser une DLL (ou Dynamic Linked Library) pour contrôler leur produit. Par exemple un modem ou un programmateur ou une carte d’interface entrée/sortie USB pour expérimentations.
Il s’agit d’un groupe de fonctions réunis dans un fichier binaire (pas de code source disponible) que notre programme doit exécuter. Les DLL sont spécifiques à Windows (il existe aussi des bibliothèques logicielles de principe similaire sous Linux et MaxOS, les .so ou "shared objects", .dylib ou "dynamic library", .sl ou "shared library", etc...) et généralement on développe un programme en Delphi, Basic ou en C/C++ pour les utiliser.
Dans ce montage, je vais expliquer comment réaliser cette carte d’interface USB, donc accéder aux ressources HID, depuis un programme Delphi, en utilisant l’environnement "Mikropascal" coté carte électronique qui est vraiment très simple et très pratique.
L'idée dans ce montage est d'expliquer comment mettre en place une carte électronique pouvant recevoir des ordres d'un ordinateur via le port USB tel que : allume une sortie, fait une conversion analogique,.. et que la carte transmette à l'ordinateur des réponses (la valeur de la conversion analogique, l'état d'une entrée, ...). On associe souvent au terme USB : la vitesse, l'utilisation dans des applications de stockage de données tel que les clés ou les disques dur externes. Ces dernières applications font partie d'un ensemble particulier « Mass storage » qui ne nous intéresse pas dans ce montage. La gamme qui nous intéresse est le périphérique HID, qui est les initiales de « Human Interface Device » c'est-à-dire dans notre bon vieux français périphérique d'interface avec un humain. Cette gamme regroupe les outils les plus utilisés comme les souris, claviers et joysticks. La vitesse de ces périphériques est aussi limitée à 64ko/s… Ce qui entre nous n'est déjà pas mal et permet de résoudre pas mal d'application que ce soit en domotique ou en robotique.
L'USB a le désavantage d'obliger l'utilisation de composants particuliers. Dans notre application, nous aurons recours au microcontrôleur 18F2550 de Microchip, une puce simple à programmer (en Mikropascal) et munie de tous les composants hardware nécessaire à la communication sur port USB. Le schéma de la mise en place du composant reste très simple:
Au centre du schéma, nous retrouvons le PIC18F2550, celui-ci est cadencé par un quartz à 20MHz. Nous avons aussi câblé sur ce schéma une entrée analogique: AN0. Sur les broches RC0, RC1, RC2 et RC6 nous plaçons quatre leds qui nous servirons pour notre application. Sur les broches RA1, RA2,RA3 et RA4 des switchs qui serviront aussi pour cet exemple. Le port B est utilisé pour l’LCD mais nous plaçons la possibilité d'étendre les fonctionnalités de la carte en installant des borniers.
Les capacités C1 et C2 sont de 22pf. Pour R5, R4, R3, R2 nous placerons simplement des résistances de 4k7. Attention de ne pas se tromper pour le connecteur USB. Il s'agit d'un connecteur femelle de Type B. Pour la connecter au PC, j'utilise un cordon d'imprimante A vers B, le même que les cordons HP. Programmation du microcontrôleur PIC18F2550 : Bibliothèque USB de Mikropascal :
USB (Universal Serial Bus) est un bus série standard pour connecter une large variété d'appareils, y compris les ordinateurs, les téléphones cellulaires, consoles de jeux, PDA, etc
La bibliothèque USB HID de Mikropascal contient des routines qui supportent les dispositifs de classe HID, ainsi que les routines génériques qui peuvent être utilisées avec des pilotes de fournisseurs spécifiques.
Chaque projet basé sur la librairie USB de mikropascal devrait inclure un descripteur de fichier source qui contient (Vendor ID, nom), (Product ID, nom), la longueur « report length », et d'autres informations pertinentes. Pour créer un fichier descripteur, utilisez l’outil intégré HID terminal de mikroPascal PRO pour PIC (Outils >> USB HID Terminal). Le nom par défaut pour le fichier descripteur est USBdsc.mpas, mais vous pouvez le renommer.
Test de la carte :
Une fois la programmation du microcontrôleur terminée, brancher le câble USB, Windows devrait détecter et installer automatiquement la carte en tant que périphérique HID
Routage de la carte :
Cette carte ne présente pas beaucoup de composants de ce fait le routage sous le logiciel Proteus(ISIS et ARES) est très simple et peut être réalisé en simple face
Bonjour, Excellent travail, la simulation sous Proteus fonctionne impeccable. Il semblerait que la DLL soit écrite par l'auteur, la source est-elle disponible ?
Montages electroniques simples, pour les amateurs et pro de l'électronique, offre de montage electronique et cours: programmateurs de PIC USB, chargeur pour batteries, insoleuse 3 tubes ultra violet pour circuits imprimés et carte développement microcontrôleur PIC