Como é possível que em um MCU LPC3141, o MCU tenha frequência 270MHz enquanto o cristal de quartzo de 12MHz é usado no oscilador (dentro da unidade de geração de clock)? Não faz sentido para mim ...
Alguém poderia explicar.
Isso é muito comum para processadores por vários motivos. Primeiro, o relógio tende a ser o sinal de frequência mais alta em um sistema; portanto, o uso de um oscilador de frequência mais baixa reduzirá a interferência de RF irradiada. Segundo, gerar a freqüência real do clock do núcleo no chip significa que a velocidade do clock pode ser configurável. Reduzir a velocidade do clock no CMOS economiza energia; assim, dando à CPU a capacidade de controlar sua própria taxa de clock, o software pode escalar a velocidade da CPU conforme necessário para reduzir o consumo de energia. Isso também é feito no seu computador desktop ou laptop - o núcleo é executado em 2 a 3 GHz, mas nada na placa-mãe é executado tão rápido assim, exceto os barramentos seriais (SATA, PCIe e USB 3).
Essa geração de relógio é feita com um dispositivo chamado PLL (Phase Locked Loop). A maioria dos PLLs contém um oscilador controlado por tensão (VCO), um a três divisores, um comparador de fases e um filtro. A idéia básica é bloquear a saída do VCO em um múltiplo inteiro da frequência do relógio de referência. A parte principal do PLL gera a tensão do inversor para o VCO. Isso é feito dividindo a saída do VCO e realizando uma comparação de fases com o relógio de referência. Se a fase estiver adiantada ou atrasada, é produzida uma tensão de erro positiva ou negativa. Essa tensão é então integrada no filtro de loop e depois passada para a entrada do VCO. Se a fase estiver iniciando, a tensão de controle do VCO será reduzida e a frequência do VCO diminuirá. Se a fase estiver atrasada, a tensão de controle do VCO será aumentada e a frequência do VCO aumentará. Eventualmente, a saída VCO dividida e o relógio de referência corresponderão em fase e frequência, e o PLL será bloqueado.
Este método pode gerar apenas múltiplos inteiros da frequência do relógio. Se o oscilador de referência for 12 MHz, uma divisão por 2 no PLL resultará em uma multiplicação por 2 para obter uma frequência de saída de 24 MHz. Uma divisão por 3 produzirá 36 MHz. A divisão por 4 produzirá 48 MHz, etc.
Adicionar outro divisor na entrada ou saída permite a geração fracionária da taxa de clock. A divisão por 2 e a multiplicação por 3 no PLL produziria 18 MHz. A divisão por 2 e a multiplicação por 5 produziriam 30 MHz. A divisão por 2 e a multiplicação por 45 produziriam 270 MHz.
Outra consideração é que a faixa de frequência do VCO geralmente é limitada. Isso pode impedir a geração de frequências que exigem divisores grandes, pois a frequência do VCO seria muito baixa ou muito alta. A adição de outro divisor para que a entrada de referência e a saída PLL possam ser divididas atenua um pouco esse problema, para que o PLL possa gerar uma faixa mais ampla de frequências. Desde que a divisão não seja um número primo, ela pode ser dividida entre os divisores de entrada e saída, para que o VCO esteja trabalhando em sua faixa de frequência operacional.
Isso é feito com o chamado multiplicador de loop bloqueado de fase, veja também wiki . É executado um pequeno oscilador controlado por tensão (VCO) no microcontrolador, que foi especialmente projetado para funcionar de forma estável em torno da freqüência principal de operação desejada. Essa frequência é então dividida através de uma cascata de chinelos e comparada à frequência do cristal. O erro resultante é retornado ao VCO para corrigi-lo. Quando as duas frequências estão eventualmente em fase, elas são bloqueadas e os relógios do MCU podem ser acionados a partir do VCO.
fonte
Dentro de uma IMU, existem multiplicadores de hardware que multiplicam o clock de entrada de 12MHz para valores mais altos. Isso pode ser alcançado com algo chamado de Loop de bloqueio de fase. Imagine algo como esse chip, o NB3N502 ( folha de dados ) dentro do micro controlador.
Saiba mais sobre PLL e multiplicação de clock no wiki:
Multiplicadores de CPU
Loop de bloqueio de fase
fonte