Programmation des MicroContrôleurs Industriels Université Pierre et Marie Curie, niveau L3 LI326
}}}
[[PageOutline]]
== Le module microcontrôleur
=== Objectifs
Comme chacun peut s'en rendre compte, l'informatique est de plus en plus «enfouie» : elle est cachée dans les puces que l'on
trouve dans les téléphones portables, dans les agendas électroniques, dans les automobiles, dans les équipements électroménagers,
etc. La puce spécialisée qui contrôle le système de freinage d'une voiture moderne contient un processeur qui exécute un petit
système d'exploitation multitâches embarqué sur la puce elle-même. Le circuit intégré qui constitue le coeur d'un téléphone
portable contient plusieurs microprocesseurs et constitue un véritable ordinateur parallèle sur une seule puce.
La caractéristique de ces systèmes sur puce est l'intégration étroite entre la conception du matériel et la conception du
logiciel spécialisé pour chaque application.
Un microcontrôleur est un circuit intégré d'usage général qui intègre sur une seule puce un microprocesseur programmable et
les principaux contrôleurs de périphériques. Ils sont devenus des composants incontournables dans les domaines de la télécommunication,
de l'automatisme, de la robotique.
Ce module vise à l'apprentissage de la
compréhension de l'architecture de ces composants tant sur le plan matériel que logiciel. Il s'agit aussi de savoir utiliser les
outils de développement associés à ces microcontrôleurs.
Cet enseignement, très pratique, vous concerne si vous êtes intéressés par la programmation «bas-niveau» en assembleur et en C
de vrais microcontôleurs.
Nous allons en aborder deux.
* Le premier est le PIC16F877, processeur 8 bits de la société Microchip.
* Le second sera un ARM9, processeur 32 bits de la société ARM.
=== Où et quand ?
Les TME se déroulent dans les locaux de l'équipe ASIM en Tour 65-66 salle 408. Nous vous attribuerons un compte spécifique.
Les salles sont ouvertes en libre service sauf les heures où elles sont utilisées pour les TME.
Vous pouvez utiliser le simulateur ou les kits de développement en dehors des heures de TME.
Les étudiants souhaitant accéder à leur compte de l'ARI depuis le compte ASIM peuvent le faire en demandant à l'administrateur
système ([mailto:root] depuis les salles machines) que leur compte soit ouvert sur la passerelle durian.
Notez que pour le transfert de données, vous pouvez aussi utiliser une clé USB.
* 12 cours de 1h30, le mardi de 17h45 à 19h15, en salle J6, patio 44-55.
* 12 TME de 3h30, le vendredi de 15h45 à 19h30, en salle 408 du couloir 65-66.
* Les dernières séances de TME sont consacrés à la réalisation d'un micro-projet
permettant d'approfondir la connaissance du microcontrôleur sur un exemple plus volumineux que ce qui peut être fait en un seul TME.
=== Pré-requis
Il est nécessaire d'avoir des connaissances de base en architecture des ordinateurs : codage des informations, notions
d'assembleur. Ces pré-requis correspondent au contenu des enseignements d'initiation à l'informatique et à la structure des
machines inculqués lors des deux premières années de la licence. Même si elle est bienvenue, aucune connaissance en électronique
n'est nécessaire. Notez que l'apprentissage des microcontrôleurs est d'autant plus facile que l'on aime le travail minutieux et
qu'on a un peu de sens pratique.
Notez également que la documentation est principalement en anglais car c'est celle fournie directement par les constructeurs.
Nous vous aidons à la lire, mais la connaissance de l'anglais technique lu est indispensable.
=== Contrôle des connaissances
La notation de ce module provient de 60% de l'examen final de mai et de 40% du contrôle
continu. Le contrôle continu est constitué des notes TME et de la note de micro-projet (tous les TME pourront faire l'objet d'évaluation).
=== Équipe pédagogique
||[[Image(htdocs:franck.gif, nolink, align=center)]][[BR]][mailto:franck.wajsburt@lip6.fr]||[[Image(htdocs:francois.gif,nolink, align=center)]][[BR]][mailto:francois.pecheux@lip6.fr]||
== Matériel Pédagogique
=== Cours
1. [htdocs:2011_cours1_microcontroleurs_v2.pdf Qu’est-ce qu’un micro-contrôleur] ?
2. [htdocs:2011_cours2_pic16f877.pdf Le PIC16f877]
3. Les GPIO
4. Programmation événementielle
5. La gestion du temps
6. Conversion A-N
7. UART
8. I2C
9. Architecture NDS, environnement de programmation
10. Architecture de l’ARM 7 et 9
11. API et premier programme
12. programmation graphique
=== TME
1. [wiki:MicroTmeBase Prise en main des outils]
=== Annales
2001 ::
* [[htdocs:exams/avril01.pdf avril]] Afficheurs 7 segments
* [[htdocs:juin01.pdf juin]] Génération d'un signal PWM à partir d'un entrée analogique
* [[htdocs:sept01.pdf septembre]] Génération d'un signal PWM également
2002 ::
* [[htdocs:avril02.pdf avril]] Générateur de fréquence
* [[htdocs:juin02.pdf juin]] Commande de feux tricolores
* [[htdocs:setp02.pdf septembre]] Commande d'un volet roulant
2003 ::
* [[htdocs:avril03.pdf avril]] Lecture d'états d'interrupteur
* [[htdocs:juin03.pdf juin]] Trace de courbe de température
* [[htdocs:sept03.pdf septembre]] Commande de servo moteurs
2004 ::
* [[htdocs:avril04.pdf avril]]+[[htdocs:avril04.tar.gz fichiers]] Minuterie oeuf coque
* [[htdocs:juin04.pdf juin]]+[[htdocs:juint04.tar.gz fichiers]] Digicode
* [[htdocs:sept04.pdf septembre]]+[[htdocs:sept04.tar.gz fichiers]] Commande de moteurs pas-à-pas
== Documentations Officielles