¿Problemas al migrar de ATmega88 a ATmega88P, con V-USB / AVR-USB?

4

Estoy trabajando en un circuito basado en V-USB (también conocido como AVR-USB) a 5 V (es decir, dos Zeners de 3,6 V a través de D + & D-) y a 12MHz. Probé un ATmega88P en lugar de los chips ATmega88 que normalmente uso y no consigo que se enumere el circuito. Las notas de Atmel sobre la migración de mega88- > mega88P no describen ningún error obvio.

¿Alguien tiene alguna experiencia / consejo con las diferencias en los chips ATmega88P?

    
pregunta todbot

1 respuesta

2

El problema es que el archivo de la biblioteca AVR-GCC "iom88p.h" para ATmega88P (y archivos similares para ATmega168P y ATmega328P) está dañado. No define el controlador de vector de interrupción SIG_INTERRUPT0 y solo define el nombre del controlador alternativo de INT0_vect. El código de ensamblaje de V-USB utiliza SIG_INTERRUPT0 y, por alguna razón, avr-as no recoge la definición nula.

Este problema de biblioteca también es la razón por la que ya no puede usar definiciones como "PC3" en Arduino y en su lugar debe usar "PORTC3".

La solución en el caso de V-USB es ir a "usbconfig.h" para su proyecto y agregar:

     #define USB_INTR_VECTOR         INT0_vect
    
respondido por el todbot

Lea otras preguntas en las etiquetas