Aller au contenu


Photo
- - - - -

Une petite fiche sur les PICs ?


6 réponses à ce sujet

#1 GuillaumeD

GuillaumeD

    Membre occasionnel

  • Membres
  • Pip
  • 141 messages

Posté 04 août 2005 - 09:05

Salut,
Personnellement je débute, et je ne sais pas du tout comment utiliser les pics. J'ai déjà fait de l'automatisme au lycée (April 15 N en BEP et TSX-17 au bac, en language LADDER) mais ça m'a gazé...
Pourquoi pas créer une petite fiche pour les débutants comme moi ? Car j'ai cherché sur le net mais rien ne répond vraiment à ma principale question: comment ça marche (l'idéal serait un language vulgarisé genre "quand un signal électrique entre par telle broche, il sort un signal électrique par telle et telle broche ").

#2 Fabarbuck

Fabarbuck

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 685 messages

Posté 05 août 2005 - 04:13

Héhé... ca fait partie des projets qui trainent dans un carton.
J'ai pas le temps de développer ca tout de suite mais jt'en dirai plus plus tard... si tu as des quesitons precises, des details sur ce que tu cherches, ca pourrait aider à mieux cibler la réponse... a plusse!

#3 GuillaumeD

GuillaumeD

    Membre occasionnel

  • Membres
  • Pip
  • 141 messages

Posté 07 août 2005 - 08:05

Ben, sans pour autant entrer dans beaucoup de détails, on peut dire que les PICs sont des circuits intégrés qui gardent des informations en mémoire, même si ils sont déconnectés d'une source d'énergie (on n'est pas obligé d'expliquer les différences entre ROM, EPROM et EEPROM ni comment ils sont fabriqués). Maintenant, comme je ne connais pas les PICs, j'aimerais savoir par où commencer: Comment choisir un PIC ? Et qu'est-ce qu'on en fait une fois qu'on a un PIC entre les mains ? Imaginons que tu veuilles créer un robot, et que tu utilises un PIC, qu'est-ce que tu en fais ? Comment le connectes-tu au robot ? Y a-t-il des opérations à faire avant (le programmer par exemple, on parlera de cette opération plus tard) ? Est-ce qu'on peut programmer le PIC "à la volée" sans le déconnecter du robot (je sais pas) ? Combien coûtent les PICs utilisés couramment (16Fxx ou 18Fxx ou d'autres) ?
Ensuite: comment programmer un PIC ? Avec quel logiciel ? Et éventuellement comment concevoir son programme ?
Enfin, tu n'est pas obligé de répondre à mes questions, je les ai donné à titre d'exemple dans le cas où une fiche serait faite ;)

#4 Fabarbuck

Fabarbuck

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 685 messages

Posté 09 août 2005 - 04:03

Tout un programme effectivement :D :rolleyes:
Je n'ai pas le temps de trop répondre la tout de suite, mais un jour je tenterai ma petite bafouille :)
Allez, malgré tout, jvais faire une petite ebauche, tu me diras ce qui ne va pas/manque:

>les PICs sont des circuits intégrés qui gardent des informations en mémoire,
Disons qu'un pic est un microcontroleur, ce qui signifie puce contenant un coeur d'exécution (un processeur, en quelque sorte) et des périphériques, pour interagir avec son environnement de facon quasi autonome (il n'y a pas besoin de nombreux composants externes pour le faire fonctionner, contrairement à un processeur qui équipe un PC par exemple, qui a besoin d'un chipset = un ensemble de puces sur la carte mere, pour fonctionner)
Parmi les périphériques, on a très souvent de la mémoire flash, comme les cartouches d'appareil photo ; c'est une mémoire non volatile (ie qui reste en place meme quand la puce est hors tension), en général pouvant stocker pas mal d'infos (quelques ko ou dizaines de ko selon les modeles).
Il y a très souvent aussi de la Ram, mémoire vive, qui est plus rapide que la mémoire flash, et sert d'espace de stockage temporaire lors de l'exécution d'un programme pour stocker des variables, ce genre de choses.
On entend souvent parler de registres, aussi. Dans un processeur normal, ils y en a aussi, ce sont des espaces de stockage très petits (en général, une seule valeur par registre), mais qui sont directement connectés au coeur d'exécution du processeur, et ce sont par ceux ci que transitent les données qui sont calculées.
Dans un microcontroleur, il y a aussi bon nombre de registres de configuration ; ils servent dans ce cas à stocker une valeur de paramétrage (par exemple, la vitesse de transmission d'une liaison série, la période d'un timer ou toute autre valeur utile pour 'configurer' un périphérique du microcontroleur).
(je m'arrete la sur la structure, un schéma vaudrait mieux qu'un long discours)

> Comment choisir un PIC ?
Pas de règle ultime à ce niveau. Déja, il faut choisir un constructeur de microcontrolleur. Si on parle exclusivement de PIC, on restreint le choix à Microchip, et pourtant ce n'est pas, et de très loin, le seul fabricant de uC (micro Controleur). Maintenant, c'est vrai que le PIC possède quelques avantages pour l'amateur débutant (nombreuses ressources en ligne, possibilité d'avoir des samples ou échantillons gratuits facilement, disponibilité des outils, etc).

Pour le choisir, hé bien il faut cerner ses besoin, en connaissant son application.. (simple, non?)
Par exemple, le nombre d'entrées sorties disponibles (le nombre de pattes pilotables), le type et le nombre de périphérique (nombre de timers, d'uart - pour faire de la communication série, convertisseurs analogique numérique pour mesurer des tensions, etc).
Un critère qui est aussi important est la disponibilité, et le fait que ce uC soit répandu, donc qu'on trouve facilement des exemples de réalisation, de programme, ce genre de choses. La pérennité est aussi importante ; les gammes de uC évoluent, et il vaut mieux choisir d'apprendre un uC qui n'est pas en fin de vie... parce qu'il ne sera plus produit ni soutenu dans les futures versions des outils!
(je ne suis pas PICmaniac donc j'ai pas de référence archi classique à conseiller mais ca se trouve facilement... )

>Et qu'est-ce qu'on en fait une fois qu'on a un PIC entre les mains ?
Tout un programme :)
Déja, tu peux tenter de te familiariser avec la bete, en l'insérant sur une plaque à pastilles pour faire un montage minimaliste: alimentation, switch de reset, port de programmation, et une led sur une patte de libre. En general, il ne faut que tres peu de composants pour faire ce genre de choses (le uC est prévu pour, apres tout!), et ca permet déja d'apprendre pas mal de choses.
Notamment, comment on télécharge du code vers la puce. La plupart des uC modernes suportent d'ISP ou ICSP: reprogrammation sur site, en gros, il n'y a pas besoin de retirer la puce du montage pour la reprogrammer, on peut connecter directement le pic à un port série du PC (attention, il faut quand meme un petit montage de programmateur, pour adapter les niveaux de tension, mais ce sont des montages tout simples, cherche "programmateur pic"). Une fois que tu as tout ca, installe les programmes (pour microchip je sais plus comment ca s'apelle mais c'est gratuit et dispo sur leur site).
La, tu peux recuperer des exemples de code pour debuter (je peux pas developper, c'est plus long mais il y a des indications sur leur site), il faut paramétrer correctement ton pc selon ton programmateur avant de lancer le téléchargement du programme en memoire du pic.
Ensuite, tu peux debrancher le programmateur et lancer ton programme en mettant le pic sous tension. (l'exemple le plus classique et qui fait apprendre plein de choses: faire clignotter une led).

>Imaginons que tu veuilles créer un robot, et que tu utilises un PIC, qu'est-ce que tu en fais ?
Arf.... bah... ca dépend de ce que tu veux faire avec ton robot :)
Tu peux mettre des pattes en entrée pour y mettre des capteurs, d'autres en sortie pour piloter des servomoteurs, ou bien des interfaces de puissance pour piloter des moteurs à courant continu (ca s'apelle pont en H).
Trop long à expliquer, regarde des exemples ;)

>Comment le connectes-tu au robot ?
idem, avec ce que je t'ai dit, regarde des exemples, (genre upobot sur www.pobot.org :P ) et tu en sauras un peu plus.
Il faut que le uC ait des entrées (des capteurs) et des sorties (vers des actionneurs) pour pouvoir réellement interagir avec son environnement. La facon de connecter tout ca et de programmer le biniou dépend beaucoup de ce que tu attends de ton robot....

>Y a-t-il des opérations à faire avant (le programmer par exemple, on parlera de cette opération plus tard) ?
Bah... pas vraiment, comme je te disais avant, c'est assez simple!

>Est-ce qu'on peut programmer le PIC "à la volée" sans le déconnecter du robot (je sais pas) ?
oui! programmation sur site. Il existe encore un truc, qui s'apelle bootloader ; ca ressemble, c'est plus pratique encore, mais c'est pas la 1re chose à maitriser à mon avis.

>Combien coûtent les PICs utilisés couramment (16Fxx ou 18Fxx ou d'autres) ?
pas tres cher. Gratuits en sample, sinon, aux alentours de 10 euros pour de bons uC. Attention, les prix varient enormement selon la quantité achetée et le revendeur..........

>Ensuite: comment programmer un PIC ?
Si tu parles de télécharger ton programme dedans, j'ai déja évoqué ca plus haut

>Avec quel logiciel ?
En général, le fabricant fournit un ensemble de programmes gratuits, parfois un poil limités mais très bien pour commencer. (mplab je crois pour les pics...???)

>Et éventuellement comment concevoir son programme ?
Ca, c'est une autre paire de manches... :D
Deja, il faut bien concevoir son robot, connaitre les possibilités du uC, (et l'avoir bien choisi), bref, c'est tout un art... je peux pas en dire plus dans le vent, il faudrait un support concret, mais c'est pas pour tout de suite (je prepare un pti bla bla à ce sujet mais c'est long... :'(

Voila, si tu as d'autres trucs à demander...?

Autre chose: a mon avis, la meilleure chose a faire, c'est de travailler sur plaque d'experimentation (plaque a pastille ou tu soudes). Tu testes d'abord pour faire clignotter une led, ensuite, tu ajoutes je sais pas, un connecteur pour servomoteur et tu tentes de le faire bouger avec du code, puis tu ajoutes un petit montage avec un potar pour tester la fonction adc, etc etc... en gros, tu apprends petit à petit à utiliser tous les périphériques dont tu as besoin, et ENSUITE seulement, tu attaques un robot à part entière... en connaissance de cause!
(ouf, moi qui pensais faire juste une réponse évasive... :D :rolleyes: )

#5 GuillaumeD

GuillaumeD

    Membre occasionnel

  • Membres
  • Pip
  • 141 messages

Posté 09 août 2005 - 11:28

Ah ben comme explications, ça me va :)
Je pense que c'est peut-être aux autres membres qui connaissent les PICs d'essayer de compléter ce que tu vient d'expliquer ?
Moi dans l'immédiat, je n'ai plus d'autres questions...
Ah si: admettons qu'on veuille faire s'allumer environ 10 LED les unes après les autres, est-ce qu'il faudra que chaque LED soit connectée à une patte du PIC ? Je veut dire par là: si j'ai 10 composants à actionner, chaque composant sera relié à une patte de sortie du PIC ? Après ça se complique c'est sûr, si je veux faire tourner un moteur il me faudra un pont etc..., mais dans l'immédiat ?

#6 Fabarbuck

Fabarbuck

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 685 messages

Posté 10 août 2005 - 09:04

Bah ca dépend. La version la plus simple est effectivement d'utiliser 10 pattes du pic, mais il est possible de multiplexer les sorties, en particulier pour actionner des leds ; le principe est d'économiser les pattes nécessaires sur le principe suivant: pour n² leds, utiliser 2n pattes, n pour piloter des lignes et n pour piloter des colonnes. Tu disposes virtuellement tes leds en carré, et la led en position B2 s'allume si la patte B et la patte 2 sont toutes deux actives. Ainsi, tu peux piloter chaque ligne l'une apres l'autre, et grace à la réminiscence retinienne, notre oeil ne distingue pas que les lignes sont allumées les unes apres les autres...
Il est possible d'utiliser un composant supplémentaire, un extenseur d'io, qui se commande par une liaison série (i2c ou spi), et qui te permet d'avoir 8 ou 16 io simples supplémentaires. Ca peut etre pratique, mais bon, a choisir, pour quasiment le meme prix tu as autant de prendre 2 pics si tu as besoin de plus d'io ;)

#7 Fabarbuck

Fabarbuck

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 685 messages

Posté 18 août 2005 - 09:48

Que d'activité par ici ces temps ci... :D

Tout le monde est en vacances ou quoi? serai-je le seul à bosser tout l'été...? :unsure:

Bref, un peu de lecture pour la plage: http://www.bytecraft.com/publishing.html
C'est en anglais, mais deux livres au format PDF à propos de la logique floue dans les systèmes embarqués (ca peut etre sympa), et l'autre, sous forme d'introduction à l'embarqué (en 230 pages tout de meme!). Ca semble assez complet tout ca, en explicant que c'est un uC, ce qu'on en fait, etc.
Je viens d'avoir le lien, j'ai pas lu en détail pour l'instant!
Bonne lecture!



Répondre à ce sujet



  


0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users