VPB

Nous avons vu que les périphériques embarqués ont un bus qui leur est propre, le VPB (VLSI Peripheral Bus, VLSI étant donné pour Very Large Scale of Integration).

Ce bus n'est pas directement relié au bus du coeur ARM, ni à son horloge Cclk. Il lui faut donc une horloge bien à lui: la Pclk.

Bien que issue de la Cclk, elle est interfacée par le VPB Divider qui va se charger de diviser l'horloge du Core par un certain facteur.

Comme la Cclk est variable car programmable au travers de la PLL, le rôle de ce diviseur est d'adapter cette horloge de périphériques à l'horloge principale. De plus, en ralentissant l'horloge des périphériques à la demande, ceci permet également de réduire la consommation du microcontrôleur dans le cas où il s'agirait d'un paramètre important du système.


Note: Pour les microcontrôleurs en version évoluée /01, on parlera de Advanced Peripheral Bus (APB) (LPC2106FBD48/01).


Configuration de la Pclk:

La Pclk se configure à partir du registre VPBDIV:


VPBDIV (0xE01FC100).



b1-b0: VPBDIV

00 ¼ de la Cclk

01 idem Cclk

10 ½ de la Cclk

11 Réservé.

b7-b2: Réservé


Dans la configuration de la Pclk, il ne faudra pas oublier que c'est elle qui va cadencer nos périphériques, UART, I²C, etc...

Nous choisirons ici de faire tourner Pclk à la moitié de Cclk, soit environ 29,49MHz.

Dans ce cas, nous aurons dans Program_4:

VPBDIV = 0x02;