TODOPIC
Otros Microcontroladores / Dispositivos programables => Raspberry Pi y similares => Mensaje iniciado por: genisuvi en 29 de Julio de 2020, 04:37:36
-
Hay algunas cosas sobre masas y GND que me cuesta todavía entender, después de esto todavía soy más consciente. Tengo montado un circuito con una Raspberry3 y una protoboard con un chip que se alimenta a 3.3V y se comunican por el bus SPI. El chip lee y escribe de sus GPIOs y se lo envía a la Raspberry por SPI.
Estoy usando una fuente externa para alimentar el chip a 3.3V. En un futuro el pin de alimentación de la Rasp no podría suministrar corriente para todos.
He unido las masas del circuito, incluyendo la masa de la Raspberry, a la de la fuente y el potencial de 3.3V de la fuente lo hago llegar al chip. No hay ningún otro punto con tensión que llegue al circuito ni a la Raspberry.
1.- Arranco la app y la fuente me marca un consumo de 0A. Pero funciona perfectamente y el chip tiene sus 3.3V, escribe y lee perfectamente.
2.- Ante mi desconcierto pongo el multímetro y en la salida de la fuente para medir la corriente. Efectivamente es 0A. Pruebo a ver qué pasa cuando apago el sumunistro de corriente de la fuente y sigue funcionando. Y entonces aparece en multímetro un consumo residual de 2mA.
3.- si pongo el multimetro en serie para medir la corriente que vuelve por el hilo de GND a la Rasp y al suministrar corriente el circuito ha dejado de funcionar correctamente.
4.- Ahora he apagado la fuente directamente y la aplicación sigue funcionando perfectamente. LA Raspberry es capaz de leer los valores de las entradas de este chip. Cuyos '1' se obtienen de una pull up interna que está conectada a VDD.
5.- Si toco con la punta del volt para ver nivel de tensión en Vin y otros pines ya las lecturas fallan. Pero si vuelvo a ejecutar la app de python vuelve a leer correctamente, hasta que vuelvo a tocar con el voltímetro. Pensaba que era un tema de quedarse cargado el condensador de Vin. Pero al volver a iniciar la app (con la fuente apagada igual) y volver a leer bien me he quedado sin argumentos.
Es todo esto normal? Hay algo que esté conectando mal en cuanto a la alimentación? Cómo debería tener el montaje de alimentación de esta Raspb + un chip alimentado con energía externa? Esquema en imagen.
Cómo puede ser que con la fuente apagada el chip siga funcionando? No tengo ni idea de cómo sin llegar 3.3V al chip pueda si quiera seguir comunicándose con el chip. Puede la Raspberry leer de algún registro del chip (comunicarse vía SPI) con un chip que está "apagado" (hipotéticamente). El voltímetro me lee 0V en Vin y en todos los pines; pero la Raspberry lee '1' y '0' correctamente incluso lee si al pin del chip experimenta un 1-->0--> 1
Gracias por vuestra atención. Dejo una imagen de cómo tengo conectados los hilos de masa y VDD entre fuente, Rasp y protoboard (con el chip).
-
¿Con qué alimentas a la rasperry?
-
¿Con qué alimentas a la rasperry?
Su fuente:
(http://[attachment id=1 msg=415859][/attachment])
(http://[attachment id=2 msg=415859][/attachment])
-
Sube un esquema cómo y dónde conectas el multímetro.
Puede que no hayas seleccionado bien las escalas y tipo de magnitud en el instrumento.
-
Sube un esquema cómo y dónde conectas el multímetro.
Puede que no hayas seleccionado bien las escalas y tipo de magnitud en el instrumento.
He usado todas las escalas y he cambiado el hilo del téster de amperios, no el COM, al receptáculo de mA y también al de 20A.
La fuente misma indica en la corriente "0.000" y cuando consume siempre marca el total. No está marcando nada. Por eso he decidido mirarlo con el téster. Conecto un hilo de téster al hilo de salida de la fuente (conector VDD rojo) y el otro hilo del téster al conector de la protoboard donde estaría recibiendo el hilo de la fuente. Lo conecto en serie con el hilo de la fuente.
Cuando tenga un momento lo dibujo y lo edito. De momento a ver si te sirve la descripción.
-
Utiliza el COM y mA o A según la magnitud de corriente a medir.
Y debes conectarlo en serie con la carga.
Pues si lo conectas en paralelo cómo si midieras tensión, causarás un cortocircuito!!!!
Puede que al multímetro le haya saltado el fusible interno por mala maniobra. Verifica eso también.
-
Gracias Robert76, te comento a esto:
Utiliza el COM y mA o A según la magnitud de corriente a medir.
Y debes conectarlo en serie con la carga.
Pues si lo conectas en paralelo cómo si midieras tensión, causarás un cortocircuito!!!!
Puede que al multímetro le haya saltado el fusible interno por mala maniobra. Verifica eso también.
Yo esperaba medir menos de 100mA y lo puse primero en una escala para esa opción. Por si a caso cambié las escalas. Pero teniendo bastante claro que era una acción innecesaria, aún así removí por mira.. Por si se había quedado tonto o por boba ya. Si la escala se queda pequeña el multímetro marca "0L" y entonces es cuando sé que me he quedado corta.
En serie con la carga está. De uno de los terminales de la fuente a una punta de prueba y la otra punta de prueba a la Vin del chip. No lo puse en paralelo. Lo que he hecho es como cortar el cable en dos y empalmar con el téster (como si el téster fuera un cable más. Lo tengo bien claro. Ya fundí el fusible de uno porque me olvidé que lo tenía conectado para amperios y me olvidé de cambiar el cable al tratar de medir tensión. Desde entonces me fijo bien.
E insisto, tengo una fuente doble. Tiene 2x2displays: 2x tensión y 2x corriente. He probado luego usando la segunda fuente, por si uno de las dos displays estuviese estropeado. Pero los displays de corriente de ambas fuentes marcaron 0A.
-
Siempre que midas una magnitud desconocida, se comienza por la escala mayor.
-
Siempre que midas una magnitud desconocida, se comienza por la escala mayor.
Bueno sabía con seguridad que no iba a ser mayor que la escala que escogí.
Entonces tú tampoco ves normal que por la fuente no salgan 0A. Cómo ves que si apago la fuente tengamos a la Raspberry (alimentada por su fuente de 5V) se comunique vía SPI con el chip perfectamente? Te aseguro que por Vin del chip hay v = 0V.
Repetiré el montaje y le sacaré fotos. Las subiré en este hilo. Por si veis alguna cosa. Camb
Saludos.
-
Siempre que midas una magnitud desconocida, se comienza por la escala mayor.
Bueno sabía con seguridad que no iba a ser mayor que la escala que escogí.
Entonces tú tampoco ves normal que por la fuente no salgan 0A. Cómo ves que si apago la fuente tengamos a la Raspberry (alimentada por su fuente de 5V) se comunique vía SPI con el chip perfectamente? Te aseguro que por Vin del chip hay v = 0V.
Repetiré el montaje y le sacaré fotos. Las subiré en este hilo. Por si veis alguna cosa. Camb
Saludos.
Lo de que el chip siga funcionando sin su tensión puede ser debido a que cuando quitas vdd al chip , esa vdd pasa a cero. Como las tensiones de entrada por cualquier puerto no puede superar a vdd + 0,5v aprox, (Vforward de los diodos de protección), la tensión de 3v3 del puerto spi de la raspberry pasa a través de los diodos de protección del chip a su vdd. Por ello al final ese chip se queda alimentado en una especie de “parasite mode” como los ds18b20.
Y encima tienes retorno hacia la fuente apagada, por eso se produce ese consumo contra la fuente.
Otra cosa que puede estar pasándote es que el SPI en la raspberry vaya a 5V de nivel. Ello sería lo que te está provocando esas lecturas por que estás superando el voltaje máximo de los puertos de entrada de ese chip.
Un saludo.
-
Siempre que midas una magnitud desconocida, se comienza por la escala mayor.
Bueno sabía con seguridad que no iba a ser mayor que la escala que escogí.
Entonces tú tampoco ves normal que por la fuente no salgan 0A. Cómo ves que si apago la fuente tengamos a la Raspberry (alimentada por su fuente de 5V) se comunique vía SPI con el chip perfectamente? Te aseguro que por Vin del chip hay v = 0V.
Repetiré el montaje y le sacaré fotos. Las subiré en este hilo. Por si veis alguna cosa. Camb
Saludos.
Lo de que el chip siga funcionando sin su tensión puede ser debido a que cuando quitas vdd al chip , esa vdd pasa a cero. Como las tensiones de entrada por cualquier puerto no puede superar a vdd + 0,5v aprox, (Vforward de los diodos de protección), la tensión de 3v3 del puerto spi de la raspberry pasa a través de los diodos de protección del chip a su vdd. Por ello al final ese chip se queda alimentado en una especie de “parasite mode” como los ds18b20.
Y encima tienes retorno hacia la fuente apagada, por eso se produce ese consumo contra la fuente.
Otra cosa que puede estar pasándote es que el SPI en la raspberry vaya a 5V de nivel. Ello sería lo que te está provocando esas lecturas por que estás superando el voltaje máximo de los puertos de entrada de ese chip.
Un saludo.
Muchísimas gracias por esta explicación que me ayuda tantísimo a entender este punto.
Ahora sólo me falta saber qué recorrido hace la corriente desde mi fuente porque me marca un consumo de 0A, tanto por el display de corriente de la fuente como al poner el amperímetro. A ver si es que tengo un consumo inferior al uA y por eso ninguno de los dos dispositivos tiene escala para detectarlo.
En un rato os pongo foto del montaje para medir la corriente que sale de la fuente.
-
Siempre que midas una magnitud desconocida, se comienza por la escala mayor.
Bueno sabía con seguridad que no iba a ser mayor que la escala que escogí.
Entonces tú tampoco ves normal que por la fuente no salgan 0A. Cómo ves que si apago la fuente tengamos a la Raspberry (alimentada por su fuente de 5V) se comunique vía SPI con el chip perfectamente? Te aseguro que por Vin del chip hay v = 0V.
Repetiré el montaje y le sacaré fotos. Las subiré en este hilo. Por si veis alguna cosa. Camb
Saludos.
Lo de que el chip siga funcionando sin su tensión puede ser debido a que cuando quitas vdd al chip , esa vdd pasa a cero. Como las tensiones de entrada por cualquier puerto no puede superar a vdd + 0,5v aprox, (Vforward de los diodos de protección), la tensión de 3v3 del puerto spi de la raspberry pasa a través de los diodos de protección del chip a su vdd. Por ello al final ese chip se queda alimentado en una especie de “parasite mode” como los ds18b20.
Y encima tienes retorno hacia la fuente apagada, por eso se produce ese consumo contra la fuente.
Otra cosa que puede estar pasándote es que el SPI en la raspberry vaya a 5V de nivel. Ello sería lo que te está provocando esas lecturas por que estás superando el voltaje máximo de los puertos de entrada de ese chip.
Un saludo.
Muchísimas gracias por esta explicación que me ayuda tantísimo a entender este punto.
Ahora sólo me falta saber qué recorrido hace la corriente desde mi fuente porque me marca un consumo de 0A, tanto por el display de corriente de la fuente como al poner el amperímetro. A ver si es que tengo un consumo inferior al uA y por eso ninguno de los dos dispositivos tiene escala para detectarlo.
En un rato os pongo foto del montaje para medir la corriente que sale de la fuente.
¿Quien es el máster en el SPI?, ¿La Raspi o el chip?
Haz una prueba:
- desconecta MISO, MOSI, CLK y SSD si lo usas. Alimenta el chip desde la fuente y a ver si ahora consume. Evidentemente no habrá comunicación, pero el chip arrancará y consumirá, aunque sean unos uA.
Cuando apagas la fuente estando todo conectado y trabajando, la tensión entre el pin vdd y vas del chip, ¿sigue siendo 3v3 o cae a 2,7v aprox???
-
A todos los que habéis participado en este post y me habéis ayudado os agradezco los aportes y la implicación.
Después de darle alguna vuelta más y probarlo de modo que aumentara el consumo me ha ido apareciendo información en el display del téster. Conforme le forzaba mayor consumo, mayor el valor que aparecía (aunque no llega al amperio lo máximo que lo puedo hacer consumir).
Las pruebas que le hice ayer tenían tan bajo consumo que ni si quiera llegaba al mínimo de la escala mínima, por eso aparecía un '0'. Y como la fuente aún tenía un rango de escala menor hasta que no consuma 1mA, todavía menos iba a marcar. Tiene sentido porque las entradas al aire van a consumir pocos uA debido a las Rpull up internas de 100k. Pensaba que las salidas consumirían más; pero no en realidad no mucho más. Estimé que sería algo más porque me basé en el típico consumo según datasheet.
En cuanto al comportamiento bizarro sobre funcionamiento con la fuente apagada ya me lo habéis aclarado y doy por resuelto el asunto.
Muchas gracias a tod@s.
-
¿Quien es el máster en el SPI?, ¿La Raspi o el chip?
La Rasp.
Cuando apagas la fuente estando todo conectado y trabajando, la tensión entre el pin vdd y vas del chip, ¿sigue siendo 3v3 o cae a 2,7v aprox???
La verdad es que si mido veo V = 2V. Pero he sacado los cables y mide eso, 2.7V sí.
-
¿Quien es el máster en el SPI?, ¿La Raspi o el chip?
La Rasp.
Cuando apagas la fuente estando todo conectado y trabajando, la tensión entre el pin vdd y vas del chip, ¿sigue siendo 3v3 o cae a 2,7v aprox???
La verdad es que si mido veo V = 2V. Pero he sacado los cables y mide eso, 2.7V sí.
Daba por sentado que podías medir uA. Pero veo que no, de modo que eso era el “problema”.
Y lo otro pues como tienes algún condensador electrolitico creo que he visto, pues con ese consumo tan irrisorio se sostiene el chip vivo gracias a la carga de ese condensador junto a que sube voltaje a vdd desde todas las líneas del SPI a través de los diodos de protección que normalmente todos los uP llevan a vdd y vss. Eso son los 2,7v que puedes ver que son los 3v3 de los pullup del spi menos los 0,7 “o menos a ese consumo” que cae en los diodos de protección.
Saludos.
-
Cuando apagas la fuente estando todo conectado y trabajando, la tensión entre el pin vdd y vas del chip, ¿sigue siendo 3v3 o cae a 2,7v aprox???
La verdad es que si mido veo V = 2V. Pero he sacado los cables y mide eso, 2.7V sí.
Daba por sentado que podías medir uA. Pero veo que no, de modo que eso era el “problema”.
Y lo otro pues como tienes algún condensador electrolitico creo que he visto, pues con ese consumo tan irrisorio se sostiene el chip vivo gracias a la carga de ese condensador junto a que sube voltaje a vdd desde todas las líneas del SPI a través de los diodos de protección que normalmente todos los uP llevan a vdd y vss. Eso son los 2,7v que puedes ver que son los 3v3 de los pullup del spi menos los 0,7 “o menos a ese consumo” que cae en los diodos de protección.
Saludos.
[/quote]
Buenas @remi04, hace algún tiempo de este post pero me estoy encontrando con algo en un diseño relacionadon con esos 2 v parásitos que comentamos y que hacen funcionar los micros.
Cómo podría resolverse?
Tengo las placas a una fuente conectada y al apagarlas Vin (el conector de alimentación destinado a recibir 5V) de las placas me marca 2V. Que son los 2V que hay en los pines de entrada de los mcp. Tengo conectado el bus de la raspberry y su masa a la placa con esta encendida, eso sí.
Cómo puedo evitar que la raspberry influya en la línea de alimentación de mi PCB? Suponiendo que se cuelan desde los chips hacia el conector de Vin cómo evitar que estos sigan funcionando o recibiendo 2V? He hecho algo mal en el diseño de la alimentación?
- Tienes que ingresar para ver archivos adjuntos -
Aquí los condensadores y la bobina son las que indicaba el datasheet del regulador.
-
Una manera podría ser limitando las corrientes de MOSI y CLK intercalando una resistencia de un valor que no afecte a la comunicación y que garantice una buena caída de tensión cuando se produzca el drenaje a vdd. Para calcularla mide la intensidad que circula por las líneas de comunicación (creo que dijiste que estaban en torno a unos microamperios). Calcula los valores para que tumbe la tensión lo más cercana a cero cuando se quita vdd a la placa.
Si esto no es posible, otra opción es transistorizando las líneas MOSI y CLK.
Serían 2 transistores por línea para no invertir la señal como por ejemplo el 2N7002.
Tendrías que poner un diodo polarizado en directo entre la salida de la fuente y vdd de tu pcb. Así evitas que cualquier drenaje de voltaje a través de los diodos de los chips alcance la fuente.
Entonces conectas las resistencias de los drenadores de los 2n7002 a la salida de fuente antes del diodo.
Así cuando apagues la fuente le quitas la tensión a los drenadores y ya nada llega a los chips.
Otra opción es usar un driver bidireccional triestado de los que se usan para adaptar niveles distintos de tensión en señales. Ellos tienen la posibilidad de dejar las líneas en modo alta impedancia.
Saludos.
-
Una manera podría ser limitando las corrientes de MOSI y CLK intercalando una resistencia de un valor que no afecte a la comunicación y que garantice una buena caída de tensión cuando se produzca el drenaje a vdd. Para calcularla mide la intensidad que circula por las líneas de comunicación (creo que dijiste que estaban en torno a unos microamperios). Calcula los valores para que tumbe la tensión lo más cercana a cero cuando se quita vdd a la placa.
Si esto no es posible, otra opción es transistorizando las líneas MOSI y CLK.
Serían 2 transistores por línea para no invertir la señal como por ejemplo el 2N7002.
Tendrías que poner un diodo polarizado en directo entre la salida de la fuente y vdd de tu pcb. Así evitas que cualquier drenaje de voltaje a través de los diodos de los chips alcance la fuente.
Entonces conectas las resistencias de los drenadores de los 2n7002 a la salida de fuente antes del diodo.
Así cuando apagues la fuente le quitas la tensión a los drenadores y ya nada llega a los chips.
Otra opción es usar un driver bidireccional triestado de los que se usan para adaptar niveles distintos de tensión en señales. Ellos tienen la posibilidad de dejar las líneas en modo alta impedancia.
Saludos.
Muchas gracias Remi por tus consejos. Voy a meditar sobre ellos y hacerme unos esquemillas. Creo haber entendido el montaje y voy a ver si me liga todo. Comentaré a posteriori.
Saludos.
-
Una manera podría ser limitando las corrientes de MOSI y CLK intercalando una resistencia de un valor que no afecte a la comunicación y que garantice una buena caída de tensión cuando se produzca el drenaje a vdd. Para calcularla mide la intensidad que circula por las líneas de comunicación (creo que dijiste que estaban en torno a unos microamperios). Calcula los valores para que tumbe la tensión lo más cercana a cero cuando se quita vdd a la placa.
Si esto no es posible, otra opción es transistorizando las líneas MOSI y CLK.
Serían 2 transistores por línea para no invertir la señal como por ejemplo el 2N7002.
Tendrías que poner un diodo polarizado en directo entre la salida de la fuente y vdd de tu pcb. Así evitas que cualquier drenaje de voltaje a través de los diodos de los chips alcance la fuente.
Entonces conectas las resistencias de los drenadores de los 2n7002 a la salida de fuente antes del diodo.
Así cuando apagues la fuente le quitas la tensión a los drenadores y ya nada llega a los chips.
Otra opción es usar un driver bidireccional triestado de los que se usan para adaptar niveles distintos de tensión en señales. Ellos tienen la posibilidad de dejar las líneas en modo alta impedancia.
Saludos.
Tengo estas dudillas:
1.- Por ver si lo he visualizado con coherencia. Representa que la puerta del mosfet se dispara por la propia línea? El drenador (antes de la R) sería la salida (línea en cuestión) y cuando no está activo el transistor, tengo VDD (por alta impedancia) y si se activa con el surtidor en GND tengo el 0?
2.- Cuando dices que otro mosfet es necesario para no invertir la señal, cómo lo conectamos? como un darlington?
3.- Esto va al principio de la línea o al final? Séase en los pines de entrada de cada dispositivo esclavo? Tengo 8 disp esclavos iguales en una pcb conectados al mismo bus, incluido CS. Es un disp especial, se accede por dirección hw como un i2c (todos van a leer lo que el master haya enviado; pero sólo 1 se dará por aludido al procesar la dirección sw). Ya he mencionado estos chips. Lo digo por saber si son 2 transistores por línea y por chip o es por bus.
4.- estas Rs de los drenadores -que las diviso en parte como una Rpull up- cómo estimar un valor? Ahora el transistor amplifica la corriente. Estas Rs serían tal que limite esa corriente de línea cuando se activa el transistor?
5.- Y la última cuestión.. Tener esos dos transistores ahí no puede hacer que la señal digital de la línea y el clock (max 1Mhz) sufran algún deterioro? Quiero decir cuando está en funcionamiento normal: todo conectado y alimentado.
-
Mira, olvida todo lo anterior para no hacerte un lio. Prueba este esquema:
- Tienes que ingresar para ver archivos adjuntos -
Es un adaptador de niveles. montas dos unidades (el esquema está desdoblado), uno para la linea MOSI y otra para CLK que son las dos que pueden intyectar tensión en tus slaves.
La linea MISO la conectas directa por que por ahí la raspberri no envía nada, o al menos deberás asegurarte que de ninguna manera ese pin se ponga a nivel alto por ejemplo al arrancar la rasp o cuando no use el SPI. Si quieres ante la duda pones otro buffer al MISO, pero en principio no haría falta.
El Mosfet 2n7002 es muy rápido y no te dará ningún problema a 1 Mhz.
La forma de conectar el esquema creo que se entiende:
- MOSI_RASP: Al pin MOSI de la raspberry.
- MISO_PCB (Esto está mal, sería MOSI también, pero en tu placa de slave): Lo conectas al pin por donde el slave recibe los datos.
- VDD_RASP: Lo conectas a la linea de vdd de la raspberry.
- VDD_PCB: Lo conectas al vdd de la fuente de alinmentacion 5V que alimenta a todas tus placas SLAVE.
Uno para MOSI y montas otro para SCLK.
En principio solo es necesario montar uno orientado a la raspberry. Todos los slaves se conectan en paralelo.
Un saludo.
-
Mira, olvida todo lo anterior para no hacerte un lio. Prueba este esquema:
- Tienes que ingresar para ver archivos adjuntos -
Es un adaptador de niveles. montas dos unidades (el esquema está desdoblado), uno para la linea MOSI y otra para CLK que son las dos que pueden intyectar tensión en tus slaves.
La linea MISO la conectas directa por que por ahí la raspberr no envía nada, o al menos deberás asegurarte que de ninguna manera ese pin se ponga a nivel alto por ejemplo al arrancar la rasp o cuando no use el SPI. Si quieres ante la duda pones otro buffer al MISO, pero en principio no haría falta.
El Mosfet 2n7002 es muy rápido y no te dará ningún problema a 1 Mhz.
La forma de conectar el esquema creo que se entiende:
- MOSI_RASP: Al pin MOSI de la raspberry.
- MISO_PCB (Esto está mal, sería MOSI también, pero en tu placa de slave): Lo conectas al pin por donde el slave recibe los datos.
- VDD_RASP: Lo conectas a la linea de vdd de la raspberry.
- VDD_PCB: Lo conectas al vdd de la fuente de alinmentacion 5V que alimenta a todas tus placas SLAVE.
Uno para MOSI y montas otro para SCLK.
En principio solo es necesario montar uno orientado a la raspberry. Todos los slaves se conectan en paralelo.
Un saludo.
Me había parecido interesante y coherente esa opción primera, yo creí que te referías a un montaje tipo esto:
- Tienes que ingresar para ver archivos adjuntos -
Este esquema (no he dibujado la parte del diodo y vin pero se supone que están) era el que estaba intentando describir en palabras antes y que no sé si era lo que primero tenías en mente. Pero si esto otro funciona también, es otra opción en que ambas VDD son 3.3V.
Tengo uno level shifter en otro circuito con ese mismo mosfet, que ves en la imagen, montado para el bus i2c porque sí tengo ahí un cambio de niveles de tensión. No se me había ocurrido emplearlo para impedir drenaje desde la raspberry hacia los esclavos y hacia Vin. ASí que gracias por esta otra utilidad de un level shifter y por el consejo de controlar miso con un buffer, pero en realidad sí lo tenemos controlado el arranque y no da problemas.
Saludos remi04.