6 votos

Solución de problemas un reloj ATMega328p

Estoy tratando de ejecutar mi ATMega a 16MHz el uso de este cristal

Me puse el lfuse poco a F7 (ver aquí)

El comando que se utiliza para establecer el lfuse poco fue

C:\>avrdude -p m328p -P lpt1 -c stk200 -U lfuse:w:0xf7:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e950f
avrdude: reading input file "0xf7"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xf7:
avrdude: load data lfuse data from input file 0xf7:
avrdude: input file 0xf7 contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Yo tenía el código en el chip que se parpadear un LED, una vez cada segundo. Tras configurar la lfuse poco se detuvo.

Traté de leer la lfuse bits a través de

C:\Documents and Settings\admin>avrdude -p m328p -P lpt1 -c stk200 -U lfuse:r:-:
h -U hfuse:r:-:h

avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

Creo que tengo el cristal de la instalación correctamente en los pines 9 (TOSC1) Y 10 (TOSC2). Yo estoy usando el de 22 pF tapas.

Estoy viendo 5V en el pin 10 y 0V en el pin 9

¿Qué medidas puedo tomar para solucionar esto?

10voto

jasonjwwilliams Puntos 950

Un par de pensamientos. ¿Cuáles fueron los fusibles se establece antes de la modificación? han confirmado su cableado con el esquema? Recuerde, las necesidades de cristal conectado al programa.

La comprobación de la hoja de datos, parece que 0xF7 fue el ajuste incorrecto de usar. CKSEL 3..0 es 1000 por 0xF7. Hay una tabla en la hoja de datos, en la que se recomienda este valor para los osciladores de .8 a .9MHz, y específicamente a los estados que este ajuste no para ser utilizado con cristales. La configuración correcta para el byte bajo de los fusibles se 0xF1, esto pone CKSEL 3..1 en el 111, el cual es recomendado para 16MHz de cristal de cuarzo. La información relevante está en la página 29 de la hoja de datos.

Usted probablemente tendrá una vieja escuela programador para solucionar el problema, de lo contrario has de ladrillo el chip.

3voto

PhilPursglove Puntos 257

Esto es realmente una extraña respuesta que estás viendo. Por supuesto, hay el obvio sugerencia: ¿has probado a encender todo en la cadena? (PC->STK200->devboard) Pero también, ¿tienes otro programador AVR puede probar? ¿Tienes otro ATmega328P puede intentar la lectura y la escritura? ¿Alguna vez has sido capaz de leer el fusible de la configuración con cualquier programador?

Otras cosas para probar: Se puede quitar el cristal y ver si usted puede comunicarse con el chip? ¿Su programador tiene la capacidad para ajustar SCK velocidad? (el STK500 puede hacer esto, no estoy seguro acerca de STK200) puede ser el chip en un muy bajo en el modo de velocidad.

Como último recurso, usted necesitará para poner el chip en un de alto voltaje programador. Sé que al menos el STK500 puede hacer eso, y hay un par de circuitos que hay para hackear una PVH de un Arduino o puerto LPT. He tenido que resucitar un par de AVR chips de esa manera debido a un fallo eléctrico o me flubbed configuración.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X