TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: chars en 17 de Diciembre de 2021, 00:25:54

Título: Multimaestro y un solo esclavo
Publicado por: chars 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.
Título: Re:Multimaestro y un solo esclavo
Publicado por: Nocturno 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
Título: Re:Multimaestro y un solo esclavo
Publicado por: KILLERJC 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.

Título: Re:Multimaestro y un solo esclavo
Publicado por: DominusDRR 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.

Título: Re:Multimaestro y un solo esclavo
Publicado por: Nocturno 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.
Título: Re:Multimaestro y un solo esclavo
Publicado por: DominusDRR 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.

Título: Re:Multimaestro y un solo esclavo
Publicado por: Nocturno 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.
Título: Re:Multimaestro y un solo esclavo
Publicado por: pic_gtv 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.