Como devo selecionar minha frequência de cristal?


8

Eu vi perguntas como esta que falam sobre a seleção de um cristal para UART e eu vi perguntas como esta que mencionam 32,768 kHz para RTC. Mas como eu decido o cristal certo para minha aplicação.

Neste momento, não tenho certeza de qual baud UART utilizarei, mas será uma das padrão. Seria bom poder obter um tempo semi-preciso em milissegundos, mas não um requisito. Intuitivamente, acho que ir com o cristal mais rápido que meu micro pode usar me dará mais flexibilidade, mas há algo que estou perdendo? Existe uma frequência "de uso geral" que as pessoas usam?


com muito cuidado ... :)
vicatcu 20/12/10

Respostas:


11

Honestamente, eu poderia passar horas descrevendo as diferentes frequências e por que usá-las, mas alguém já tem!

http://en.wikipedia.org/wiki/Crystal_oscillator_frequencies

Esta tabela possui uma coluna UART para informar a que frequências UART ele divide bem.

Também informa quando uma frequência é um cristal padrão para um sistema de comunicação específico.


Não seria bom se houvesse alguma freqüência agradável de cristal que todos usassem?
precisa saber é o seguinte

1
Não seria bom se todas as partes do mundo tivessem as mesmas tomadas em prédios, a vida continuará, a menos que você misture as tomadas.
Kortuk

2

Intuitivamente, eu usaria o cristal MAIS LENTO que funciona para o meu aplicativo. Você obterá menos desvio do relógio e os traços do circuito geralmente se comportam melhor em frequências mais baixas.

Como um aparte, se você quiser fazer as coisas a cada poucos milissegundos, poderá fazer algo da seguinte maneira:

Fosc = 25MHz. 
T=1/Fosc = 40ns; 
1ms/40ns = 25000 cycles/ms;
0xFFFF-25000=0x9E57;

on overflow TMR1:  //assuming TMR1 is 16 bit and counts every clock cycle
doEveryMillisecond;
incrementMillisecondTimer;
TMR1 = 0x9E57;

Não sabe ao certo qual micro você está usando, mas o MPLAB possui utilitários para cronometrar quanto tempo os eventos demoram, então você pode usá-lo para ajustar o valor de redefinição do TMR1 para lidar com qualquer sobrecarga e / ou um relógio impreciso. Os cristais podem variar o suficiente para que isso seja inviável em um ambiente de produção ... não tenho certeza.


Como uma extensão disso, se alguém não souber o que o XTAL deve usar em seu widget, não selecione um. Apenas deixe o local da placa de circuito impresso despovoado e aguarde até precisar da estabilidade (a calibração do oscilador RC interno não é bom o suficiente na taxa de transmissão desejada, por exemplo) ou na velocidade. Não conserte o que não está quebrado!
tyblu

Concordado - se o seu MCU tiver um oscilador interno, tente usá-lo primeiro. Certifique-se de definir as palavras / fusíveis de configuração corretamente. Além disso, você deve considerar o uso de um soquete no seu PCB para não precisar lidar com cristais de solda / dessoldagem ... o bônus é que você pode trocá-los facilmente.
Isaac

1
@isaac, um cristal é uma das maiores fontes de EMI em uma placa, deve estar o mais próximo possível do plano de terra, não passar por conectores e ter traços de blindagem ao redor.
Kortuk

@isaac, também, se você tiver um desvio de relógio de 10 ppm, não importará a velocidade de cristal que possui. Todos eles se dividem no mesmo erro potencial, pois um relógio de velocidade mais alta deve ter uma divisão maior. Um cristal mais lento significa pior resolução em outras coisas.
Kortuk

@isaac Eu nunca tive problemas com cristais de 40MHz antes. Eu apenas os coloco o mais próximo possível do micro. e a resposta @kortuk é a mesma razão pela qual não achei que o desvio do relógio fosse um problema. Achei que velocidades de clock mais altas me permitiam chegar exatamente a 1 ms exatamente.
Kellenjb
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.