Você pode escolher qualquer cristal para um microcontrolador PIC?

8

Estou usando o PIC16F690 e sei que o oscilador interno possui certos valores (20,8,4 ...).

Gostaria de colocar um cristal externo de 8MHz, mas só consegui encontrar 8,8MHz ou 7,6MHz.

Gostaria de saber se é possível colocar alguma dessas informações no PIC, ou deve ser exatamente 8MHz? Além disso, como devo escolher os capacitores para cada um?

Curnelious
fonte

Respostas:

10

Você pode usar qualquer cristal, desde que esteja dentro da faixa de frequência especificada para o driver de cristal PIC.

O driver de cristal da maioria dos PICs (eu não procurei seu PIC especificamente, esse é o seu trabalho) pode ser definido em três níveis diferentes de unidade, geralmente chamados LP (baixa potência), XT (cristal) e HS (alta velocidade). Os mais lentos usam menos energia, mas também têm uma freqüência máxima de cristal máxima mais baixa que podem suportar. O modo HS pode sobrecarregar e danificar os cristais sensíveis de 32768 Hz de baixa frequência, como são usados ​​nos relógios de pulso. Juntos, os três níveis de unidade de cristal cobrem a faixa de alguns 10s de kHz a 20 MHz, que é o mais rápido em que o PIC pode ser acionado.

Outro ponto é que você deseja usar um cristal especificado para aplicação de ressonância paralela. Isso significa que sua frequência é especificada para a maneira como o driver de cristal PIC conduzirá o cristal. Esses cristais serão especificados com uma capacitância de carga. Os cristais ressonantes em série funcionarão, mas a frequência provavelmente não estará dentro da tolerância.

Olin Lathrop
fonte
Muito obrigado . meu problema era que o oscilador interno me deu 0,47us relógio de instruções em vez de 0,5us - para os 8mhz. então eu acho que um oscilador externo será mais preciso. isso é verdade? outra coisa, eu não conseguia entender como definir os fusíveis para esse f?
Curnelious 10/10
4
@Curn: Sim, um cristal externo será mais preciso que o oscilador interno. Até cristais baratos são bons por 50 ppm, e 20 ppm geralmente estão disponíveis por pouco dinheiro. Quanto às definições de configuração, todas estão bem descritas na folha de dados. Para um cristal de 8 MHz, você desejará usar o modo HS.
Olin Lathrop
8

Supondo que você não exceda a especificação da taxa de clock no silício, fusíveis programados e código do aplicativo, você pode usar qualquer cristal que desejar. As folhas de dados explicarão quais capacitores usar.

Ignacio Vazquez-Abrams
fonte
3
Vale a pena notar que alterar a taxa de clock também mudará os cálculos para coisas como taxa de transmissão e temporizadores de intervalo. Parece óbvio, mas é fácil esquecer.
Scott Winder
@ Scott: Somente se você escrever um código irresponsável com divisores de taxa de transmissão e similares codificados. Com a codificação adequada, você altera um número que é a frequência do oscilador e tudo é automaticamente derivado disso no momento da construção, com a verificação de erros, é claro, para casos impossíveis ou fora da faixa. Você está certo em ter que se lembrar de alterar o número único.
Olin Lathrop 10/10
1
@OlinLathrop: Eu concordo com você no caso de pequenas alterações na frequência. No entanto, mudanças drásticas de frequência podem exigir uma modificação no pré e / ou pós-escalar de um gerador de taxa de transmissão, a fim de manter as frequências intermediárias dentro da faixa recomendada. No lado do timer, alguns comutadores na freqüência do relógio podem resultar em transbordamentos e qualquer frequência diferente fornecerá uma resolução de relógio diferente; portanto, modificar as contagens do timer (usando uma macro de frequência) é apenas parte da solução. O relógio do temporizador também pode precisar ser modificado para atingir a precisão e o comprimento necessários.
Scott Winder
1
@ Scott: Mas isso é tudo o que é calculado no momento da construção ou, pelo menos, verificado. Se você codificar algo como um pré-calibrador (geralmente não necessário) e a nova frequência de instruções não suportar o que você deseja fazer, o código em tempo de construção emitirá um erro para alertá-lo. Se ele pode lidar com isso, o faz silenciosamente. Não há desculpa para que uma mudança de frequência cause silenciosamente um problema. Isso é apenas uma codificação ruim.
Olin Lathrop 10/10
@OlinLathrop: Eu não discordo. Estou apenas apontando que nem sempre é tão fácil quanto alterar um único número, mesmo no caso de uma boa codificação. De qualquer forma, é algo a se observar ao alterar a frequência.
Scott Winder
0

Como dizia a folha de dados, você pode usar o oscilador de até 20Mhz. Para capacitores, a folha de dados pode dizer a você que uso de que tipo deles, mas a quantidade de capacitor que você deve usar de sua experiência.

Roh
fonte
1
Embora "experiência" seja sempre uma coisa boa, mas a capacitância de carga necessária depende do cristal e deve ser especificada na folha de dados de cristais. Isso tem a ver com a frequência de ressonância paralela. Além disso, a capacitância dispersa dos pinos e traços do uC deve ser levada em consideração.
Rev1.0
@ Rev1.0 Ótimo e obrigado! eu votei em você. por exemplo, vi esta folha de dados: html.alldatasheet.com/html-pdf/236074/CRYSTEKCRYSTAL/CYSDXX/… à direita, você pode ver uma tabela (número de peça padrão). devo usá-lo para escolher o capacitor? por exemplo, para 16mhz devo usar capacitor 20pf?
Roh
1
Não, a capacitância de carga fornecida é a capacitância total necessária, não o valor para os dois capacitores. Calcule CX = 2 * (CL - Cstray), onde CX é o capacitor necessário, CL = 20pf e Cstray depende do seu projeto (cerca de 2-5pf).
Rev1.0
1
Cstray é a capacitância dos pinos do microcontrolador (folha de dados) + a capacitância parasitária dos traços em sua placa (pode ser aproximada sabendo o comprimento, a largura e a camada dos traços). Se isso é apenas para um projeto de hobby, assuma 5pf e provavelmente esteja bem.
Rev1.0
1
Leia e entenda isso :). "Se Cin e Cout não forem especificados, um valor de palpite de 5 pF para cada um é um bom começo."
Rev1.0