TODOPIC
FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: Fer_TACA en 20 de Enero de 2023, 20:18:34
-
Hola a todos,
La consulta que quería realizar es para saber cual es la distancia máxima a la que se puede poner un integrado MAX7219 de las salidas del pic.
Como el display, junto con su correspondiente MAX7219, seguramente no se encontraran cerca desde la salidas de los pines del pic, ¿Cómo podría realizar para su interconexión entre ambos (pic y max) y que precauciones había que tener para su uso? ¿Es necesario el uso del algún tipo de driver y cual?
Muchas gracias
F.
-
Hola a todos,
La consulta que quería realizar es para saber cual es la distancia máxima a la que se puede poner un integrado MAX7219 de las salidas del pic.
F.
Si es TTL (5V) entre el MAX y el MCU supuestamente entre 100 a 150 pies a 9600.
Fuente luego de googlear: https://forum.arduino.cc/t/maximum-distance-using-a-serial-port/910492 (https://forum.arduino.cc/t/maximum-distance-using-a-serial-port/910492)
Obviamente debe ser valores ideales, con muy bajo ruido y un buen trazado de las pistas.
-
¿Entre 3 y 4 metros?
-
¿Entre 3 y 4 metros?
Me equivocado, al ver MAX asumí que era RS232, hay que buscar cual sería la distancia máxima en SPI.
-
De 10 a 20 cm (10 Mbps) dice aquí:
https://www.puntoflotante.net/COMUNICACION-SPI-TUTORIAL.htm#:~:text=El%20canal%20SPI%20fue%20dise%C3%B1ado,ejemplo%2C%20un%20circuito%20integrado%20con (https://www.puntoflotante.net/COMUNICACION-SPI-TUTORIAL.htm#:~:text=El%20canal%20SPI%20fue%20dise%C3%B1ado,ejemplo%2C%20un%20circuito%20integrado%20con)
-
Según el link primero dice que la distancia podría llegar a los 10mtros.
No dice nada del tipo de cable, que me.imagono que debería ser apantallado. Tampoco si es necesario poner algún driver entre el Pic y el controlador Max7219.
F.
-
Según el link anterior dice que la distancia podría llegar a los 10mtros.
No dice nada del tipo de cable, que me.imagono que debería ser apantallado. Tampoco si es necesario poner algún driver entre el Pic y el controlador Max7219.
F.
El primero que publiqué es RS232. La velocidad es 9600 bpms. El segundo es SPI (lo que utiliza el MAX7219) y a 10Mbps
-
Pues si la distancia fuese de un metro tampoco valdría.
-
Y si, en una respuesta del primer link indica la distancia máxima de 10 metros.
-
Y si, en una respuesta del primer link indica la distancia máxima de 10 metros.
Deberías indicar que velocidad y que distancia necesitas, la SPI es de alta velocidad de transmisión de datos (millones de baudios), pero las distancias son cortas, los dispositivos esán muy cerca entre ellos, pocos centimetros.
La RS232 (que no es tu caso) pude alcanzar esas distancias en varios metros, pero la velocidad es baja, en miles de baudios a lo mucho.
-
Creo que la distancia podrá estar entre 1 y 2 metros máximo.
Estoy trabajando con un poco a 40MHz. y para probar. A poca distancia estoy uniendo directamente 3 pines del Pic a las entradas del max7219 y así funciona pero tengo dudas, evidentes de que funcione a 1 metro.
-
Y si, en una respuesta del primer link indica la distancia máxima de 10 metros.
Deberías indicar que velocidad y que distancia necesitas, la SPI es de alta velocidad de transmisión de datos (millones de baudios), pero las distancias son cortas, los dispositivos esán muy cerca entre ellos, pocos centimetros.
La RS232 (que no es tu caso) pude alcanzar esas distancias en varios metros, pero la velocidad es baja, en miles de baudios a lo mucho.
Ahora bien, si necesitas esos 10 metros con SPI, deberías usar transmisión diferencial, algo similar a RS485:
(https://pbs.twimg.com/media/Fm9GxNxX0AEmlHd?format=png&name=small)
-
Creo que la distancia podrá estar entre 1 y 2 metros máximo.
Estoy trabajando con un poco a 40MHz. y para probar. A poca distancia estoy uniendo directamente 3 pines del Pic a las entradas del max7219 y así funciona pero tengo dudas, evidentes de que funcione a 1 metro.
Y con 40MHz, ¿Cuántos BPMS consigues en el periférico SPI?
-
Exactamente, eso estoy usando para mandar la información de la placa máster a los esclavos. Va de perlas.
Pero tengo que poner unos displays lejos del máster y de ahí la consulta.
F.
-
Y si, creo que al final tendrá que ser con otra unión 485 colgando de bus y que mande la información al display, colocando en este otro micro para atacar directamente al max7219 y a esa distancia ya sería muy poca.
-
Exactamente, eso estoy usando para mandar la información de la placa máster a los esclavos. Va de perlas.
¿Estás usando los drivers diferenciales?
Si es transmisión diferencial, entonces si alcanzas esas distancias con el LTC6820.
Lee el siguiente artículo:
https://www.analog.com/en/technical-articles/isolated-spi-communication-made-easy.html#:~:text=While%20the%20SPI%20communication%20method,signals%20must%20be%20amplified%20again. (https://www.analog.com/en/technical-articles/isolated-spi-communication-made-easy.html#:~:text=While%20the%20SPI%20communication%20method,signals%20must%20be%20amplified%20again.)
-
Y si, creo que al final tendrá que ser con otra unión 485 colgando de bus y que mande la información al display, colocando en este otro micro para atacar directamente al max7219 y a esa distancia ya sería muy poca.
¿O sea que vas a poner otro micro que haga de puente entre RS485 y SPI del display?
Si es así, me parece muy engorroso. Si es por pasatiempo o educacional, creo que estaría bien, si es por comercializar, pienso que se podría hacer más económico, más compacto y más eficiente.
-
Me parece que te estás complicando inútilmente, por un lado la distancia de la que hablaste en post anteriores era 30cm, aunque fueran 3m con cable común los problemas aparecerían con velocidades del orden del megabit/s, y para refrescar la lectura de un display con 10kbit/s estás sobrado.
Lo que suele dar dolores de cabeza en una máquina es que anda todo bien hasta que se activa/desactiva una electroválvula/contactor o habilita un variador de velocidad. Pero se soluciona con un cable mejor apantallado o cambiando el recorrido si comparte tramos con cables de potencia.
-
Exactamente, eso estoy usando para mandar la información de la placa máster a los esclavos. Va de perlas.
¿Estás usando los drivers diferenciales?
Si es transmisión diferencial, entonces si alcanzas esas distancias con el LTC6820.
Lee el siguiente artículo:
https://www.analog.com/en/technical-articles/isolated-spi-communication-made-easy.html#:~:text=While%20the%20SPI%20communication%20method,signals%20must%20be%20amplified%20again. (https://www.analog.com/en/technical-articles/isolated-spi-communication-made-easy.html#:~:text=While%20the%20SPI%20communication%20method,signals%20must%20be%20amplified%20again.)
Utilizo MAX487
-
Exactamente, eso estoy usando para mandar la información de la placa máster a los esclavos. Va de perlas.
¿Estás usando los drivers diferenciales?
Si es transmisión diferencial, entonces si alcanzas esas distancias con el LTC6820.
Lee el siguiente artículo:
https://www.analog.com/en/technical-articles/isolated-spi-communication-made-easy.html#:~:text=While%20the%20SPI%20communication%20method,signals%20must%20be%20amplified%20again. (https://www.analog.com/en/technical-articles/isolated-spi-communication-made-easy.html#:~:text=While%20the%20SPI%20communication%20method,signals%20must%20be%20amplified%20again.)
Utilizo MAX487
Con un transceptor diferencial adecuado puedes manejar MAX7219 directamente desde el microcontrolador principal sin necesidad de usar otro microcontrolador esclavo, así como esta imagen:
(https://pbs.twimg.com/media/Fm9WmknWYAEzvUm?format=jpg&name=medium)
El MAX7219 sería el esclavo (izquierda) y el maestro sería el microcontrolador (derecha)
-
Dominus,
Según tu figura anterior. La conexion que tendría que realizar seria algo así a lo de la figura adjunta.
Ya que no voy a enviar ningún dato desde el esclavo al master, ¿la línea MISO también seria necesaria el colocarla entre ambos interfaces?
¿Sabes si hay algún componente en Proteus con funciones similares para poder realza runa pequeña simulación antes de crear las pcbs?
Gracias
F.
-
Dominus,
Según tu figura anterior. La conexion que tendría que realizar seria algo así a lo de la figura adjunta.
Entre los dos SN65LVDT, van 4 pares trenzados de cables.
Dominus,
Ya que no voy a enviar ningún dato desde el esclavo al master, ¿la línea MISO también seria necesaria el colocarla entre ambos interfaces?
Si el esclavo MAX7219, nunca envía datos al maestro (PIC), te ahorrarías un par trenzado. Si utilizas cable UTP, tienes el último par trenzados que no utilices en la comunicaicón, puede ser útil para enviar energía al MAX, preferible un voltaje mayor a 5V, para que allá, junto al MAX pongas un LDO.
Si es cable blindado, el bindaje sólo debes conectarlo al GND de uno de los extremos.
Dominus,
¿Sabes si hay algún componente en Proteus con funcione similares para poder realza runa pequeña simulación antes de crear las pcbs?
No entiendo porque son tan dependientes del simulador, para simular, (sólo para simular) conectaría el PIC directo al MAX7219, ya en la práctica usaría los SN65.
Sería mejor que empieces a depurar con el Hardware, lo que no sé, es sí con el compilador y el IDLE que usas puedas hacer eso.
-
Gracias por las respuestas Dominus, me están siendo muy aclaratorias.
En la simulación así lo tengo de forma directa y va bien. Lo de poder simularlos con el 65SN, simplemente es para ver si realizó las conexiones de forma adecuada.
Voy a ver cómo empezar a implementarlo todo de forma física.
Algún consejo para el conector a usar. ¿DB-9?
F.
-
Gracias por las respuestas Dominus, me están siendo muy aclaratorias.
En la simulación así lo tengo de forma directa y va bien. Lo de poder simularlos con el 65SN, simplemente es para ver si realizó las conexiones de forma adecuada.
Voy a ver cómo empezar a implementarlo todo de forma física.
Algún consejo para el conector a usar. ¿DB-9?
F.
Estaba pensando que si tienes ese transceptor diferencial que estás usando y el esclavo no envía datos al maestro, podrías hacer algo así con 6 de ellos. (No se que tan económico sea):
(https://pbs.twimg.com/media/FnAIQa8X0AEW237?format=png&name=medium)
Respecto a conector, puede ser el DB9, pero yo usuaria un conector de ethernet RJ45.
Lo que si deberías considerar es como parten los pares trenzados y como llegan:
(https://media.fs.com/images/community/upload/kindEditor/202105/07/esquema-de-color-rj45-de-cable-cruzado-1620359292-AwJCMML4Km.jpg)
O crear tu propio cable UTP para que los pares lleguen en el mismo orden que parten.
No me gustan los DB9 porque ocupan mucho espacio. Para que queden firmes, debes ajustar los tornillos entre el conector macho y hembra. Pero para desconectarlo es más demoroso.
Mientras que el conector ethernet es fácil de conectar y desconectar. Ahí debes evaluar ventajas y desventajas del cada uno de los dos. Tal vez exista una tercera opción.
-
Gracias por las respuestas Dominus, me están siendo muy aclaratorias.
En la simulación así lo tengo de forma directa y va bien. Lo de poder simularlos con el 65SN, simplemente es para ver si realizó las conexiones de forma adecuada.
Voy a ver cómo empezar a implementarlo todo de forma física.
Algún consejo para el conector a usar. ¿DB-9?
F.
Estaba pensando que si tienes ese transceptor diferencial que estás usando y el esclavo no envía datos al maestro, podrías hacer algo así con 6 de ellos. (No se que tan económico sea):
(https://pbs.twimg.com/media/FnAIQa8X0AEW237?format=png&name=medium)
Respecto a conector, puede ser el DB9, pero yo usuaria un conector de ethernet RJ45.
Lo que si deberías considerar es como parten los pares trenzados y como llegan:
(https://media.fs.com/images/community/upload/kindEditor/202105/07/esquema-de-color-rj45-de-cable-cruzado-1620359292-AwJCMML4Km.jpg)
O crear tu propio cable UTP para que los pares lleguen en el mismo orden que parten.
No me gustan los DB9 porque ocupan mucho espacio. Para que queden firmes, debes ajustar los tornillos entre el conector macho y hembra. Pero para desconectarlo es más demoroso.
Mientras que el conector ethernet es fácil de conectar y desconectar. Ahí debes evaluar ventajas y desventajas del cada uno de los dos. Tal vez exista una tercera opción.
Creo que la opción de tantos XAX487 pudiera ser buena pero seria muy laborioso pues los displays serian 5 unidades y la pcb se haría muy extensa.
Al final opino que lo mejor va a ser el utilizar los drivers de pares diferenciales. tendré que probar d forma física.
Adjunto una imagen de como seria la conexion. ¿Seria la correcta? ¿la conexion al MAX7219 es buena, correspondiendo las lineas CS, MOSI y SCK con las respectivas del MAX7219??
Evidentemente las líneas entre el master y el esclavo serian trenzadas y las resistencia todas de 100 ohmios puestas lo mas cerca de los pines del receptor tal como se indica en el datasheet. Los condensadores por practicidad no los he dibujado en el esquema.
Agradeceré las sugerencias.
-
Gracias por las respuestas Dominus, me están siendo muy aclaratorias.
En la simulación así lo tengo de forma directa y va bien. Lo de poder simularlos con el 65SN, simplemente es para ver si realizó las conexiones de forma adecuada.
Voy a ver cómo empezar a implementarlo todo de forma física.
Algún consejo para el conector a usar. ¿DB-9?
F.
Estaba pensando que si tienes ese transceptor diferencial que estás usando y el esclavo no envía datos al maestro, podrías hacer algo así con 6 de ellos. (No se que tan económico sea):
(https://pbs.twimg.com/media/FnAIQa8X0AEW237?format=png&name=medium)
Respecto a conector, puede ser el DB9, pero yo usuaria un conector de ethernet RJ45.
Lo que si deberías considerar es como parten los pares trenzados y como llegan:
(https://media.fs.com/images/community/upload/kindEditor/202105/07/esquema-de-color-rj45-de-cable-cruzado-1620359292-AwJCMML4Km.jpg)
O crear tu propio cable UTP para que los pares lleguen en el mismo orden que parten.
No me gustan los DB9 porque ocupan mucho espacio. Para que queden firmes, debes ajustar los tornillos entre el conector macho y hembra. Pero para desconectarlo es más demoroso.
Mientras que el conector ethernet es fácil de conectar y desconectar. Ahí debes evaluar ventajas y desventajas del cada uno de los dos. Tal vez exista una tercera opción.
Creo que la opción de tantos XAX487 pudiera ser buena pero seria muy laborioso pues los displays serian 5 unidades y la pcb se haría muy extensa.
Al final opino que lo mejor va a ser el utilizar los drivers de pares diferenciales. tendré que probar d forma física.
Adjunto una imagen de como seria la conexion. ¿Seria la correcta? ¿la conexion al MAX7219 es buena, correspondiendo las lineas CS, MOSI y SCK con las respectivas del MAX7219??
Evidentemente las líneas entre el master y el esclavo serian trenzadas y las resistencia todas de 100 ohmios puestas lo mas cerca de los pines del receptor tal como se indica en el datasheet. Los condensadores por practicidad no los he dibujado en el esquema.
Agradeceré las sugerencias.
Aparentemente está bien, si puedes probar en protoboard sería lo mejor, caso contrario, siempre hacer un placa prototipo barata para determinar si funciona correctamente.
-
Entonces, las salidas del driver al. Max7219 son correctas.
El SCK al CLK; al MOSI al DIN y CS al DLOAD?
F.
-
Entonces, las salidas del driver al. Max7219 son correctas.
El SCK al CLK; al MOSI al DIN y CS al DLOAD?
F.
Parece que no consultas las hojas de datos.
Ahí está un ejemplo de la conexión SPI:
(https://pbs.twimg.com/media/FnKMXxRXgAYaoVQ?format=png&name=small)
DIN equivale MISO desde el lado del esclavo y LOAD equivale a CS.
-
Si, las consulto, pero mi inglés no es muy bueno y mejor asegurar ya que preguntar no hace daño.
En el datasheet del LVDT no aparece ninguna figura similar a la expuesta
Esa del micro al Max ya la había visto.
F
-
Si, las consulto, pero mi inglés no es muy bueno y mejor asegurar ya que preguntar no hace daño.
Si el inglés es tu problema, puedes copiar y pegar el texto en el google traductor.
En el datasheet del LVDT no aparece ninguna figura similar a la expuesta
Esa del micro al Max ya la había visto.
No entiendo la pregunta, puede ser muy difícil que encuentres alguien que haya hecho exactamente lo que tu deseas utilizar, y menos el fabricante del circuito integrado.
Tienes que tener presente que lo que deseas es pasar unos y ceros lógicos (o pulsos digitales) del punto A al punto B, obviamente por la distancia, es posible que no lleguen , o lleguen alterados por el ruido eléctrico del ambiente.
Existen muchas soluciones, una es transmisión diferencial.
(https://pbs.twimg.com/media/FnKPuzhXEAIVtq-?format=jpg&name=large)
¿Qué tienes que tener presente en tu mente?
Conocer cuales terminales son entradas y salidas, respetar los niveles de voltaje de entrada a los terminales, en este caso trabajan máximo con 4V y me parece que tu deseas usar 5 V.
Si es así, puedes buscar otras alternativas dentro del mismo fabricante:
(https://pbs.twimg.com/media/FnKSkpBXwAAIyAo?format=png&name=large)
Por ejemplo podría ser SN65ELT22.
-
Dominus:
Esa ultima referencia que has colocado solo tiene 2 drivers y por tanto se necesitarían 2 integrado para la parte emisora y otros tanto para la receptora. Pienso que son muchos integrados.
He estado buscando otras referencias y que funcionen a 5V. He encontrado el SN65LBC170. Me da la impresión que puede valer.
¿Cómo lo ven?
F.
-
Dominus:
Esa ultima referencia que has colocado solo tiene 2 drivers y por tanto se necesitarían 2 integrado para la parte emisora y otros tanto para la receptora. Pienso que son muchos integrados.
He estado buscando otras referencias y que funcionen a 5V. He encontrado el SN65LBC170. Me da la impresión que puede valer.
¿Cómo lo ven?
F.
Si, yo creo que funcionaría bien, mientras no te sobrepases de los 30 Mbps, y las líneas 1DIR, 2DIR y 3DIR debes ponerlas en 1 en el lado del MCU para que el integrado sea transmisor, y en 0 en el lado del MAX para que sea receptor.
-
Bueno será cuestión de probar.
F.
-
Bueno será cuestión de probar.
F.
(https://pbs.twimg.com/media/FnL6hbtWYAY2LHM?format=png&name=240x240)