{"id":60,"date":"2021-07-13T15:42:32","date_gmt":"2021-07-13T15:42:32","guid":{"rendered":"http:\/\/ve2cuy.com\/420-1c4\/?page_id=60"},"modified":"2025-01-27T15:16:14","modified_gmt":"2025-01-27T20:16:14","slug":"introduction-aux-microcontroleurs","status":"publish","type":"page","link":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/introduction-aux-microcontroleurs\/","title":{"rendered":"Introduction aux microcontr\u00f4leurs"},"content":{"rendered":"\n<p class=\"has-text-align-center\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"300\" class=\"wp-image-85\" style=\"width: 300px;\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/favpng_arduino-computer-electronics-microcontroller-application-software.png\" alt=\"\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/favpng_arduino-computer-electronics-microcontroller-application-software.png 512w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/favpng_arduino-computer-electronics-microcontroller-application-software-300x300.png 300w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/favpng_arduino-computer-electronics-microcontroller-application-software-150x150.png 150w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span style=\"color:#4079a6\" class=\"has-inline-color\">Objectif de la lecture<\/span> <\/h2>\n\n\n\n<p class=\"has-text-align-left\">\u00c0 la fin de cet <strong><span style=\"color:#e47128\" class=\"has-inline-color\">atelier<\/span><\/strong>, nous devrions \u00eatre capable d&rsquo;expliquer ce qu&rsquo;est un <strong><span style=\"color:#00878f\" class=\"has-inline-color\">microcontr\u00f4leur<\/span><\/strong>, d&rsquo;utiliser le vocabulaire qui le d\u00e9fini, d&rsquo;identifier ses domaines d&rsquo;application, de reconnaitre ses apparences physiques, de d\u00e9chiffrer un diagramme de d\u00e9finition de bloc qui le d\u00e9crit, de nommer ses fonctionnalit\u00e9s techniques et d&rsquo;<strong><span style=\"color:#62aeb2\" class=\"has-inline-color\">identifier<\/span><\/strong> les outils mat\u00e9riels et logiciels n\u00e9cessaires \u00e0 sa <strong><span style=\"color:#e5ad24\" class=\"has-inline-color\">programmation<\/span><\/strong>. <\/p>\n\n\n\n<p class=\"has-text-align-left\">Finalement nous <strong><span style=\"color:#8c7965\" class=\"has-inline-color\"><em>comprendrons<\/em><\/span><\/strong>, je l&rsquo;esp\u00e8re, la place qu&rsquo;occupe le projet <strong><span style=\"color:#4079a6\" class=\"has-inline-color\">Arduino<\/span><\/strong> dans cet espace plus que fascinant.<\/p>\n\n\n\n<p>A.B. aka ve2cuy<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-color\" style=\"color:#00878f\">Contenu<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><span style=\"color:#e47128\" class=\"has-inline-color\"><strong>D\u00e9finition d&rsquo;un microcontr\u00f4leur (MCU pour <em>microcontroller unit<\/em>)<\/strong><\/span><\/li>\n\n\n\n<li><span style=\"color:#62aeb2\" class=\"has-inline-color\"><strong>Exemples d&rsquo;utilisation d&rsquo;un MCU<\/strong><\/span><\/li>\n\n\n\n<li><strong><span style=\"color:#8c7965\" class=\"has-inline-color\">Sommaire des fonctionnalit\u00e9s d&rsquo;un MCU<\/span><\/strong><\/li>\n\n\n\n<li><strong><span style=\"color:#e5ad24\" class=\"has-inline-color\">Apparence physique de boitiers de MCU<\/span><\/strong><\/li>\n\n\n\n<li><strong><span style=\"color:#4079a6\" class=\"has-inline-color\">Quelques microcontr\u00f4leurs populaires<\/span><\/strong><\/li>\n\n\n\n<li><strong><span style=\"color:#00878f\" class=\"has-inline-color\">Anatomie d&rsquo;un microcontroleur (ATmega328P)<\/span><\/strong>\n<ol class=\"wp-block-list\">\n<li><span style=\"color:#5c5e60\" class=\"has-inline-color\">Acronymes couramment utilis\u00e9s<\/span> avec les MCU<\/li>\n\n\n\n<li><span style=\"color:#5c5e60\" class=\"has-inline-color\">Sp\u00e9cifications de l&rsquo;ATmega328P<\/span><\/li>\n\n\n\n<li><span style=\"color:#5c5e60\" class=\"has-inline-color\">Diagramme de d\u00e9finition de bloc de l&rsquo;ATmega328P<\/span><\/li>\n\n\n\n<li><span style=\"color:#5c5e60\" class=\"has-inline-color\">Identification des broches de l&rsquo;ATmega328P<\/span><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><strong><span style=\"color:#e47128\" class=\"has-inline-color\">Outils et langages de programmation des microcontr\u00f4leurs<\/span><\/strong>\n<ol class=\"wp-block-list\">\n<li>Langages: <span style=\"color:#5c5e60\" class=\"has-inline-color\">C, C++, assembleur, librairies, portabilit\u00e9<\/span><\/li>\n\n\n\n<li><span style=\"color:#5c5e60\" class=\"has-inline-color\">Les programmateurs mat\u00e9riels d\u00e9di\u00e9s<\/span><\/li>\n\n\n\n<li><span style=\"color:#5c5e60\" class=\"has-inline-color\">Les environnements de d\u00e9veloppement propri\u00e9taires<\/span>\n<ul class=\"wp-block-list\">\n<li><span style=\"color:#5c5e60\" class=\"has-inline-color\">Microchip Studio for AVR&nbsp;<\/span><\/li>\n\n\n\n<li><span style=\"color:#5c5e60\" class=\"has-inline-color\">MPLAB\u00ae X IDE (PIC) <\/span><\/li>\n\n\n\n<li><span style=\"color:#5c5e60\" class=\"has-inline-color\">STM32CubeIDE&nbsp;<\/span><\/li>\n\n\n\n<li><span style=\"color:#5c5e60\" class=\"has-inline-color\">ESP-IDF<\/span><\/li>\n\n\n\n<li>Arduino IDE<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><strong><span style=\"color:#62aeb2\" class=\"has-inline-color\">Programme d&rsquo;amor\u00e7age (BootLoader)<\/span><\/strong><\/li>\n\n\n\n<li><span style=\"color:#4079a6\" class=\"has-inline-color\"><strong>Le projet Arduino.cc<\/strong><\/span>\n<ol class=\"wp-block-list\">\n<li>Historique<\/li>\n\n\n\n<li>Le mat\u00e9riel<\/li>\n\n\n\n<li>Les outils logiciels<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<p><br><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span style=\"color:#e47128\" class=\"has-inline-color\">1 &#8211; D\u00e9finition d&rsquo;un microcontr\u00f4leur<\/span><\/h2>\n\n\n\n<p class=\"has-text-color\" style=\"color:#276681\">Que nous en soyons conscient ou pas, les <em><span style=\"color:#b58a16\" class=\"has-inline-color\">microcontr\u00f4leurs (MCU)<\/span><\/em>  sont omnipr\u00e9sents dans notre vie de tous les jours.  <\/p>\n\n\n\n<p class=\"has-text-align-left has-text-color\" style=\"color:#276681\">Ce sont des microprocesseurs, <em><span style=\"color:#b58a16\" class=\"has-inline-color\">g\u00e9n\u00e9ralement beaucoup moins puissants, rapides et \u00e9nergivores que ceux pr\u00e9sents dans nos ordinateurs personnels<\/span><\/em>, sp\u00e9cialis\u00e9s dans la communication avec le monde ext\u00e9rieur.  <\/p>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>Un microcontr\u00f4leur est un circuit int\u00e9gr\u00e9 (CI) qui contient tous les \u00e9l\u00e9ments n\u00e9cessaires pour ex\u00e9cuter des t\u00e2ches de traitement informatique. Contrairement \u00e0 un ordinateur classique, qui utilise des composants s\u00e9par\u00e9s pour le processeur, la m\u00e9moire et les entr\u00e9es\/sorties, le microcontr\u00f4leur int\u00e8gre tous ces \u00e9l\u00e9ments dans une seule puce. Cela le rend compact, \u00e9conomique et adapt\u00e9 \u00e0 des applications sp\u00e9cifiques dans des syst\u00e8mes embarqu\u00e9s.<\/strong><\/mark><\/p>\n\n\n\n<p>Un microcontr\u00f4leur se compose typiquement de plusieurs \u00e9l\u00e9ments :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Un processeur central (CPU) qui ex\u00e9cute les instructions.<\/li>\n\n\n\n<li>De la m\u00e9moire pour stocker les donn\u00e9es et le programme (RAM et ROM).<\/li>\n\n\n\n<li>Des interfaces d&rsquo;entr\u00e9e\/sortie (I\/O) pour interagir avec le monde ext\u00e9rieur (capteurs, actionneurs, affichages, etc.).<\/li>\n\n\n\n<li>Des p\u00e9riph\u00e9riques int\u00e9gr\u00e9s comme des temporisateurs, des convertisseurs analogique-num\u00e9rique (ADC), et des communications s\u00e9rie (comme I2C, SPI, ou UART).<\/li>\n<\/ul>\n\n\n\n<p>Toutes ces fonctionnalit\u00e9s peuvent se retrouver dans un module physique aussi petit que ceci:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"454\" height=\"165\" src=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2025\/01\/ATtiny85-microcontroller.webp\" alt=\"\" class=\"wp-image-2606\" style=\"width:204px;height:auto\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2025\/01\/ATtiny85-microcontroller.webp 454w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2025\/01\/ATtiny85-microcontroller-300x109.webp 300w\" sizes=\"auto, (max-width: 454px) 100vw, 454px\" \/><\/figure>\n<\/div>\n\n\n<p>Les microcontr\u00f4leurs sont utilis\u00e9s dans une vaste gamme d&rsquo;applications comme les appareils m\u00e9nagers, les v\u00e9hicules, les jouets \u00e9lectroniques, les syst\u00e8mes de contr\u00f4le industriels, et de nombreux autres dispositifs o\u00f9 des fonctions sp\u00e9cifiques sont automatis\u00e9es.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"has-text-align-left has-text-color\" style=\"color:#276681\"><strong>Plus pr\u00e9cis\u00e9ment, ils peuvent int\u00e9grer, dans un m\u00eame boitier (puce\/circuit int\u00e9gr\u00e9\/IC), les fonctionnalit\u00e9s suivantes:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CPU<\/li>\n\n\n\n<li>M\u00e9moire programme (FLASH)<\/li>\n\n\n\n<li>M\u00e9moire vive (SRAM)<\/li>\n\n\n\n<li>M\u00e9moire permanente (EEPROM)<\/li>\n\n\n\n<li>M\u00e9moire morte (ROM\/FLASH\/BOOTLOADER)<\/li>\n\n\n\n<li>Circuits d&rsquo;entr\u00e9es\/sorties  (I\/O)<\/li>\n\n\n\n<li>Circuits de communication (I2C, UART\/USART, SPI, USB, CAN) <\/li>\n\n\n\n<li>Capteurs\/Comparateurs<\/li>\n\n\n\n<li>Conversion de signaux analogiques &lt;-&gt; digitaux (DAC\/ADC)<\/li>\n\n\n\n<li>Modulation de largeur d\u2019impulsion (PWM)<\/li>\n\n\n\n<li>Minuteurs\/Compteurs (Timers\/Counters)<\/li>\n\n\n\n<li>Gestion des interruptions mat\u00e9rielles\/logicielles (INT)<\/li>\n\n\n\n<li>D\u00e9tection de blocages de code (WatchDog)<\/li>\n\n\n\n<li>D\u00e9tection d&rsquo;une chute de tension de l&rsquo;alimentation \u00e9lectrique (Brown-out\/BOD)<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Note:  Ces termes et acronymes seront expliqu\u00e9s un peu plus loin.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"has-luminous-vivid-orange-color has-text-color\">Les microcontr\u00f4leurs sont aussi parfois appel\u00e9s &lsquo;System on a Chip&rsquo; ou <strong><span class=\"has-inline-color has-vivid-purple-color\">SoC<\/span><\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><br><span style=\"color:#62aeb2\" class=\"has-inline-color\">2 &#8211; Exemples d&rsquo;utilisation<\/span><\/h2>\n\n\n\n<p class=\"has-text-align-left has-text-color\" style=\"color:#276681\">Nous retrouvons les microcontr\u00f4leurs dans une multitude d&rsquo;appareils \u00e9lectroniques tel que,<\/p>\n\n\n\n<div class=\"wp-block-getwid-table\"><table><tbody><tr><td style=\"padding-left:25px\">Four micro-ondes<\/td><td style=\"text-align:center;padding-right:50px\"><img decoding=\"async\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Microwave_oven_icon-e1626190920557.png\" alt=\"\" style=\"width: 100px;\">     <\/td><\/tr><tr><td style=\"padding-left:25px\">Thermostat intelligent<\/td><td style=\"text-align:center;padding-right:50px\"><img decoding=\"async\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/1941816.png\" alt=\"\" style=\"width: 100px;\"><\/td><\/tr><tr><td style=\"padding-left:25px\">Manette de jeux<\/td><td style=\"text-align:center;padding-right:50px\"><img decoding=\"async\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/pngfind.com-joystick-png-1301456.png\" alt=\"\" style=\"width: 100px;\"><\/td><\/tr><tr><td style=\"padding-left:25px\">Clavier d&rsquo;ordinateur<\/td><td style=\"text-align:center;padding-right:50px\"><img decoding=\"async\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/pngfind.com-computer-mouse-png-1139411.png\" alt=\"\" style=\"width: 100px;\"><\/td><\/tr><tr><td style=\"padding-left:25px\">Souris d&rsquo;ordinateur<\/td><td style=\"text-align:center;padding-right:50px\"><img decoding=\"async\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/pngfind.com-mouse-png-5297538-e1626192157484.png\" alt=\"\" style=\"width: 100px;\"><\/td><\/tr><tr><td style=\"padding-left:25px\">Voiture<\/td><td style=\"text-align:center;padding-right:50px\"><img decoding=\"async\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/pngfind.com-car-png-icon-1896112.png\" alt=\"\" style=\"width: 100px;\"><\/td><\/tr><tr><td style=\"padding-left:25px\">Plateforme de prototypage<\/td><td style=\"text-align:center;padding-right:50px\"><img decoding=\"async\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/pngfind.com-electronics-icon-png-893304.png\" alt=\"\" style=\"width: 100px;\"><\/td><\/tr><tr><td style=\"padding-left:25px\">Ligne de montage industrielle<\/td><td style=\"text-align:center;padding-right:50px\"><img decoding=\"async\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/noun_Robotic_arm_1933331.png\" alt=\"\" style=\"width: 100px;\"><\/td><\/tr><\/tbody><\/table><figcaption>Tableau 01<\/figcaption><\/div>\n\n\n\n<p class=\"has-text-align-left has-text-color\" style=\"color:#276681\">Ils sont aussi pr\u00e9sents dans des objets comme les jouets, les appareils \u00e9lectrom\u00e9nagers, les t\u00e9l\u00e9phones cellulaires, les routeurs Wifi, les tablettes \u00e9lectroniques, &#8230;<\/p>\n\n\n\n<p class=\"has-text-color\" style=\"color:#276681\"><strong>Bref, ils sont omnipr\u00e9sents dans notre univers d&rsquo;appareils \u00e9lectroniques<\/strong> ?.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><br><span style=\"color:#8c7965\" class=\"has-inline-color\">3 &#8211; Sommaire des fonctionnalit\u00e9s d&rsquo;un MCU<\/span><\/h2>\n\n\n\n<p class=\"has-black-color has-text-color\">La fonction premi\u00e8re d&rsquo;un microcontr\u00f4leur est de proposer des m\u00e9thodes d&rsquo;acquisition et d&rsquo;interaction avec le monde ext\u00e9rieur.  <\/p>\n\n\n\n<p class=\"has-black-color has-text-color\">Comme par exemple,<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lecture (acquisition de l&rsquo;\u00e9tat) d&rsquo;un capteur<\/strong>\n<ul class=\"wp-block-list\">\n<li>temp\u00e9rature<\/li>\n\n\n\n<li>pression atmosph\u00e9rique<\/li>\n\n\n\n<li>humidit\u00e9 relative<\/li>\n\n\n\n<li>position GPS<\/li>\n\n\n\n<li>d\u00e9tection d&rsquo;une source lumineuse (IR, RGB, &#8230;)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lecture d&rsquo;un \u00e9tat logique (0\/1, ON\/OFF, &#8230;)<\/strong>\n<ul class=\"wp-block-list\">\n<li>Interrupteur<\/li>\n\n\n\n<li>Niveau maximum\/minimum d&rsquo;un r\u00e9servoir<\/li>\n\n\n\n<li>Pr\u00e9sence d&rsquo;un signal \u00e9lectrique<\/li>\n\n\n\n<li>D\u00e9tection d&rsquo;une porte ouverte dans un syst\u00e8me d&rsquo;alarme<\/li>\n\n\n\n<li>Lecture des contr\u00f4les d&rsquo;une manette de jeu<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lecture d&rsquo;un \u00e9tat analogique<\/strong>\n<ul class=\"wp-block-list\">\n<li>Utilisation d&rsquo;un potentiom\u00e8tre (gradateur)<\/li>\n\n\n\n<li>Acquisition d&rsquo;un niveau sonore<\/li>\n\n\n\n<li>Acquisition de l&rsquo;intensit\u00e9 d&rsquo;une source de lumi\u00e8re<\/li>\n\n\n\n<li>Lecture de l&rsquo;\u00e9tat d&rsquo;un appareil 0-10volts (standard de contr\u00f4le d&rsquo;appareils analogiques)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Renseigner un \u00e9tat analogique<\/strong>\n<ul class=\"wp-block-list\">\n<li>Varier l&rsquo;intensit\u00e9 d&rsquo;une source de lumi\u00e8re<\/li>\n\n\n\n<li>Varier l&rsquo;intensit\u00e9 d&rsquo;un signal sonore<\/li>\n\n\n\n<li>Produire des sons complexes<\/li>\n\n\n\n<li>Programmer la vitesse de rotation d&rsquo;un moteur<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Contr\u00f4le d&rsquo;objets externes<\/strong>\n<ul class=\"wp-block-list\">\n<li>Allumer\/\u00e9teindre une Diode \u00c9mettrice de Lumi\u00e8re (DEL\/LED)<\/li>\n\n\n\n<li>Contr\u00f4ler un relai \u00e9lectrom\u00e9canique <\/li>\n\n\n\n<li>Activer une sir\u00e8ne sonore <\/li>\n\n\n\n<li>Transmettre un signal \u00e9lectromagn\u00e9tique<\/li>\n\n\n\n<li>Consommer une unit\u00e9 de stockage externe (FLASH Mem)<\/li>\n\n\n\n<li>Afficher sur un \u00e9cran LCD\/OLED<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote has-text-align-left is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Note:  Ceci n&rsquo;est qu&rsquo;une petite partie des fonctionnalit\u00e9s des microcontr\u00f4leurs.  Nous pr\u00e9senterons ult\u00e9rieurement une liste plus exhaustive.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><br><span style=\"color:#e5ad24\" class=\"has-inline-color\">4 &#8211; Apparence physique des MCUs<\/span><\/h2>\n\n\n\n<p class=\"has-text-align-left\">Les <strong><em>microcontr\u00f4leurs<\/em><\/strong> sont habituellement disponibles sous la forme d&rsquo;un unique <em><strong>circuit int\u00e9gr\u00e9 (IC)<\/strong><\/em> adoptant un des boitiers suivants:<\/p>\n\n\n\n<div class=\"wp-block-getwid-table\"><table><thead><tr><th>Acronyme<\/th><th>Description<\/th><th style=\"text-align:center\">Image<\/th><\/tr><\/thead><tbody><tr><td style=\"padding-left:9px;color:#4079a6\"><strong>DIP<\/strong><\/td><td>Dual Inline Package<\/td><td style=\"text-align:center\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"113\" class=\"wp-image-114\" style=\"width: 150px;\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/20191024141451Mda9zW.png\" alt=\"\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/20191024141451Mda9zW.png 360w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/20191024141451Mda9zW-300x225.png 300w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/td><\/tr><tr><td style=\"padding-left:9px;color:#4079a6\"><strong>SOIC<\/strong><\/td><td>Small Outline Integrated Circuit<\/td><td style=\"text-align:center\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"113\" class=\"wp-image-115\" style=\"width: 150px;\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/20191024141451iO9Hpl.png\" alt=\"\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/20191024141451iO9Hpl.png 360w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/20191024141451iO9Hpl-300x225.png 300w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/td><\/tr><tr><td style=\"padding-left:9px;color:#4079a6\"><strong>QFP\/TQFP<\/strong><\/td><td>(Thin) Quad Flat Package<\/td><td style=\"text-align:center\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"111\" class=\"wp-image-119\" style=\"width: 150px;\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/51dc6e21ce395f0807000000.png\" alt=\"\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/51dc6e21ce395f0807000000.png 552w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/51dc6e21ce395f0807000000-300x222.png 300w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/td><\/tr><tr><td style=\"padding-left:9px;color:#4079a6\"><strong>PGA<\/strong><\/td><td>Pin Grid Array<\/td><td style=\"text-align:center\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"91\" class=\"wp-image-121\" style=\"width: 150px;\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/220px-Cyrix_IBM_CPU_6x86MX_PR200_bottom.jpg\" alt=\"\"><\/td><\/tr><tr><td style=\"padding-left:9px;color:#4079a6\"><strong>BGA<\/strong><\/td><td>Ball Grid Aray<\/td><td style=\"text-align:center\"><img decoding=\"async\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/20191024141451sgHAnb.png\" alt=\"\" style=\"width: 150px;\"><\/td><\/tr><tr><td style=\"padding-left:9px;color:#4079a6\"><strong>MLP<\/strong><\/td><td>Micro Leadframe Package<\/td><td style=\"text-align:center\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"113\" class=\"wp-image-117\" style=\"width: 150px;\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/20191024141452xsCI5D.png\" alt=\"\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/20191024141452xsCI5D.png 360w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/20191024141452xsCI5D-300x225.png 300w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/td><\/tr><\/tbody><\/table><figcaption>Tableau 02<\/figcaption><\/div>\n\n\n\n<p class=\"has-text-align-left\">Par exemple, le microcontr\u00f4leur pr\u00e9sent sur une des plateformes de prototypage que nous utiliserons dans le cadre de ce cours est le ATmega328P de type DIP et il ressemble \u00e0 ceci:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"943\" height=\"460\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/medium-ATmega328P-SPDIP-28.png\" alt=\"\" class=\"wp-image-215\" style=\"width:246px;height:119px\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/medium-ATmega328P-SPDIP-28.png 943w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/medium-ATmega328P-SPDIP-28-300x146.png 300w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/medium-ATmega328P-SPDIP-28-768x375.png 768w\" sizes=\"auto, (max-width: 943px) 100vw, 943px\" \/><figcaption class=\"wp-element-caption\">ATmega328P en boitier DIP<\/figcaption><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/List_of_integrated_circuit_packaging_types\">R\u00e9f\u00e9rence<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><br><span style=\"color:#4079a6\" class=\"has-inline-color\">5 &#8211; Quelques microcontr\u00f4leurs populaires<\/span><\/h2>\n\n\n\n<p class=\"has-text-align-left\">Des nombreuses entreprises fabriquent des microcontroleurs proposants des fonctionnalit\u00e9s dans des formats de traitements de 8 \u00e0 32 bits, avec des vitesses de traitement multiples, un grand choix de formats de m\u00e9moire (RAM\/FLASH, &#8230;), un nombre variables de lignes et de protocoles de communication avec le monde ext\u00e9rieure. (<span class=\"has-inline-color has-vivid-red-color\">Note: Revoir la structure de ce paragraphe<\/span>)<\/p>\n\n\n\n<p class=\"has-text-align-left\">Au niveau des microcontroleurs grand public, s&rsquo;adressant aux enthousiasmes de l&rsquo;informatique et de l&rsquo;\u00e9lectronique, nommons les entreprises et les microcontr\u00f4leurs suivants:<\/p>\n\n\n\n<div class=\"wp-block-getwid-table\"><table><thead><tr><th style=\"text-align:left\">Entreprise<\/th><th style=\"text-align:left\">Microcontrolleurs populaires<\/th><th>NB bits<\/th><th style=\"text-align:center\">Logo<\/th><\/tr><\/thead><tbody><tr><td><strong><span style=\"color:#4079a6\">Atmel<\/span><\/strong> *<br>La s\u00e9rie de MCU AVR<br>*Achet\u00e9e par Microchip en 2015<\/td><td>ATtiny85<br>ATmega32U4<br><strong>ATmega328P<\/strong> (Arduino Uno)<br><strong>ATmega2560<\/strong> (Arduino Mega)<\/td><td style=\"text-align:center\">8<br>8<br>8<br>8<\/td><td style=\"text-align:center\"><img loading=\"lazy\" decoding=\"async\" width=\"100\" height=\"75\" class=\"wp-image-141\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/atmel-01-logo.png\" alt=\"\" style=\"width: 100px;\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/atmel-01-logo.png 800w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/atmel-01-logo-300x225.png 300w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/atmel-01-logo-768x576.png 768w\" sizes=\"auto, (max-width: 100px) 100vw, 100px\" \/><\/td><\/tr><tr><td><strong><span style=\"color:#4079a6\">Microchip<\/span><\/strong><br>La s\u00e9rie de MCU PIC<\/td><td>PIC16F877A<br>PIC18F4550<\/td><td style=\"text-align:center\">8<br>8<\/td><td style=\"text-align:center\"><img loading=\"lazy\" decoding=\"async\" width=\"70\" height=\"66\" class=\"wp-image-142\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/PngItem_1851137.png\" alt=\"\" style=\"width: 70px;\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/PngItem_1851137.png 310w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/PngItem_1851137-300x284.png 300w\" sizes=\"auto, (max-width: 70px) 100vw, 70px\" \/><\/td><\/tr><tr><td><span style=\"color:#4079a6\"><strong>Espressif<\/strong><\/span><br>La s\u00e9rie de MCU ESP<\/td><td>ESP8266<br>ESP32<\/td><td style=\"text-align:center\">32<br>32<\/td><td style=\"text-align:center\"><img loading=\"lazy\" decoding=\"async\" width=\"100\" height=\"100\" class=\"wp-image-140\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/espressig.png\" alt=\"\" style=\"width: 100px;\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/espressig.png 224w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/espressig-150x150.png 150w\" sizes=\"auto, (max-width: 100px) 100vw, 100px\" \/><\/td><\/tr><tr><td><strong><span style=\"color:#4079a6\">STMicroelectronics<\/span><\/strong><br>La s\u00e9rie de MCU STM32<\/td><td>STM32F103C8T6<\/td><td style=\"text-align:center\">32<\/td><td style=\"text-align:center\"><img loading=\"lazy\" decoding=\"async\" width=\"100\" height=\"62\" class=\"wp-image-146\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/st.png\" alt=\"\" style=\"width: 100px;\"><\/td><\/tr><tr><td><strong><span style=\"color:#4079a6\">Raspberry Pi<\/span><\/strong><\/td><td>RP2040<\/td><td style=\"text-align:center\">32<\/td><td style=\"text-align:center\"><img loading=\"lazy\" decoding=\"async\" width=\"100\" height=\"89\" class=\"wp-image-148\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Raspi-PGB001.png\" alt=\"\" style=\"width: 100px;\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Raspi-PGB001.png 1000w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Raspi-PGB001-300x267.png 300w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Raspi-PGB001-768x684.png 768w\" sizes=\"auto, (max-width: 100px) 100vw, 100px\" \/><\/td><\/tr><\/tbody><\/table><figcaption>Tableau 03<\/figcaption><\/div>\n\n\n\n<blockquote class=\"wp-block-quote has-text-align-left is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Note:  Dans nos apprentissages pratiques (laboratoires), nous utiliserons principalement les puces <strong>ATmega328P<\/strong>, disponible sur l&rsquo;Arduino Uno, et <strong>ATmega2560<\/strong> disponible sur l&rsquo;Arduino Mega.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><br><span style=\"color:#62aeb2\" class=\"has-inline-color\">6 &#8211; Anatomie d&rsquo;un microcontroleur (ATmega328P)<\/span><\/h2>\n\n\n\n<p class=\"has-text-align-left\">Pour \u00eatre en mesure de bien comprendre les diff\u00e9rentes fonctions d&rsquo;un microcontr\u00f4leur, commen\u00e7ons par apprivoiser le vocabulaire les d\u00e9finissants.<\/p>\n\n\n<p><!-- th width=\"110px\" --><\/p>\n\n\n<div class=\"wp-block-getwid-table has-table-layout-auto has-border-collapse-collapse\"><table><thead><tr><th width=\"110px\">Nom*<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td style=\"padding-left:5px;background-color:#e8f5f6\"><strong><span style=\"color:#0071a1\" class=\"has-inline-color\">MCU<\/span><\/strong><\/td><td style=\"background-color:#e8f5f6\"><em>MicroController Unit<\/em><\/td><\/tr><tr><td style=\"padding-left:5px\"><span style=\"color:#4079a6\"><strong>INPUT<\/strong><\/span><\/td><td>Signal d&rsquo;entr\u00e9e<\/td><\/tr><tr><td style=\"padding-left:5px;background-color:#e8f5f6\"><span style=\"color:#4079a6\"><strong>OUTPUT<\/strong><\/span><\/td><td style=\"background-color:#e8f5f6\">Signal de sortie<\/td><\/tr><tr><td style=\"padding-left:5px\"><strong><span style=\"color:#4079a6\">IO<\/span><\/strong><\/td><td><em>Input\/Output<\/em> &#8211; Entr\u00e9e\/Sortie<\/td><\/tr><tr><td style=\"padding-left:5px;background-color:#e8f5f6\"><strong><span style=\"color:#4079a6\">GPIO<\/span><\/strong><\/td><td style=\"background-color:#e8f5f6\"><em>General Purpose Input\/Output<\/em> &#8211; Entr\u00e9e\/sortie \u00e0 usage g\u00e9n\u00e9ral<br>Repr\u00e9sente une broche, d&rsquo;un microcont\u00f4leur, qui peut adopter un nombre <br>vari\u00e9 de fonctionnalit\u00e9s. <br><br>Par exemple, pour une m\u00eame broche; lecture digitale, \u00e9criture analogique, <br>interruption mat\u00e9rielle, PWM, &#8230; <\/td><\/tr><tr><td style=\"padding-left:5px\"><strong><span style=\"color:#4079a6\">Digital IO<\/span><\/strong><\/td><td>Entr\u00e9e\/Sortie digitale<br>Ne peut prendre que deux \u00e9tats, 0\/1, On\/Off, 0Volt\/[3.3,5]Volts<\/td><\/tr><tr><td style=\"padding-left:5px;background-color:#e8f5f6\"><strong><span style=\"color:#4079a6\">Analog IO<\/span><\/strong><\/td><td style=\"background-color:#e8f5f6\">Entr\u00e9e\/Sortie analogique<br>Peut prendre une multitude d&rsquo;\u00e9tats.<br>Par exemple, lire la valeur d&rsquo;un gradateur (potentiom\u00e8tre).<\/td><\/tr><tr><td style=\"padding-left:5px\"><strong><span style=\"color:#4079a6\">Kilo<\/span><\/strong><\/td><td>Multiplicateur * 1000<br>Note, en informatique, parce que les CPU calculent en base 2,  <br>1 Kilo Octets (Ko) vaut 1024 Octets. 2<sup>10<\/sup>&nbsp;= 1&nbsp;024<\/td><\/tr><tr><td style=\"padding-left:5px;background-color:#e8f5f6\"><strong><span style=\"color:#4079a6\">Mhz<\/span><\/strong><\/td><td style=\"background-color:#e8f5f6\">M\u00e9gahertz &#8211; Millions de cycles (impulsions) par seconde<\/td><\/tr><tr><td style=\"padding-left:5px\"><strong><span style=\"color:#4079a6\">SDRAM<\/span><\/strong><\/td><td>M\u00e9moire vive statique <\/td><\/tr><tr><td style=\"padding-left:5px;background-color:#e8f5f6\"><strong><span style=\"color:#4079a6\">EEPROM<\/span><\/strong><\/td><td style=\"background-color:#e8f5f6\"><em>Electrically-Erasable Programmable Read-Only Memory<\/em><br>M\u00e9moire morte effa\u00e7able \u00e9lectriquement et programmable<\/td><\/tr><tr><td style=\"padding-left:5px\"><strong><span style=\"color:#4079a6\">I<sup>2<\/sup>C<\/span><\/strong><\/td><td>Prononc\u00e9 <em> eye-square-see<\/em> (en anglais) pour &lsquo;<em>Inter-Integrated Circuit<\/em>&lsquo;<br>Protocole de communication privil\u00e9gi\u00e9 pour le contr\u00f4le des diff\u00e9rents <br>capteurs et objets reli\u00e9s au microcontr\u00f4leur.  <br><br>Il ne requiert que deux connexions \u00e9lectriques, SDA et  SCL<\/td><\/tr><tr><td style=\"padding-left:5px;background-color:#e8f5f6\"><strong><span style=\"color:#4079a6\">SDA<\/span><\/strong><\/td><td style=\"background-color:#e8f5f6\"><em>Serial Data Line<\/em> &#8211; Ligne de donn\u00e9es bidirectionnelle<br>Utilis\u00e9 dans la cadre d&rsquo;une connexion I<sup>2<\/sup>C pour l&rsquo;\u00e9change d&rsquo;information. <\/td><\/tr><tr><td style=\"padding-left:5px\"><strong><span style=\"color:#4079a6\">SCL<\/span><\/strong><\/td><td><em>Serial Clock Line<\/em> &#8211; Ligne d&rsquo;horloge de synchronisation bidirectionnelle<br>Utilis\u00e9 dans la cadre d&rsquo;une connexion I<sup>2<\/sup>C pour synchroniser les \u00e9changes <br>entre le microcontr\u00f4leur (master) et les p\u00e9riph\u00e9riques (slaves).<\/td><\/tr><tr><td style=\"padding-left:5px;background-color:#e8f5f6\"><strong><span style=\"color:#4079a6\">CLK<\/span><\/strong><\/td><td style=\"background-color:#e8f5f6\">Horloge ( habituellement du CPU).  <br>D\u00e9termine la cadence d&rsquo;ex\u00e9cution des instructions du programme.<\/td><\/tr><tr><td style=\"padding-left:5px\"><strong><span style=\"color:#4079a6\">XTAL<\/span><\/strong><\/td><td>Cristal<br>Une composante, interne ou externe, qui vibre lorsque qu&rsquo;on y applique <br>une tension \u00e9lectrique et qui permet d&rsquo;alimenter l&rsquo;horloge d&rsquo;un CPU.<\/td><\/tr><tr><td style=\"padding-left:5px;background-color:#e8f5f6\"><strong><span style=\"color:#4079a6\">ADC<\/span><\/strong><\/td><td style=\"background-color:#e8f5f6\"><em>Analog to Digital Converter<\/em><br>Convertisseur Analogique \u00e0 Num\u00e9rique (CAN*)<\/td><\/tr><tr><td style=\"padding-left:5px\"><strong><span style=\"color:#4079a6\">DAC<\/span><\/strong><\/td><td><em>Digital to Analog Converter<\/em><br>Convertisseur Num\u00e9rique \u00e0 Analogique (CNA)<\/td><\/tr><tr><td style=\"padding-left:5px;background-color:#e8f5f6\"><strong><span style=\"color:#4079a6\">PWM<\/span><\/strong><\/td><td style=\"background-color:#e8f5f6\"><em>Pulse With Modulation<\/em> &#8211;  Sortie \u00e0 modulation de largeur d&rsquo;impulsion<br><br>Permet de simuler la gradation d&rsquo;un signal \u00e0 partir d&rsquo;une sortie digitale <br>en variant la dur\u00e9e des \u00e9tats ON et OFF.<br><br>Par exemple, modifier l&rsquo;intensit\u00e9 d&rsquo;une diode \u00e9mettrice de lumi\u00e8re (DEL\/LED)<\/td><\/tr><tr><td style=\"padding-left:5px\"><strong><span style=\"color:#4079a6\">Timer<br>Counter<\/span><\/strong><\/td><td>Minuteur\/Compteur (<span class=\"has-inline-color has-vivid-red-color\">\u00c0 compl\u00e9ter<\/span>)<\/td><\/tr><tr><td style=\"padding-left:5px;background-color:#e8f5f6\"><strong><span style=\"color:#4079a6\">UART<br>USART<\/span><\/strong><\/td><td id=\"uart\" style=\"background-color:#e8f5f6\"><em>Universal Synchronous\/Asynchronous Receiver Transmitter<\/em><br><br>Protocole de communication privil\u00e9gi\u00e9 pour relier le microcontr\u00f4leur \u00e0 un <br>ordinateur pour sa programmation via un BootLoader.<br><br>Peut aussi servir \u00e0 la communication entre des microcontr\u00f4leurs ou <br>un microcontr\u00f4leur et des p\u00e9riph\u00e9riques tel qu&rsquo;un \u00e9cran LCD.<br><br>C&rsquo;est un protocole qui est support\u00e9 par tous les syst\u00e8mes d&rsquo;exploitation de PC.  <br>Sous Windows, cette interface est identifi\u00e9e par COMn (COM1, COM2, &#8230;), <br>sous MACOS et Linux par \/dev\/tty*<\/td><\/tr><tr><td style=\"padding-left:5px\"><strong><span style=\"color:#4079a6\">Boot<br>Loader<\/span><\/strong><\/td><td>Petit programme de d\u00e9marrage, install\u00e9 dans la m\u00e9moire FLASH d&rsquo;un microcontr\u00f4leur, habituellement dans le premier 2Ko,  et qui permet sa programmation, via le UART, <br>sans avoir \u00e0 utiliser des programmeurs mat\u00e9riels propri\u00e9taires couteux.  <br>Les microcontroleurs des modules Arduino poss\u00e8dent un Bootloader.<\/td><\/tr><tr><td style=\"padding-left:5px;background-color:#e8f5f6\"><strong><span style=\"color:#4079a6\">SPI<\/span><\/strong><\/td><td style=\"background-color:#e8f5f6\"><em>Serial Peripheral Interface<\/em><br><br>SPI est un protocole de communication en mode s\u00e9rie synchronis\u00e9 performant,<br>lorsque plusieurs capteurs sont connect\u00e9s \u00e0 un syst\u00e8me.<br><br>Plusieurs capteurs utilisent ce mode de communication.  Par exemple, carte SD, <br>module RFID, radio 2.4GHz, &#8230;<br><br>Par contre, un nombre plus \u00e9lev\u00e9 de signaux doivent-\u00eatre utilis\u00e9s; <br>SCK, CS, MOSI et MISO.<\/td><\/tr><tr><td><strong><span style=\"color:#4079a6\">ISP<br>ICSP<\/span><\/strong><\/td><td><em>In-System Programming, In-Circuit Serial programming<\/em><br><br>ICSP est une fonctionnalit\u00e9, via un connecteur \u00e9lectronique qui expose <br>les signaux SPI, qui permet aux microcontr\u00f4leurs&nbsp;d&rsquo;\u00eatre (re)programm\u00e9s <br>alors qu&rsquo;ils sont d\u00e9j\u00e0 en place dans le syst\u00e8me&nbsp;\u00e9lectronique ou la plateforme<br>de prototypage&nbsp;qu&rsquo;ils doivent piloter.&nbsp;<br><br>Ceci \u00e9vite d&rsquo;avoir besoin de programmer le microcontr\u00f4leur en dehors <br>du circuit \u00e0 l&rsquo;aide d&rsquo;un programmateur d\u00e9di\u00e9.<br><br>Dans le cas du Arduino, cette interface permet de programmer le BootLoader.<\/td><\/tr><tr><td style=\"padding-left:5px;background-color:#e8f5f6\"><strong><span style=\"color:#4079a6\">USB<\/span><\/strong><\/td><td style=\"background-color:#e8f5f6\"><em>Universal Serial Bus<\/em><\/td><\/tr><tr><td style=\"padding-left:5px\"><strong><span style=\"color:#4079a6\">CAN<\/span><\/strong><\/td><td><em>Controller Area Network<\/em><br><br>Protocol de communication utilis\u00e9 principalement dans l&rsquo;industrie automobile.<\/td><\/tr><tr><td style=\"padding-left:5px;background-color:#e8f5f6\"><span style=\"color:#4079a6\"><strong>INT<\/strong><\/span><\/td><td style=\"background-color:#e8f5f6\">Interruption logicielle ou mat\u00e9rielle<br><br>Permet de r\u00e9agir (associer des instructions) de fa\u00e7on asynchrone \u00e0 un \u00e9v\u00e9nement.  <br><br>Par exemple, \u00e0 la fin d&rsquo;un minuteur ou au changement d&rsquo;\u00e9tat d&rsquo;une des GPIO.<\/td><\/tr><\/tbody><\/table><figcaption>Tableau 04 &#8211; <span class=\"has-inline-color has-vivid-red-color\">\u00c0 compl\u00e9ter &#8230;<\/span><\/figcaption><\/div>\n\n\n\n<p>*INT &#8211; \u00c0 ne pas confondre avec le type &lsquo;int&rsquo; en C.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Le tableau pr\u00e9c\u00e9dent pr\u00e9sente une grande quantit\u00e9 d&rsquo;informations.  <\/p>\n\n\n\n<p>Le but ici n&rsquo;est pas de m\u00e9moriser toutes ces donn\u00e9es mais d&rsquo;y \u00eatre expos\u00e9 une premi\u00e8re fois.<\/p>\n\n\n\n<p>Au courant du cours, plusieurs de ces \u00e9l\u00e9ments seront revus.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span style=\"color:#62aeb2\" class=\"has-inline-color\">6.1 &#8211; Sp\u00e9cifications du ATmega328P<\/span><\/h3>\n\n\n\n<p>Fort de nos nouveaux acronymes, examinons maintenant les sp\u00e9cifications techniques du microcontr\u00f4leur ATmega328P.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"553\" height=\"460\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/medium-ATmega328PB-TQFP-32.png\" alt=\"\" class=\"wp-image-363\" style=\"width:161px;height:134px\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/medium-ATmega328PB-TQFP-32.png 553w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/medium-ATmega328PB-TQFP-32-300x250.png 300w\" sizes=\"auto, (max-width: 553px) 100vw, 553px\" \/><\/figure>\n<\/div>\n\n\n<div class=\"wp-block-getwid-table has-border-collapse-collapse\"><table><thead><tr><th>Nom<\/th><th>Valeur<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td style=\"background-color:#e8f5f6;padding-left:5px\">1) Type de m\u00e9moire programme<\/td><td style=\"background-color:#e8f5f6\">Flash<\/td><td style=\"background-color:#e8f5f6\"><\/td><\/tr><tr><td style=\"padding-left:5px\">2) Taille de la m\u00e9moire programme<\/td><td>32 Kilo octets<\/td><td>32768 octets<\/td><\/tr><tr><td style=\"background-color:#e8f5f6;padding-left:5px\">3) Vitesse du CPU<\/td><td style=\"background-color:#e8f5f6\">20 Mhz (1)*<\/td><td style=\"background-color:#e8f5f6\">1 instruction par cycle <br>20 MIPS (th\u00e9orique)<\/td><\/tr><tr><td style=\"padding-left:5px\">4) SRAM (m\u00e9moire vive)<\/td><td>2048 Octets<\/td><td>Utilis\u00e9e pour les donn\u00e9es, variables, &#8230;<\/td><\/tr><tr><td style=\"background-color:#e8f5f6;padding-left:5px\">5) EEPROM<\/td><td style=\"background-color:#e8f5f6\">1024 Octets<\/td><td style=\"background-color:#e8f5f6\">M\u00e9moire non volatile pour les donn\u00e9es<\/td><\/tr><tr><td style=\"padding-left:5px\">6) Communication externes<\/td><td>1-UART<br>2-SPI<br>1-I<sup>2<\/sup>C<\/td><td><\/td><\/tr><tr><td style=\"background-color:#e8f5f6;padding-left:5px;color:#cf2e2e\">7) Capture<br>Comparaison<br>PWM<\/td><td style=\"background-color:#e8f5f6\">1<br>1<br>6<\/td><td style=\"background-color:#e8f5f6\"><span class=\"has-inline-color has-vivid-red-color\">\u00c0 compl\u00e9ter<\/span> <\/td><\/tr><tr><td style=\"padding-left:5px\">8) Convertisseur A\/D<\/td><td>6<\/td><td><\/td><\/tr><tr><td style=\"background-color:#e8f5f6;padding-left:5px\">9) Minuteur\/compteur<\/td><td style=\"background-color:#e8f5f6\">2 x 8-bit<br>1 x 16-bit<\/td><td style=\"background-color:#e8f5f6\">8 bits   -&gt; 0..255<br>16 bits -&gt; 0..65535 <\/td><\/tr><tr><td style=\"padding-left:5px\">10) Nombre de comparateurs<\/td><td>1<\/td><td>Inclus au point 7<\/td><\/tr><tr><td style=\"background-color:#e8f5f6;padding-left:5px\">11) Temp\u00e9rature de fonctionnement<\/td><td style=\"background-color:#e8f5f6\">-40 to 85 \u00b0C<\/td><td style=\"background-color:#e8f5f6\"><\/td><\/tr><tr><td style=\"padding-left:5px\">12) Plage d&rsquo;alimentation (volts)<\/td><td>1.8 \u00e0 5.5<\/td><td><\/td><\/tr><tr><td style=\"background-color:#e8f5f6;padding-left:5px\">13) Nombre de broches<\/td><td style=\"background-color:#e8f5f6\">32<\/td><td style=\"background-color:#e8f5f6\">Sur le boitier DIP<\/td><\/tr><tr><td>14) GPIO<\/td><td>23 *(2)<\/td><td>Entr\u00e9e\/sortie \u00e0 usage g\u00e9n\u00e9ral<br>PB0..PB7, PC0..PC6, PD0..PD7<\/td><\/tr><\/tbody><\/table><figcaption>Tableau 05<\/figcaption><\/div>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>*(1) &#8211; La vitesse de l&rsquo;horloge de l&rsquo;Arduino Uno est de 16Mhz.  Donc, le CPU du ATmega328P va ex\u00e9cuter environ 16 MIPS. <\/p>\n\n\n\n<p>*(2) &#8211; L&rsquo;Arduino Uno n&rsquo;expose pas toutes les GPIO de l&rsquo;ATmega328P.  Les signaux disponibles sous Arduino Uno seront pr\u00e9sent\u00e9s plus tard.<\/p>\n\n\n\n<p>Note:  Un <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">comparateur analogique<\/mark><\/strong> peut-\u00eatre utilis\u00e9 pour d\u00e9clencher une interruption mat\u00e9rielle dans le cas ou le voltage \u00e0 l\u2019entr\u00e9e d\u2019une broche d\u00e9passe le voltage \u00e0 l\u2019entr\u00e9e d\u2019une autre broche.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><br><span style=\"color:#62aeb2\" class=\"has-inline-color\">6.2 &#8211; Diagramme de d\u00e9finition de bloc de l&rsquo;ATmega328P<\/span><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"475\" height=\"609\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/block-diagram-atmega328-microcontroller.png\" alt=\"\" class=\"wp-image-289\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/block-diagram-atmega328-microcontroller.png 475w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/block-diagram-atmega328-microcontroller-234x300.png 234w\" sizes=\"auto, (max-width: 475px) 100vw, 475px\" \/><figcaption class=\"wp-element-caption\">Extrait de la documentation de Microchip<\/figcaption><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><br><span style=\"color:#62aeb2\" class=\"has-inline-color\">6.3 &#8211; Identification des broches de l&rsquo;ATmega328P<\/span><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1114\" height=\"398\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/atmega328-PIN.png\" alt=\"\" class=\"wp-image-290\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/atmega328-PIN.png 1114w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/atmega328-PIN-300x107.png 300w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/atmega328-PIN-1024x366.png 1024w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/atmega328-PIN-768x274.png 768w\" sizes=\"auto, (max-width: 1114px) 100vw, 1114px\" \/><\/figure>\n<\/div>\n\n\n<div class=\"wp-block-file\"><a href=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf\">Atmel-ATmega328P_Datasheet<\/a><a href=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf\" class=\"wp-block-file__button wp-element-button\" download>T\u00e9l\u00e9charger<\/a><\/div>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><br><span style=\"color:#e47128\" class=\"has-inline-color\">7 &#8211; Programmation d&rsquo;un microcontr\u00f4leur<\/span><\/h2>\n\n\n\n<p class=\"has-text-align-left\">Les fabricants de MCU propose des solutions propri\u00e9taires pour la programmation des MCU, c-a-d, des m\u00e9thodes et outils pour d\u00e9velopper, compiler, \u00e9purer, t\u00e9l\u00e9charger et tester les applications dans les MCU.<\/p>\n\n\n\n<p>Ces solutions sont habituellement compos\u00e9es des \u00e9l\u00e9ments suivants:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Platformes de prototypage<\/li>\n\n\n\n<li>Programmateurs mat\u00e9riels et protocoles<\/li>\n\n\n\n<li>Environnements int\u00e9gr\u00e9s de d\u00e9veloppement (IDE)<\/li>\n\n\n\n<li>Langages de programmation, librairies et outils<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span style=\"color:#e47128\" class=\"has-inline-color\">7.1 &#8211; Plateformes de prototypage<\/span><\/h3>\n\n\n\n<p class=\"has-text-align-left\">Une plateforme de prototypage est une plaquette \u00e9lectronique qui re\u00e7oit un MCU donn\u00e9 et qui permet d&rsquo;exp\u00e9rimenter avec ce dernier.  Par exemple, voici une des plateformes de prototypage de la cie Microchip pour leurs MCU 8 bits:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"635\" height=\"321\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/microchip-curiosity-board.jpg\" alt=\"\" class=\"wp-image-376\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/microchip-curiosity-board.jpg 635w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/microchip-curiosity-board-300x152.jpg 300w\" sizes=\"auto, (max-width: 635px) 100vw, 635px\" \/><figcaption class=\"wp-element-caption\">Curiosity Development Board<\/figcaption><\/figure>\n<\/div>\n\n\n<p><a href=\"https:\/\/www.microchip.com\/DevelopmentTools\/ProductDetails\/PartNO\/DM164137#additional-summary\">R\u00e9f\u00e9rence<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span style=\"color:#e47128\" class=\"has-inline-color\">7.2 &#8211; Programmateurs et d\u00e9bogueur en circuit de MCU<\/span><\/h3>\n\n\n\n<p class=\"has-text-align-left\">Un programmateur de MCU est habituellement un module \u00e9lectronique qui relie la plateforme de prototypage du MCU, via le connecteur <strong>ICSP<\/strong>, \u00e0 un ordinateur personnel par l&rsquo;entremise d&rsquo;un port USB.  Il sera pilot\u00e9 soit \u00e0 partir du IDE, d&rsquo;une application distincte fen\u00eatr\u00e9e ou \u00e0 partir de la ligne de commande du syst\u00e8me d&rsquo;exploitation h\u00f4te.  <\/p>\n\n\n\n<p>En bref, il est utilis\u00e9 pour transf\u00e9rer une application (micro-code) vers la m\u00e9moire programme du MCU.<\/p>\n\n\n\n<p>Il sert aussi \u00e0 d\u00e9boguer l&rsquo;application en temps r\u00e9el ou en pas \u00e0 pas. <\/p>\n\n\n\n<p>Voici une liste de programmateurs\/d\u00e9bogueurs populaires:<\/p>\n\n\n\n<div class=\"wp-block-getwid-table\"><table><thead><tr><th>Fabricant<\/th><th>Programmateur<\/th><th>Image<\/th><\/tr><\/thead><tbody><tr><td style=\"padding-left:8px;color:#4079a6\"><strong>Microchip<\/strong><\/td><td><strong>PICkit 3<\/strong><br>Pour la programmation des s\u00e9ries PIC (16F, 18F, &#8230;)<br>[ <span class=\"has-inline-color has-cyan-bluish-gray-color\">Environ<\/span> <span class=\"has-inline-color has-vivid-red-color\"><strong>40$<\/strong><\/span> ]<\/td><td style=\"text-align:center\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"113\" class=\"wp-image-343\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/PICKIT-3.jpg\" alt=\"\" style=\"width: 150px;\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/PICKIT-3.jpg 640w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/PICKIT-3-300x225.jpg 300w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/td><\/tr><tr><td style=\"padding-left:8px;color:#4079a6\"><strong>Microchip<\/strong><\/td><td><strong>PICkit 4<\/strong><br><br>Pour la programmation des s\u00e9ries<br>PIC (16F, &#8230;), AVR (ATmega328P, ATmega1280, &#8230;)<br>[ <span class=\"has-inline-color has-cyan-bluish-gray-color\">Environ<\/span> <span class=\"has-inline-color has-vivid-red-color\"><strong>125$<\/strong><\/span> ]<\/td><td style=\"text-align:center\"><img loading=\"lazy\" decoding=\"async\" width=\"100\" height=\"194\" class=\"wp-image-342\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/pickit4.jpg\" alt=\"\" style=\"width: 100px;\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/pickit4.jpg 848w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/pickit4-154x300.jpg 154w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/pickit4-527x1024.jpg 527w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/pickit4-768x1493.jpg 768w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/pickit4-790x1536.jpg 790w\" sizes=\"auto, (max-width: 100px) 100vw, 100px\" \/><\/td><\/tr><tr><td style=\"padding-left:8px;color:#4079a6\"><strong>Atmel<\/strong><\/td><td><strong>Atmel AVRISP STK500<\/strong><br><br>Pour la programmation de la s\u00e9rie AVR (ATmega328P, &#8230;)<br>[ <span class=\"has-inline-color has-cyan-bluish-gray-color\">Environ<\/span> <strong><span class=\"has-inline-color has-vivid-red-color\">40$<\/span><\/strong> ]<\/td><td style=\"text-align:center\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" class=\"wp-image-346\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/atmel_avrisp_stk500_usb_isp_programmer_1.jpg\" alt=\"\" style=\"width: 150px;\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/atmel_avrisp_stk500_usb_isp_programmer_1.jpg 800w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/atmel_avrisp_stk500_usb_isp_programmer_1-300x300.jpg 300w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/atmel_avrisp_stk500_usb_isp_programmer_1-150x150.jpg 150w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/atmel_avrisp_stk500_usb_isp_programmer_1-768x768.jpg 768w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/td><\/tr><tr><td style=\"color:#4079a6\"><strong>STMicro<\/strong><br><strong>electronics<\/strong><\/td><td><strong>ST LINK V2<\/strong><br>Pour la programmation de la s\u00e9rie STM32<br>[ <span class=\"has-inline-color has-cyan-bluish-gray-color\">Environ<\/span> <strong><span class=\"has-inline-color has-vivid-red-color\">10$<\/span><\/strong> ]<\/td><td style=\"text-align:center\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"123\" class=\"wp-image-340\" style=\"width: 150px;\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/stm32-prg.jpg\" alt=\"\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/stm32-prg.jpg 390w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/stm32-prg-300x245.jpg 300w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/td><\/tr><tr><td style=\"color:#4079a6\"><strong>G\u00e9n\u00e9rique <br>Chinois<\/strong><\/td><td><strong>XGecu TL866II Programmer PLUS&nbsp;<\/strong><br>Pour la programmation d&rsquo;un vaste ensemble de MCU, <br>FLASH, EEPROM, &#8230;<br>[ <span class=\"has-inline-color has-cyan-bluish-gray-color\">Environ<\/span> <strong><span class=\"has-inline-color has-vivid-red-color\">75$<\/span><\/strong> ]<\/td><td style=\"text-align:center\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" class=\"wp-image-353\" style=\"width: 150px;\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/tl866a-universal-usb-programmer-with-icsp-feature-28207-55-B.jpg\" alt=\"\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/tl866a-universal-usb-programmer-with-icsp-feature-28207-55-B.jpg 900w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/tl866a-universal-usb-programmer-with-icsp-feature-28207-55-B-300x300.jpg 300w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/tl866a-universal-usb-programmer-with-icsp-feature-28207-55-B-150x150.jpg 150w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/tl866a-universal-usb-programmer-with-icsp-feature-28207-55-B-768x768.jpg 768w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/td><\/tr><\/tbody><\/table><figcaption>Tableau 06<\/figcaption><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>? Voici un exemple d&rsquo;une programmation &lsquo;<strong>en circuit<\/strong>&lsquo; d&rsquo;un PIC 16F, en utilisant le programmateur PICkit 3,  sur sur une plaquette de prototypage:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"784\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/pickit-3-pinouts-connection-diagram-1.png\" alt=\"\" class=\"wp-image-410\" style=\"width:396px;height:518px\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/pickit-3-pinouts-connection-diagram-1.png 600w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/pickit-3-pinouts-connection-diagram-1-230x300.png 230w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span style=\"color:#e47128\" class=\"has-inline-color\">7.3 &#8211; Les environnements de d\u00e9veloppement (IDE\/IPE) propri\u00e9taires<\/span><\/h3>\n\n\n\n<p class=\"has-text-align-left\">Plusieurs concepteurs de MCU proposent des compilateurs, environnements de d\u00e9veloppement, librairies de code, des outils mat\u00e9riels et logiciels pour le d\u00e9veloppement de syst\u00e8mes (embarqu\u00e9s) \u00e0 partir de leurs MCU.<\/p>\n\n\n\n<p class=\"has-text-align-left\">Les IDE sont habituellement disponibles gratuitement.  Par contre, certaines fonctions avanc\u00e9es, comme par exemple, <em>un compilateur qui optimise le code<\/em>, peuvent comporter un co\u00fbt d&rsquo;achat.<\/p>\n\n\n\n<p class=\"has-text-align-left\">\u00c0 ces co\u00fbts, il faudra ajouter l&rsquo;acquisition d&rsquo;un programmateur de MCU compatible et d&rsquo;une plateforme de prototypage.<\/p>\n\n\n\n<p class=\"has-text-align-left\"><span class=\"has-inline-color has-vivid-red-color\">Note<\/span>: Ces outils produisent des syst\u00e8mes qui ne sont pas ou peu transportables d&rsquo;un MCU d&rsquo;un fabricant vers un autre.<\/p>\n\n\n\n<p>Par contre, ils permettent de d\u00e9velopper des syst\u00e8mes hautement optimis\u00e9s.<\/p>\n\n\n\n<p>Il faudra aussi tenir compte des investissements en temps et en ressources humaines pour maitriser une solution donn\u00e9e.<\/p>\n\n\n\n<p>Voici un aper\u00e7u de quelques IDEs disponibles:<\/p>\n\n\n\n<div class=\"wp-block-getwid-table\"><table><tbody><tr><td>Solution<\/td><td>Capture d&rsquo;\u00e9cran de l&rsquo;IDE<\/td><\/tr><tr><td><strong><span style=\"color:#4079a6\">Microchip Studio for AVR<\/span><\/strong> * <br>* (Anciennement Atmel Studio)<br>Version Windows seulement<br><br>Pour MCU de type <strong>AVR<\/strong> (Atmega)<br><br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.microchip.com\/en-us\/development-tools-tools-and-software\/microchip-studio-for-avr-and-sam-devices\" target=\"_blank\">Disponible ici<\/a><\/td><td style=\"text-align:right\"><img loading=\"lazy\" decoding=\"async\" width=\"450\" height=\"306\" class=\"wp-image-384\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-09.38.59.png\" alt=\"\" style=\"width: 450px;\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-09.38.59.png 1196w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-09.38.59-300x204.png 300w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-09.38.59-1024x697.png 1024w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-09.38.59-768x523.png 768w\" sizes=\"auto, (max-width: 450px) 100vw, 450px\" \/><\/td><\/tr><tr><td><strong><span style=\"color:#4079a6\">MPLAB\u00ae X IDE<\/span><\/strong><br>Version Windows, MacOS et Linux<br><br>Pour MCU de type <strong>PIC<\/strong><br><br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.microchip.com\/en-us\/development-tools-tools-and-software\/mplab-x-ide\" target=\"_blank\">Disponible ici<\/a><\/td><td style=\"text-align:right\"><img loading=\"lazy\" decoding=\"async\" width=\"450\" height=\"307\" class=\"wp-image-387\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-09.56.09.png\" alt=\"\" style=\"width: 450px;\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-09.56.09.png 1193w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-09.56.09-300x204.png 300w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-09.56.09-1024x698.png 1024w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-09.56.09-768x523.png 768w\" sizes=\"auto, (max-width: 450px) 100vw, 450px\" \/><\/td><\/tr><tr><td><strong><span style=\"color:#4079a6\">STM32CubeIDE<\/span><\/strong>&nbsp;<br>Version Windows, MacOS et Linux<br><br>Pour MCU de type <strong>STM32<\/strong><br><br><a href=\"https:\/\/www.st.com\/en\/development-tools\/stm32cubeide.html\" target=\"_blank\" rel=\"noreferrer noopener\">Disponible ici<\/a><\/td><td style=\"text-align:right\"><img loading=\"lazy\" decoding=\"async\" width=\"450\" height=\"305\" class=\"wp-image-398\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-10.52.05.png\" alt=\"\" style=\"width: 450px;\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-10.52.05.png 1192w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-10.52.05-300x204.png 300w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-10.52.05-1024x695.png 1024w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-10.52.05-768x521.png 768w\" sizes=\"auto, (max-width: 450px) 100vw, 450px\" \/><\/td><\/tr><tr><td><strong><span style=\"color:#4079a6\">ESP-IDF<br><\/span><\/strong>Version Windows, MacOS et Linux<br>Pour MCU de type <strong>ESP<\/strong> (ESP32, ESP8266)<br><span class=\"has-inline-color has-vivid-red-color\">NOTE<\/span>: S&rsquo;utilise \u00e0 partir de la ligne de<br>commandes.<br><a rel=\"noreferrer noopener\" href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32\/get-started\/index.html#get-started-get-esp-idf\" target=\"_blank\">Disponible ici<\/a><\/td><td style=\"text-align:right\"><img loading=\"lazy\" decoding=\"async\" width=\"450\" height=\"202\" class=\"wp-image-393\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-10.41.25.png\" alt=\"\" style=\"width: 450px;\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-10.41.25.png 872w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-10.41.25-300x135.png 300w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-10.41.25-768x344.png 768w\" sizes=\"auto, (max-width: 450px) 100vw, 450px\" \/><\/td><\/tr><tr><td><strong><span style=\"color:#4079a6\">Arduino IDE<\/span><\/strong><br><br>Environnement de d\u00e9veloppement<br>pour une <strong>multitude de MCU<\/strong>s et de <br>plateformes de prototypage.<br><br>Version Windows, MacOS et Linux<br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.arduino.cc\/en\/software\" target=\"_blank\">Disponible ici<\/a><\/td><td style=\"text-align:right\"><img loading=\"lazy\" decoding=\"async\" width=\"450\" height=\"307\" class=\"wp-image-392\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-10.27.25.png\" alt=\"\" style=\"width: 450px;\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-10.27.25.png 1195w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-10.27.25-300x204.png 300w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-10.27.25-1024x698.png 1024w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-15-a-10.27.25-768x523.png 768w\" sizes=\"auto, (max-width: 450px) 100vw, 450px\" \/><\/td><\/tr><\/tbody><\/table><figcaption>Tableau 07<\/figcaption><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span style=\"color:#e47128\" class=\"has-inline-color\">7.4 &#8211; Langages utilis\u00e9s pour la programmation des MCUs<\/span><\/h3>\n\n\n\n<p>Les langages les plus utilis\u00e9s pour le d\u00e9veloppement d&rsquo;applications pour les MCU sont:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>C<\/li>\n\n\n\n<li>C++ <\/li>\n\n\n\n<li>Java<\/li>\n\n\n\n<li>Assembleur<\/li>\n<\/ul>\n\n\n\n<p>Avec certain MCUs, il est aussi possible de les programmer en MicroPython (ESP),  en PBasic (BASIC Stamp) ou en Spin (Propeller de Parallax).<\/p>\n\n\n\n<p>Dans le cadre de ce cours, nous utiliserons le langage C(++).<\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><br><span style=\"color:#62aeb2\" class=\"has-inline-color\">8 &#8211; Programme d&rsquo;amor\u00e7age (BootLoader)<\/span><\/h2>\n\n\n\n<p class=\"has-text-align-left\">Une fa\u00e7on d&rsquo;expliquer le r\u00f4le du &lsquo;bootloader&rsquo; d&rsquo;un MCU est de poser la question suivante, pourquoi ne puis-je pas programmer mon MCU directement \u00e0 partir de mon PC?<\/p>\n\n\n\n<p class=\"has-text-align-left\">Et bien, la r\u00e9ponse simple \u00e0 cette question est que les ordinateurs personnels ne proposent pas, par d\u00e9faut, les protocoles et signaux (SPI, MOSI, MISO, &#8230;) n\u00e9cessaires \u00e0 leur programmation.<\/p>\n\n\n\n<p class=\"has-text-align-left\">Qu&rsquo;elles sont les ports de branchement disponibles de facto sur un PC?  Le port USB et UART via RS232 (COMn) sur les mod\u00e8les plus anciens.<\/p>\n\n\n\n<p class=\"has-text-align-left\">Nous pourrions alors utiliser le port USB pour programmer les MCU, mais la plupart des MCU ne proposent pas cette interface car couteux \u00e0 impl\u00e9menter et n\u00e9cessite une horloge de 48Mhz, elle aussi plus co\u00fbteuse \u00e0 incorporer.<\/p>\n\n\n\n<p class=\"has-text-align-left\">Les MCU proposent presque tous une interface USART.  Ce type d&rsquo;interface, qui permet de transmette des octets en trames de bits, est aussi disponible sur les PC depuis la premi\u00e8re parution de l&rsquo;IBM PC en 1981 et, une interface logicielle est disponible sur tous les syst\u00e8mes d&rsquo;exploitation modernes.  Sous windows, on y r\u00e9f\u00e8re par les pilotes de communication COM1, COM2, &#8230;<\/p>\n\n\n\n<p class=\"has-text-align-left\"><strong><span style=\"color:#00878f\" class=\"has-inline-color\">De retour au bootloader<\/span><\/strong><\/p>\n\n\n\n<p class=\"has-text-align-left\">Le bootloader est un petit programme qui est enregistr\u00e9, par exemple pour le ATmega328P, dans le premier 2ko de m\u00e9moire programme du MCU.  <\/p>\n\n\n\n<p class=\"has-text-align-left\">\u00c0 priori, il ne fait rien d&rsquo;autre que de passer la main au programme de l&rsquo;utilisateur lors du d\u00e9marrage ou de la r\u00e9initialisation du MCU.<\/p>\n\n\n\n<p class=\"has-text-align-left\">L&rsquo;astuce ici est d&rsquo;ici placer une petite application, maximum de 2ko, qui analyse, au d\u00e9marrage, si une s\u00e9quence &lsquo;magique&rsquo; d&rsquo;instructions est re\u00e7ue sur le port du UART, indiquant que nous d\u00e9sirons r\u00e9\u00e9crire le programme de l&rsquo;utilisateur.<\/p>\n\n\n\n<p class=\"has-text-align-left\">Les plateformes de prototypage, comme les cartes Arduino, utilisent cette approche pour la programmation des MCUs.  L&rsquo;avantage est qu&rsquo;il est possible d&rsquo;exp\u00e9rimenter avec un MCU sans l&rsquo;achat de programmateurs mat\u00e9riels. <\/p>\n\n\n\n<p class=\"has-text-align-left\">Il y a un l\u00e9ger d\u00e9savantage, lors du d\u00e9marrage, le code du bootloader attend quelques instants pour la r\u00e9ception, ou pas, de la s\u00e9quence de programmation de la m\u00e9moire programme,  ce d\u00e9lai sera pass\u00e9 au d\u00e9marrage du programme principale.<\/p>\n\n\n\n<p class=\"has-text-align-left\"><strong><span class=\"has-inline-color has-vivid-red-color\">Note<\/span><\/strong>: Il faut absolument un programmateur mat\u00e9riel, ou un autre MCU, pour inscrire du code dans la zone m\u00e9moire r\u00e9serv\u00e9e au BootLoader.<\/p>\n\n\n\n<p> <strong><span style=\"color:#00878f\" class=\"has-inline-color\">Voil\u00e0, nous voil\u00e0 maintenant renseign\u00e9 sur le r\u00f4le du BootLoader ?!<\/span><\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading has-text-color\" style=\"color:#4079a6\"><br>9 &#8211; Le projet Arduino.cc <\/h2>\n\n\n\n<p><span class=\"has-inline-color has-black-color\">Qu&rsquo;est-ce qu&rsquo;Arduino?<\/span><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"520\" height=\"330\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/arduino-uno-00.jpg\" alt=\"\" class=\"wp-image-467\" style=\"width:280px;height:178px\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/arduino-uno-00.jpg 520w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/arduino-uno-00-300x190.jpg 300w\" sizes=\"auto, (max-width: 520px) 100vw, 520px\" \/><figcaption class=\"wp-element-caption\">L&rsquo;<em>Arduino utilis\u00e9 dans ce cours<\/em> <\/figcaption><\/figure>\n<\/div>\n\n\n<p>Voici un extrait de l&rsquo;article de wikip\u00e9dia:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote has-text-align-left is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Arduino<\/strong>&nbsp;est la marque d&rsquo;une plateforme de&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Prototypage\">prototypage<\/a>&nbsp;open-source qui permet aux utilisateurs de cr\u00e9er des objets \u00e9lectroniques interactifs \u00e0 partir de&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Circuit_imprim%C3%A9\">cartes \u00e9lectroniques<\/a>&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Mat%C3%A9riel_libre\">mat\u00e9riellement libres<\/a> sur lesquelles se trouve un&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Microcontr%C3%B4leur\">microcontr\u00f4leur<\/a>&nbsp;(d&rsquo;architecture&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Atmel_AVR\">Atmel AVR<\/a>&nbsp;comme l&rsquo;Atmega328p, et d&rsquo;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Architecture_ARM\">architecture ARM<\/a>&nbsp;comme le Cortex-M3 pour l&rsquo;Arduino Due).<\/p>\n\n\n\n<p>Les sch\u00e9mas de ces cartes \u00e9lectroniques sont publi\u00e9s en&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Licence_libre\">licence libre<\/a>. Cependant, certaines composantes, comme le microcontr\u00f4leur par exemple, ne sont pas sous licence libre.<\/p>\n\n\n\n<p>Le microcontr\u00f4leur est pr\u00e9programm\u00e9 avec un&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Bootloader\">bootloader<\/a>&nbsp;de fa\u00e7on qu&rsquo;un programmateur d\u00e9di\u00e9 ne soit pas n\u00e9cessaire.<\/p>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote has-text-align-left is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Le logiciel de programmation des modules Arduino, dont l&rsquo;interface, appel\u00e9e&nbsp;<em>Arduino IDE<\/em>, est une application&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Java_(langage)\">Java<\/a>,&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Logiciel_libre\">libre<\/a>&nbsp;et&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Logiciel_multiplate-forme\">multi-plateforme<\/a>&nbsp;d\u00e9riv\u00e9e de&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Processing\">Processing<\/a>&nbsp;servant d&rsquo;\u00e9diteur de code et de compilateur, et qui peut transf\u00e9rer le&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Firmware\">firmware<\/a>&nbsp;et le programme au travers de la liaison s\u00e9rie (<a href=\"https:\/\/fr.wikipedia.org\/wiki\/RS-232\">RS-232<\/a>,&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Bluetooth\">Bluetooth<\/a>&nbsp;ou&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/USB\">USB<\/a>&nbsp;selon le module). Il est \u00e9galement possible de se passer de l&rsquo;interface Arduino, et de compiler et t\u00e9l\u00e9verser les programmes via l&rsquo;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Interface_en_ligne_de_commande\">interface en ligne de commande<\/a><a href=\"https:\/\/fr.wikipedia.org\/wiki\/Arduino#cite_note-7\">7.<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/fr.wikipedia.org\/wiki\/Arduino#cite_note-7\">Le&nbsp;<\/a><a href=\"https:\/\/fr.wikipedia.org\/wiki\/Langage_de_programmation\">langage de programmation<\/a>&nbsp;utilis\u00e9 est le&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/C%2B%2B\">C++<\/a><\/p>\n<\/blockquote>\n\n\n\n<p><a href=\"https:\/\/create.arduino.cc\/projecthub\/projects\/tags\/fun\">Exemples de projets r\u00e9alis\u00e9s avec des modules Arduino<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<p>Voici la palette de couleurs utilis\u00e9e pour la conception de cette page:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"424\" height=\"14\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-16-a-00.10.08.png\" alt=\"\" class=\"wp-image-582\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-16-a-00.10.08.png 424w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2021\/07\/Capture-decran-le-2021-07-16-a-00.10.08-300x10.png 300w\" sizes=\"auto, (max-width: 424px) 100vw, 424px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<p class=\"has-text-align-right has-cyan-bluish-gray-color has-text-color has-small-font-size\">Document r\u00e9dig\u00e9 par Alain Boudreault, aka ve2cuy &#8211; R\u00e9vision (c)  2021.07.15.03<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Objectif de la lecture \u00c0 la fin de cet atelier, nous devrions \u00eatre capable d&rsquo;expliquer ce qu&rsquo;est un microcontr\u00f4leur, d&rsquo;utiliser le vocabulaire qui le d\u00e9fini, d&rsquo;identifier ses domaines d&rsquo;application, de reconnaitre ses apparences physiques, de d\u00e9chiffrer un diagramme de d\u00e9finition de bloc qui le d\u00e9crit, de nommer ses fonctionnalit\u00e9s techniques et d&rsquo;identifier les outils mat\u00e9riels [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ub_ctt_via":"","footnotes":""},"class_list":["post-60","page","type-page","status-publish","hentry"],"featured_image_src":null,"_links":{"self":[{"href":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/wp-json\/wp\/v2\/pages\/60","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/wp-json\/wp\/v2\/comments?post=60"}],"version-history":[{"count":347,"href":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/wp-json\/wp\/v2\/pages\/60\/revisions"}],"predecessor-version":[{"id":2662,"href":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/wp-json\/wp\/v2\/pages\/60\/revisions\/2662"}],"wp:attachment":[{"href":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/wp-json\/wp\/v2\/media?parent=60"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}