programme en c de l'utilisation de USB en pic 18f2550
Répondre à la discussion
Page 1 sur 3 12 DernièreDernière
Affichage des résultats 1 à 30 sur 74

programme en c de l'utilisation de USB en pic 18f2550



  1. #1
    ranouch

    programme en c de l'utilisation de USB en pic 18f2550


    ------

    Salut,
    je veux faire l'acquisition des données via l'USB . donc, je dois développer un protocole de communication entre L'USB et le PIC 18F2550 et je veux établir un programme sous pic c compiler ccs qui me permet d'envoyer les valeurs lus par l'LCD sur le pc via l'interface USB, et jusqu’à maintenant je n'arrive pas à trouvé des exemples de programmation en c . s'il vous plait aidez moi je suis perdu je ne sais pas d'ou commencé et quoi faire pour écrire ce programme,
    merci

    -----

  2. #2
    pixtache

    Re : programme en c de l'utilisation de USB en pic 18f2550

    As-tu beaucoup de donnée à transmettre via l'USB ?

    Si oui, et que tu es pas trop à l'aise je te conseille de commencer avec une puce FT232 ou équivalent. Ceci te permet de pas trop te prendre la tête, il transforme l'usb en port Com (série). En clair, lorsque tu brancheras ta carte au PC, un port COM virtuel se créera et tu n'aura plus qu'a envoyé tes donné par l'uart de ton pic puis de les récupérer sur le port com du PC.

    info : http://www.ftdichip.com/Products/ICs/FT232BM.htm

    Si tu as un peux plus de donnée et que tu veux faire du "vrai" USB avec un profile HID, tu peux utiliser la librairie V-USB.

    Un exemple avec ton pic : http://www.ftdichip.com/Products/ICs/FT232BM.htm

    Je connait mal ce micro, donc si il y a peut être d'autres librairies USB, conçu pour ce dernier il faudra pas m'en vouloir.

  3. #3
    pixtache

    Re : programme en c de l'utilisation de USB en pic 18f2550

    petite erreur sur le second lien : http://semifluid.com/2006/03/27/pic1...-oscilloscope/

  4. #4
    ranouch

    Re : programme en c de l'utilisation de USB en pic 18f2550

    je m'excuse mais je suis débutante, je voudrais bien que vous m'expliquer c'est quoi une puce FT232 ??? est ce que c'est l'équivalence de Max 232 qu'on utilise avec la liaison RS232 ??? et si oui est ce qu'elle est utilisée avec l'USB ou bien elle le remplace ,je suis un peux perdu, désolé si je déconne mais vraiment tout est nouveau pour moi j'aimerai bien avoir des explications!!!
    je cherche aussi des exemples de code en c que je compile sur le compilateur ccs et que je le charge dans le schéma isis pour que je puisse transférer les donner vers le pc via l'usb.
    je sais qu'il me manque beaucoup de donner mais je compte sur vous pour m'aider
    Merci

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

    Re : programme en c de l'utilisation de USB en pic 18f2550

    Bonsoir,

    Très bon choix le PIC 18F2550

    C'est très facile à utiliser et il est inutile de rajouter quoique ce soit, les 18F2550, 2553, 4550, 4553 ont un port USB intégré; donc sauf si on aime faire de la soudure, je ne vois pas l'intérêt de rajouter quoique ce soit

    En rajoutant trois composants (1 résistance, une capa et un résonateur), le PIC est opérationnel avec sa liaison USB

    1- D+ sur la pin 16
    2- D- sur la pin 15
    3- une résistance de 10k entre la pin 1 (MCLR) et le +5V
    4- une capa de 100 nF entre la pin 14 et la masse
    5- un résonateur entre les pins 9 et 10 (je conseille 20 Mhz)
    6- la masse sur les pins 8 et 19
    7- le +5V sur la pin 20

    C'est suffisant pour dialoguer avec le PIC

    Vous allez sur ce site et vous chargez le pilote et un hex qui contient un bootloader, la partie communication USB et une petite application bien sympa qui permet de tout tester...

    J'ai programmé plusieurs applications en utilisant les informations contenus sur ce site et ça marche nickel.

    Le bootloader permet par la suite de recharger l'application sans même utiliser un programmateur, en moins de 30 secondes vous changez l'application du PIC sans même le déconnecter du PC

    La première fois, il vous faudra un programmateur, ensuite juste une petite manip pour activer le bootloader.

    Dès que vous avez programmé le PIC avec le fichier hex, vous pouvez tout de suite tester la communication avec l'application en faisant des échanges entre le PIC et le PC à l'aide de l'hyperterminal de Windows.

    Vous trouvez tous les sources sous forme d'un projet MPLAB.

    Vous pouvez donc modifier l'application à votre guise et la recharger en moins de 30 secondes par la liaison USB.

    Si vous rencontrez des problèmes ou si l'anglais vous effraie, contactez moi par MP, je vous aiderai dans la mesure de mes possibilités.


    Bon courage.
    Dernière modification par jlg_47 ; 06/04/2012 à 01h07.

  7. #6
    ranouch

    Re : programme en c de l'utilisation de USB en pic 18f2550

    on se qui concerne le schéma sur isis tout est claire et je l'ai fais, alors le problème maintenant est dans le code que je dois chargé sur le pic pour la simulation sous isis , j'utilise le compilateur ccs en c , donc je dois écrire un programme que je le compile puis je le charge dans le pic sous isis et je simule pour voir si ça fonctionne,je n'ai pas encore commencé à faire un essaie réel sur une plaque, je veux juste pour le moment comprendre la simulation imaginaire sous isis apparament je dois ajouté dans le schéma un terminateur virtuel pour joué le rôle de la fenêtre windows quand je charge les donner en temps réel du lcd vers le pc via le USB bien sur, alors ce que je cherche est le code que je dois ecricre et je ne sais pas comme je trouve même pas des exemple ( par exemple j'ai trouver beaucoup d'exemple en ce qui concerne de lire une tension analogique et l'afficher sur le LCD mais je trouve pas des exemples en langage c pour le code de l'usb)
    je ne sais pas si je me suis bien exprimé et je souhaite vraiment que quelqu'un m'aider, SVP SVP !!!! quelqu'un qui connais isis et le compilateur ccs ???
    merci

  8. #7
    ranouch

    Re : programme en c de l'utilisation de USB en pic 18f2550

    personne pour m'aider !!!!!!!!!!!

  9. #8
    inoxxam

    Re : programme en c de l'utilisation de USB en pic 18f2550

    Salut,
    Microchip propose un Framework USB pour ses PICs. Ca fonctionne assez bien et c'est pas trop difficile à utiliser. Dans la majorité des cas, tu pourras grandement t'inspirer des nombreux exemples fournis par Microchip sans forcément trop te soucier de ce qu'il se passé réellement sur le bus USB. Sinon, il faudra que tu fasses un peu plus de recherche et t'intéresser au fonctionnement de l'USB. Dans ce cas je ne peux que te conseiller de lire "USB Complete" de Jan Axelson, ouvrage en anglais, mais très clair.

    Bonne journée.

  10. #9
    ranouch

    Re : programme en c de l'utilisation de USB en pic 18f2550

    mais c'est quoi un Framework USB ???? je le trouve partout dans le net et je n'arrive pas à comprendre!!! il est quoi exactement?? à quoi ça serre ?? comment l'utilisée ???

  11. #10
    inoxxam

    Re : programme en c de l'utilisation de USB en pic 18f2550

    C'est une bibliothèque de fonctions, que Microchip te fournis, pour utiliser sur leurs composants sans avoir à te torturer l'esprit à écrire un soft USB bas niveau.

  12. #11
    ranouch

    Re : programme en c de l'utilisation de USB en pic 18f2550

    ahh,d'accord. Donc j'aurais pas besoin d’écrire un code en c pour faire fonctionner l'interface usb entre le pic et le pc

  13. #12
    jlg_47

    Re : programme en c de l'utilisation de USB en pic 18f2550

    Citation Envoyé par ranouch Voir le message
    ahh,d'accord. Donc j'aurais pas besoin d’écrire un code en c pour faire fonctionner l'interface usb entre le pic et le pc
    Tout à fait, c'est bien pour ça que je vous ai dit que j'ai développé mes applications sur des PIC18F2553 sans me soucier de l'USB.

    Il suffit d'importer les bibliothèques dans le projet et de compiler en faisant un "include" des bibliothèques.

    Mon application sur le PIC écrit et lit dans des buffers, ensuite ça se débrouille tout seul grâce aux modules de la bibliothèque et je ne sais pas comment cela marche, mais ça marche.

    De la même manière qu'on écrit ou lit sur un disque, un clavier, un écran, ... sans rentrer dans le détail de fonctionnement.

    Bon courage.
    Dernière modification par jlg_47 ; 07/04/2012 à 16h17.

  14. #13
    ranouch

    Re : programme en c de l'utilisation de USB en pic 18f2550

    emmmm,je voix !!! en tout cas je vais encore lire et chercher comment je peux utilisé le pic 18f2550 avec l'USB
    je vous remercie

  15. #14
    ranouch

    Re : programme en c de l'utilisation de USB en pic 18f2550

    je cherche encore et je n'arrive pas à comprendre ce concept de l'usb ave le pic 18f2550 et sa compilation avec ccs en c
    je deviens folle
    bref si quelqu'un passe et il a une réponse ou même un petit indice j’espère qu'il ne se prive pas de le posté
    merci

  16. #15
    umfred

    Re : programme en c de l'utilisation de USB en pic 18f2550

    dans le manuel de CCS page 99 à 101, tu trouveras un certain nombre de fonctions liées à l'USB, avec le nom de sources fournies en exemple avec le compilateur que tu pourras consulter pour voir l'utilisation de celles-ci.

  17. #16
    jlcms

    Re : programme en c de l'utilisation de USB en pic 18f2550

    Bonjour,

    Il y a quelques temps j'avais repéré un exemple d'utilisation de l'USB avec un pic18f4550 (très proche du pic18f2550), il s'agit d'un oscilloscope usb.
    A tout hasard, si cela peut aider...

  18. #17
    jlg_47

    Re : programme en c de l'utilisation de USB en pic 18f2550

    Citation Envoyé par jlcms Voir le message
    Il y a quelques temps j'avais repéré un exemple d'utilisation de l'USB avec un pic18f4550 (très proche du pic18f2550), il s'agit d'un oscilloscope usb.
    A tout hasard, si cela peut aider...
    Bonjour,

    La façon dont fonctionne cet oscilloscope correspond exactement à ce que j'ai indiqué à ranouch ...

    La programme du PIC comporte en entête l'instruction:

    #include "system\usb\usb.h"

    Cette bibliothèque contient les fonctions pour initialiser la liaison USB et pour écrire et lire dans des buffers.

    Il suffit de passer ligne par ligne dans le programme pour regarder comment sont écrites les instructions concernant l'USB.
    Il faut évidemment décider d'un protocole d'échange des données entre le PC et le PIC.

    Il faut bien que le PIC comprenne ce que le PC lui dit; mais il faut prévoir le cas de message erroné (incompréhensible, trop long, trop court), dans ce cas le PIC rejette généralement le message et envoie un message d'acquittement au PC pour lui signifier qu'il n'a rien compris.
    Dans mes applications à chaque fois que le PC envoie un message, le PIC répond "OK" s'il a compris, dans le cas contraire il renvoie un code d'erreur.

    Bonne journée

  19. #18
    jlg_47

    Re : programme en c de l'utilisation de USB en pic 18f2550

    Vu qu'on ne peut rien rajouter à un message après 5 minutes, je continue dans un autre message en montrant par exemple comment on initialise la liaison USB.

    Pour cela on écrit simplement : mInitializeUSBDriver();

    cette fonction est incluse dans la bibliothèque usbdrv.h qu'il faudra évidemment avoir déclarée en entête ..

    Il y a des mots de statuts définis dans les entêtes tels que usb_device_state qui peut prendre des valeurs comme ATTACHED_STATE ou POWERED_STATE ou DEFAULT_STATE , etc ....

    C'est au programmeur de tester ...

    Il suffit de suivre l'exemple de l'oscilloscope ou le lien US que que j'ai donné plus haut, les applications sont différentes, mais l'USB est traité exactement de la même façon.

    Voici un exemple d'une fonction qui fait clignoter deux LEDs de façon différente en fonction de l'état de l'USB:

    void BlinkUSBStatus(void)
    {
    static word LEDCount = 0;
    if (usb_device_state == DETACHED_STATE || UCONbits.SUSPND ==1 )
    {
    LEDCount--;
    if (LEDCount == 0) {mLED_USB_Toggle(); LEDCount = 20000U;}
    }
    else if (usb_device_state == ATTACHED_STATE || usb_device_state == POWERED_STATE
    || usb_device_state == DEFAULT_STATE|| usb_device_state == ADDRESS_STATE)
    {
    mLED_USB_On();
    }
    else if (usb_device_state == CONFIGURED_STATE)
    {
    LEDCount--;
    if (LEDCount == 0)
    {
    mLED_USB_Toggle();
    LEDCount = 100000U;
    if (PC_connected) LEDCount = 5000U;
    }
    }
    }

    Bonne journée
    Dernière modification par jlg_47 ; 08/04/2012 à 11h34.

  20. #19
    ranouch

    Re : programme en c de l'utilisation de USB en pic 18f2550

    d'accord je vais le lire attentivement

  21. #20
    ranouch

    Re : programme en c de l'utilisation de USB en pic 18f2550

    je vais m'inspiré de tout ce que vous avez écrie,mais ce que je veux c'est envoyé des valeurs lue par l'afficheur LCD vers le pc à l'aide du pic via l'USB,j'ai pas besoin de piloté le pic à travers le pc .
    Merci

  22. #21
    ranouch

    Re : programme en c de l'utilisation de USB en pic 18f2550

    j'ai trouvé se programme sur le forum de ccs:

    #include <18F4550.h>
    #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NO DEBUG,USBDIV,PLL5,CPUDIV1,VREG EN
    #use delay(clock=48000000)
    #include <flex_lcd.c>

    #DEFINE USB_HID_DEVICE TRUE

    #define USB_EP1_TX_ENABLE USB_ENABLE_INTERRUPT
    #define USB_EP1_TX_SIZE 64

    #define USB_EP1_RX_ENABLE USB_ENABLE_INTERRUPT
    #define USB_EP1_RX_SIZE 64


    #define USB_CON_SENSE_PIN PIN_B3 // sense pin

    #include <pic18_usb.h> //Microchip PIC18Fxx5x hardware layer for usb.c
    #include <usb_desc_hid.h> //USB Configuration and Device descriptors for this UBS device
    #include <usb.c> //handles usb setup tokens and get descriptor reports

    void main(void)
    {
    int8 in_data[64];
    usb_init();
    lcd_init();
    lcd_putc('\f');
    lcd_putc("USB test");
    while (TRUE)
    {
    usb_task();

    if (usb_enumerated())
    {
    if (usb_kbhit(1))
    {
    usb_get_packet(1, in_data, 64);
    lcd_putc("Anything"); //just to test if the program go in the loop, message has to be displayed on the LCD
    printf(lcd_putc,"%u"in_data);
    }
    }
    }
    }[/COLOR]

    est ce que quelqu'un peut m'expliquer les lignes en rouge ????

  23. #22
    ranouch

    Re : programme en c de l'utilisation de USB en pic 18f2550

    c'est le schéma que j'utilise pour faire la simulation après la compilation sur ccs c : Nom : USB USB.JPG
Affichages : 540
Taille : 97,8 Ko

  24. #23
    umfred

    Re : programme en c de l'utilisation de USB en pic 18f2550

    Citation Envoyé par ranouch Voir le message
    est ce que quelqu'un peut m'expliquer les lignes en rouge ????

    page 114 pour l'explication du #define
    (les termes des define me semblent explicites:
    - USB_P1_TX_ENABLE : autoriser le TX de l'USB Port1 (on parle de endpoint pour l'usb)
    - USB_P1_TX_SIZE: je pense que c'est pas trop dur à imaginer
    - idem pour les RX
    - USB_CON_SENSE_PIN pour USB Connection sense pin : pin de détection de connection (relativement facile à savoir à quoi ça sert je pense, non ?)
    page 57 pour le int8, et la base du C pour la variable
    page 100 pour la fonction usb_get_packet
    page 229 pour la fonction printf
    tout ça (sauf les éléments des define) dans le manuel de CCS

    Prends le temps de bien lire les docs, manuels des composants et outils que tu utilises, 95% des réponses sont dedans.

  25. #24
    ranouch

    Re : programme en c de l'utilisation de USB en pic 18f2550

    en faite j'ai des difficultés à comprendre les instructions sans des exemples claire, alors quand tu me dit de lire les explications de ces commande,ça ne m'aide pas beaucoup , bon je suis entrain d'avance à petit pas certes,mais je suis encore perdu et loin de mon but
    bon je suis entrain de chercher la fonction qui me permet de transmette les valeurs lus par le potentiomètre vers le pc via l'USB bien sur,si quelqu'un à une idée !!!!!!
    Merci

  26. #25
    ranouch

    Re : programme en c de l'utilisation de USB en pic 18f2550

    Nom : USB11.JPG
Affichages : 441
Taille : 95,6 Ko C'est mon schéma sur isis, et c'est le code en c qui se compile sans faute avec ccs c :
    #include <18F2550.h>
    #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NO DEBUG,NOBROWNOUT,USBDIV,PLL5,C PUDIV1,VREGEN,PUT
    #use delay(clock=48000000)

    #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
    #include "usb_cdc.h"

    void main(void)
    {
    usb_cdc_init();
    usb_init();
    usb_wait_for_enumeration();

    printf(usb_cdc_putc,"HELLO");
    }


    le problème c'est la virtual terminal n'affiche pas le message!!! une correction SVP , peut être que quelque chose me manque ???

  27. #26
    kh.Mejdi

    Re : programme en c de l'utilisation de USB en pic 18f2550

    bonjour tout le monde)
    j suis un élève ingénieur en classe terminale spécialité génie électrique et maintenant j'ai à réaliser mon projet de fin d'études intitulé Système de détection des pannes d'une table de contrôle technique.Ce projet consiste à faire la conception d'une carte électronique qui contient un PIC 18F4550 lié avec un PCF8583(real time clock);les entrées sont trois boutons poussoirs (machine en panne,début d'intervention et fin d'intervention).En outre lorsque la machine tombe en panne, l'ouvrier doit appuyer sur "machine en panne" afin de faire appel au technicien avec un signal d'alarme et le technicien intervient pour la réparation.mon cahier de charge impose l'utilisation du port USB comme port de communication entre le PC et ma carte afin d'envoyer(lorsque le technicien appuie sur les boutons début et fin d'intervention le temps et la date exactement à mon interface graphique.
    j'ai trouvé bcp de problèmes au niveau de ce projet dont j vais les citer ci-dessous et que j'espère bien avoir de l'aide:
    1- La programmation du PIC et du PCF8583:j n'arrive pas à les programmer alors que j'ai lu pas mal de forums et des articles et en plus j ne suis habitué à la programmation pic(sur le PIC C COMPILER) donc j ne sait pas exactement quoi faire(j programme la partie USB et la partie PCF séparément et après comment les charger dans mon PIC et notons bien que j'ai trouvé des codes HID ou CDC comme des exemples ainsi que pour le PCF mais j'ai pas pu savoir comment les modifier.)
    2- j'ai perdu beaucoup de temps à lire des tutoriels sur la programmation JAVA afin de réaliser l'interface mais après un mois j'ai découvert que le JAVA USB API n'est pas fiable sur l'OS windows donc maintenant j dois voir un autre langage de programmation pour voir si c'est possible la liaison avec l'USB.y t'il klk qui a travaillé sur le langage JAVA avec l'USB et qui pense que mon projet est réalisable avec le JAVA????
    3- comment faire la connexion de ma carte avec le PC afin d'avoir le temps et la date dés que le technicien appuie sur les boutons ??
    SVP c'est la galaire pour moi et j sais bien que je demande trop de choses mais je n'ai publié dans ce forum que lorsque j me suis bloqué pour de bon et c'est trop tard pour mon avancement dans le projet donc SVP SVP essayez de me répondre le plus tôt possible
    MERCI d'avance)

  28. #27
    Altxi

    Re : programme en c de l'utilisation de USB en pic 18f2550

    Bonjour,

    je suis actuellement en stage et je débute dans le monde des PIC, mon entreprise utilise le compilateur "Source Boost". Je dois mettre en place une liaison USB et j'ai chercher un peu partout sur internet pour mieux comprendre les stacks et comment mettre en place la liaison. Je n'ai pas encore très bien compris l'histoire du bootloader mais je pense que ça va venir^^. Mais sinon j'ai une question, est-ce que je peux compiler les exemples donnés par microchip avec "Sources Boost" ?

    Je vous remercie par avance.

  29. #28
    diabolus

    Re : programme en c de l'utilisation de USB en pic 18f2550

    bonjour a tous jaurai voulu savoir si c possible de metre a resonateur de 40 mhz a la place de 20mhz pour le montage pour le controle du pic 18f2550 pour le programer

    c pour pour controler un ecran 4x20 en tx rx si c possible vu que le port scl et sda son utiliser pour l ecran

  30. #29
    RISC

    Re : programme en c de l'utilisation de USB en pic 18f2550

    Salut,
    Le quartz à 40MHz n'est pas nécessaire, ni souhaitable. Le PIC18F2550 possède une PLL interne qui multiplie par 4. Tu mets 10MHz et tu actives la PLL dans les bits de configuration.
    Toutefois, si tu veux faire de l'USB, il vaux mieux utiliser 8MHz car il faut pouvoir atteindre absolument 96MHz après une division entière et une multiplication par 24.
    Exemple : quartz 8MHz divisé par 2 = 4MHz x 24 = 96MHz (division ensuite par 2 en interne) = 48MHz
    a+

  31. #30
    adipie

    Re : programme en c de l'utilisation de USB en pic 18f2550

    Tu télécharges la version d'évaluation gratuite de MikroC Pro et tu vas dans l'aide.
    Help
    MikroC Pro for Pic libraries
    Hardware libraries
    Usb librarie
    A cet endroit tu as un exemple de programme.

Page 1 sur 3 12 DernièreDernière

Discussions similaires

  1. Interface PC - PIC 18F2550 en USB
    Par mimi35garry dans le forum Électronique
    Réponses: 10
    Dernier message: 11/04/2015, 04h38
  2. Pic 18f2550 usb
    Par invite5075ce37 dans le forum Électronique
    Réponses: 3
    Dernier message: 13/01/2012, 00h16
  3. PIC 18F2550 et USB HID
    Par koceila882 dans le forum Électronique
    Réponses: 5
    Dernier message: 11/07/2011, 11h45
  4. PIC 18F2550 pour l' USB
    Par Shaiton dans le forum Électronique
    Réponses: 7
    Dernier message: 26/05/2011, 22h34
  5. pic 18f2550 & usb
    Par invitee5173b0d dans le forum Électronique
    Réponses: 0
    Dernier message: 05/08/2008, 15h29
Découvrez nos comparatifs produits sur l'informatique et les technologies.