Comment faire le périphérique USB (PIC18F) (6 / 8 étapes)

Étape 6: Comprendre le code source du firmware

Dans le fichier zip « Périphérique HID générique PIC18F » inclus avec cet article, vous trouverez un firmware prêt-à-go complet pour le PIC18F4550.

Il suffit de dézipper le fichier dans votre répertoire de projet MPLAB préféré et puis utilisez MPLAB pour ouvrir le projet.

J’ai séparé les fichiers source et les fichiers d’en-tête dans le code, que vous devriez regarder et ensuite les parties plus génériques de la pile de Microchip (stockés dans les sous-répertoires « stack USB » dans le navigateur de projet).

Les fichiers dans les répertoires « stack USB » sont intéressantes, mais pour y aller rapidement vous ne devrait pas inquiéter les aspects complexes du code jusqu'à ce que vous êtes familiarisé avec les niveaux supérieurs.

Puisque le VID/PID et le reste de l’information de l’énumération est déjà préparé, vous devriez commencer en effectuant un build-tout sur le projet et puis vous téléchargez le firmware qui en résulte sur votre PIC18F. Bien sûr, vous aurez besoin d’un environnement de construction sain d’esprit pour que cela fonctionne, mais il y a beaucoup de ressources par l’intermédiaire de Google si vous avez des problèmes avec votre environnement.

Essayez quelques exemples simples pour s’assurer que tout est ok avant le rechargement de ce projet et essayer de nouveau.
Le firmware fournit 3 commandes :

  • 0 x 80 - activer/désactiver la LED
  • 0 x 81 - lire l’état de l’interrupteur
  • 0 x 82 - lire l’état de la LED

Le code qui exécute ces commandes se trouve dans le fichier de source main.c dans la fonction ProcessIO(). Cette fonction est chargée de déterminer la commande désirée et ensuite envoyer et recevoir des données selon qu’il conviendra.

C’est assez simple puisque la pile USB prend en charge toute la complexité sous-jacente ; prendre un coup d’oeil au code source et vous verrez comment de simples, c’est vraiment.

La vérification seulement appoint effectuée par la fonction est de voir si l’appareil est dans un « état configuré » ; Cela signifie que le périphérique est connecté à un hôte et énumération a été un succès.

La fonction principale appelle simplement la pile USB pour effectuer toutes les tâches de bas niveau périphérique, puis la fonction ProcessIO maintes et maintes fois. Il est possible de le faire en utilisant les interruptions plutôt qu’une boucle, mais dans ce firmware je l’ai ai gardé aussi simple que possible.

Pour comprendre un peu plus sur le processus d’énumération jetez un oeil à usb_descriptors.c qui contient les informations qui sont passées à l’hôte lorsque l’appareil est branché.

Dans la source, vous trouverez l’information VID et PID pour l’appareil, mais aussi une série de descripteurs de configuration qui expliquent à l’hôte, quel type de l’appareil a des interfaces et les fonctionnalités des interfaces. Les « extrémités » sont des connecteurs pour les « tuyaux » décrits précédemment.

Il y a aussi certaines chaînes qui décrivent le fabricant et le produit textuellement. Windows utilise généralement ces chaînes lors de l’identification des périphériques USB.

Comprendre le processus de recensement et les formats de descripteur est assez complexe et est couverte par les différentes spécifications USB ainsi qu’un grand livre par Jan Axelson appelé « USB Complete - tout ce que vous devez développer des périphériques USB personnalisées » (ISBN 978-1931448086). Si vous appréciez cet article et que vous souhaitez obtenir plus sérieux au sujet de USB je recommande vivement obtenir une copie du livre, il certainement m’a aidé quand j’ai appris.

Dans l’ensemble, le firmware est assez simple, suffit de se lever et courir communiquer vers et depuis l’hôte est inclus. Évidemment, vous pouvez faire cela aussi complexe que vous le souhaitez, mais pour l’application du présent article (se tu vas avec USB), il y a beaucoup d’expérimenter avec.

Articles Liés

Comment ajouter une alimentation on/off basculer vers un périphérique USB/

Comment ajouter une alimentation on/off basculer vers un périphérique USB/

cette instructable vous montrera comment faire un interrupteur marche/arrêt pour votre câble d'usb/s ou périphérique usb alimentéJE NE SUIS PAS RESPONSABLE DE TOUT DOMMAGE QUE VOUS FAITES À VOTRE ORDINATEUR, CÂBLES USB OU PÉRIPHÉRIQUE ! SUIVEZ CETTE
Comment faire un sans données USB câble

Comment faire un sans données USB câble

Votre clé USB facturé périphériques peuvent être attaqués par le port USB pendant le chargement. Cela a été démontré à Blackhat 2013 (https://www.blackhat.com/us-13/briefings.html#Lau, http://www.extremetech.com/extreme/157207-black-hat-hackers-break
Reset automatique d’un périphérique USB.

Reset automatique d’un périphérique USB.

Ne nous détestons tous avoir à débrancher puis re-branchez un périphérique usb si elle ne répond plus ? Mon USB UIRT est la clé de mon accès à la maison et l'automatisation de confort. Parfois, il se bloque et je dois re-brancher ou redémarrer le pc.
Périphérique usb caché

Périphérique usb caché

beaucoup d'entre nous confrontés au problème de la confidentialité des données. Leur est un bon marché, étonnant et intéressant de cacher un périphérique de stockage et contrôle à l'aide de magnétisme. Personne ne sera jamais capable de penser commen
Thermomètre intérieur/extérieur USB (ou "Mon premier périphérique USB")

Thermomètre intérieur/extérieur USB (ou "Mon premier périphérique USB")

il s'agit d'une conception simple qui illustre l'USB périphérique sur le PIC 18Fs. Il y a un tas d'exemples pour les 18F4550 40 broches chips en ligne, ce dessin montre la plus petite version de 18F2550 28 broches.Le PCB utilise des pièces de montage
[RESOLU]: périphérique USB non reconnu Windows 10 / 8 / 7

[RESOLU]: périphérique USB non reconnu Windows 10 / 8 / 7

Comment Difficulté votre USB Device ne fonctionne pas dans Windows 10 / 8 / 7, comment résoudre l'erreur « Périphérique USB non reconnu », lorsque vous branchez un périphérique USB à votre 10 de Windows, Windows 8 ou votre ordinateur de Windows 7, il
Chargeur portable robuste pour les périphériques usb (téléphones, iPad, etc.).

Chargeur portable robuste pour les périphériques usb (téléphones, iPad, etc.).

Ever nécessaire pour charger votre téléphone en déplacement ? Impossible de trouver une prise murale pour recharger votre iPod ?Chaque fois que je suis loin de chez eux pendant une période prolongée de temps, j'ai facturerait mon téléphone et lecteur
Vos périphériques USB avec une source d’alimentation 6-24V comme les panneaux solaires de puissance

Vos périphériques USB avec une source d’alimentation 6-24V comme les panneaux solaires de puissance

Avez-vous jamais vous-même trouvé avec une source d'alimentation 6-24V, ou panneaux solaires, nous vous souhaitons pourrait recharger votre téléphone ou exécuter n'importe quel autre périphérique USB de 5V ? Eh bien maintenant vous pouvez !Il s'agit
Organiser des périphériques USB avec peau utilitaire portable

Organiser des périphériques USB avec peau utilitaire portable

peau utilitaire portable organise des périphériques USB légers idéalement à l'aide de velcro.Parmi la génération mobile, j'ai voulu résoudre les problèmes avec l'emplacement et l'espace pour les périphériques USB.Professionnels et étudiants de journa
Comment utiliser le lecteur de carte mémoire PS3 interne comme un périphérique USB sur votre PC

Comment utiliser le lecteur de carte mémoire PS3 interne comme un périphérique USB sur votre PC

tout d'abord c'est mon premier Instructable (yippie!), je ne sais pas il y aura beaucoup à venir.Donc, j'ai eu une PS3 cassé et voulait faire certaines utilisent les éléments de travail. Première chose que j'ai fait était tirez sur la fiche de donnée
Comment faire un don de voiture USB pouce plus mémorable

Comment faire un don de voiture USB pouce plus mémorable

A clé USB est petit et pratique, mais un disque pouce ordinaire n'est pas vraiment un cool présent à donner (sauf si il est compressé avec giga octets, bien sûr).J'ai voulu un de ces japonais fantaisies inspiré pen drives, ressemblant à une voiture o
Comment faire une carte de son USB

Comment faire une carte de son USB

Une carte son USB est un adaptateur externe pour micros ou autres périphériques audio pour empêcher le ramassage des bruits indésirables de votre pouvoir d'ordinateurs, le ventilateur ou le disque dur.Celui-ci peut être utilisé uniquement pour l'enre
Comment faire une sauvegarde iPhone sur USB et sans iTunes

Comment faire une sauvegarde iPhone sur USB et sans iTunes

iTunes peut seulement soutenir votre iPhone à un seul endroit dans votre lecteur de système de PC. Ce n'est de loin pas un idéal emplacement où enregistrer sauvegardé les fichiers iOS. Voici pourquoi :le lecteur système contient votre installation de
Comment faire un lecteur Flash Bootable USB

Comment faire un lecteur Flash Bootable USB

Comment faire installer bootable Windows 7 clé USBS'il vous plaît noter : au cours de cette procédure, vous perdrez toutes les données sur votre clé USB.Soyez très prudent lors du formatage, choisir que le mauvais lecteur il effacera complètement.Ce