Configuración de una fuente de reloj externa en un ATmega8

3

Estoy intentando configurar V-USB en mi ATmega8-16PU (datasheet ), y podría usar alguna ayuda para conectar una fuente de reloj de cristal externa. He tratado de entender la hoja de datos lo mejor que pude, y he sacado algunas conclusiones que agradecería que alguien pudiera verificar y criticar. Para referencia, usaré un cristal de 16 MHz o 20 MHz, que también necesito ayuda para decidir.

Este es mi plan hasta ahora, basado en mi entendimiento:

  • Conecte mi cristal externo (dos pines uno) a los pines XTAL1 y XTAL2 del IC
  • Utilice dos condensadores de cerámica 22pF
  • Basado en la Tabla 2 de la página 26, CKSEL3..0 tiene que ser 1111-1010
  • CKOPT no estará programado (según la descripción en la parte superior de la página 27) porque no necesito un gran swing de salida, no estoy conduciendo otra cosa con el cristal
  • CKSEL3..1 tiene que ser 101, 110 o 111 porque mi cristal es mayor que 1 MHz
  • CKSEL0 se debe establecer en 1, y SUT1..0 a 11 (según la tabla 5 en la página 28) porque quiero permitir que el tiempo máximo de inicio sea seguro

Bien, así que tomé estas notas y no sé a dónde ir desde aquí. Por ejemplo:

  1. ¿Qué son todas estas cosas (CKSEL3..1, CKSEL3..0, etc.), y cómo puedo saber qué valor elegir para CKSEL3..0 y CKSEL3..1 si me dan una variedad de opciones? para elegir?
  2. ¿Qué necesito cambiar y cómo configurar los bits de fusible para habilitar estas configuraciones? Estoy utilizando avrdude para programar mi microcontrolador.
  3. ¿Necesito usar un perro guardián? Si lo hago, no parece que haya ninguna configuración para habilitarlo o inhabilitarlo (al final de la página 26), ¿o está siempre habilitado?

Gracias a todos. Lo siento por todas estas preguntas, soy muy nuevo en todo esto, pero estoy decidido a aprender.

    
pregunta capcom

1 respuesta

4

CKSEL normalmente significa selección de reloj. Hay varias opciones que se pueden seleccionar a través de un multiplexor interno: algunas para prueba, otras para fuentes alternativas.

Ya que está usando un xtal, puede proporcionar el código para seleccionar esa opción: que están en las primeras 2 filas de la p 26. Puedes usar 3 filas inferiores de la tabla 4 para un cristal. Cada uno está sintonizado a un rango particular de frecuencias como se muestra. Si su referencia de cristal fue diseñada para oscilar alrededor de 4MHz, establecería los bits de sellado al código, 111, por ejemplo. 16Mhz solo funciona con CKOPT bajo usando cualquiera de los tres códigos de selección que se muestran en la fila 4 de la tabla.

Las tapas externas deben ser 12-22pF no 22uF para el xtal de acuerdo con la misma tabla. También solo especifica un límite máximo de oscilador de 16 MHz, por lo que no usaría un xtal de 20 MHz.

Me parece que la funcionalidad del temporizador de vigilancia es interna.

* note xtal y crystal se usan como sinónimos aquí.

    
respondido por el pat

Lea otras preguntas en las etiquetas