Autor Tema: Dos uC compartiendo Vdd, que ocurre?  (Leído 3148 veces)

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

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1836
    • IDEAA
Dos uC compartiendo Vdd, que ocurre?
« en: 30 de Junio de 2022, 14:42:44 »
Buenas!
Llevo un rato rascandome la cabeza, no soy capaz de solucionar un problema "simple" de electronica. A ver si vosotros me podeis echar una mano.
Supongamos la siguiente situacion: tengo 2 microcontroladores independientes, cada uno con su fuente de alimentacion. Uno alimentado a 3v y otro alimentado a 3.7v.
En vez de tener GND como referencia comun, tiene Vdd unidos 3v <-> 3.7v
Los GND son independientes.
Si conecto un pin I/O de un uC al otro, es posible que uno pueda leer el estado de un pin del otro?
Algo asi:
 

* 1 Schematic.png
(9.58 kB, 1011x418 - visto 385 veces)


Podria hacer la prueba empirica, pero quiero saber la teoria detras de esto.
Como lo veis?
Gracias y un saludo!
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1836
    • IDEAA
Re:Dos uC compartiendo Vdd, que ocurre?
« Respuesta #1 en: 30 de Junio de 2022, 15:34:53 »
Os pongo en antecedentes, hay un microcontrolador que controla un LED. Este LED tiene conectado su positivo a la bateria directo (+3.7v), y el negativo del LED al microcontrolador que con un 0 lo enciende y con un 1 lo apaga.
Lo que quiero hacer es intercalar otro microcontrolador (uC2) entre el LED y el microcontrolador original (uC1). Mi uC2 tiene una bateria propia, y solo se puede conectar al enchufe donde va el LED, por lo que solo dispone de el positivo (+3.7v) y la señal del uC1.
El LED se conectaria a uC2. Cuando uC1 envie un 0, el uC2 lo lee y activa el LED, pero uC2 tambien tiene que poder encender el LED en otros momentos.
Por eso necesito usar Vdd como referencia, ya que es el unico punto que puedo poner en comun. O no?

Si usar el Vdd comun no fuese una opcion, se me ocurre otra solucion aun mas loca:
 

* 2 Schematic .png
(10.67 kB, 1006x414 - visto 351 veces)


Que ocurre en este caso? Esto es lo que creo yo:
Cuando uC1 envia un 1 por su pin GP1, el pin GP2 del uC2 lee 0, ya que la referencia de uC2 seria el Vdd del uC1
Cuando uC1 envia un 0 por su pin GP1, el pin GP2 del uC2 lee 1, ya que es como si estuviesen compartiendo GND

Estoy diciendo algo muy disparatado? En mi cabeza tiene sentido  :mrgreen:
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Dos uC compartiendo Vdd, que ocurre?
« Respuesta #2 en: 30 de Junio de 2022, 15:45:33 »
Los microcontroladores (no sé si todos) tienen diodos de protección en sus terminales de entrada. como esta imagen.




Eso te puede ayudar a comprende que pasa y responderá tus preguntas.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1836
    • IDEAA
Re:Dos uC compartiendo Vdd, que ocurre?
« Respuesta #3 en: 30 de Junio de 2022, 16:34:37 »
Gracias por el dato! Pero no resuelve mis dudas  :-)
Un empujoncito?
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Dos uC compartiendo Vdd, que ocurre?
« Respuesta #4 en: 30 de Junio de 2022, 16:55:17 »
Gracias por el dato! Pero no resuelve mis dudas  :-)
Un empujoncito?

Con los diodos vas a tener el siguiente circuito equivalente.



Suponiendo que el MCU de la izquierda, su terminal se comporta como salida proporcionando 1 lógico y le otro MCU su terminal se comporta como entrada, puede ver que puede leer el 1 lógico del otro microcontrolador. (Voltímetro indica donde deseamos conocer el voltaje)



Ahora suponiendo que el MCU de la izquierda pone su terminal en cero lógico, el circuito es un poco más complejo de comprender.



Aquí sólo tienes que aplicar la ley de Kirchhoff que dice que la suma de todos los voltajes debe ser cero, es decir:

3V - 3.3V - Vx = 0 ((Vx es el voltaje que queremos conocer en el pin de entrada del MCU de la derecha)

De aquí Vx es igual a -0.3V, lo que activaría al diodo de protección inferior y el microcontrolador lo interpretaría como cero lógico.


« Última modificación: 30 de Junio de 2022, 16:59:57 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado tsu_electronica

  • PIC18
  • ****
  • Mensajes: 274
Re:Dos uC compartiendo Vdd, que ocurre?
« Respuesta #5 en: 30 de Junio de 2022, 21:10:26 »
en teoría debe de funcionar, así como dice el colega dominusddr hay que tener en cuenta las corrientes que va a consumir el pic cuando accione su pin, solo checa que en ningún momento se ponga vdd y gnd ya que seria corto como estas poniendo en tu primera imagen el voltaje común en vez de tierra y tal vez en la simulación si funciona pero en la realidad puede que no o el segundo micro haga cosas extrañas por el tiempo de encendido y el programa pero seria checar la hoja de datos del pic para saber esos datos pero en lo personal no creo que lo haga pero la electrónica tiene muchos misterios y tal vez si funcione.

Desconectado gustavopic

  • PIC18
  • ****
  • Mensajes: 417
Re:Dos uC compartiendo Vdd, que ocurre?
« Respuesta #6 en: 01 de Julio de 2022, 01:03:42 »
Una porqueria el usar +vcc como común, tenes que pensar “al revez” .
He visto gente  que lo hace, calculo es solo practicarlo… pero “que ganas”!!!!
3 v  y  3,7 v …
( escribi mal, me cuesta muchísimo ) :
Cualquiera que mande un 1 estara mandando Vcc y como están unidas, se supone ambos verán eso : vcc .

Pero cuando el de 3 v le mande un cero a el de 3,7 v este de 3,7 v vera 0,7 v ( el de 3,7 v esta esperando 3,7 v menos que el +vcc )

Cuando el de 3,7 v le mande un cero a el de 3 v este vera 0,7v negativos, y ahí estaan esos diodos internos ayudando .

Me parece una porquería trabajar asi, pero es lo que es, hay que solo acostumbrarse….
encima, hay que pensar si en algo mas podra molestar..... en fin.
« Última modificación: 01 de Julio de 2022, 01:10:03 por gustavopic »

Desconectado gustavopic

  • PIC18
  • ****
  • Mensajes: 417
Re:Dos uC compartiendo Vdd, que ocurre?
« Respuesta #7 en: 01 de Julio de 2022, 01:15:25 »
Os pongo en antecedentes, hay un microcontrolador que controla un LED. Este LED tiene conectado su positivo a la bateria directo (+3.7v), y el negativo del LED al microcontrolador que con un 0 lo enciende y con un 1 lo apaga.
Lo que quiero hacer es intercalar otro microcontrolador (uC2) entre el LED y el microcontrolador original (uC1). Mi uC2 tiene una bateria propia, y solo se puede conectar al enchufe donde va el LED, por lo que solo dispone de el positivo (+3.7v) y la señal del uC1.
El LED se conectaria a uC2. Cuando uC1 envie un 0, el uC2 lo lee y activa el LED, pero uC2 tambien tiene que poder encender el LED en otros momentos.
Por eso necesito usar Vdd como referencia, ya que es el unico punto que puedo poner en comun. O no?

Si usar el Vdd comun no fuese una opcion, se me ocurre otra solucion aun mas loca:
  - Tienes que ingresar para ver archivos adjuntos -  

Que ocurre en este caso? Esto es lo que creo yo:
Cuando uC1 envia un 1 por su pin GP1, el pin GP2 del uC2 lee 0, ya que la referencia de uC2 seria el Vdd del uC1
Cuando uC1 envia un 0 por su pin GP1, el pin GP2 del uC2 lee 1, ya que es como si estuviesen compartiendo GND

Estoy diciendo algo muy disparatado? En mi cabeza tiene sentido  :mrgreen:

haaagg.... me mareaste, de verdad, no se por que puedes si unir los + y no el comun o masa.
si te entiendo  que  estas usando 2 micros distintos, con baterias distintas...
he visto tantas, pero tantas veces que usan OPTO ACOPLADORES al reverendo dope, y aca, donde si podrias simplificarte la vida, ni lo nombran .

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
estoy leyendote, tu ejemplo:
el uC1 activa el led o lo apaga ( obvio dando +3,7v o dando masa) .
dices que en algun momento puedes queerer activar ese mismo led  pero con el otro uC y eso no puedes, por que no puedes  mandar un cero de activacion  de el led  a el mismo punto donde el otro micro esta mandando un 1 .
ahi tienes un problema, usas vcc como comun o uses masa como comun.
te estas liando  mal...
 

aca esta tu solucion:
Os pongo en antecedentes, hay un microcontrolador que controla un LED. Este LED tiene conectado su positivo a la bateria directo (+3.7v), y el negativo del LED al microcontrolador que con un 0 lo enciende y con un 1 lo apaga.
Lo que quiero hacer es intercalar otro microcontrolador (uC2) entre el LED y el microcontrolador original (uC1). Mi uC2 tiene una bateria propia, y solo se puede conectar al enchufe donde va el LED, por lo que solo dispone de el positivo (+3.7v) y la señal del uC1.
El LED se conectaria a uC2. Cuando uC1 envie un 0, el uC2 lo lee y activa el LED, pero uC2 tambien tiene que poder encender el LED en otros momentos.
Por eso necesito usar Vdd como referencia, ya que es el unico punto que puedo poner en comun. O no?

Si usar el Vdd comun no fuese una opcion, se me ocurre otra solucion aun mas loca:
  - Tienes que ingresar para ver archivos adjuntos -  

Que ocurre en este caso? Esto es lo que creo yo:
Cuando uC1 envia un 1 por su pin GP1, el pin GP2 del uC2 lee 0, ya que la referencia de uC2 seria el Vdd del uC1
Cuando uC1 envia un 0 por su pin GP1, el pin GP2 del uC2 lee 1, ya que es como si estuviesen compartiendo GND

Estoy diciendo algo muy disparatado? En mi cabeza tiene sentido  :mrgreen:

si te comprendo bien, el led esta afuera, y se conecta  la placa de el uC1 a rtavez de un conector.
vos te quers "colgar " de ese conector, para no meter mano en la placa , eso es ??
me parece que si , y te vas a encontrar con dilemas.

queres poder leer con el otro micro que pasa con el micro 1  me parece que necsitas o lo de hacer el comun ( feo ) o usar un opto, pero la macana es que no podes ( no sabes si se puede )  colgar mas carga de esa salida ( de el micro 1 ) ....
a su vez, decis que queres controlar a el led desde uno o de el otro micro y eso no podes hacerlo, a menos que hagas un circuito, algo que te permita manejar a un solo led de 2 lugares distintos ( 2 optos o 2 transistores )...
.

al final, en tu "idea loca" si podes acceder a el negativo de el uc1 , confirma eso , asi es todo , pero todo mas facil.
haces negativo comun y todo mas facil, mas  claro mental.
igual , encsitas un esquema , 2 T imagino, por que no poes prender el led desde el uc 2 si el uc1 lo tiene como apagado.
pero lo importante es acceder a el negativo, asi los unis y no el +vcc y de ahi en mas es todo mas simple para la cabeza.

revisalo, puedo estar equivocado :





 
« Última modificación: 01 de Julio de 2022, 02:32:07 por gustavopic »

Desconectado remi04

  • PIC24F
  • *****
  • Mensajes: 657
Re:Dos uC compartiendo Vdd, que ocurre?
« Respuesta #8 en: 01 de Julio de 2022, 04:12:20 »
Lo que dice gustavopic es la forma más simple de hacerlo.

 Y si los puertos usados en ambos uc para manejar el led fuesen del tipo Open Drain, se puede incluso evitar los dos diodos schotkly.

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1836
    • IDEAA
Re:Dos uC compartiendo Vdd, que ocurre?
« Respuesta #9 en: 01 de Julio de 2022, 15:47:56 »
Gracias por todas las respuestas!
Despues de intentar entender todas las posturas me he lanzado a hacer pruebas.
Ambas soluciones propuestas en mis dos primeros posts funcionan. Pero curiosamente, el LED no brilla con toda su intensidad cuando es activado por el uC2, mientras que si es activado por el uC1 si brilla bien.
Debe haber algun tema de voltajes por ahi que tengo que intentar analizar.

PS: Si, ya se que si pudiese poner GND comun seria todo mucho mas sencillo... pero lamentablemente no puedo :(
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado gustavopic

  • PIC18
  • ****
  • Mensajes: 417
Re:Dos uC compartiendo Vdd, que ocurre?
« Respuesta #10 en: 01 de Julio de 2022, 16:28:03 »
y... era esperable, estas "justo" , el led con esos 3,7v prende bien, pero con 3 v ya no.

fijate si podes hacer que el uC2 active un transistor y este active a el led, pero con la misma masa de el uC1

es solo idea, la fig. 2 o 3  :
« Última modificación: 01 de Julio de 2022, 16:45:37 por gustavopic »

Desconectado gustavopic

  • PIC18
  • ****
  • Mensajes: 417
Re:Dos uC compartiendo Vdd, que ocurre?
« Respuesta #11 en: 01 de Julio de 2022, 16:48:17 »
PD: decis que tu idea funciona...
pero me vas a decir que probaste hacer que el uc2 active a el led  mientras el uc1 tiene su salida como "desactivado"????

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1836
    • IDEAA
Re:Dos uC compartiendo Vdd, que ocurre?
« Respuesta #12 en: 04 de Julio de 2022, 07:36:03 »
Gracias Gustavo, no era problema de que 3v sea poco, sino de que estaba activando el LED desde un uC y desactivandolo desde el otro, por lo que estaba encendiendo "la mitad" :D
Lo he corregido y parece que esta funcionando bien usando esta solucion:
 
El uC2 de la izquierda lee el estado de su pin A2
El uC1 principal es el de la derecha. Y con su pin A1 controla cual es la referencia del uC2. Cuando este saca 1 por A1, pone la referencia a 1, por lo que el pin del uC2 lee 0.
Pero cuando pone el pin a 0, tambien pone la referencia del uC2 a 0, y entonces el uC2 lee 1 por el pin A2.
« Última modificación: 05 de Julio de 2022, 05:27:23 por Marttyn »
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re:Dos uC compartiendo Vdd, que ocurre?
« Respuesta #13 en: 04 de Julio de 2022, 09:39:45 »


Esto es el equivalente a poner ambos GND en común de fuentes diferentes.
El circuito es equivalente, pero el flujo de corriente me parece que debería ser inverso (los 0,7V de diferencia). Por lo tanto, deberías adecuar las tensiones; como pasa cuando pones dos fuentes de diferentes valores, pero con GND en común.

 
« Última modificación: 04 de Julio de 2022, 09:49:14 por Leon Pic »
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re:Dos uC compartiendo Vdd, que ocurre?
« Respuesta #14 en: 04 de Julio de 2022, 09:44:15 »


Para este caso, no pasa nada. Al no tener una referencia en común, y por lo tanto, al no quedar cerrado el circuito, no hay flujo de corriente.

Es como tomar dos pilas. De una pila tomar el positivo, y de la otra pila, tomar el negativo. Ambas pilas no están conectadas entre si. Esto queda como un circuito abierto y por lo tanto, no hay flujo de corriente.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.