Programmation d'un PIC18F2550 pour USB HID
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

Programmation d'un PIC18F2550 pour USB HID



  1. #1
    invite88c84c4b

    Programmation d'un PIC18F2550 pour USB HID


    ------

    Bonjour à tous,
    Je débute en programmation d'usb. Je dois reprogrammer un pic qui possède déjà un programme contrôlant l'état de ses sorties grâce à un programme sur un pc et via une liaison USB. Or ce programme est en assembleur, et mon rôle est de le faire en C. J'utilise donc MPLAB et C18 ainsi que MPLAB ICD3 pour le programmer.
    Pour le moment j'arrive à allumer ou éteindre des LEDs branchées sur les sorties du PIC mais je galère pour la partie en USB.
    Je mettrais un lien vers un dossier zip possèdant mon programme dans peu de temps.
    Merci de m'aider SVP, je galère trop...

    -----

  2. #2
    RISC

    Re : Programmation d'un PIC18F2550 pour USB HID

    Salut,

    Le plus simple est d'utiliser un projet tout fait dans les librairies Microchip que tu peux télécharger ici : http://www.microchip.com/MAL
    Après installation des librairies, je te conseille de démarrer à partir d'un projet existant très proche de ce que tu veux faire :
    c:\Microchip Solutions v2010-10-19\USB Device - HID - Custom Demos\Generic HID - Firmware\

    Utilises le projet pour le PIC18F4550 qui sera très facile à modifier pour ton micro :
    USB Device - HID - Simple Custom Demo - C18 - PICDEM FSUSB.mcw

    Toutes les explications se trouvent dans ce fichier
    C:\Microchip Solutions v2010-10-19\Microchip\USB\Documentation \Getting Started\Getting Started - Running the Device - HID - Simple Custom Demo.htm

    Il faudra changer évidemment le fichier header et les leds de ta carte en comparant à celle de la carte PICDEM FS USB

    a+

  3. #3
    invite88c84c4b

    Re : Programmation d'un PIC18F2550 pour USB HID

    Merci RISC, c'est effectivement ce que j'ai déja commencé à faire. Pour l'instant quand je connecte ma carte à mon pc, il détecte un périphérique HID, avec les bons PID, VID et Rev mais il me met : "Ce périphérique ne peut pas démarrer. (Code 10)" donc je suppose que j'ai du oublier des appels de fonction ou autre...

  4. #4
    invite88c84c4b

    Re : Programmation d'un PIC18F2550 pour USB HID

    Voila le lien des fichiers

    Cela comprend un fichier ZIP avec le programme actuel (en C) et un fichier assembleur de l'ancien programme.

  5. A voir en vidéo sur Futura
  6. #5
    invite88c84c4b

    Re : Programmation d'un PIC18F2550 pour USB HID

    Après des tests en commutant les sorties en fonction de l'état de USBDeviceState, j'ai remarqué que USBSuspendControl ne changeai pas d'état. et donc ma fonction ProcessIO ne vérifie pas si il y a eu réception de données.
    Quand est-ce que cette variable doit passer à zéro ?

  7. #6
    RISC

    Re : Programmation d'un PIC18F2550 pour USB HID

    Salut,

    Au vu du nom de la variable ( USBSuspendControl ), je pense que cette variable ne change d'état que si le HOST retire l'alimentation.
    La norme USB dit que le device doit alors passer en mode Suspend dans les 3 ms après avoir détecté une perte d'alimentation sur Vbus.

    a+

  8. #7
    invite88c84c4b

    Re : Programmation d'un PIC18F2550 pour USB HID

    Sauf que meme en prenant les fichiers d'origines de l'exemple de microchip, USBSuspendControl passe à 1 mais ne repasse pas à zéro. Et il passe à 1 sans que je débranche la carte, donc pas de perte d'alimentation sur Vbus.
    Et comme j'ai la condition dans ProcessIO() :

    if((USBDeviceState != CONFIGURED_STATE)||(USBSuspend Control==1))
    {
    return;
    }
    else ...

    (fournis par microchip)
    Le programme saute le else

  9. #8
    RISC

    Re : Programmation d'un PIC18F2550 pour USB HID

    Salut,

    Cette application fonctionne correctement sur la carte pour laquelle elle est prévue car je l'ai utilisée. Il doit donc y avoir un problème d'adaptation à ta carte.
    Je te recommande dans un premier temps de ne modifier QUE les aspects hardware dans l'application d'origine pour mapper cette application à ton hardware (tu modifies uniquement le fichier HardwareProfile.h ).

    Une fois que l'application d'origine fonctionne, tu peux commencer à la modifier.

    Il faut que tu sois sur que ta carte soit énumérée correctement. Pour cela tu peux utiliser le freeware USBdeview.exe .

    Je pense qu'acutellement ta carte n'est peut être pas énumérée ou s'il elle l'est elle se déconnecte...

    a+

  10. #9
    invite88c84c4b

    Re : Programmation d'un PIC18F2550 pour USB HID

    Ce qui est étrange c'est que maintenant ma carte est reconnue par le pc comme un périphérique HID, elle fonctionne bien...

    Enfin je ne vais pas m'en plaindre ^^

    Je me penche maintenant dans la partie communication entre PC et ma carte. Un programme (déjà fait auparavant et par qqn d'autre que moi...) me dis que la taille de mon rapport feature est trops grand (65535) alors que celui-ci ne doit faire que 255 au max.
    Le problème est que je ne trouve pas de rapport feature de déclaré dans les fichiers... Donc je ne sais pas où l'insérer...

  11. #10
    RISC

    Re : Programmation d'un PIC18F2550 pour USB HID

    Salut,

    Peux-tu montrer le schéma de ta carte ?
    Utilises-tu un quartz ou un résonnateur céramique comme horloge ?
    Quelle fréquence ?

    Il va falloir que tu oublies ton fichier ASM car tu vas passer un temps fou.
    Repars de la spécification de la fonction et réécris cela en C pour appeler les API HID de la librairie USB de Microchip.

    Concernant l'USB coté PIC, le fichier USB_descriptors.c contient les descripteurs HID nécessaire au PC pour choisir le driver si nécessaire (non nécessaire pour le HID).

    a+

  12. #11
    invite88c84c4b

    Re : Programmation d'un PIC18F2550 pour USB HID

    Euh malheureusement, comme ce n'est pas moi qui ai fait la carte je n'en ai pas. Tout ce que je sais c'est que c'est un quartz de 4MHz.
    Le problème c'est que je ne vois pas de rapport feature dans les fichiers de microchip, et donc impossible de changer sa taille...

  13. #12
    invite88c84c4b

    Re : Programmation d'un PIC18F2550 pour USB HID

    Alors c'est de mieux en mieux maintenant...
    Avec le programme que j'ai envoyé sur le pic, qd je le branche sur le pc, le pc freeze... plus rien ne répond

    ps : fichiers mis à jour

  14. #13
    invite88c84c4b

    Re : Programmation d'un PIC18F2550 pour USB HID

    Je suis repassé à l'état où le pic ne démarre pas mais est quand même détecté par windows. Sauf que ce coup-ci, pas moyen de retrouver comment le faire démarrer...

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/03/2010, 23h14
  2. PIC18F2550 - USB PLL - Duree d'un cycle
    Par inviteee104586 dans le forum Électronique
    Réponses: 3
    Dernier message: 15/10/2009, 22h17
  3. Question sur la programmation d'un PIC18F2550
    Par invite227f3bcd dans le forum Électronique
    Réponses: 1
    Dernier message: 17/07/2009, 19h23
  4. Pic18f2550 + USB CDC + AN0
    Par invite6706d147 dans le forum Électronique
    Réponses: 4
    Dernier message: 10/06/2009, 09h46
  5. Erreur programmation PIC18F2550
    Par invite6cb06424 dans le forum Électronique
    Réponses: 0
    Dernier message: 25/10/2008, 15h03
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...