Comment fonctionne un Microcontrôleur ?
Répondre à la discussion
Page 1 sur 3 12 DernièreDernière
Affichage des résultats 1 à 30 sur 82

Comment fonctionne un Microcontrôleur ?



  1. #1
    FloTeps

    Lightbulb Comment fonctionne un Microcontrôleur ?


    ------

    Bonjour à tous,
    J'ai une grande question que je me pose depuis un moment,
    comment fonctionne un Microcontrôleur (et plus précisément le ATMEGA328P-PU, c'est celui de l'Arduino).
    http://www.gotronic.fr/art-atmega328p-pu-16820.htm#

    Voici le type de questions que je me pose:
    - Que peut on fait avec ? Des calculs, faire tourner un programme ?
    - Que contient une puce ? De la RAM, une mémoire ?
    - Que faut-il pour l'utiliser ? Un quartz, une alimentation électrique ?

    Même si vous n'avez la réponse qu'a une petite partie, n’hésitez pas à la poster, ça me sera toujours très utile !

    Un très grand merci d'avance !

    -----

  2. #2
    jiherve

    Re : Comment fonctionne un Microcontrôleur ?

    Bonsoir et bienvenue,
    on peut faire des calculs car on peut faire tourner un programme qui contrôle une unité de calcul, il y a de la ram ,une alu, un compteur programme ,des peripherique etc etc.
    La structure d'un µc est du domaine public depuis presque un demi siècle.
    Je ne donne pas 10 ans pour que tout cette science relève de la magie.
    JR
    l'électronique c'est pas du vaudou!

  3. #3
    FloTeps

    Re : Comment fonctionne un Microcontrôleur ?

    Merci beaucoup pour ta réponse !
    Donc si je comprend bien il est possible grâce à une carte Arduino de stocker un programme sur le Microcontrôleur, puis, de le détacher de la carte Arduino pour le faire marcher de manière autonome sur un autre circuit "fait maison" ?

  4. #4
    jiherve

    Re : Comment fonctionne un Microcontrôleur ?

    Re
    Non ce que tu pourras faire c'est mettre au point un programme sur ta carte arduino et ensuite le recompiler si nécessaire pour une autre machine à supposer que celle ci ait une structure équivalente.
    JR
    l'électronique c'est pas du vaudou!

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

    Re : Comment fonctionne un Microcontrôleur ?

    Donc, si je comprend bien c'est impossible de faire marcher le programme d'un microcontrôleur sur un circuit "fait maison", même si on a pris soin de mettre en place tous les éléments pour sont bon fonctionnement (quarts, etc...) ?

  7. #6
    jiherve

    Re : Comment fonctionne un Microcontrôleur ?

    Re
    Non encore une fois si ta machine, home made, est suffisamment proche de l'architecture d'un Arduino et que le langage de programmation est commun cela pourra fonctionner, cela ne sera sans doute pas immédiat pour autant.
    JR
    l'électronique c'est pas du vaudou!

  8. #7
    FloTeps

    Re : Comment fonctionne un Microcontrôleur ?

    Merci pour ta réponse !
    Tu dis que le langage de programmation doit être commun, mais commun avec quoi ? Un élément du circuit home made ?
    Car justement le circuit "fait maison" dont je parle est vraiment très simple:
    l'idée est de brancher un bouton poussoir sur le microcontrôleur de tel sorte que lorsque l'on appuie sur ce bouton, une LED (elle aussi reliée sur le microcontrôleur) clignote à la fréquence défini dans le programme du microcontrôleur.
    Dans ce circuit, pour faire marcher le microcontrôleur, à part un quartz et une alimentation, il y a besoin de quoi ?

  9. #8
    jiherve

    Re : Comment fonctionne un Microcontrôleur ?

    Re
    Si c'est un Atmega(le µC au coeur de l'Arduino) il n'y a même pas besoin de quartz, mais abondance de biens ne nuit pas, donc cela devrait fonctionner si encore une fois ce sont des µC de la même famille.
    Un langage commun cela signifie : en assembleur exactement la même famille, en C ou autre l'usage de compilateurs ad hoc mais dans tous les cas l'usage de périphériques compatibles, internes ou externes
    JR
    l'électronique c'est pas du vaudou!

  10. #9
    FloTeps

    Re : Comment fonctionne un Microcontrôleur ?

    Merci beaucoup,
    Par contre tu dis que le µC de la carte Arduino, même s'il est branché sur un circuit externe (seul, sans la carte Arduino) n'a pas besoin de quartz ? Le quartz est déjà intégré dans la ATMEGA328P-PU ? Car il me semble que sur les schéma de la carte arduino, un quartz extérieur apparait, mais je ne suis pas sur...

  11. #10
    mgduc

    Re : Comment fonctionne un Microcontrôleur ?

    Si c'est pour te servir d'un arduino comme d'un programmateur. Pourquoi ne pas prendre un vrai programmateur pour programer des atmega directement?

    Comme ça tu ne sera pas limiter que d'un seul model.

  12. #11
    elektrax

    Re : Comment fonctionne un Microcontrôleur ?

    Citation Envoyé par FloTeps Voir le message
    Merci beaucoup pour ta réponse !
    Donc si je comprend bien il est possible grâce à une carte Arduino de stocker un programme sur le Microcontrôleur, puis, de le détacher de la carte Arduino pour le faire marcher de manière autonome sur un autre circuit "fait maison" ?
    bien sur, à plusieurs conditions : avant de plaquer le 328 vierge sur un arduino il faut qu'il contienne le bootloader : http://jlectronique.org/ArduinoISP.htm

    pour l'utiliser ensuite sur un circuit "homemade" : google "arduino standalone"

    http://hardware-libre.fr/2014/02/fr-...rammation-isp/

    pour utiliser sur circuit maison le programme que tu as "écrit" sur un arduino, ton circuit maison a besoin d'un quartz 16 mhz+capas 22pf

    on peut aussi le faire fonctionner sans quartz sur son oscillateur interne a 8mhz avec ou sans bootloader
    merci

  13. #12
    freepicbasic

    Re : Comment fonctionne un Microcontrôleur ?

    µc microcontrôleur
    µp microprocesseur

    - Que peut on fait avec ? Des calculs, faire tourner un programme ?
    Les programmes sont spécifiques à un type de µc à sa marque et à l'architecture des périphériques.
    le langage de base est l'assembleur, ce langage est spécifique à chaque type de µC, il est composé de code mnémonique qui correspondent à un ordre précis qui sera assimilable par le µp du µc.

    Il existe un concept qui est la portabilité, une espèce de rêve utopique (qui fonctionne assez bien sur les plus grosses machines comme les PC) qui permettrait de faire fonctionner un programme sur différentes "plate forme" comme IBMPC, Macintosh, Sun , etc.. et différents "système d'exploitation" (OS), Les OS correspondent à DOS et Windows Microsoft, Linux , ou Os propriétaire...
    Encore faut il , que les différentes fonctions du programmes soit possible sur la machine.

    Pour cela les langages de niveaux supérieurs ont été crées , après le langage A pour assembleur , le B pour basic et le "language C" (sans doute pour compilé), ce langage devait donc fonctionner sur chaque machine à l'identique , le seul travail était de porter ce fameux compilateur sur la nouvelle machine.

    Compilé signifie que l'on met bout à bout des petits bouts de programmes déjà écrit, testé et pré assemblé.. en gérant les différents paramètres variables.

    Le hic avec les µC, c'est qu'il s'agit de micro-machines avec des capacités réduites , voire minimum.
    Et une puissance minimum est parfois nécessaire, les premiers µc devait donc se programmait en assembleur exclusivement, et le fonctionnement et les commandes des divers périphériques sont spécifiques à un µc, il existe bien sur des familles, mais il y a des variantes dans une même famille, faisant qu'un programme assembleur pour un type de µc n'est pas forcément portable pour un µc de même type, mais par contre pour le langage évolué, ça peut être possible si le µc sait faire la tâche demandée, Le compilateur devrait adapté la programmation des périphériques du µc.
    (Mais, faut il toujours faire une confiance absolue au compilateur ?)

    Que contient une puce ? De la RAM, une mémoire ?
    . Un microcontrôleur ( qui fait les calculs arithmétiques et logiques et les divers déplacement de données à travers les bus interne ou externe)
    . Une rom (mémoire non effaçable), et maintenant plutôt une eeprom (effaçable électriquement ce qui permet de reprogrammer facilement en cours de développement)
    . Une RAM (mémoire vive , qui s'éfface à la mise hors tension)
    . Une horloge (le coeur du µp
    . Des périphérique , divers selon le µc, toujours des I/O, un ou des timers, parfois des ports série (UART) ou USB , gestion de CAN (I2C), de périphériques série (SPI), etc ...
    Certains sont spécialisés et on des périphériques spécifiques.

    La taille des ROM, RAM, et vitesse de l'horloge , détermine leur puissance , mais aussi leur taille , leur technologie et leur prix.

    Le choix se fera donc en fonction du travail à accomplir, la taille et du prix de revient.
    On dit souvent "qui peut le plus peut le moins" et on choisi la gamme supérieure, en règle général c'est peut être vrai, mais pas toujours les contraintes de taille, de prix ou autre peuvent imposer une gamme moins puissante.
    Le temps de développement est aussi un critère !
    Choisir Arduino qui permet un développement rapide et une carte "peu couteuse" (pas toujours) au détriment de la taille et de l'optimisation maximum est un choix !

    - Que faut-il pour l'utiliser ? Un quartz, une alimentation électrique ?
    Généralement ils contiennent 3 modes principales
    . quartz , un quarte et 2 capas sont requis , à l'intérieur un oscillateur permet sont fonctionnement
    . RC , Résistance capas , interne ou externe , rien ou une simple résistance externe peut suffir , mais pas de précision sur la fréquence qui variera légèrement avec la température..
    . externe , l’oscillateur vient d'un montage externe ou d'un autre µc ce qui permet de les synchroniser



    Pour en venir à Arduino.
    Déjà Arduino n'utilise pas forcément toutes les possibilités de sa propre carte, qu'ils ont eux même créé, certaines pins ne sont même pas câblées comme sur la carte 2560...
    Le but est d’accéder rapidement à la fonctionnalité désirée, sans trop savoir ce qui se cache derrière, et il faut le reconnaitre ça fonctionne vraiment, mais dès qu'on sort des clous c'est la catastrophe le blocage définitif du développeur en herbe...

    Si l'on veut étudier un prog avec une tel carte , puis le mettre sur une autre , cette autre carte devra-être un clone, ou alors une version simplifiée ce qui justifierait l'étude et la mise au point d'une nouvelle carte qui de manière évidente couterait beaucoup plus cher, s'il s'agit d'un prototype unique.
    Donc ça serait pour une application professionnelle qui aboutirait à une série de carte.
    Quant à la méthode Arduino bootloader, je doute que pour une série ce soit intéressant de changer un bootloader avant et de passer par un USB en plus, si en plus l'application ne l'utilise pas, Autant flasher directement le firmware final.
    Dernière modification par gienas ; 18/10/2014 à 11h57. Motif: Réparé une quote oubliée
    A+, pat

  14. #13
    FloTeps

    Re : Comment fonctionne un Microcontrôleur ?

    Merci à vous trois pour vos réponses très instructives !

    Mgduc:
    Tu dis qu'il existe des programmateurs pour microcontrôleurs ? Ça semble très intéressant, mais je ne sais pas si cela correspond au projet, je m'explique.
    Quand j'ai dit plus haut:

    Le circuit "fait maison" dont je parle est vraiment très simple:
    l'idée est de brancher un bouton poussoir sur le microcontrôleur (seul, sans ça carte Arduino) de tel sorte que lorsque l'on appuie sur ce bouton, une LED (elle aussi reliée sur le microcontrôleur) clignote à la fréquence défini dans le programme du microcontrôleur.
    Ça c'est la première étape du projet, car le but final est de remplacer le bouton par un capteur Bluetooth (fait pour les cartes Arduino) de tel sorte que quand, depuis un téléphone, on envoie un signal Bluetooth précis à la puce, la LED clignote...

    Donc vu que le capteur Bluetooth est fait pour Arduino, je pense que l'on ne pourra pas travailler avec un autre microcontrôleur que celui de l'Arduino, je me trompe ?
    Dernière question, si on utilise un autre programmateur, quel est le type de langage, combien ça coute et comment ça marche (c'est similaire à l'Arduino) ?


    Elektrax:
    Je ne comprends pas exactement ce qu'est le bootloader ? C'est une sorte de programme de base pour que le microcontrôleur puisse interagir avec la carte Arduino ?
    Comment faire pour mettre le bootloader sur un microcontrôleur vierge ? Il l'explique un peu dans le lien que tu as donné mais je ne comprends pas très bien...

    Au niveau du quartz, j'ai trouvé celui-là sur internet, il convient pour un ATMEGA328P-PU ?
    http://www.conrad.fr/ce/fr/product/4...f=searchDetail


    Freepicbasic:
    Merci pour ton message qui m'en apprend beaucoup !
    Tu dis qu'il y a une ROM dans un microcontrôleur, j'imagine quelle est relativement petite ? Donc que l'on ne peut pas mettre dessus un code extrêmement long ?
    Pour le bootloader, que ce que c'est exactement et à quoi ça sert ? Tu dis que l'on peut flasher directement le firmware final ? En quoi cela consiste ? Faut-il toujours une carte Arduino ?

    ----------------

    Encore une fois merci à tous !
    J'aime beaucoup ce forum, pour en avoir testé plusieurs c'est sans aucun doute le meilleur !!!

  15. #14
    FloTeps

    Re : Comment fonctionne un Microcontrôleur ?

    Note:
    Pour la question que ce que le bootloader et comment le mettre sur le microcontrôleur, j'ai trouvé la réponse dans le lien que tu m'a envoyé Elektrax, j'avais lu le premier lien mais j'avais oublier qu'il y en avais un deuxième
    Dernière modification par FloTeps ; 18/10/2014 à 11h57.

  16. #15
    Yoruk

    Re : Comment fonctionne un Microcontrôleur ?

    Pour programmer un µC, la méthode "normale" consiste à passer par un programmateur externe, qui est relié au micro afin de télécharger un "programme" dans sa mémoire. L'intégralité de la mémoire est écrite.

    Un programmateur (quelques euros sur la baie) te permet d'être complètement autonome vis à vis de l'arduino. Attention, les langages sont différents (C, Assembleur...), et les softs pour développer aussi. Comme environnement, tu as par exemple Atmel Studio, gratuit sur le site d'Atmel.

    Mais effectivement, la arduino peut être utilisée pour programmer un micro externe. (Atmega ou autre). C'est la fonction "Arduino ISP". Et dans ce cas ci, le langage utilisé est celui de l'arduino (une adaptation du langage C°.

    Le bootloader est un petit morceau de code présent dans le micro, qui permet de programmer le micro sans passer par un programmateur externe. Le programme étant téléchargé via l'UART, c'est à dire la liaison série de ton micro (pins TX et RX). En gros, il va s'auto-programmer, très facilement, et sans matériel supplémentaire. C'est ce qu'utilisent les cartes arduino. En fait, à la mise sous tension, le bootloader "regarde" si on cherche à programmer le micro. Si oui, il récupère le programme et le place en mémoire (sans écraser la partie de la mémoire qu'il occupe). Si non, il lance l’exécution normale du micro.
    La robotique, c'est fantastique !

  17. #16
    freepicbasic

    Re : Comment fonctionne un Microcontrôleur ?

    Au sujet des ROM c'était juste pour l'historique, ça ne se fait plus trop, sauf pour les versions "OTP" (programmable une seul fois)...
    C'est généralement pour des séries de produits terminés
    Maintenant les mémoires "non volatile" (qui conserve leurs données une fois la tension disparue), sont tout de même effaçable LOL
    Il faut appliquer un protocole pour cela ou une lumière UV.

    Au départ on utilisait des mémoires externes et il fallait des tensions plus élevées (12V voire 24V) pour les "flasher" (écrire dedans) ,
    Puis ça a évoluer vers des technologie réutilisables EPROM (effaçable aux UV), EEPROM (effaçable électriquement)
    De plus elles se programmaient en parallèle nécessitant de mettre le chip sur un support pour le programmer, puis le mode série est apparue , bien plus pratique... et surtout cela permettait de programmer directement le chip sur la carte finale.
    La technologie évoluant maintenant , elles sont programmable en 5V.

    Mais la programmation demande du temps pour écrire , sinon on utiliserait que ce genre de mémoire si elles étaient aussi rapide que les RAM.

    Comme expliqué plus haut le bootloader permet de flasher sans programmateur, par un port série ou USB.
    Les µc ont intégrés ces propriétés et ils peuvent aussi flasher leur propre mémoire cela nécessite un bout de programme pour ce faire ,c'est ce qu'on appelle le bootloader , maintenant ce programme est parfois déjà écrit dans la mémoire , mais ce n'est pas forcément celui qu'on utilise , dans ce cas il faudra d'abord flasher son bootloader habituel si l'on veut travailler comme ça, c'est pour cela que je disais que ce n'est pas forcement intéressant.
    .
    Au niveau programmation cette fonction implique un risque c'est de détruire ce bootloader , s'il est bien conçu cela n'arrivera pas, mais la fonction d'écriture existe tout de même et une mauvaise programmation pourrait le détruire.
    Donc sur un Arduino cela équivaut à un blocage puisque c'est la méthode de programmation.

    Après une tel erreur le passage au programmateur sera impératif pour le ressusciter LOL
    Dernière modification par freepicbasic ; 18/10/2014 à 12h30.
    A+, pat

  18. #17
    FloTeps

    Re : Comment fonctionne un Microcontrôleur ?

    Merci (encore une fois) pour toutes vos réponses !

    Donc si je résume,
    Le bootloader est essentiel pour que le microcontrôleur interagisse avec la carte Anduino.

    Si j’achète des ATMEGA328P-PU vierges, ils n'ont pas le bootloader d'Arduino.
    Je dois donc le télécharger sur le microcontrôleur en suivant la méthode expliquée sur ce site web.
    Une fois que cela est fait, je peux placer le microcontrôleur sur la carte Arduino et lui téléverser le programme.
    Ensuite j'enlève la puce et je la met sur mon circuit home made et... c'est tout ? Je n'est rien oublié ?

  19. #18
    Yoruk

    Re : Comment fonctionne un Microcontrôleur ?

    Citation Envoyé par FloTeps Voir le message
    Donc si je résume,
    Le bootloader est essentiel pour que le microcontrôleur interagisse avec la carte Arduino.
    Pour qu'il puisse être programmé en étant sur la arduino, oui. Si c'est pour utiliser la arduino comme programmateur, le chip externe n'en as pas besoin.



    Citation Envoyé par FloTeps Voir le message
    Si j’achète des ATMEGA328P-PU vierges, ils n'ont pas le bootloader d'Arduino.
    Je dois donc le télécharger sur le microcontrôleur en suivant la méthode expliquée sur ce site web.
    Une fois que cela est fait, je peux placer le microcontrôleur sur la carte Arduino et lui téléverser le programme.
    Ensuite j'enlève la puce et je la met sur mon circuit home made et... c'est tout ? Je n'est rien oublié ?
    C'est à peu près ça ! Il faut que ton circuit homemade comprenne un quartz (+ les 2 capas qui vont avec pour que ça oscille), une résistance de reset (10k entre le reset et Vcc), une capa de découplage (100nF entre Vcc et la masse), et un régulateur de tension pour avoir un 5v propre.
    La robotique, c'est fantastique !

  20. #19
    FloTeps

    Re : Comment fonctionne un Microcontrôleur ?

    Merci beaucoup ta liste d'éléments va m'être d'une grande utilité !
    Par contre, pardonne mon ignorance mais c'est quoi exactement des capas ?

  21. #20
    freepicbasic

    Re : Comment fonctionne un Microcontrôleur ?

    capas=condensateurs 20pf sur le quartz
    A+, pat

  22. #21
    FloTeps

    Re : Comment fonctionne un Microcontrôleur ?

    C'est donc une caractéristique du quartz ? Il est intégré dans le quartz ?

  23. #22
    mgduc

    Re : Comment fonctionne un Microcontrôleur ?

    Citation Envoyé par FloTeps Voir le message
    C'est donc une caractéristique du quartz ? Il est intégré dans le quartz ?
    Non, tu doit les rajouter près du quartz.

    Pour ce qui est du bootloader, tu devra l'injecter dans le micro vierge avec un programmateur de toute façon. Donc je trouve que c'est une double manipulation. A moins que tu préfère vraiment le langage arduino je ne vois pas l’intérêt.

    Pour les module arduino, oui il sera quand même compatible. On peux même les utiliser avec des pic...

  24. #23
    FloTeps

    Re : Comment fonctionne un Microcontrôleur ?

    Merci de ta réponse,
    mais du coup peux tu stp me donner un modèle de programmateur que je pourrais utiliser ?

  25. #24
    chimere322

    Re : Comment fonctionne un Microcontrôleur ?

    Bonjour FloTeps,

    Attention, dans le lien que tu donnes http://hardware-libre.fr/2014/02/fr-...rammation-isp/, l'exemple du booloader à insérer dans un fichier board.txt est utile seulement pour un Atmega 328P-PU avec oscillateur interne 8MHz.Pour un 16MHz externe voir là: http://arduino.cc/en/Tutorial/ArduinoISP Programmateur externe voir USBTiny ou USBasp et pleins d'autres
    Bien cordialement Jean Claude.

  26. #25
    Yoruk

    Re : Comment fonctionne un Microcontrôleur ?

    Je dispose de celui-ci : http://www.fischl.de/usbasp/

    Une recherche google te renverra sur les sites marchants qui vont bien...
    La robotique, c'est fantastique !

  27. #26
    chimere322

    Re : Comment fonctionne un Microcontrôleur ?

    Arf en même temps la réponse
    Bien cordialement Jean Claude.

  28. #27
    FloTeps

    Re : Comment fonctionne un Microcontrôleur ?

    Merci Chimere322 pour le lien, en plus c'est le lien officiel Arduino c'est rassurant
    et merci Yoruk, bien que je ne pense pas utiliser un autre système que Arduino pour ce projet, ça me sera utile pour plus tard

    Je continu à avancer dans mes recherches, je suis en train de faire un schéma mais pour le finir j'aurais besoin des nom anglais pour un condensateur et un quartz... car la liste des composants est en anglais... et je ne trouve pas la traduction sur internet...

  29. #28
    chimere322

    Re : Comment fonctionne un Microcontrôleur ?

    A mon avis t'as pas du chercher bien longtemps surtout sur le lien qu j'ai donné avec de belles images. capacité= un petit effort, pense à raptor quartz taillé dans un ?
    Bien cordialement Jean Claude.

  30. #29
    FloTeps

    Re : Comment fonctionne un Microcontrôleur ?

    Je n'y met pas de la mauvaise volonté mais la je sèche... ^^
    J’utilise le logiciel DipTrace pour faire le schéma électrique mais à chaque recherche de composant il ne trouve rien, il faut le mot exacte pour trouver voir même une référence, c'est pas très pratique...

  31. #30
    Yoruk

    Re : Comment fonctionne un Microcontrôleur ?

    Allez, on va pas le dégouter trop vite de l'électronique :

    Condensateur : capacitor
    Quartz : crystal

    Attention, selon ce que tu vas dessiner, tu auras besoin de trouver les même composants ! Par exemple, les condensateurs à sorties radiales ont les pattes avec un entre-axe différent... Si j'étais toi, j'attendrais d'avoir les pièces physiques avant de router...
    La robotique, c'est fantastique !

Page 1 sur 3 12 DernièreDernière

Discussions similaires

  1. comment fonctionne la carte microcontrôleur ethernet 24 i/o
    Par gabydu25 dans le forum Électronique
    Réponses: 3
    Dernier message: 02/04/2014, 05h35
  2. Microcontroleur qui ne fonctionne pas
    Par jo29580 dans le forum Électronique
    Réponses: 4
    Dernier message: 28/05/2013, 10h25
  3. Microcontrôleur : comment s'en servir ?
    Par Wellan38 dans le forum Électronique
    Réponses: 60
    Dernier message: 31/05/2011, 14h07
  4. comment fonctionne un microcontroleur?
    Par munsterkiler dans le forum Électronique
    Réponses: 15
    Dernier message: 17/10/2010, 16h15
  5. Comment choisir son microcontroleur ?
    Par benjibul dans le forum Électronique
    Réponses: 14
    Dernier message: 19/11/2007, 15h55
Découvrez nos comparatifs produits sur l'informatique et les technologies.