Perdón por el vago título, no estaba muy segura de cómo redactar esto.
Estoy diseñando un circuito que tendrá un AVR, un módulo de RF y una matriz de teclado, alimentado por batería. El problema es que utilizará todos los pines GPIO disponibles en el paquete más grande de DIP MCU ...
También me gustaría agregar capacidad USB (hacer que el dispositivo pueda ser alimentado por usb, así como comunicarse con el host en lugar de usar el módulo RF, si está conectado al usb). Esto también significaría que Necesito 2 pines más para D + y D- que no tengo.
Estaba pensando que podría usar un relé DPDT para desconectar el módulo RF si la alimentación proviene de la conexión USB, y conectar d + y d- a dos de esos pines, o si usb no está conectado, desconecte d + / d- y conecte el módulo de RF.
Esto parece un poco torpe (no se pretendía un juego de palabras de relevo) y me preguntaba si algo como esto podría hacerse con transistores o algún IC extraño que no conozca.
¿Esto es incluso factible o estoy loco? En el peor de los casos, supongo que tendré que aprender a soldar esos malditos chips de montaje en superficie con pequeños pines que tienen más pines GPIO ... pero preferiría no tener que hacerlo si es posible.
¡Cualquier empujón en la dirección correcta sería muy apreciado!
¡Gracias!
EDITAR:
Ok, creo que me decidí por una solución. Atmega328p como maestro conectado al módulo RF (SPI) y Atmega1284p (también a través de SPI). 1284p está conectado a la matriz 8/16 y leds. Todo alimentado por batería li-on con controlador de carga. El controlador de carga se puede conectar al USB para cargar la batería. Las líneas de datos usb van a 328p. Esto resuelve la necesidad de tratar con múltiples fuentes de energía.
El 328p puede detectar si el vbus usb está conectado comprobando d, ya que está conectado a vbus, y el vbus está aislado por un diodo, por lo que la batería no puede alimentarlo. Entonces es una cuestión simple de si d- es alto, usb debe estar conectado, deshabilitar la radio y enviar a través de usb. Si no, usa la radio.