Siempre uso el oscilador interno que tienen las fotos, ya que nunca he encontrado la necesidad de ejecutar nada a una frecuencia más alta que 8 MHz (que es la más rápida que las fotos que uso tienden a poder ir). ¿Hay alguna razón, más allá de ir por encima de 8 MHz, que signifique que debería usar un oscilador externo? Parece que una cosa más me va mal, pero me interesaría saber lo que hacen los demás.
microcontroller
pic
design
oscillator
SimonBarker
fuente
fuente
Respuestas:
Como han dicho otros, la frecuencia precisa y la estabilidad de la frecuencia son razones para usar un resonador cerámico externo o cristal. Un resonador es varias veces más preciso que el oscilador RC interno y lo suficientemente bueno para la comunicación UART. Un cristal es mucho más preciso y necesario si está realizando otros tipos de comunicación como CAN, USB o Ethernet.
Otra razón para un cristal externo es la elección de la frecuencia. Los cristales vienen en una amplia gama de frecuencias, mientras que el oscilador interno suele ser una frecuencia con una opción de 4x PLL habilitado. Algunos nuevos PIC de núcleo de 24 bits tienen un multiplicador y un divisor en la cadena de reloj para que pueda elegir una amplia variedad de frecuencias desde la frecuencia del oscilador interno único.
Por supuesto, hay varias aplicaciones que requieren de manera inherente una frecuencia o temporización precisa que no sean las comunicaciones. El tiempo es la propiedad en electrónica que podemos medir con mayor precisión a bajo costo, por lo que a veces el problema se transforma en medir el tiempo o producir pulsos con un tiempo preciso.
Luego están las aplicaciones que requieren una sincronización a largo plazo con otros bloques. Un oscilador del 1% estaría apagado por más de 14 minutos por día si se utiliza como base para un reloj en tiempo real. También puede ser necesario un tiempo preciso a largo plazo sin tener que saber en tiempo real. Por ejemplo, suponga que desea que un grupo de dispositivos de baja potencia se despierte una vez cada hora para intercambiar datos durante unos segundos y luego volver a dormir. Un cristal de 50 ppm (muy fácil de obtener) no se apagará más de 180 ms en una hora. Sin embargo, un oscilador RC al 1% podría estar apagado por 36 segundos. Eso agregaría importantes requisitos de tiempo y, por lo tanto, de energía a los dispositivos que solo necesitaban comunicarse durante un par de segundos cada hora.
fuente
Precisión. Los relojes internos no son precisos, pueden verse afectados por el ruido.
Temperatura de precisión independiente. Los osciladores típicos pueden variar enormemente. Se pueden necesitar osciladores especiales de compensación de temperatura en aplicaciones de baja o alta temperatura, o si la temperatura varía enormemente.
Velocidad. Los osciladores internos pueden no alcanzar la velocidad más alta del CI. Los externos pueden ser necesarios para eso.
Voltaje. La velocidad de un temporizador interno puede depender de la tensión a la que se está ejecutando.
Se necesitan múltiples relojes. Algunas aplicaciones quieren compartir un oscilador.
Aplicaciones especiales donde el reloj interno puede no ser fácil de usar. Dividir el reloj interno podría ser más difícil que arrojarle un cristal de reloj barato de 31 kHz, para aplicaciones de cronometraje.
Fuera de mi cabeza, el ATMEGA 328 que usa el arduino requiere un cristal externo a 5V para su velocidad máxima. La versión de lily pad funciona a 8 MHz, en el oscilador interno porque está limitada a eso a 3.3v. La plataforma de lanzamiento Value Line MSP430 está limitada a 10 MHZ a 3V, 8 a 2.5V.
fuente
La estabilidad de frecuencia será mayor con una externa. Entonces, si tiene una aplicación que realmente depende de la frecuencia de mcu, es posible que deba usar una externa.
Pero la mayoría de los mcu: s tienen una oscilación interna bastante estable, por lo tanto, creo que esta era una pregunta más importante hace un par de años. También hay más y más formas de recortar el interno y compensar la deriva de temperatura (etc., etc.).
Por otro lado, hay otras formas de asegurarse de que esté sincronizado, en algunos países la estabilidad de la frecuencia en la red de alimentación es de 50Hz ± 0.01Hz y en otros lugares como Suecia en realidad tiene ± 0.001Hz y he visto proyectos que usan esto para mantener cosas sincronizadas Y luego ya no eres tan dependiente de la frecuencia mcu y puedes usar la interna. Pero este es un poco de tema :)
fuente
La estabilidad de frecuencia es la principal, particularmente para comunicaciones en serie a alta velocidad. Pero eso también plantea la necesidad ocasional de un cristal a una frecuencia aparentemente extraña para obtener una velocidad de transmisión exacta, debido a las opciones limitadas que le brindan los divisores de reloj.
fuente
De hecho, me encontré con un escenario en el que el 1% no era lo suficientemente bueno para UART.
Si alguno de ustedes ha oído hablar de la placa de desarrollo de microcontroladores Teensy ++ v1.0, tiene un UART terriblemente sensible. Tenía mi baudio de host configurado en 115200, y se estableció en 115200 y durante mucho tiempo no pude entender por qué no estaba leyendo los datos correctamente. Resulta que mi anfitrión estaba enviando más cerca de 114300 baudios. (115200 - 114300) / 115200 = ~ 0.9% de error. Lo probé con dos MCU diferentes y funcionaron bien.
El punto es: independientemente de su aplicación, si una mayor precisión de la frecuencia del reloj es un beneficio, debe usar un resonador externo, cristal o incluso un oscilador si el chip no tiene los circuitos de conducción necesarios.
PD: Me pregunto si alguien tiene alguna idea sobre qué elección de diseño de bajo nivel hicieron en el hardware UART que lo hace tan sensible.
fuente
Los osciladores externos de cristal de cristal son más precisos que los relojes internos, y deben usarse cuando sea necesario un cronometraje preciso. A veces, para ahorrar dinero, los diseñadores usan los internos.
fuente