[Analogique] Câblage du bus USB entre 2 Microcontrôleurs
Répondre à la discussion
Affichage des résultats 1 à 18 sur 18

Câblage du bus USB entre 2 Microcontrôleurs



  1. #1
    capresdt

    Câblage du bus USB entre 2 Microcontrôleurs


    ------

    Bonjour,

    je veux connecter 2 PIC 18F4550 via le bus USB, le premier PIC envoie des ordres au deuxième PIC via le bus usb. (PS. les deux pics ne sont pas montés sur la même carte, chaque PIC possède sa propre carte électronique, du coup ils ne sont pas alimentés par la même ALIM .

    moi je les ai connecté comme ça, je voulais vérifier avec vous :

    D+ PIC (1) ------> D+ PIC (2)
    D - PIC (1) ------> D- PIC (2)
    0V PIC (1) ------> 0V PIC (2)

    C'est juste ?

    -----

  2. #2
    naru2to

    Re : Câblage du bus USB entre 2 Microcontrôleurs

    Bonjour,
    c'est impossible, il faudrait que l'un des microcontrôleurs soit configuré en USB host, ce qui n'est pas possible avec un PIC18F aussi ancien que les 2550/4550.
    Il vaudrait mieux passer par une liaison série classique (UART, SPI, I²C) avec un protocole plus ou moins élaboré selon le besoin (détection des erreurs, etc).
    Si l'USB est vraiment indispensable il faudra choisir un microcontrôleur plus performant capable d'être host USB (PIC24F, PIC24E, PIC32 ou autre fabricant genre STM32)

  3. #3
    capresdt

    Re : Câblage du bus USB entre 2 Microcontrôleurs

    Bonjour

    @naru2to

    Merci pour ta réponse,
    l'USB est indispensable sur l'un des microcontrôleur.

    j'ai vu sur internet qu'il excite des convertisseurs I2C - USB (exemple le circuit ci-joint)
    tu trouves que c'est possible avec ce genre de convertisseur de faire une connexion entre un 1er PIC en USB et le 2eme en I2C

    https://docs-emea.rs-online.com/webd...6b81451bdd.pdf

  4. #4
    naru2to

    Re : Câblage du bus USB entre 2 Microcontrôleurs

    Non c'est pas possible, le FT232 fonctionne uniquement en périphérique USB, il ne gère pas le mode host. Il faut passer sur un microcontrôleur plus gros et compatible USB On-the-go (OTG).
    Le protocole USB est bien plus complexe qu'une liaison UART/RS232, SPI ou I²C, il faut beaucoup de ressources et une bibliothèque de fonctions adaptées. Il n'y a qu'à voir la stack USB fournie par Microchip.
    Dernière modification par naru2to ; 07/09/2018 à 15h11.

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

    Re : Câblage du bus USB entre 2 Microcontrôleurs

    @naru2to

    et si je remplace l'un des microcontrôleurs par un Raspberry Pi 3, je pense que le Raspberry gère le mode host. ça sera possible?

  7. #6
    naru2to

    Re : Câblage du bus USB entre 2 Microcontrôleurs

    Oui effectivement! mais on passe quand même d'un microcontrôleur 8-bit à un ordinateur! ^^ Si on en savait un peu plus sur l'application on pourrait donner des informations plus pertinentes

  8. #7
    capresdt

    Re : Câblage du bus USB entre 2 Microcontrôleurs

    @naru2to

    en fait la première carte avec le microcontrôleur (déja conçu et fonctionne depuis longtemps) c'est une carte de commande de moteurs, d'habitude je branche cette carte au PC via l'USB, et via une interface graphique j'envoie les commandes pour commander les moteurs.
    maintenant, je ne veux plus utiliser mon PC pour commander cette carte, je veux utiliser un nouveau système (pas encore conçu). par exemple, pour faire tourner le moteur dans un sens au lieu d'envoyer une commande via l'interface graphique depuis le PC, j'appuis sur un bouton.

    la contrainte que la 1ere carte existe déjà et uniquement le port USB est accessible.

    tu trouves que c'est faisable avec un Raspberry?

  9. #8
    naru2to

    Re : Câblage du bus USB entre 2 Microcontrôleurs

    Avec le Raspberry l'avantage c'est que tu as un OS, qui prend en charge l'USB. Mais il reste la complexité de faire le driver pour prendre en charge le périphérique USB si ce n'est pas un périphérique générique (émulation port COM). En plus il faut refaire un programme pour envoyer les commandes à la carte (interface graphique, terminal, script). Je ne connais pas assez les systèmes Unix pour t'aider de ce côté là...

  10. #9
    naru2to

    Re : Câblage du bus USB entre 2 Microcontrôleurs

    L'autre solution c'est de modifier le firmware du 18F4550 pour virer l'USB et utiliser RC4/RC5 en UART soft (bit banging), ça permettrait de communiquer avec n'importe quel autre microcontrôleur en UART

  11. #10
    PA5CAL

    Re : Câblage du bus USB entre 2 Microcontrôleurs

    Un Raspberry Pi est un PC. Sa différence essentielle avec un PC sous Windows, c'est son système d'exploitation et les pilotes qui y sont attachés.

    Si le micro-contrôleur réalise une fonction USB standard ou si tu disposes du pilote adéquat, alors l'interfaçage ne posera pas de problème. Dans le cas contraire, il faudra développer le pilote USB.

    Il faudra ensuite développer l'application qui lira l'état du bouton et enverra les ordres au micro-contrôleur via l'USB.

    [EDIT : grillé par naru2to]
    Dernière modification par PA5CAL ; 07/09/2018 à 16h38.

  12. #11
    capresdt

    Re : Câblage du bus USB entre 2 Microcontrôleurs

    Merci, je ferai la solution avec Raspberry

  13. #12
    capresdt

    Re : Câblage du bus USB entre 2 Microcontrôleurs

    Merci PA5CAL, j'ai pas bien compris la 2eme remarque,

    la fonction USB existe déjà sur la première carte, puisque j'arrive à envoyer maintenant mes commande depuis le PC vers la carte.

    il faut maintenant créer l'application sur le Rasberry pour envoyer les ordres au micro-contrôleur via l'USB. (comme tu dis)

    mais le soft qui existe maintenant sur le PIC, normalement, il change pas ?

  14. #13
    naru2to

    Re : Câblage du bus USB entre 2 Microcontrôleurs

    Non le soft du PIC4550 ne change pas.

    Mon message par rapport à la modification du soft c'était si tu voulais bypasser le protocole USB en utilisant les pins RC4 et RC5 à la place de D+ et D- pour émuler un port série (RS-232) qui pourrait être utilisé pour communiquer avec un autre petit microcontrôleur.

  15. #14
    bobflux

    Re : Câblage du bus USB entre 2 Microcontrôleurs

    J'allais te dire de bien vérifier que le périphérique USB ne nécessite pas de drivers ou protocole particuliers, mais je pense que tu as une partie de la réponse :

    > la fonction USB existe déjà sur la première carte, puisque j'arrive à envoyer maintenant mes commande depuis le PC vers la carte.

    Tu veux dire que tu as écrit un programme sur le PC qui commande la carte ? Tu connais donc le "langage" que parle cette carte ? Elle émule un port série ?

    Par exemple, si tu veux le faire avec un RPi, il faut être sûr que la carte n'a pas besoin d'un driver qui ne marche que sur PC ! C'est la première chose à éclaircir.

    Ensuite, si c'est bon, il suffit de choisir un matériel qui se raccorde à l'interface IHM que tu veux (boutons, joystick? écran? clavier? autre?) et qui fasse USB Host, et qui se programme dans un langage que tu maîtrises. Si un RPi satisfait ces conditions, c'est une bonne option. Comme c'est de la commande moteur, ça doit consommer un max de courant, donc on va pas pleurer les quelques watts du RPi. Et c'est pas cher, donc si le RPi te permet d'économiser l'apprentissage de l'utilisation d'un uC en USB Host ou OTG, ce qui est loin d'être évident, c'est que du bénef.

    En question subsidiaire, si c'est une carte de commande de gros moteurs, il y a sûrement une isolation galvanique entre le port USB et la partie puissance. Si jamais la carte a un chip USB-Série suivi par des optos sur la liaison série, tu peux pirater ça et la commander avec un port série.

  16. #15
    Vincent PETIT
    Animateur Électronique

    Re : Câblage du bus USB entre 2 Microcontrôleurs

    Salut,
    Tout a été dit mais je rajouterai juste que comme l'USB OTG du Raspberry gère déjà toutes les classes USB (HID, CDC et MSC) c'est clair qu'il ne faut pas s'en priver.

    A voir mais il y a toutes les chances que ta carte existante utilise la classe CDC pour être vue comme un port série virtuel, si c'est ça, il n'y a plus qu'à écrire sur le port ttyACM0 du Raspberry pour communiquer.
    Là où il n'y a pas de solution, il n'y a pas de problème.

  17. #16
    capresdt

    Re : Câblage du bus USB entre 2 Microcontrôleurs

    Bonjour,

    @Vincent PETIT oui effectivement j'utilise la classe CDC, comme un port série virtuel

    @bobflux j'ai pas écrit de programme particulier sur PC, j'utilise une interface du logiciel National instrumentation, je détecte le port USB en tant que port série

  18. #17
    capresdt

    Re : Câblage du bus USB entre 2 Microcontrôleurs

    Bonjour,

    une autre question à propos le même circuit, est ce qu'en alimentant VDD et Vref à 3.3V, j'aurais une sortie en SPI en 3.3V également, donc je peux brancher ça directement au Raspberry qui a un bus SPI en 3.3V ?

    Merci

  19. #18
    capresdt

    Re : Câblage du bus USB entre 2 Microcontrôleurs

    @admin merci de supprimer mon dernier message, je l'ai pas publier au bon endroit

Discussions similaires

  1. Différence entre microcontroleurs
    Par ATLN dans le forum Électronique
    Réponses: 19
    Dernier message: 25/02/2013, 09h50
  2. communication rs232 entre deux microcontroleurs
    Par invitedd396de2 dans le forum Électronique
    Réponses: 0
    Dernier message: 29/04/2011, 15h57
  3. Différences entre microcontroleurs Microchip et ST
    Par jorg1n dans le forum Électronique
    Réponses: 8
    Dernier message: 03/09/2010, 14h06
  4. liaison série entre plusieurs microcontroleurs
    Par invitefc8e3092 dans le forum Électronique
    Réponses: 5
    Dernier message: 26/03/2009, 20h13
  5. Comparaison entre PC et microcontrôleurs
    Par invitecccc5a3b dans le forum Électronique
    Réponses: 0
    Dernier message: 26/05/2008, 11h31
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...