ATmega32U4 con TXLED y RXLED como pines de salida y funcionalidad USB

-1

Utilizo ATmel ATmega32U4 en un esquema que copia casi completamente a Arduino Leonardo . Por lo tanto, Caterina-Leonardo el gestor de arranque funciona bien con él.

Lamentablemente, me he quedado sin todos los pines de salida disponibles. Entonces, me pregunto si puedo usar el pin 22 ( TXLED , PD5) como salida digital adicional.

Como entiendo por muchos foros y preguntas y respuestas, como por ahí, tengo que crear un gestor de arranque personalizado. Agregué mi propia placa al Arduino IDE y construí un nuevo gestor de arranque a partir del código de Caterina (por lo tanto, el compilador y las bibliotecas LUFO funcionan bien), pero no tengo idea de cómo deshabilitar correctamente las señales TXLED y RXLED, para usar estos pines se imprimen correctamente (RXLED como el pin digital Leonardo número 17 y TXLED como el trigésimo primero).

Por otra parte, la placa utiliza USB (pines ATmega32U4 de 3 y 4) para la comunicación con la computadora (debe ser un dispositivo plug-and-play), enviando algunos datos a y para cargar nuevas versiones de croquis a través del IDE de Arduino. Así que necesito usar la funcionalidad USB y TXLED como pin de salida simultáneamente. (El pin de salida no conduce a la computadora, por si acaso).

Por favor, ¿puede decirme si este problema se puede resolver y, en caso afirmativo, cómo puedo hacer las cosas? ¿Qué debo cambiar en las fuentes del gestor de arranque (como caterina.h , caterina.c , descriptors.c etc.)?

Cualquier información útil sobre eso será altamente apreciada.

Pasé horas excavando el código del gestor de arranque y diferentes sitios web, pero finalmente fracasé. Por ejemplo:

Parece que el último tipo tuvo el mismo problema y lo resolvió con éxito, pero desafortunadamente no describió su solución y no adjuntó ninguna fuente.

Aquí está mi diagrama de circuito:
Habilité pull-ups internos en ROW1..ROW4 y quiero hacerlos BAJOS cuando se presiona el interruptor. Funciona bien con todos los STR, excepto el tercero. El problema es que STR3 está conectado al pin 22 (TXLED).

    
pregunta Sasha MaximAL

2 respuestas

0

En el Arduino IDE 1.8.1 está el gestor de arranque Catarina en / hardware / arduino / avr / bootloaders / caterina

Abre los archivos Catarina.c y Catarina.h y busca TX_LED y RX_LED, verás que se usan mucho. Cuando los elimines, también puedes adaptar la macro LED_SETUP (), ya que esa macro establece tres pines para la salida (RX, TX, L).

¿Conectaste AREF a VCC? Eso no está bien. Cuando se selecciona la referencia de voltaje interno, causará un acceso directo interno.

    
respondido por el Jot
0

No mostró el diagrama completo que es relevante.
¿Cómo se maneja el TX LED?

Si el LED de TX es impulsado por el pin con una resistencia en serie:

El circuito del LED puede ser

  • pin - resistencia - LED - masa o

  • pin - LED - resistencia - tierra

tampoco funciona igual de bien en la modificación a continuación.

Agregue cualquier transistor NPN "Jellybean" (BC337 o ....) como Q1

  • Desconecte la conexión del pin al circuito de TX LED
  • Conecte el pin a la base Q1.
  • Conecte el colector Q1 a Vcc.
  • Conecte el emisor Q1 al circuito LED.
  • Conduzca la matriz del interruptor desde el pin como antes.

El transistor actúa como un seguidor del emisor y como un búfer para el pin.
La unidad LED se reducirá levemente, ya que ahora está siendo accionada por Vpin-Vbe_Q1 en lugar de por el pin directamente. El tamaño de la resistencia podría reducirse un poco si se requiere más brillo.

    
respondido por el Russell McMahon

Lea otras preguntas en las etiquetas