Section outline

    • Ce chapitre introductif pose les fondements des systèmes microprogrammés en commençant par leur définition. Il établit une comparaison fondamentale entre les architectures de Von Neumann et de Harvard, en soulignant leurs différences structurelles et leurs implications sur les performances. L'étude se poursuit par une analyse des philosophies CISC et RISC, incluant une introduction à la notion de pipeline qui permet d’optimiser le flux d’exécution des instructions. Cette base théorique mène à la distinction cruciale entre un microprocesseur, conçu pour des systèmes ouverts nécessitant des composants externes, et un microcontrôleur, qui intègre tous les éléments essentiels sur une seule puce. Le chapitre présente ensuite les différentes familles de microcontrôleurs disponibles sur le marché, en détaillant les critères de choix déterminants tels que la consommation, la puissance de calcul, les périphériques intégrés et le coût. Enfin, pour ancrer la théorie dans la pratique, le contenu de ce chapitre et des suivants sera orienté en fonction du type de microcontrôleur présent sur les cartes de développement utilisées lors des travaux pratiques de l’établissement.

    • L’objectif de ce chapitre est d’explorer en profondeur l’architecture interne et externe du microcontrôleur. L’architecture matérielle est étudiée sous deux angles : l’architecture externe, qui décrit les broches et leurs fonctions (alimentation, oscillateur, entrées-sorties, etc.), et l’architecture interne, qui détaille le cœur du processeur, la mémoire (RAM, ROM/Flash) et les bus de communication internes. Parallèlement, l’architecture logicielle est analysée à travers les modes d’adressage qui permettent d’accéder aux données de différentes manières, ainsi qu’à travers le jeu d’instructions spécifique, dont la maîtrise est indispensable pour une programmation efficace et bas niveau.

    •  Ce chapitre se consacre à la mise en œuvre pratique de la programmation en langage assembleur. Il débute par l’étude de la structure type d’un programme, incluant la définition des segments de code, de données et la gestion de la pile. À travers des exemples concrets et progressifs (comme la manipulation de ports, des opérations arithmétiques et des boucles), les étudiants apprendront à écrire leurs premiers programmes. Une importance particulière est accordée à l’optimisation du code, en montrant comment des choix d’instructions ou de structures peuvent réduire la taille du programme et améliorer son temps d’exécution, des aspects critiques dans les systèmes embarqués aux ressources limitées.

    • Ce chapitre présente l’environnement de développement intégré (IDE) comme outil central pour mener à bien un projet de programmation. En prenant l’exemple d’un IDE comme MPLAB (ou un autre selon l’environnement de TP), il détaille les étapes du cycle de développement : la création du projet, l’écriture du code source, puis les phases de compilation (ou d’assemblage) et d’édition de liens qui transforment le code source en fichier exécutable. Le processus de chargement de ce fichier dans la mémoire du microcontrôleur est expliqué, avant de se concentrer sur les techniques de débogage. Les étudiants apprendront à utiliser les outils de test et de correction d’erreurs, tels que les points d’arrêt, l’exécution pas à pas et la visualisation des registres, afin d’analyser et de valider le comportement de leurs applications.

    • Ce chapitre, d’une durée substantielle, est consacré aux périphériques essentiels pour la gestion du temps et des événements asynchrones. Il s’ouvre sur les circuits d’entrées-sorties parallèles, où l’étudiant apprend à configurer les registres de direction, d’état et de contrôle pour interfacer le microcontrôleur avec des composants externes. L’étude des Timers (ou temporisateurs) constitue le cœur de la gestion du temps, en détaillant la configuration de leurs registres pour générer des temporisations, des mesures de durée ou des signaux PWM. La notion d’interruption est ensuite introduite comme un mécanisme puissant permettant au microcontrôleur de réagir instantanément à des événements internes (débordement de timer) ou externes, en apprenant à configurer les vecteurs d’interruption et les registres de priorité. Enfin, le chapitre aborde le Convertisseur Analogique/Numérique (ADC), en expliquant la configuration de ses registres pour échantillonner et convertir des signaux analogiques du monde réel en valeurs numériques exploitables. Chaque section est systématiquement illustrée par des exemples d’applications concrets.

    • Ce dernier chapitre explore les interfaces de communication et de stockage qui étendent les capacités du microcontrôleur. Il commence par la mémoire EEPROM, détaillant les procédures de lecture et d’écriture ainsi que la configuration des registres de contrôle nécessaires pour sauvegarder des données de manière non volatile. Le chapitre se focalise ensuite sur les liaisons séries, qui sont essentielles pour les échanges de données avec d’autres systèmes. Il couvre la configuration des registres pour la communication USART (souvent utilisée pour les liaisons avec un PC ou des modules GPS), ainsi que le module MSSP (Master Synchronous Serial Port) qui gère les protocoles de réseaux locaux comme le SPI (Serial Peripheral Interface) et l’I2C (Inter-Integrated Circuit). Comme pour les chapitres précédents, chaque interface est étudiée à travers la configuration de ses registres d’état et de contrôle, et illustrée par des exemples d’applications pratiques permettant de maîtriser les échanges de données.