Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Big tuto] Microcontrôleurs-électronique embarquée

Anonyme
    28 novembre 2014 à 23:33:35

    Bonjour à tous,

    J'aimerais faire un petit sondage pour savoir s'il y a des intéressés pour un cours sur la programmation des microcontrôleurs AVR. Je pensais à la base faire un cours sur Arduino (le cours précédent ayant été supprimé), mais je me suis finalement dirigé vers l'idée de rédiger un cours sur la programmation des microcontrôleurs en assembleur et en C, pour la simple et bonne raison  qu'il existe déjà de nombreux cours en français sur Arduino sur le net, et de plus, j'aimerais bien aller dans les détails du fonctionnement du microcontrôleur, ce qui serait difficile avec un tutoriel sur Arduino, je risquerais vite de m'emballer dans des explications trop complexes pour le lecteur ^^.

    Pourquoi les microcontrôleurs AVR ?

     - Car la carte Arduino UNO comporte un µC AVR (Atmega328), je pourrais donc me baser sur celui-ci pour le tutoriel. Les détenteurs de la carte n'auraient donc pas de matériel supplémentaire à acheter (sauf le programmateur).

    - Car j'ai remarqué qu'il n'existe pratiquement pas de support en français sur les µC AVR, contrairement aux PIC de Microchip.

    Mon cours serait divisé en 5 parties:

    - Rappels en électronique et logique
    - Fonctionnement et câblage du microcontrôleur
    - Premiers pas avec la programmation en assembleur
    - Programmation en C
    - Interfaçage et communication

    Je me pose la question si la partie assembleur est vraiment nécessaire, et c'est là que votre avis me sera crucial ^^ . Cette partie serait un passage "obligé" de mon tutoriel, car c'est dans celle-ci que je donnerai la plupart des explications sur le fonctionnement du µC au fur et à mesure de l'avancement. Cependant, je suppose que le fait de ne pas pouvoir programmer directement en C risque de repousser beaucoup de personnes, c'est pourquoi je me demande si ce n'est pas mieux d'apprendre directement la programmation en C.

    Personnellement, je suis convaincu que la partie assembleur est nécessaire, car ce langage permet de maîtriser plus rapidement le µC, et il sera plus facile pour moi de donner les explications (c'est moins aisé avec le langage C, car langage de plus haut niveau et du coup plus d'abstractions). Naturellement, la partie en C sera surtout composée d'exercices d'application plus concrets, en supposant que le fonctionnement du µC ait déjà été compris grâce à la partie assembleur.

    Voilà, j'espère que j'ai été suffisamment clair, j'attends donc vos avis et conseils et je suis ouvert à toutes questions/propositions :)

    -
    Edité par Anonyme 29 novembre 2014 à 14:53:41

    • Partager sur Facebook
    • Partager sur Twitter
      30 novembre 2014 à 10:07:24

      Bonjour Mltr.

      Pourquoi pas, c'est une très bonne idée.

      Je suis passé du Z80 au 68HC705P3 puis au 8051 et enfin aux AVR, avec le 8535, 32, 48, 1284 et dernièrement le 168 et 328 mais pas encore exploités.

      Effectivement il y peu d'information en Français et étant nul en Anglais, je serais donc intéressé par la suite, je ne suis plus tout jeune et je ne suis qu'un autodidacte.

      J'ai réalisé une carte de développement pour les uC à 40 pins en en construction, une autre permettant l'utilisation d'autres uC de la série aux différents nombre de pins et avec supports ZIF.

      J'ai également à mon actif, quelques applications réalisées, régulation de vitesse à PID, régulation de phase et d'autres.

      J'ai eu une formation en “C“ mais voilà bien longtemps et pas pour les uC, et j'ai pratiquement tout oublié.

      Je préfère la programmation en assembleur, même si le “C“ facilite les calculs, divisions, multiplications,....ce n'est après tout pas bien plus compliqué de le faire en assembleur, mais pour des essais rapides le “C“ est bien.

      Je pense également que le passage par l'assembleur permet de bien mieux découvrir le uC, on sait directement le bit que l'on touche et son effet.

      Cela demande également d'avoir un minimum de connaissance sur les portes logiques puisqu'on y fait appel en programmation.

      Léon.

      • Partager sur Facebook
      • Partager sur Twitter
        2 décembre 2014 à 0:42:13

        L'assembleur sur un microcontroleur 8 bits n'a plus grand intérêt aujourd'hui, même pour comprendre le fonctionnement du microcontroleur.

        Le C et les fonctions spécifiques aux AVR vont permettre de faire la même chose qu'en assembleur. Le C de base permet déjà de travailler au niveau des bits. On peut très bien utiliser les adresses hexadécimales des registres aussi.

        Le problème de l'assembleur c'est que les instructions sont plus des abbréviations et on perd pas mal de temps au début à comprendre ce que veut dire jmp, mv, etc. Le C permet donc une facilité de lecture du code. Et sur des programmes long, un code assembleur mal commenté est une perte de temps non négligeable.

        Je ne dis pas qu'il ne faut pas faire une partie d'assembleur, mais en faire une partie nécessaire et indispensable dans le chemin de l'apprentissage est, pour moi, une maladresse.

        Là où je vois encore une utilité à l'assembleur c'est pour certaines puces spéciales comme les DSP qui ont une architecture différentes des microcontroleurs et l'assembleur permet de bien faire la différence entre data et instruction. De plus il y a certains instructions en assembleur qui, si elles sont bien utilisées, peuvent être exécutées en un coup d'horloge. Une transposition en librairie C de ces instructions à été faite mais n'est pas forcément très claire.

        PS : le tuto Arduino a été enlevé à la demande de l'auteur car il n'était plus à jour depuis plus d'un an malgré les demandes de l'auteur.

        Il a continué le tuto sur son blog : eskimon.fr

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          2 décembre 2014 à 14:04:41

          Merci pour vos points de vue ! Fort différents comme je m'y attendais, je pense qu'il va falloir trouver un compromis.

          zeqL, si la partie assembleur se résumait à allumer une LED, gérer le temps et les interruptions pour comprendre ce qui se passe à l'intérieur quand on exécute une instruction, ce serait de la maladresse ? De plus, ça permettra d'utiliser le simulateur et de visualiser ce qui se passe pour chaque instruction.
          Si on veut aller plus loin en utilisant les autres fonctions du µC, à partir du moment où on sait ce qu'est un registre et comment écrire dedans, je suis d'accord que ça sert à rien de continuer avec l'asm.
          • Partager sur Facebook
          • Partager sur Twitter
            19 décembre 2014 à 13:44:53

            Hello,

            Moi ca m'interesse !!!
            • Partager sur Facebook
            • Partager sur Twitter
              17 août 2016 à 12:36:03

              Salut,

              C'est déjà excellent. On attend ce tuto avec impatience!!!

              merci

              • Partager sur Facebook
              • Partager sur Twitter
                16 février 2017 à 17:53:54

                salut,

                Oui je pense que c est une très bonne idée.

                • Partager sur Facebook
                • Partager sur Twitter

                [Big tuto] Microcontrôleurs-électronique embarquée

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown