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

Recherche avancée

PIC 18F4550

Envoyé par jprenou 
PIC 18F4550
samedi 26 mai 2007 21:58:18
Bonjour à tous,

Tout d'abord, je suis informaticien et pas electronicien. Alors si je dis des betises n'hesitez pas à me reprendre.
Je suis actuellement sur un projet qui utilise un PIC18F4550 pour la communication USB. J'utilise le driver fourni pas MICROCHIP (release).

Je rencontre des problèmes avec la personne qui s'occupe de l'electronique.

Cette personne aimerait que je lise toutes les ms le port USB. Jusque là pas trop de souci, je programme en delphi, j'ai donc utilisé un MMTimer pour la précision et je passe par la DLL de MICROCHIP pour la lecture. Cette electronicien a mis un compteur de trame dans les trames envoyées pour être certain qu'il n'y a pas de perdu.

Et c'est la le hic. Des trames sont perdues.

Je voulais savoir si vous pouviez m'aider sur les questions suivantes:
- Est ce qu'il faut passer par la DLL de MICROCHIP ou faut il que je l'intégre dans mon application ?
- Recupere des trames de 64 bytes toutes les ms, est ce possible (techniquement et matériellement)?

Merci d'avance pour l'aide et les conseils que vous pourrez m'apporter.

A+

Jean-Philippe

Re: PIC 18F4550
samedi 26 mai 2007 22:14:07
Re,

J'apporte une précision: Après ouverture de la boite, ce n'est pas un 18F4550 mais un 18F2550.

Cependant mes questions sur la DLL et sur le debit restent valable.

Merci d'avance.

JP
Re: PIC 18F4550
dimanche 27 mai 2007 11:34:09
Bonjour,

Première petite chose, 2550 et 4550 c'est presque la même chose, donc pas de problème winking smiley

A l'inverse de toi, moi je suis électronicien, pas informaticien... on va voir ce qui est possible

Comme je vois ton problème est de recevoir toutes les ms des informations et visiblement des packets se perdent... Première chose que je trouve bizarre dans ton application c'est que tu gères la base de temps au niveau du PC, il serait beaucoup plus précis que ce soit le pic qui envoie toutes les ms des informations et que toi tu fasses simplement une écoute... J'ai déjà remarqué que lorsque l'on utilise des bases de temps trop faibles en Delphi, que le timer à du mal à suivre...

Point de vue du driver, là je coince un peu... C'est pour ça que j'utilise le système HID pour communiquer, c'est beaucoup plus simple... Normalement les sources de la DLL sont fournies par Microchip et je sais qu'il est possible de les reprogrammer... Tu peux donc très bien imaginer les insérer dans ton application Delphi.

Matériellement, le débit que tu désires est possible, maintenant en pratique c'est une autre histoire, le driver de microchip est capable d'avoir un débit élevé, mais il faut voir dans quelles conditions... Par exemple en HID (je ne connais que ça, désolé) ce n'est pas parce que mon débit max est de 64ko/s que je peux envoyé un octet tous les 64 millième de seconde... Je dois envoyé un paquet de 64 octets tous les millième de seconde pour obtenir ce débit là... ce n'est donc pas du tout la même chose... Le driver de microchip est-il donc capable d'envoyé un paquet toutes les millisecondes??? (Normalement oui mais on sait jamais)

Voilà, je ne sais pas si ça t'aide

Benjamin
Re: PIC 18F4550
dimanche 27 mai 2007 12:54:37
Salut Merci pour les infos.

Je ne comprends pas être à l'ecoute. Car pour lire le port USB, je suis obligé de faire un Read avec la DLL MICROCHIP. Et ça je suis obligé de passer par un timer pour le faire. Y a t'il un moyen pour ecouter en permanence des informations ?

Merci encore pour des précisions.
Re: PIC 18F4550
dimanche 27 mai 2007 14:04:21
Tu peux faire un thread qui a chaque fois que tu as reçu une information relance la fonction read... Si je ne me trompe pas, de ce que je m'en souviens, la fonction read a une longueur de vie, donc si tu lui mets une vie suffisament longue.... Je pense que quand tu relanceras la fonction, celle-ci te donnera la valeur lue quand le pic derriere aura envoyé quelque chose...
Re: PIC 18F4550
dimanche 27 mai 2007 17:46:26
Salut Benjamin,

J'ai fait ce que tu m'as dit. J'ai mis 100 ms dans la longueur de vie et je relance la fonction read dès que j'ai recue une info.

Mais la encore j'ai des pertes de trames.

As tu une autre idée.

Merci d'avance.
Re: PIC 18F4550
dimanche 27 mai 2007 19:47:25
Bonsoir,

Comment sais-tu que tes trames sont perdues? Est-ce qu'elles sont perdues ou écrasées par les nouvelles???
Re: PIC 18F4550
lundi 28 mai 2007 12:19:08
Salut Benjamin,

J'ai fait plusieurs tests pour reussir à trouver une valeur qui fonctionne au niveau de la durée de vie.
J'ai mis 2000 ms pour la durée vie + un MMTimer a une seconde qui relance la fonction read si celle ci a récupéré une info ou si elle est morte.

Merci beaucoup pour les conseils qui m'ont permi de trouver une solution.

A+

JP
Re: PIC 18F4550
lundi 28 mai 2007 15:34:45
Parfait,

Tout qui est bien qui fini bien comme je vois winking smiley

Benjamin
Re: PIC 18F4550
dimanche 28 mars 2021 09:51:44
Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.

Cliquez ici pour vous connecter