Le Microcontroleur
Le microcontroleur est le cerveau des systemes embarques ! Decouvre comment ce minuscule circuit integre peut gerer des capteurs, actionneurs et communications.
Objectifs du cours
- Comprendre l'architecture d'un microcontroleur
- Distinguer microcontroleur et microprocesseur
- Connaitre les composants internes (CPU, RAM, Flash, GPIO)
- Comprendre le role des bus de communication (I2C, SPI, UART)
- Decouvrir les principales familles de microcontroleurs
Erreurs courantes a eviter
- Confondre microcontroleur et microprocesseur
- Oublier que le microcontroleur integre memoire et peripheriques
- Ignorer les contraintes de ressources (memoire limitee)
- Ne pas respecter les niveaux de tension (3.3V vs 5V)
**Deux composants differents**
**Microprocesseur (CPU)** : * C'est le "cerveau" qui execute les instructions * Necessite des composants externes : RAM, ROM, peripheriques * Presente dans les ordinateurs, smartphones * Exemples : Intel Core, AMD Ryzen, Apple M1
**Microcontroleur (MCU)** : * C'est un "ordinateur sur une puce" * Integre CPU + memoire + peripheriques * Autonome, pret a l'emploi * Exemples : ATmega328 (Arduino), ESP32, STM32
**Comparaison**
| Critere | Microprocesseur | Microcontroleur | |---------|-----------------|-----------------| | Memoire | Externe (Go) | Interne (Ko-Mo) | | Puissance | Tres elevee | Moderate | | Consommation | Elevee (10-100W) | Faible (mW) | | Prix | Eleve (50-500EUR) | Bas (1-20EUR) | | Complexite | Necessite PCB | Autonome | | Usage | PC, serveurs | Embarque, IoT |
**Analogie**
* Le **microprocesseur** est comme un moteur de voiture : puissant mais necessite transmission, reservoir, roues... * Le **microcontroleur** est comme un moteur de tondeuse : moins puissant mais complet et autonome.
# Comparaison des ressources
microprocesseur = {
"nom": "Intel Core i7-12700K",
"coeurs": 12,
"frequence_ghz": 5.0,
"cache_mo": 25,
"ram_externe": "128 Go max",
"consommation_w": 125,
"prix_eur": 350
}
microcontroleur = {
"nom": "ATmega328P (Arduino Uno)",
"coeurs": 1,
"frequence_mhz": 16,
"flash_ko": 32,
"ram_ko": 2,
"eeprom_ko": 1,
"consommation_mw": 15,
"prix_eur": 3
}
def afficher_specs(composant, titre):
print(f"\n=== {titre} ===")
for key, value in composant.items():
print(f" {key}: {value}")
afficher_specs(microprocesseur, "MICROPROCESSEUR")
afficher_specs(microcontroleur, "MICROCONTROLEUR")
# Calcul des rapports
print("\n=== COMPARAISON ===")
rapport_freq = microprocesseur["frequence_ghz"] * 1000 / microcontroleur["frequence_mhz"]
rapport_prix = microprocesseur["prix_eur"] / microcontroleur["prix_eur"]
print(f"Frequence: Le microprocesseur est {rapport_freq:.0f}x plus rapide")
print(f"Prix: Le microprocesseur coute {rapport_prix:.0f}x plus cher")
print(f"Mais le microcontroleur suffit pour 90% des applications embarquees !")Quiz de validation
1. Quelle est la principale difference entre un microcontroleur et un microprocesseur ?
2. Quelle memoire stocke le programme de facon permanente dans un microcontroleur ?
3. Quel protocole de communication utilise seulement 2 fils et peut connecter plusieurs peripheriques ?
4. Quel microcontroleur possede le WiFi integre ?
5. Quelle est la tension de fonctionnement typique d'un ESP32 ?
