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

Recherche avancée

Réalisation d'un Voltmètre USB 1 canal.

Envoyé par thibzult 
Réalisation d'un Voltmètre USB 1 canal.
vendredi 24 août 2007 21:57:06
Bonjour,

Je souhaite depuis longtemps développer une interface qui me permette d'acquérir une tension par ordinateur.
J'ai tout d'abord débuté avec le port // puis le com et n'ayany obtenu que des résultats très mitigés avec des bidouilles pas possible, je voudrais à présent réaliser quelque chose de fonctionnel et surtout qui soit rigoureux dans la construction et le fonctionnement.
L'idée m'est donc venu de me tourner vers le port USB et ce site m'a orienté vers le PIC 18f4550.

J'ai de solides connaissances en électricité (composants passif et actif), de bonnes bases en programmation Basic, et VB (malheureusement pas en C) mais, et je le regrette beaucoup, je ne connait absolument rien à l'électronique.

Le montage électrique du 18f4550 ne me posera aucun problème, j'ai tous les composant nécessaires.
Non, ce qui va me poser problème c'est la programmation du PIC.
Mes questions sont donc les suivantes :

1) Matériellement, la connexion directe du PIC au port USB permet elle de le programmer ou faut il encore acheter une interface pour faire la liaison ?

2) Une fois que la liaison est établie, comment programme-t-on le PIC pour lui dire "Mesure moi la tension sur la patte X par raport à la masse z" ? Est-ce à ce moment ou du côté VB ?

3) Faut il absolument maitriser le C pour programmer le PIC ? J'ai lu les deux articles sur les cartes USB et je doit avouer que jusqu'à ce qu'on en arrive à la partie software Windows, j'ai rien compri, ou très peu.

4) En gros, pour résummer, à quoi sert la programmation du PIC et que faut-il mettre dans cette opération ?

5 bonus ) Une fois que c'est fait, puis-je espérer pouvoir développer mon application du côté soft et l'améliorer sans avoir à re-programmer le PIC ?

Bon ça fait beaucoup de question mais j'ai bien lu attentivement les articles de ce site avant de les poser.

Merci d'avance !
A bientôt,
Thib

Re: Réalisation d'un Voltmètre USB 1 canal.
samedi 25 août 2007 12:39:32
Salut,

Un voltmètre avec un 18f4550 est quelque chose de tout a fait réalisable. Bien sur pour le faire correctement une étude approfondie du circuit est nécessaire, afin de ne pas tout faire griller...

Pour répondre a tes questions dans l'ordre :

1) oui il est possible de programmer directement le 18f4550 depuis le port USB mais pour cela il faut néanmoins et malheureusement pour toi effectuer une première programmation depuis un programmateur externe afin de charger sur le 18f4550 un bootloader. Le programmateur sur port série dispo sur ce site fonctionne très bien pour ça

2) Tu dois pour ça programmer la puce, en écrivant un programme (en C tel que présenter sur ce site, tu trouveras des compilateur basic sur Internet mais ils sont payant). Ce programme doit gérer les informations qui entre, donc envoyée de l'ordinateur, et en fonction de ce qui entre effectuer l'action demandée et renvoyé la valeur. Je pense que l'exemple sur le protocole HID dispo sur ce site pourra beaucoup t'inspirer, car d'ailleurs, il mesure une tension.

3) Il existe un compilo basic, mais il est payant, regarde sur [www.mecanique.co.uk] ... Sinon apprendre le C est un plus si tu es motivé

4) Un pic c'est une puce qui va faire ce que tu veux, tu écris un programme décrivant ce qu'elle doit faire et la puce agit en fonction. La programmation du pic et l'élaboration du programme est obligatoire et tu ne sauras pas y échapper et pour répondre a ta question bonus, tout dépend de ce que tu comptes faire et comment tu fais ton programme, si au sein de ton programme tu entres différents paramètre que tu peux configurer depuis l'ordinateur, dans ce cas là oui, mais si tu te rends compte qu'il te manque un paramètre tu devras reprogrammer ta puce afin d'y ajouter l'option...

Ce que je te conseil, c'est de lire attentivement l'application d'exemple présentée sur ce site, et de poser tes questions sur ce que tu comprends ou ce que tu comprends pas.... Même si tu es motivé, l'idéal pour t'aider à comprendre le fonctionnement serait que tu dessines un schéma du fonctionnement du programme qui est dans le pic a partir des explications données, et qu'on en discute... Tu verras directement alors comment ça marche

N'hésite pas à poser toutes tes questions

Bon travail

Benjamin
Re: Réalisation d'un Voltmètre USB 1 canal.
samedi 25 août 2007 21:01:15
Bonjour,

Tout d'abord merci pour cette réponse rapide.
Comme conseillé, j'ai lu attentivement les articles et -je n'avais pas été très clair hier- je confirme que mon intention est dans un premier temps de réaliser exactement la carte HID de ce site. Puisqu'elle fait ce que je veut faire pourquoi s'en priver ;-) D'autant que ça me permettra de voire comment fonctionne les E/S numérique sur le PIC.

J'avais téléchargé hier EasyHID et aujourd'hui c'était le tour de WinPIC.
Juste avant de poser mes questions, pour le bootloader, j'ai cri comprendre au fil du forum que pour toi ça n'a jamais marché ; celà vaut-il le coups que j'essaie moi ou non ? Une fois que le Programmateur est construit...

Je vais essayer de poser mes question dans l'ordre de réalisation :

1) J'ai téléchargé les fichiers sources en C. Bon en fait je n'ai pas de gros problème à les comprendres (étant étudiant -en chimie, d'accord ça n'a rien à voir avec l'informatique mais bon- j'ai la suite Visual Studio à ma disposition, ça m'aide aussi). J'ai repérer le fichier user.c dans lequel est inscrit le programme du PIC. Seulement il y a beaucoup d'autre fichier dans l'archive ! J'ai repéré avec les includes ceux qui étaient important mais quid des autres ??

2) Si je réalise le programmateur décrit dans ce site, lequel faut-il que je choisisse dans la configuration hardware de WinPIC ?

3) Question basique je pense je vais chercher donc tu peux la sauter si t'as pas le temps : on a du C très bien mais WinPIC veut un .hex ! Comment passe t on du C au .hex ?

4) Tant qu'on parle du programateur, je n'aurais que le 18f4550 à programmer, je peut donc drectement appliquer ta modification tant que je respecte bien le branchement de RB6, RB7, MCLR, VDD, et VSS ?

Maitenant on passe côté ordinateur.
Si j'ai bien compris, pour comuniquer et stocker les information, on utilise un "Buffer" prenant la forme qu côté PIC d'une mémoire à "64 cases" et du côté ordinateur d'un tableau lui à 65 cases (la case 0 étant réservée). Quant il communique il se balance ça j'ai bien compris ? PIC vers PC : on stocke le buffer dans le table ligne à ligne et PC vers PIC on assigne une valeur à une ligne du Buffer, valeur qui est ensuite interprété par le PIC et traduis en action en fonction de ce qui a été indiqué dans le C.

Bon ça on va dire que c'est pas trop faux.
Ce que j'ai pas comrpis :
5) Bit de poids faible, Bit de poid fort ? Kesako ?

6) J'ai bien compris le coups de la case 1 à 255 pour la mesure ça ok. Mais après l'arithmétique (je parle bien du calcul mathématique) pour revenir à une valeur réelle ça m'échape (en parlant de ça il n'y aurait pas une erreur dans l'article, tu as écris "nous reconstituons une seule valeur binaire" elle est vraiment binaire cette valeur ??????). Bon c'est vrais que j'ai pas été très attentif pour le calcul binaire en cours quand j'étais lycéen :-(

7) ça c'est la petite dernière mais pareil je peut peut être trouver comme un grand donc perd pas de temps la dessus, j'ai pas compris comment on identifiait la carte USB. Je le doute que, recevant des infos, il faut être sur que ça vient bien d'elle et pas de la souri par exemple, mais cet identifiant c'est nous qui l'atribuons ? C'est l'ordinateur ? J'en suis pas encore la alors considère cette question comme vraiment bonus !

Merci beaucoup de m'aider !
Prend ton temps pour répondre, je vais dejà réaliser le programmateur.
Mon objectif c'est d'arriver à programmer le PIC tant que j'ai encore un PC avec port de COM sous la main ;-)

A bientôt !!
Thib
Re: Réalisation d'un Voltmètre USB 1 canal.
dimanche 26 août 2007 15:14:40
Salut,

Quote

Juste avant de poser mes questions, pour le bootloader, j'ai cri comprendre au fil du forum que pour toi ça n'a jamais marché ; celà vaut-il le coups que j'essaie moi ou non ? Une fois que le Programmateur est construit...

Si si, ça marche très bien, il faut juste mettre le bon fichier linker afin de ne pas écraser le bootloader. Qui est celui ci

[roboticus.org]

Je te conseil de lire le pdf du picdem fullspeed usb qui explique pas mal de chose

[ww1.microchip.com]

Quote

1) J'ai téléchargé les fichiers sources en C. Bon en fait je n'ai pas de gros problème à les comprendres (étant étudiant -en chimie, d'accord ça n'a rien à voir avec l'informatique mais bon- j'ai la suite Visual Studio à ma disposition, ça m'aide aussi). J'ai repérer le fichier user.c dans lequel est inscrit le programme du PIC. Seulement il y a beaucoup d'autre fichier dans l'archive ! J'ai repéré avec les includes ceux qui étaient important mais quid des autres ??

Seul User.c est important, Main.c est aussi important dans d'autre application comme la gestion des interruptions mais tu peux t'en passer pour ton application, tout le reste c'est pour gerer l'usb, le code a été écrit par microchip, mieux vaut leur faire confiance

Pour la config de WinPIC au niveau du programmateur c'est le TE20

Pour la config de WinPIC au niveau du pic:
[www.roboticus.org]

A noter que la ou il est mis ID tu dois mettre 0000 04D8 0000 000x ou x peut être 5 par exemple, quand tu devras charger le bootloader regarde dans la documentation du picdem la valeur du PID du bootloader, c'est 4 ou 5 je ne sais plus

Quote

3) Question basique je pense je vais chercher donc tu peux la sauter si t'as pas le temps : on a du C très bien mais WinPIC veut un .hex ! Comment passe t on du C au .hex ?
En compilant grinning smiley... il te faut pour ça MPLAB et CC18 dispo sur www.microchip.com

Quote

4) Tant qu'on parle du programateur, je n'aurais que le 18f4550 à programmer, je peut donc drectement appliquer ta modification tant que je respecte bien le branchement de RB6, RB7, MCLR, VDD, et VSS ?

Oui

Quote

5) Bit de poids faible, Bit de poid fort ? Kesako ?

Ca c'est la base même du binaire... quand tu as par exemple un octet... soit 8 bits, le bit de poid fort est celui qui représente la valeur la plus importante, soit le bit 7... s'il est a 1 il représente 128... le bit de poid faible est celui qui représente la valeur la plus faible... soit le bit 0 ... qui représente 1.... Quand tu as une valeur sur 16 bits... tu peux parler de 8 bits de poid fort et 8 bits de poid faible... soit un octet de poid fort et un octet de poid faible...

Quand je parle de reconstruire une valeur binaire, je ne sais plus exactement ou c'est mais je pense que c'est parce que la valeur est cotée sur 10 ou 12 bits et qu'elle est envoyée dans 2 octets différents, il faut donc reformé une seule valeur a partir de ces deux octets...

Pour ce qui est du calcule... si 255 = 5V, si 0 = 0V... pour trouver la valeur en volt de n'importe quelle valeur... 5*la valeur/255 ...

Pour ta question bonus, renseigne toi sur ce qu'est le PID et le VID... product identifier device, et Vendor ... ça décrit de façon unique ton périphérique... dans notre cas on utilise pour le développement un PID et VID de microchip... mais pour une utilisation commercial il faut en acheter un... et dans ce cas là il n'y a que ton périphérique qui peut posseder cette valeur là

voilà, j'espere que ça t'aura éclairci... Installe bien MPLAB et CC18 dispo sur le site de microchip gratuitement, ça t'aidera...

A+

Benjamin

Re: Réalisation d'un Voltmètre USB 1 canal.
mardi 28 août 2007 21:56:10
Bonjour,

J'ai construit le programmeur type JDM du site ... mais ... ça ne marche pas !
Je suis pourtant quasiment certains des composants utilisés (transistors et diodes vérifiées et dans le bons sens, bonne résistance, Zener OK, capa dans el bon sens et ok), et presque autant de mon montage (mon père le vérifiera demain mais je l'ai déjà vérifié 3 fois).
Par ailleurs j'ai bien une tension d'alimentation de 5V et des brouettes au borne du pic (5,27 pour être précis).
Et pourtant WinPic me dis qu'il n'y a pas de programmeur de connecté !!
Test device me renvoi unknown.

Je ne vois qu'une seule erreur possible, que je me soit planté dans le cablage des pins du DB9. Je n'ai pas utilisé de broche femelle implenté sur la carte, je suis venue directement cablé dessus ; SUR la fiche FEMELLE qui va se connecter à mon PC j'ai :
Pin 3 : Base de T2
Pin 4 : R1 -> collecteur de T1
Pin 5 : +5V (d'ailleur le coups du montge flottant c'est pas facile à comprendre au debut sachant que la pin 5 normalement c'est GND sur les DB9)
Pin 7 : RB6
Pin 8 : Collecteur de T1
Bien entedu vérifié à l'ohmmètre.

Seul petite liberté prise par rapport au schéma, l'utilisation de 2N2222 (NPN aussi) à la place des BC547 ; comme c'est de la commutation il ne devrait pas y avoir de pb !

Et pourtant ("elle tourne"winking smiley ça marche pas !!

Y'a a t-il une configuration particulière de WinPIc ? de winXP ?
J'avoue que ça m'ennui un peu ... surtout que je quitte mon PC avec port de com mercredi soir ;-)
Je vais continuer à chercher !

Merci d'avance !
Thib

PS : au fait bravo pour le site !
Re: Réalisation d'un Voltmètre USB 1 canal.
jeudi 30 août 2007 23:48:17
Bonsoir thibzult,

En lisan tton dernier poste je me suis demandé si tu avais mis un chip sur ton programmateur avant de clkier sur ''detection device'' si tu n en met pas c'est normal.

Kiki_surface

Ps hors_sujet : Ben je suis passé au CMS avec le four de Jelectronic // Video

EDIT: je devais etre fatigué quand j ai posté. En relisant je me suis appercu que oui tu mettais bien un chip pour tester....

Moi j utilise ce programmateur ca a fonctioné du 1er coup. Mais j ai 2 autre copains qui ont eu des problemes avec.

1er copain : il avait inverser les 2 Résistances
2eme copain : j ai jamais vu pourquoi il y avait un HIC alors il a refait la plaquet et hop smiling smiley

BREF : ce Programmateur fonctione

Ma config : JMD programmer sur port 1 avec XP pro SP2




Modifié 2 fois. Dernière modification le 01/09/07 14:23 par kikisurface.
Re: Réalisation d'un Voltmètre USB 1 canal.
dimanche 2 septembre 2007 15:29:42
Hep,

Excellent ta vidéo sur le four... Faudra que j'essaye de m'en fabriquer un... C'est bien un boitié QFN que tu es parvenu à souder avec non?

Pour le programmateur, il fonctionne oui, maintenant le probleme peut venir soit d'une erreur au montage, soit d'un probleme de port com... et dans ce cas là on sait trop rien y faire... Les connexions doivent être parfaite

A+
Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.

Cliquez ici pour vous connecter