Horloge

Les pattes XTAL1 et XTAL2 reçoivent le quartz, d'une valeur comprise entre 1 et 25MHz.

Pour obtenir sa vitesse interne maximale, le LPC21 utilise un circuit PLL (Phase Locked Loop), qui va multiplier cette valeur de quartz par un certain facteur que l'on déterminera par programme au démarrage du microcontrôleur. Ceci va permettre d'obtenir un circuit très rapide avec un quartz plus lent, et minimisera les effets d'harmoniques néfastes sur le reste de la carte.

Retenons simplement pour l'instant qu'un quartz et deux petits condensateurs céramiques suffiront à donner vie à notre micro.

Nous reviendrons sur cette PLL par la suite.

Choix du quartz à 14.7456MHz:

Le LPC2106 va être programmé in-situ par sa liaison série RS2332 UART0, mais les UARTS auront aussi un grand rôle dans notre montage: liaison série, passerelle RS232/Ethernet ou Wifi.

Le quartz de 14.7456 MHz est ici choisi en fonction de cette liaison série.

En effet, nous avons vu que le quartz externe peut avoir une valeur comprise entre 1 et 25 MHz, et qu'ensuite le circuit PLL va multiplier cette fréquence en interne afin d'obtenir une fréquence de fonctionnement maximale, dans la limite des 60MHz. Une bonne valeur de quartz qui nous aurait permis d'atteindre ces 60 MHz aurait été de 12 MHz. La PLL aurait alors multiplié 12 par 5 pour faire 60.

Par contre, ce quartz est aussi utilisé pour la liaison série, et là ça se complique. En effet, le générateur de bauds interne au LPC2106 qui va générer l'horloge de synchronisation de la transmission n'autorise que des divisions entières de cette valeur de quartz.

En divisant 12000000 par 2 puis par 2 puis par 2 puis...par d'autres valeurs entières, on obtient 1464.84 comme valeur se rapprochant le plus de la valeur normalisée de 1200 bauds comme vitesse de transmission. Avec une telle valeur, on peut être garanti d'avoir de nombreuses erreurs de transmission !!

En prenant notre quartz de 14.7456 MHz, et en divisant 14745600 par 2 puis par 2 puis par 2 puis...par d'autres valeurs entières , on obtient 1200 comme valeur se rapprochant le plus de la valeur normalisée de 1200 bauds comme vitesse de transmission. Intéressant ...

A partir de là, on va pouvoir obtenir toutes les valeurs de transmission normalisées. (1200, 4800, 115200, et les autres également).

Quand est-il de la vitesse du microcontrôleur avec ce quartz de 14.7456MHz par rapport au 12MHz ?

Nous avons vu que la PLL pouvait multiplier 12000000 * 5 = 60 MHz.

Avec notre quartz de 14.7456, on aura 14745600 * 5 = 73.728 MHz ce qui est trop élevé pour notre core.

Si on multipliait par 4, on aurait 58.9824 MHz au lieu de 60, ce qui n'est pas mal du tout.

On va donc obtenir des vitesses de transmission RS232 normalisées et friser les 60 MHz pour le coeur du micro (à environ 1MHz près).

Voilà pourquoi notre quartz aura cette valeur ''bizarre'' de 14.7456MHZ ...