Bienvenu(e)! Identification Créer un nouveau profil

Recherche avancée

Interface USB HID <====> CAN avec deux PICs...

Envoyé par Krypton 
Interface USB HID <====> CAN avec deux PICs...
lundi 12 décembre 2011 00:10:23
Bonjour tout l'monde,

J'aimerais savoir si un d'entre vous aurait déjà réalisé une interface pour transmettre sur le bus CAN via le port USB en classe HID ?

Je m'explique... Je suis à me construire un système de domotique similaire à Domocan de Bigonoff mais j'aurais besoin de gagner de la vitesse en remplacant son interface RS232-CAN qui est limitée à 115K par une interface HID-CAN qui me permettrait de grimper à 500Kbits/s entre le PC et le bus CAN.

Comme on le sait tous, aucun PIC 8 bits ne contient à la fois un port USB et un port CAN, j'ai donc pensé à faire mon interface avec deux PICs comme suit: USB <-> 18F2550 <-> SPI <-> 18F2580 <-> CAN.

Je maitrise assez bien le 18F2550 et l'HID et aussi le 18F2580 et le bus CAN mais je suis complètement perdu avec la liaison de deux PICs en SPI. Si quelqu'un a des idées à partager pour le SPI, on pourrait ainsi créer une interface beaucoup plus rapide pour le système Domocan ou autre.

Un gros merci d'avance.
Richard.

Re: Interface USB HID <====> CAN avec deux PICs...
mardi 13 décembre 2011 11:34:48
Salut,

Tu veux te lier absolument au SPI? Pour une liaison entre deux pics tu pourrais simplement faire une liaison UART.

Mais sinon, où bloques-tu dans ta liaison SPI?

Benjamin

.: [www.roboticus.org] :. Control your own world !
Re: Interface USB HID <====> CAN avec deux PICs...
mardi 13 décembre 2011 15:16:43
Salut Benjamin,

Tout d'abord merci de ta réponse rapide. Je trouve ton site vraiment bien fait et je suis très surpris d'avoir trouver un forum de discussion aussi dédié au USB-HID pour PIC. C'est dommage que le HID est encore méconnu aujourd'hui et que ce forum a si peu de participation. Bon, on va essayer d'y mettre de la vie !

> Pour une liaison entre deux pics tu pourrais simplement
> faire une liaison UART.

Si tu a un exemple fonctionnel qui permet d'atteindre 500Kbits/s en USART, je suis preneur.

J'avais fait quelques essais il y a quelques mois en SPI mais c'était plutôt boiteux. J'utilise présentement mikroC Pro v4.60 de mikroelektronika, très beau mais semble avoir beaucoup de bugs dans les librairies. Y faut que je me remettre au C18 de Microchip. Je viens justement de me commander un VRAI Pickit3 de Microchip qui devrait arriver cette semaine, j'ai hâte... smiling smiley

Autre question pour toi mon expert: Peut-on transmettre plusieurs trames plus courtes que 64 octets en moins d'une milli-seconde en HID ? Comme par exemple 2 trames de 12 octets à l'intérieur de 500 micro-secondes disons.

Richard.
Re: Interface USB HID <====> CAN avec deux PICs...
jeudi 15 décembre 2011 15:58:50
Salut,

Tout d'abord merci de ta réponse rapide. Je trouve ton site vraiment bien fait et je suis très surpris d'avoir trouver un forum de discussion aussi dédié au USB-HID pour PIC. C'est dommage que le HID est encore méconnu aujourd'hui et que ce forum a si peu de participation. Bon, on va essayer d'y mettre de la vie !
Merci, mais je ne suis pas innocent non plus, j'ai pas mal d'articles que je dois encore écrire et qui se font désirer....

Pour tes questions :

En effet je viens de revoir mes calculs, j'ai déjà réalisé un débit de 250kb/s mais pas du 500. Mais j'ai fait du 250kb avec un pic cadencé à 20Mhz, le 18f supporte 40Mhz, donc je crois que ça doit être possible, faudrait que je me replonge dans mon code pour voir comment j'avais configuré les registres.

Concernant le HID, non c'est une trame de 64octets toutes les frames USB soit toutes les millisecondes.

Pourquoi veux-tu un débit de 500kb/s, c'est vraiment énorme pour de la domotique?

A+

Benjamin

.: [www.roboticus.org] :. Control your own world !
Re: Interface USB HID <====> CAN avec deux PICs...
jeudi 15 décembre 2011 18:16:09
Rebonjour,

> Merci, mais je ne suis pas innocent non plus, j'ai
> pas mal d'articles que je dois encore écrire et
> qui se font désirer....

Désolé, pas vraiment compris le sens de la réponse...

> En effet je viens de revoir mes calculs, j'ai
> déjà réalisé un débit de 250kb/s mais pas du
> 500. Mais j'ai fait du 250kb avec un pic cadencé
> à 20Mhz, le 18f supporte 40Mhz, donc je crois que
> ça doit être possible,

Oui, mon 18F2550 roule à 48MHz et le 18F2580 à 40MHz, y a peut-être même une passe pour monter à 920K!

> Concernant le HID, non c'est une trame de 64octets
> toutes les frames USB soit toutes les
> millisecondes.

Ça confirme ce que j'avais compris de tes explications sur une page, merci là c'est très clair.

> Pourquoi veux-tu un débit de 500kb/s, c'est
> vraiment énorme pour de la domotique?

J'ai un polling à faire sur pas mal de sondes de température et d'autres entrées, je ne veux pas finir avec une trame totale qui dure 200 ou 400ms, ça perturbe trop le "temps réel" du programme. Je m'y prend aussi peut-être très mal dans mon approche.

Je vais continuer à chercher du côté du SPI pour faire communiquer mes deux PICs, reste qu'une interface très rapide est toujours souhaitable.

Prochaine,
Richard.
Re: Interface USB HID <====> CAN avec deux PICs...
lundi 19 décembre 2011 11:41:50
Salut,

Quote

Désolé, pas vraiment compris le sens de la réponse...

Je voulais dire qu'il n'y a certe pas beaucoup d'activité sur le forum, mais que si je prenais le temps d'écrire de nouveaux articles ça mettrait peut-être plus de vie sur le site également.

Je suis en plein déménagement pour le moment et je n'aurai internet qu'à la fin de semaine, pour nowel smiling smiley. Mon pc avec mes différents programmes n'est pas encore rebranché je regarderai ça a ce moment.

Concernant ton architecture domotique et tes différentes sondes, c'est difficile d'analyser comme ça mais je crois qu'il y a certainement quelque chose à améliorer de ce coté également.

Avec le pickit 3 tu peux aisément faire un débug in-circuit avec un mode pas à pas. Tu pourras vraiment voir ou ça coince. Sinon poste toujours la configuration de tes registres mais je fais rarement des liaisons spi.

A++

Benjamin

.: [www.roboticus.org] :. Control your own world !
Re: Interface USB HID <====> CAN avec deux PICs...
mercredi 8 août 2012 23:34:10
Bonjour,

Je suis confronté depuis maintenant une semaine à un problème assez complexe.
En fait, j'utilise une carte d'interface USB pratiquement semblable à celle qui se trouve ici :
[www.roboticus.org]

Lorsque je relie la carte à des ordinateurs fixes et portables xp et seven (32 bits, 64bits) le périphérique USB est détecté et mes applications de tests marchent bien, mais lorsque je relie la carte aux ports usb d'une tablette tactile windows.
J'obtiens un message d'avertissement lié au périphérique usb : code 10 le périphérique ne peut pas démarrer

Le problème est que lorsque j'essaie une trentaine de fois, l'application semble fonctionne une ou 2 fois mais je ne sais pas pourquoi, tout le reste du temps, j'ai le warning et l'application ne marche pas.

Que faire? Vos conseils et suggestions seront les bienvenues.

Merci d'avance
Re: Interface USB HID <====> CAN avec deux PICs...
jeudi 9 août 2012 20:16:10
Salut,

Les causes peuvent être très diverses. Je dirais de regarder en priorité si:
- ta carte ne consomme pas trop de courant. Il est probable que ta tablette tactile n'a pas les mêmes capacités au niveau puissance fournissable par le port USB. Si tel est le cas en fournissant une allmentation externe à ta carte ça marchera.
- deuxième hypothèse, la tablette supporte-t-elle d'avoir des périphériques? Je suppose que oui si tu me dis qu'au bout de trente fois ça fonctionne (et ça l'oriente vers l'hypothèse 1)
- troisième point, un défaut de driver, quel type de windows as-tu sur ta tablette?

À+

Benjamin

.: [www.roboticus.org] :. Control your own world !
Re: Interface USB HID <====> CAN avec deux PICs...
vendredi 10 août 2012 08:49:43
Merci beaucoup Benjamin pour ces éclaircissements,

En effet le problème peut venir de la puissance ou du courant que la tablette fournie à la carte d'interface usb.
Cependant je me dis que la carte devrai nécessiter moins de 100 mA et comme la tablette fournit environ 500 mA
pour gérer 2, 3 périphériques usb donc ça devrait aller. Mais ça vaut le coup d'essayer.

Le driver détecté sur la tablette est le meme que celui de mon PC alors que la carte fonctionne parfaitement sur mon ordi.
Donc ça ne doit pas venir de là.

Je vais donc essayer l'idée de l'alimentation externe pour voir si ça fonctionne.

Je te tiens au courant.
Merci encore et bonne journée !
Re: Interface USB HID <====> CAN avec deux PICs...
vendredi 10 août 2012 16:09:59
Regarde également, au cas ou, dans le descripteur de l'usb quelle consommation est annoncée. Peut-être (je dis peut-être) que la carte consomme moins que ce que la tablette peut délivrer mais plus que ce qui a été encodé dans le descripteur et que la tablette le bloque (je n'ai jamais observé ce phénomène mais on ne sait jamais)

A++

.: [www.roboticus.org] :. Control your own world !
Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.

Cliquez ici pour vous connecter