¿Puedo ejecutar un programa, en un ATtiny85 con cargador de arranque de micronúcleo, sin conexión USB?

Me las arreglé para poner el gestor de arranque de micronúcleos en un ATtiny85. Utilizándolo, puedo cargar programas con éxito en mi ATtiny a través de USB y se ejecutan como deberían, siempre que estén conectados a USB. Cuando solo conecto el Tiny a +5V y GND, no ejecuta el programa. ¿Cómo puedo cambiar eso? ¿Cómo puedo hacer que mis programas se ejecuten incluso sin conectar el ATtiny85 al USB?

Respuestas (2)

El cargador de arranque debe salir y ejecutar el programa de usuario después de 6 segundos si el USB no está conectado. Si eso es demasiado lento, puede volver a compilar con un retraso más corto o configurar AUTO_EXIT_NO_USB_MS> 1.

Si el programa de usuario no parece estar ejecutándose después del período de tiempo de espera, probablemente tenga algún otro problema. Quizás su programa tiene un error que impide que funcione correctamente si el cargador de arranque no se comunica primero con el puerto USB (verifique si hay variables no inicializadas, registros de hardware que no están configurados en estados definidos, etc.).

Además, si la placa está alimentada por el puerto USB cuando está enchufada, asegúrese de que su fuente de alimentación externa sea lo suficientemente buena para ejecutarla de forma independiente.

(en bootloaderconfig.h)

/*
 * Define bootloader timeout value. 
 * 
 *  The bootloader will only time out if a user program was loaded.
 * 
 *  AUTO_EXIT_NO_USB_MS        The bootloader will exit after this delay if no USB is connected.
 *                             Set to 0 to disable
 *                             Adds ~6 bytes.
 *                             (This will wait for an USB SE0 reset from the host)
 *
 *  AUTO_EXIT_MS               The bootloader will exit after this delay if no USB communication
 *                             from the host tool was received.
 *                             Set to 0 to disable
 *  
 *  All values are approx. in milliseconds
 */

#define AUTO_EXIT_NO_USB_MS    0
#define AUTO_EXIT_MS           5000

 /*
¡Gracias por la respuesta! Parece que he localizado un poco más el problema: no necesita estar conectado a USB, sin embargo, no puedo programar el diminuto a través de USB y luego moverlo a otro lugar, el ATtiny necesita estar conectado a los mismos componentes que usé. para programarlo. Usé este esquema para cablear la interfaz USB para el diminuto, debe permanecer conectado a esas resistencias y diodos. Espero que entiendas lo que quiero decir: no puedo usar la conexión USB solo para programar el diminuto, necesita permanecer allí para que funcione.
¿Hay alguna manera de que pueda cambiar eso?
Lo arreglé. Aparentemente, esa resistencia pull-up debe permanecer conectada al pin D en el ATtiny, es decir, PB3.
Bueno, ¿puedo deshacerme de alguna manera de ese pull-up? Está interfiriendo con mi circuito.
¿Qué circuito tienes conectado al pin 2?
¿Quieres decir cuando no está conectado a USB? O cuando está conectado? Cuando no estoy conectado, uso los pines para conectar algunos LED. Y debido al pull-up en el pin 3, algunos LED permanecen parcialmente encendidos en todo momento, lo cual no es deseado.
Algo como esto pero usando los 6 pines del ATtiny. Ese pull-up está encendiendo algunos de mis LED.
Intente conectar una resistencia de mayor valor (por ejemplo, 100k) desde el pin 2 (no el pin 3) a Vdd.
Por Pin 3 me refiero a PB3. Sí, pensé en eso, así que hice un circuito de prueba simple y vi que mi LED se enciende (ligeramente) incluso con 100k en lugar de 1.2k Incluso esa pequeña cantidad de corriente parece ser suficiente para encender un LED...
Si incluso esa pequeña cantidad de corriente produce demasiada luz, tal vez debería borrar el cargador de arranque y simplemente usar un programador USB AVR normal. Si debe usar el gestor de arranque, tendrá que modificarlo, p. haga que active el pullup interno en PB3 durante el arranque, luego desactívelo nuevamente antes de ejecutar el programa de usuario.

Entonces, para que el ATtiny funcione incluso después de desconectarlo del USB, debe dejar el pin 3 (PB3) en el ATtiny conectado a +5V a través de una resistencia pull-up.

¡gracias! esto era lo que me estaba perdiendo, no encontré mucha información en la red en ninguna parte, todos saben cómo actualizar el cargador de arranque, pero ninguno habló sobre desconectarse después. ¡así que estoy feliz de haber encontrado finalmente la pieza que faltaba! (Solo tomó 2 noches de búsqueda esta vez para solucionar el problema jaja)