Dernière mise à jour :
02/02/2014
Présentation
Le logiciel UsbHidTest (USB HID Test) permet de lire des valeurs depuis
un périphérique HID ou d'écrire des valeurs vers ce même périphérique.
Avec ce logiciel, il est possible :
- d'activer ou de désactiver des sorties logiques sur le PIC via des commandes envoyées depuis le PC;
- de visualiser sur le PC, des états logiques ou des valeurs analogiques récupérée par le PIC.
Mais attention, cela ne s'applique pas à n'importe quel périphérique, et heureusement !
Avertissements
Ce logiciel pour PC a été spécialement
développé pour tester la liaison USB avec les périphériques HID
que je décris dans mon livre
PIC et MikroPascal,
périphériques construits autour de PIC 18F2550 et 18F4550 (schémas
ci-après). Il m'a aussi servi pour tester mon logiciel séquenceur
ProgSeq auquel j'ai ajouté des commandes USB pour piloter l'
interface USB 003 à 32 sorties. Les fonctions de
télécommande (envoi vers PIC) et de monitoring (réception données
venant du PIC) du logiciel UsbHidTest peuvent être utilisées avec
n'importe quel périphérique HID, à condition que les paramètres
principaux de ce dernier correspondent à ceux attendus par le logiciel
(VID = $1234, PID = $0001, et chaîne de caractère "sonelec" dans
ProductName).
Descriptif général
Le
logiciel affiche en temps réel les données émises par les périphériques
HID que j'ai développés et dont les schémas suivent. Aucun descriptif ici puisque tout sera détaillé sera dans le livre.
Périphérique avec PIC 18F2550
Il
s'agit d'un montage d'initiation, très simple à réaliser, idéal pour
débuter dans le monde des "commandes simples" via liaison USB.
Il permet de lire une tension (valeur analogique) et l'état d'un interrupteur, et
de transmettre le tout au PC. En sens inverse, une commande envoyée
depuis le PC permet d'allumer ou d'éteindre une LED (par extension,
commander un relais). Notez que pour cet exemple, le PIC 18F2550 est largement sous-exploité.
Périphérique avec PIC 18F4550
Ce montage est un poil plus élaboré que le précédent, mais pas tant que ça en fin de compte.
Ici,
point de lecture de valeur analogique, mais transmission au PC de
l'état de 7 interrupteurs distincts : six interrupteurs sur le port A
(lignes RA0 à RA5) et un interrupteur sur le port C (ligne RC7). L'état
des six premiers interrupteurs (câblés sur le port A) est transmis via
les six premiers octets parmi les 64 autorisés ici (octets #0 à #5).
L'état du septième interrupteur (câblé sur le port C) est transmis dans
le dernier octet de la trame (octet #63).
Bien
entendu, les huit bits d'un seul octet auraient suffit pour
véhiculer l'état de l'ensemble des commandes logiques (tant PIC vers PC que PC vers PIC), l'idée ici est de montrer
le principe de base et surtout de valider le transfert de 64
informations de type
byte
(octet). En complément, activation de 8 sorties indépendantes du
PIC via des commandes envoyées depuis le PC. Une fois les bases
acquises avec ce montage, il sera possible et même assez aisé d'en
étendre les possibilités pour gérer plusieurs dizaines d'entrées /
sorties (via des expandeurs de port SPI ou I2C de simples registres
à décalage) ou pour transmettre des valeurs "analogiques" (tensions,
courant, température, pression, etc).
Utilisation du logiciel
Difficile
de faire plus simple. Dès son lancement, le logiciel recherche les
périphériques USB attachés au PC. Si un des périphériques correspond à
un de ceux attendus, le logiciel le signale et les boutons de commande
deviennent opérationnels. Dans le cas inverse, le logiciel se contente
d'énumérer et d'afficher la liste des périphériques HID détectés. Si un
périphérique USB (HID) est retiré ou ajouté alors que le logiciel est
déjà
démarré, il relance une recherche dans la nouvelle liste et met à jour
son
interface utilisateur. Dans le sens PC vers PIC, il est possible
d'envoyer des commandes au bit près, grâce aux champs d'édition situés
sous les boutons de commande. Pour activer les huit bits de chaque
octet transmis, laisser la valeur $FF proposée par défaut (remarque :
la nouvelle valeur est transmise uniquement lors de l'activation du
bouton correspondant, c'est voulu mais ça peut bien sûr être modifié
pour un envoi automatique et systématique).
Telechargement
Voir Avertissements donnés à la page
Freewares.
UsbHidTest V1.1.1.0 (02/02/2014)
A_Lire.txt
- Historique de vie du logiciel
Installation du logiciel
Aucun logiciel d'installation n'est fourni avec cette distribution. Il
vous suffit d'extraire les fichiers de l'archive zip à l'aide
d'un logiciel supportant le format Zip (
WinZip
ou
WinRar par
exemple), et de les
mettre dans un répertoire de votre
choix. Vous êtes ainsi assuré qu'aucun fichier ne va
s'installer ailleurs que là où vous le souhaitez
(répertoires Windows ou Windows System), simplifiant ainsi le
processus de désinstallation éventuel, puisqu'il
vous suffit de supprimer purement et simplement le répertoire en
question.
Historique
02/02/2014- Ajout code
source du logiciel UsbHid. Attention, la recompilation de ce code
source impose l'installation préalable de composants tiers dans Delphi
(composant TJvHidDeviceController inclus dans la
librairie JCL/JVCL, d'autres composants tiers sont utilisés
mais peuvent être remplacés par des composants standard de Delphi).
03/03/2013- Suppression des
doublons dans la liste des périphériques détectés. Certains drivers se
déclarent sous un grand nombre d'items identiques, cas par exemple
des souris et claviers sans fil "unifiés" de Logitech.
20/01/2013
- Ajout possibilité de spécifier la valeur de chaque bit pour les huit
premiers octets (1 à 8) et pour le dernier (64), dans le sens de
transmission PC vers PIC.
13/01/2013
- Première mise à disposition.