Eu sempre uso o oscilador interno que as fotos possuem, pois nunca encontrei a necessidade de executar algo a uma frequência maior que 8 MHz (que é a mais rápida que as fotos que eu uso tendem a ser capazes de funcionar). Há alguma razão, além de ultrapassar 8 MHz, que significa que devo usar um oscilador externo? Parece que apenas mais uma coisa deu errado para mim, mas eu estaria interessado em ouvir o que os outros fazem.
microcontroller
pic
design
oscillator
SimonBarker
fonte
fonte
Respostas:
Como outros já disseram, frequência precisa e estabilidade de frequência são razões para usar um ressonador de cerâmica ou cristal externo. Um ressonador é várias vezes mais preciso que o oscilador RC interno e bom o suficiente para a comunicação UART. Um cristal é muito mais preciso e necessário se você estiver fazendo outros tipos de comunicação como CAN, USB ou Ethernet.
Outra razão para um cristal externo é a escolha da frequência. Os cristais vêm em uma ampla gama de frequências, enquanto o oscilador interno é geralmente uma frequência com talvez uma opção de 4x PLL ativada. Alguns PICs mais recentes, de 24 bits, têm um multiplicador e um divisor na cadeia de clock, para que você possa atingir uma ampla variedade de frequências a partir da frequência do oscilador interno único.
É claro que existem várias aplicações que exigem inerentemente frequência ou tempo precisos, além das comunicações. O tempo é a propriedade da eletrônica que podemos medir com mais precisão e com menor custo; portanto, às vezes, o problema é transformado em medir o tempo ou produzir pulsos com tempo preciso.
Existem aplicativos que requerem alguma sincronização de longo prazo com outros blocos. Um oscilador a 1% estaria desligado em mais de 14 minutos por dia se usado como base para um relógio em tempo real. Também pode ser necessário um tempo preciso a longo prazo sem ter que saber em tempo real. Por exemplo, suponha que você queira que um grupo de dispositivos de baixa energia acorde uma vez a cada hora para trocar dados por alguns segundos e depois volte a dormir. Um cristal de 50 ppm (muito fácil de obter) não terá mais de 180 ms em uma hora. Um oscilador RC a 1% pode ser desligado em 36 segundos. Isso acrescentaria requisitos de energia significativos no prazo e, portanto, aos dispositivos que precisavam se comunicar apenas por alguns segundos a cada hora.
fonte
Precisão. Os relógios internos não são precisos, podem ser afetados pelo ruído.
Precisão independente da temperatura. Osciladores típicos podem variar bastante. Osciladores especiais de compensação de temperatura podem ser necessários em aplicações de baixa ou alta temperatura ou se a temperatura variar bastante.
Rapidez. Osciladores internos podem não atingir a velocidade mais alta do IC. Os externos podem ser necessários para isso.
Voltagem. A velocidade de um temporizador interno pode depender da tensão em que ele está sendo executado.
São necessários vários relógios. Alguns aplicativos desejam compartilhar um oscilador.
Aplicações especiais em que o relógio interno pode não ser facilmente utilizado. Dividir o relógio interno pode ser mais difícil do que jogar um cristal barato de 31 kHz para ele, para manter o tempo das aplicações.
Do alto da minha cabeça, o ATMEGA 328 que o arduino usa requer um cristal externo de 5V para sua velocidade máxima. A versão lily pad é executada em 8 MHz, no oscilador interno, porque é limitada à de 3.3v. A barra de lançamento da linha de valor MSP430 é limitada a 10 MHZ em 3V, 8 em 2,5V.
fonte
A estabilidade da frequência será maior com a externa. Portanto, se você tem um aplicativo que realmente depende do mcu freq, pode ser necessário usar um externo.
Mas a maioria dos mcu: s modernos tem um oscilador interno bastante estável, portanto, acho que essa era uma questão maior alguns anos atrás. Também há mais e mais maneiras de aparar o interno e compensar a variação de temperatura (etc, etc.).
Por outro lado, existem outras maneiras de garantir que você esteja sincronizado. Em alguns países, a estabilidade da frequência na rede de energia é de 50Hz ± 0,01Hz e outros lugares como a Suécia na verdade têm ± 0,001Hz e já vi projetos usando isso para manter coisas sincronizadas. E então você não é mais tão dependente do mcu freq e pode usar o interno. Mas este é um pouco de tópico :)
fonte
A estabilidade da frequência é a principal, principalmente para comunicações seriais em alta velocidade. Mas isso também traz a necessidade ocasional de um cristal em uma frequência aparentemente estranha para obter uma taxa de transmissão exata, devido às opções limitadas que os divisores de clock oferecem a você.
fonte
Na verdade, me deparei com um cenário em que 1% não era bom o suficiente para o UART.
Se algum de vocês já ouviu falar da placa de desenvolvimento para microcontrolador Teensy ++ v1.0, ela possui um UART extremamente sensível. Meu baud de host estava definido em 115200, e em 115200 e, por um longo período, não consegui descobrir por que não estava lendo os dados corretamente. Acontece que meu host estava enviando mais perto de 114300 baud. (115200 - 114300) / 115200 = erro de ~ 0,9%. Eu tentei com dois MCUs diferentes e eles funcionaram bem.
O ponto é: independentemente da sua aplicação, se uma maior precisão da freqüência do relógio for um benefício, você deve usar um ressonador externo, cristal ou mesmo oscilador se o chip não possuir o circuito de acionamento necessário.
PS Gostaria de saber se alguém tem alguma ideia de qual escolha de design de baixo nível eles fizeram no hardware UART que o torna tão sensível?
fonte
Os osciladores externos de cristal de cristal são mais precisos que os relógios internos e devem ser usados quando o tempo exato for necessário. Às vezes, para economizar dinheiro, os designers usam os internos.
fonte