>> Technologie Électronique >  >> Audio pour la maison >> Amplificateurs et préamplis

Pourquoi 12 MHz est devenu l'horloge classique du microcontrôleur 8051

L'héritage 12 MHz : histoire, architecture et réalité moderne

La famille de microcontrôleurs 8051 (Intel MCS-51, 1980) est indissociable d'un quartz 12 MHz. Bien que les variantes modernes tournent à 24, 33, 40, 50, voire 100+ MHz, 12 MHz reste le « modèle mental par défaut » pour la temporisation 8051, le code hérité et l'interfaçage périphérique. Voici pourquoi.

1. Architecture originale : le cycle machine à 12 horloges

Le cœur 8051 classique exécute les instructions en cycles machine de 12 périodes d'oscillateur (Tcy = 12 / fosc). À 12 MHz :

  • 1 cycle machine = 1 μs (exactement).
  • La plupart instructions 1 octet/2 cycles = 2 μs.
  • Incrémentation timer/compteur = 1 μs par tic (mode timer).
  • Génération baud rate UART : débordement Timer 1 à 12 MHz avec TH1 = 0xFD (–3) donne 9600 bauds (Mode 2, SMOD=0) avec 0,16 % d'erreur — quasi parfait.
Ce « 1 μs par cycle » rendait les calculs de temporisation triviaux pour les programmeurs assembleur : cycles = microsecondes.

2. Contraintes technologiques des années 1980

  • Géométrie de gravure : 3–5 μm NMOS/HMOS. 12 MHz était une fréquence sûre, à haut rendement.
  • Vitesse mémoire : Les EPROM externes (2764, 27128) et RAM avaient des temps d'accès de 200–450 ns. Les temporisations de bus externe du 8051 (ALE, PSEN, RD/WR) à 12 MHz offraient des fenêtres d'accès de ~300–400 ns — confortables pour les mémoires disponibles.
  • Consommation : Courant dynamique I ∝ f × V². 12 MHz à 5 V maintenait puissance/chauffe gérables pour boîtiers DIP sans radiateur.

3. Verrouillage de l'écosystème

  • Quartz standards : 11,0592 MHz (baud rates exacts) et 12,0000 MHz sont devenus des articles de base, stockés par tous les distributeurs.
  • Bibliothèques de code : Boucles de tempo, routines série, algorithmes RTC, drivers LCD étaient tous calibrés pour 12 MHz (ou 11,0592 MHz). Le portage imposait de recalculer chaque constante de temporisation.
  • Périphériques : ADC0804, contrôleurs LCD (HD44780), RTC (DS1302), EEPROM étaient caractérisés à ces fréquences.

4. L'alternative 11,0592 MHz

Pour les communications série, 11,0592 MHz (214 × 675) est techniquement supérieur car il donne zéro erreur de baud rate pour tous les débits standards (300–115200) en utilisant Timer 1 ou Timer 2 sur 8052/DS89C4x0. Beaucoup de conceptions « 12 MHz » utilisaient en fait 11,0592 MHz pour cette raison.

5. Variantes 8051 modernes : franchir la barrière des 12 cycles

Famille / CœurCycles/InstructionFréq. maxPerf. @ 12 MHz quartz ext.
8051 Intel original / 8051 standard1212–16 MHz1 MIPS (1 μs/cycle)
Dallas DS89C4x0 / Silicon Labs C8051Fxxx (cœur 1 cycle)125–100 MHz12–100 MIPS (avec PLL)
NXP 80C51MX / Infineon XC8002–6 (pipeline)24–48 MHz6–24 MIPS
STC 8051 (1T/6T sélectionnable)1 ou 635 MHz12–35 MIPS (mode 1T)

Crucial : Les cœurs « 1T » (1 cycle) modernes exécutent le même jeu d'instructions mais 12× plus vite à la même fréquence quartz. Les boucles de tempo héritées tourneront 12× plus vite (cassant la temporisation). Le comportement des timers diffère (prédiviseurs ajoutés). Toujours vérifier la datasheet pour la définition du « cycle machine ».

Choisir une fréquence aujourd'hui

  1. Portage code hérité / baud rates exacts : Utiliser 11,0592 MHz (ou 22,1184 MHz avec cœur 1T).
  2. Performance maximale : Utiliser la fréquence max supportée avec PLL (ex. quartz 12 MHz → cœur 48/100 MHz).
  3. Basse consommation / batterie : Fonctionner à la plus basse fréquence satisfaisant le débit (ex. quartz montre 32,768 kHz + PLL, ou oscillateur RC interne 1–4 MHz).
  4. CEM / EMI : Fréquence plus basse = moins d'émissions rayonnées. PLL à spectre étalé aide.
  5. Coût : Les quartz 12 MHz restent les moins chers ; 11,0592 MHz légèrement plus. Les oscillateurs RC internes (usine ±1–2 %) éliminent le coût du quartz pour les applis sans UART/temporisation de précision.
Amplificateurs et préamplis