Programacion de fuses para atmega8 en Isis

#1
hola, estoy haciendo un proyecto con un modulo bluetooth y un atmega816au (32pin) como necesito trabajar los dos con un voltaje de 3 a 3.3v necesito configurar el avr a 4mhz para que trabaje a 3v, el problema viene cuando lo quiero simular en el Isis, no logro hacer la simulación ya que me marca invalid opcode F=0xFFFF at PC=0x1802 la verdad no estoy seguro si configure bien el isis así como el código defino F_CPU 4000000UL agradecería su ayuda gracias.
 
#2
Hola.
El declarar F_CPU solo es para el compilador (con eso calcula los tiempos si es que se utiliza delay), no hace efecto en los fuses.
Como creo que estas usando GCC puedes intentar con esto:

#include <avr/fuse.h>
FUSES = {
.low = LFUSE_DEFAULT,
.high = HFUSE_DEFAULT,
};
Puedes reemplazar LFUSE_DEFAULT y HFUSE_DEFAULT por otros que encuentras en el archivo *.h del Atmega según sea el caso.

En ISIS configura "CKSEL Fuses" en "Int.RC 4Mhz" o "Ext. Cristal Medium Freq." y en "Clock Frequency" a 4Mhz.

Prueba eso.
Saludos.
 
#3
hola zxbsaruman, ese es un problema muy comun en proteus, lo que te sugiero es dos cosas, la primera si deseas simular el circuito con el atmega168 (xq el atmega816 no existe jejej) puedes configurar el crystal en 8MHz si tu programa no necesita un reloj a 4MHz, ahora si el caso es ese, que tu programacion necesita los 4Mhz, puedes probarlo con el atmega16 y configurar su reloj en los 4MHz, ojo que antes debes especificar que ya no es el atmega168 si no el atmega16. Una vez simulado que todo te funciona perfectamente, puedes volver a cambiar el tipo de micro, lo quemas con tranquilidad que el programa simulado te va a funcionar en el atmega168. Saludos
 
#4
ByAxel, ya probé con la configuración que me diste y me sigue tirando el mismo error :/, y kero hahaha es cierto no existe, es que puse Atmega8-16pu, (me falto el guion) porque asi dice en el micro escrito hehehehe, y pues no logro hacer que trabaje a 4mhz :/ , y los 4mhz es en especial porque a esa frecuencia según el datasheet el micro trabajara a 3 volts :p heeelp :/
 
#5
Prueba en otro archivo de ISIS, solo el ATmega8 + conexiones del AREF, AVCC y RESET, carga el firmware y configura el oscilador a 4Mhz; el resto dejalo así.
Si no funciona es por el simulador o por el código ya que ISIS indica que en la dirección 0x1802 hay un opcode que no puede realizar... tal vez compilar mal y hace un salto que no debe, pero mejor prueba en un ATmega8 real.

Saludos.
 
Arriba