Está describiendo efectivamente un arreglo de "maestro único, esclavo múltiple". Al trabajar con una configuración de este tipo, los dos primeros enfoques que vienen a la mente son SPI y I2C .
Personalmente, me alejo de SPI a menos que solo me preocupe un pequeño número de dispositivos esclavos (bajo número de chips), o es la única interfaz disponible. Esto se debe principalmente a que necesitará una línea dedicada de selección de esclavos para cada dispositivo esclavo, que consumirá otro pin GPIO en su MCU / CPU, o necesitará circuitos de multiplexación adicionales para guardar sus pines de repuesto. El beneficio adicional de esto es que puede "transmitir" a grupos de dispositivos al mismo tiempo (suponiendo que no le respondan) en lugar de tener que transmitir a todo el bus como lo hace con I2C.
I2C no es malo en absoluto, incluso para una gran cantidad de dispositivos. Si quieres 50 esclavos, necesitarás al menos uno de:
- todos sus dispositivos pueden admitir 6 bits de dirección programables (ya sea mediante la introducción de estos en los chips de antemano o mediante el uso de pines de dirección Vcc / GND)
- Si su MCU / CPU tiene múltiples buses I2C, puede dividir grupos de chips para compartir buses individuales, lo que le permite necesitar rangos de direcciones programables más pequeños
- seleccione chips para que usen rangos de direcciones I2C que no se superpongan.
Además, I2C tiene el beneficio adicional de poder manejar los desajustes de voltaje fácilmente si el maestro y los esclavos se comunican a diferentes niveles lógicos (es decir, 3.3VDC vs 5.0VDC ).