Autor Tema: Multimaestro y un solo esclavo  (Leído 2523 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado chars

  • PIC10
  • *
  • Mensajes: 1
Multimaestro y un solo esclavo
« en: 17 de Diciembre de 2021, 00:25:54 »
Hola, buenas noches. Disculpen la molestia pero tengo una duda en cuanto a la comunicacion i2c.

Lo que pasa es que estoy desarrollando un circuito donde se tiene 4 pics para leer cada uno un sensor DHT11, y un general el cual realiza el muestreo de cada uno de estos para realizar un control difuso. La cuestion es que debo muestrear cada uno, sin embargo, si configuro el uC general como maestro, si me da la oportunidad de enviar un comando, sin embago, por teoria, el esclavo no podria reenviar una respuesta (osea los 4 pics de los sensores).

Lo que llegue a pensar es porque no convertir al general como un esclavo y los demas como maestros.

Es posible realizar esto? o ustedes que me recomiendan?

Saludos.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re:Multimaestro y un solo esclavo
« Respuesta #1 en: 17 de Diciembre de 2021, 03:00:47 »
Puedes hacer que tu PIC central sea un esclavo y los demás escriban el dato en él

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Multimaestro y un solo esclavo
« Respuesta #2 en: 17 de Diciembre de 2021, 20:33:18 »
Todo depende de que tan lejos estén los PICs y que necesidad tengas de que las 4 medidas sean al mismo tiempo, pero si estan sobre la misma placa, un SPI con todos, donde el maestro sea el general y a lo sumo un pin mas para indicar el inicio de lectura (3 pines), Solo lees 4 veces que son los 4 modulos, y tenes todas las lecturas del mismo instante y listo.


Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Multimaestro y un solo esclavo
« Respuesta #3 en: 17 de Diciembre de 2021, 23:02:45 »
Hola, buenas noches. Disculpen la molestia pero tengo una duda en cuanto a la comunicacion i2c.

Lo que pasa es que estoy desarrollando un circuito donde se tiene 4 pics para leer cada uno un sensor DHT11, y un general el cual realiza el muestreo de cada uno de estos para realizar un control difuso. La cuestion es que debo muestrear cada uno, sin embargo, si configuro el uC general como maestro, si me da la oportunidad de enviar un comando, sin embago, por teoria, el esclavo no podria reenviar una respuesta (osea los 4 pics de los sensores).

Lo que llegue a pensar es porque no convertir al general como un esclavo y los demas como maestros.

Es posible realizar esto? o ustedes que me recomiendan?

Saludos.

Yo lo que comprendo es que tu deseas enviar la información desde un esclavo al maestro tan pronto como obtienes datos del sensor. Pero el problema es que sólo cuando el maestro pide información al esclavo, sólo ahí podrías enviar tu información. ¿Estoy en lo correcto?

Si es así, deberías hacer un Polling o sondeo desde el maestro a los esclavos. Es decir el maestro pregunta al esclavo 1 los datos que tiene, luego pasa el segundo, luego al tercero, etc., y así hasta completar todos los esclavos para empezar de nuevo. Esa sería la manera.

¿Me imagino que los microcontroladores esclavos hacen algo más que solo leer la información de su sensor? Porque si no es así, podrías tener un solo microcontrolador que lea la información de los 4 sensores sin necesidad de otros pics.

Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re:Multimaestro y un solo esclavo
« Respuesta #4 en: 18 de Diciembre de 2021, 03:33:51 »
Lo primero que pensé es que con un micro se podían leer todos los sensores, pero he mirado el DHT11 y no tiene pines de configuración de dirección, por lo que no podrían montarse los 4 en el mismo bus.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Multimaestro y un solo esclavo
« Respuesta #5 en: 18 de Diciembre de 2021, 07:37:17 »
Lo primero que pensé es que con un micro se podían leer todos los sensores, pero he mirado el DHT11 y no tiene pines de configuración de dirección, por lo que no podrían montarse los 4 en el mismo bus.

Obviamente no se puede conectar todos al mismo bus de datos ya que como indicas no poseen algo para direccionarlos o algo para deshabilitarlos (chip select). Pero si tienes 4 terminales o pines disponibles del MCU, podrías leer la información de cada uno de manera independiente.

Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re:Multimaestro y un solo esclavo
« Respuesta #6 en: 18 de Diciembre de 2021, 12:31:03 »
Sí, si tienes disponibles más líneas en el micro principal, y suficiente cable para montar todo el circuito (desconocemos la distancia total) sería lo más fácil.

Desconectado pic_gtv

  • PIC10
  • *
  • Mensajes: 19
Re:Multimaestro y un solo esclavo
« Respuesta #7 en: 18 de Diciembre de 2021, 13:26:49 »
Buenas
Yo lo que suelo utilizar es un SWITCH de bus I2C de forma que en cada rama del bus puede disponer de las mismas direcciones sin problema, podéis revisar por ejemplo el "TCA9546A" o otros similares.
El cambio de bus se efectúa por en mismo bus y si es necesario puede disponer de una interrupción cuando alguno de los participantes envía información por su bus, esto ultimo no suele ser necesario a no ser que tengáis múltiples maestros en diferentes buses.