Construí una pequeña placa basada en attiny85 usando vusb y esencialmente el esquema del "AVR Stick" discontinuado de Sparkfun (al menos en el lado usb / uC; consulte enlace ).
Intentando ejecutar micronucleus , un cargador de arranque basado en V-USB, en él, usé los siguientes cambios de configuración del% incluido Ejemplo de tiny85-default
(para acomodar diferentes pines):
#define USB_CFG_DMINUS_BIT 0
#define USB_CFG_DPLUS_BIT 2
#define USB_INTR_VECTOR PCINT2_vect
por lo que i (y la documentación disponible) pueden indicar, esta es la configuración correcta.
cuando intento conectarlo a mi PC a través de usb, obtengo errores de enumeración y al conectar un analizador lógico a su VCC (para activarlo al conectarlo) y las líneas de datos, veo el siguiente tráfico:
- VCC alta
- unos cuantos paquetes rotos al azar a medida que la unidad de control se gira
- un bucle de:
-
SYNC PID_SETUP 0x00 0x00 CRC_OK EOP
(inicio de saludo) -
SYNC DATA0 0x80 0x06 0x00 0x01 0x00 0x00 0x40 0x00 CRC_OK EOP
(sin pista) - esperando ahora un paquete
SYNC ACK
oSYNC NAK
, pero no pasa nada, excepto - algunos keepalives espaciados uniformemente (y muy lentos, en comparación con los paquetes anteriores), hasta que reintente este bucle varias veces (con algunos reinicios + ciclos vcc de mi núcleo intentando deshacer la ruptura del dispositivo atascado)
-
- las líneas de datos pasan al estado inactivo cuando mi kernel se da por vencido y decide simplemente entregar el poder
Adjunté un volcado csv desde mi analizador lógico aquí .
Si alguien tiene una idea de lo que está sucediendo aquí o cómo solucionarlo (o al menos cómo obtener más información sobre lo que realmente está mal), cualquier ayuda es muy apreciada :)
EDITAR: olvidó mencionar lo anterior, el analizador lógico está conectado a los pines de la unidad uC, no en línea con la conexión USB, por lo que es muy probable que sea un problema de software ya que las señales eléctricas definitivamente llegan a la unidad uC. un simple programa de prueba de conmutación de pin (con fusibles sin cambiar) confirma que la unidad de control de sonido se está ejecutando en ese momento.