Quando se deve usar um cristal externo para este MCU, uma vez que o oscilador interno é muito mais rápido?

12

Eu estou olhando para este MCU e queria saber se faz sentido usar um cristal externo.

Extraído da folha de dados pg1,

* Gerenciamento de relógio
- oscilador de cristal de 4 a 32 MHz
- oscilador de 32 kHz para RTC com calibração - RC interno de 8 MHz com opção PLL x6 - oscilador RC interno de 40 kHz

- Oscilador interno de 48 MHz com ajuste automático baseado no ext. sincronização*

O oscilador interno pode ser de até 48Mhz. O cristal externo está entre 4 e 32 Mhz. Por que alguém usaria um cristal externo quando o interno é mais rápido que 48Mhz, dado que o cristal externo custa dinheiro e ocupa espaço? Quando alguém deve usar um cristal externo?

user768421
fonte
4
a única vantagem do oscilador interno da mcu é a economia de custos quando não é necessária uma precisão extra dos externos.
Mahmoud Hosseinipour

Respostas:

24

O oscilador interno é muito menos estável que um oscilador de cristal externo.

Se estou lendo a ficha de dados corretamente, o oscilador interno de 48 MHz é calibrado de fábrica apenas para 2,9% da frequência especificada - nem bom o suficiente para o RS-232. Existem maneiras de sincronizá-lo com um relógio externo, acho que ele foi projetado para ser usado em uma situação de dispositivo USB onde você pode bloquear o PLL no fluxo de bits USB.

Um cristal externo geralmente tem precisão de cerca de 20 ppm , partes por milhão. Isso é 0,002% da frequência especificada. Se você precisar ainda melhor, existem ainda com compensação de temperatura, ovenized osciladores de cristal.

Além disso, você pode querer uma velocidade exata do relógio em uma frequência diferente, normalmente para comunicação com um dispositivo ou mestre em um canal de comunicação assíncrono. Para isso, pode ser necessário um oscilador, por exemplo, 29491200 Hz (115200 * 256).

tubo
fonte
2
francamente, 2,9% geralmente é bom o suficiente para o UART / RS-232 (eu usei o 115200 UART com pelo menos 3,5% de tolerância [devido à incompatibilidade da taxa de transmissão e às imprecisões internas] de 8 MHz RC por algumas semanas sem nenhum sinal perceptível erros); AFAIR, UART / RS-232 é razoavelmente utilizável abaixo de 5% de incompatibilidade total do relógio e limítrofe utilizável até um por cento ou dois a mais - além disso, você perdeu o fato (observado por outros) de que pode usar o PLL para multiplicar o relógio de cristal para obter velocidades tão alto quanto o relógio interno.
2
@vaxquis você teve sorte. 5% é a incompatibilidade máxima absoluta aceitável da taxa de transmissão, e se o remetente e o destinatário estiverem 2,5% fora em direções diferentes, você estará no limite.
11306 Bruce Abbott
6
O RS232 é um padrão de tensão e pino, não um padrão de protocolo.
22616 Old_timer 11/07/16
2
Se você usar 4x amostragem excessiva, provavelmente terá entre 25 e 50% de desconto. Com 8x provavelmente pode ser pior que e 16x ainda melhor. Você só precisa ser preciso o suficiente para passar por um caractere e o receptor é sincronizado novamente no bit inicial. Alguns podem até sincronizar novamente em todas as extremidades, permitindo um erro ainda maior. Portanto, a decodificação do uart depende do design do receptor. Alguns projetos / sãos podem ser executados facilmente para sempre com um erro de 2,9% no relógio e nunca escorregar um pouco.
22616 old_timer 11/07/16
3
@pipe, esse é o ponto inteiro da superamostragem 8 e 16x para obter uma melhor resolução de onde as bordas são relativas a onde você está amostrando. Talvez as partes que você está falando estejam usando osciladores internos. Ou talvez os engenheiros juniores usados, uma vez que é algo bastante trivial para projetar. Você pode sincronizar facilmente em todas as extremidades e permanecer sincronizado para sempre, mesmo com o desvio do relógio. Como não sabemos, a menos que trabalhemos lá e no departamento certo, como um receptor é projetado, é melhor tentar chegar a esses poucos por cento e fazer testes suficientes para gerar estatísticas sobre a taxa de erros de bits.
22616 old_timer 11/07/16
10

O interno é um oscilador, geralmente um oscilador RC. Esses osciladores são muito menos precisos que os cristais. Além disso, esses osciladores tendem a flutuar com as mudanças de temperatura.

Os cristais, por outro lado, podem ser tão precisos quanto o dinheiro que você deseja gastar. A precisão é necessária quando, por exemplo, a comunicação de alta velocidade é usada como USB. O USB tem tolerâncias muito restritas.

vini_i
fonte
8

Veja este diagrama na página 16:

Árvore do relógio ST

Parece que você também pode usar o cristal como uma entrada para o PLL, permitindo atingir velocidades de relógio internas de 48MHz a partir de um cristal mais lento.

pjc50
fonte
7

O oscilador de cristal alimenta um loop bloqueado em fase (PLL) no chip, que pode multiplicar e dividir a frequência do cristal por valores entre 1 e 16. Portanto, com um cristal de 8 MHz, você pode gerar um relógio principal de 48 MHz para o processador. Como outros já disseram, um cristal externo é mais preciso e estável do que o oscilador de alta velocidade no chip.

Steve G
fonte