Cambio de las conexiones del dispositivo a MCU según la fuente de alimentación

1

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.

    
pregunta user1390471

2 respuestas

0

Sugiero algunas de estas formas:

  • Uso de multiplexor analógico como ADG608 o un interruptor bidireccional como CD4016

  • Use un codificador de teclado para conectar su teclado como 74C922 y 74C923. reduce los pines necesarios y la programación fácil.

  • Use un decodificador IC para encender su LED como 74C154. Solo se necesita una técnica de programación para encender todos los LED conectados simultáneamente, por ejemplo. actualizándolos con al menos 20 Hz.

  • Use múltiples MCU conectadas a través de SPI para controlar todo su circuito (es su última opción).

Use ics digitales TTL o CMOS con MCU para reducir los pines necesarios y mejorar el rendimiento de su circuito.

De hecho, existen diferentes tipos de sockets para dispositivos SMD que pueden ser útiles para usted si tiene problemas con estos paquetes SMD.

    
respondido por el HOPE
0

agregue otro microcontrolador, interfaz con spi ya que necesita usar un módulo para el módulo RF ... también puede usar el "decay counter 4017" que tiene 10 entradas y solo 2 pines para la salida

    
respondido por el masternone

Lea otras preguntas en las etiquetas