TODOPIC

Otros Microcontroladores / Dispositivos programables => ** PROYECTOS ** => Mensaje iniciado por: Kid_Bengala en 29 de Junio de 2017, 13:31:56

Título: Micro para implementar SPI en diferentes patillas
Publicado por: Kid_Bengala en 29 de Junio de 2017, 13:31:56
hola

No sabia muy bien donde poner este post, asi que lo he puesto aqui.

a pesar que llevo tiempo dedicandome a reparar (mas bien soy un cambia placas, que la electronica analogica se me atasca mucho...), me va a tocar proximamente diseñar un pequeño hardware. En mi trabajo descubri que algunas placas que reparamos muy a menudo, al meterles señales por SPI nos devuelve algunos datos que ayudan a repararlas y en otros casos las repara al configurarle datos; y otras otras señales distintas (bus de datos paralelo), pues bien, me han mandado que vaya pensando en hacer unos pcbs para implementar esto (no se si quieren venderlo o enviarlos a los distintos mantenimientos para reparar en la misma ubicacion) y aqui viene el problema  :5]. Hasta ahora cogia cables y los soldaba en la pcb con un arduino, pero claro ahora no va a ser viable esa opcion, entonces tendre que conectar via conector tipo conector IDE (discos duros, que no se como se llaman) con un cable plano, pero aqui viene el problema...

Las placas con mas pines de este conector son 40 pines, pero las distintas señales las tienen en distintas patillas, por ejemplo unas tienen la señal SCK en el pin 10 y otras en el 20; y asi con todas... Podria hacer que los cables planos cambien el cableado pero es un lio, entonces, me vino a la cabeza una charla que mantuve hace un tiempo con un amigo sobre algo parecido, de poder reconfigurar los pines segun la necesidad, con un pequeño CPLD (ni idea de como hacer esto, lo preguntaria a mi amigo que me lo haga o intentaria aprender a hacerlo yo). Asi que pensaba que ya estaba solucionado, pero al mirar precios he visto que sale cada CPLD 10€ y el micro (ATMEGA328) unos 2€, en total 12€. Mirando costes he visto que el compañero planeta9999 usa un ATMEL SAM S70 y ST32, que tienen un precio mas bajo que el conjunto de los dos (la mitad) y tienen mas pines que necesito (unos 36 aprox) y el ATMEGA no me da para eso.

Pero claro, aqui viene el problema, nunca he tocado esos micros y tampoco se si se puede implementar SPI por software para poder cambiar los pines de las distintas señales, asi como a nivel de hardware hace falta ponerle algo a los distintos pines, que por ejemplo al reconfigurar el pin como otra señal pueda verse afectada (vamos, que le ponga alguna resistencia limitadora o pullup que al configurar ahi SCK pueda afectarle).

La diferencia es que muchos de estos micros traen el USB que me permite ahorrarme tambien el micro que pasa de serie a usb (aun mas ahorro), el CPLD para expandir I/O y no me limita a 20Mhz como el ATMEGA que para alguna de las otras señales (no SPI), puedo subir a 40Mhz y meter datos mas rapido. Necesito minimo 20Mhz de operacion y tampoco necesito 300Mhz, pero si por la mitad de precio tengo mejos caracteristicas...

¿Como lo veis? Se puede implementar SPI a nivel software para poder trabajar con cualquier pin y asi solo es pinchar el cable plano y via software PC decirle, este pin es esta señal, esta otra, etc. Llevo toda la mañana con esto y no me ha quedado muy claro, ademas me da miedo programar un bicho de estos...  :g) Igual es intentar matar moscas a cañonazos, porque es un diseño muy sencillo. Un software en el PC (que programe en visual basic), se conecta por USB y le manda comunicacion via serie al micro, que este unas veces mediante SPI lee datos y otras escribe, otras veces se comunica via bus de datos datos para hacer algo similar al SPI; solo que ahora hay que "enrutar" estas señales en un conector de 40 pines  :D

Como se nota que no tengo ni puñetera idea de todo esto, porque algo tan sencillo comparado con otros proyectos de FPGA y micros, me esta dando dolores de cabeza  :D

Gracias

Saludos
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: Kid_Bengala en 29 de Junio de 2017, 13:40:39
Juer, he estado mirando los STM32 y tienen un precio increible (sobre los dos euros), al menos los de 48Mhz y menos de 50 pines....
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: KILLERJC en 29 de Junio de 2017, 14:42:45
Ojo que el SPI (Hardware) no tiene la misma frecuencia que el reloj de entrada. Si hay precios muy bajos, y la verdad es que si conviene comprar un micro con USB directamente.
Un SPI por software es mucho mas lento.

Y finalmente necesitarias de un micro que:

- Tenga al menos 40 GPIO
- Tenga USB, lo cual agregaria 2 pines mas
- Si insertas algun led para algun estado, deberias contar los pines de esos leds.
- Como configurar el micro para saber que pines son los adecuados?, lo haces via USB? Si lo haces por USB entonces no tenes nada que preocuparte, si queres que sea independiente de la PC entonces deberias tener algun LCD y botones seguramente.
- El nivel de voltaje que viene de la placa vas a tener que tener cuidado de que no sea superior a lo que los pines aceptan.
- Ojo con alimentar el dispositivo con el USB,Y tener cuidado de no generar algun corto, ya que si te pones a pensar que si no lo aislas, tednrias que conectar los GND de cada uno.

Eso o intentas multiplexar las entradas y salidas, recordando tener tri-state en las salidas.
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: Kid_Bengala en 29 de Junio de 2017, 18:29:07
Gracias por responder !

Si, eso he visto, he encontrado librerias por software que funcionan a 20Khz.... Muy lento comparado con el hardware... Por lo que veo que al final tendre que poner algun CPLD (menudo marron me he metido yo solo) o algun bus expansor como los mcp de microchip, a ver si asi se puede hacer algo. Sigo investigando.

Muchas gracias de nuevo

saludos
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: KILLERJC en 29 de Junio de 2017, 19:14:48
El problema no es el costo del CPLD, sino el costo del programador del CPLD, sino buscaria algun micro que permita remapear a cualquier pin el SPI.
Y ya que esta dependiendo que pensas hacer, porque no buscar un CPLD mas grande y meterle USB o un FPGA directamente.

Realmente no se si los PSoC permiten esto en runtime, se que se puede en el momento de grabacion pero no se si runtime. Igual los PSoC no son nada baratos.
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: tsk en 29 de Junio de 2017, 21:42:13
¿Cuantas posibles combinaciones tienes?

Por ejemplo, si agarras una de esas tarjetas de desarrollo baratas con el stm32f103c8t6 (37 I/O). Tiene dos SPI, los cuales son mapeados a los siguientes pines

SPI1
SCLK, MISO, MOSI
PA5,PA6,PA7
PB3,PB4,PB5

SPI2
PB13, PB14, PB15

SCLK puede ir en PA5 o PB3, MISO en PA6 o PB4 y MOSI en PA7 o PB5, por lo que puedes tener varias combinaciones como:
PA5,PA6,PA7
PA5,PA6,PB5
PA5,PB4,PA7
PA5,PB4, PB5
PB3,PA6,PA7
PB3,PA6,PB5
PB3,PB4,PA7
PB3,PB4,PB5

más SPI2 en PB13, PB14 y PB15, por lo que si acomodas bien los pines podrías ver cuantas de esas combinaciones podrías aprovechar realmente(estoy hablando con un desconocimiento de como se presentan los pines en los sistemas que reparas)

Después garras un dip switch y cuanto inicies el sistema este va a leer la combinación para seleccionar cual interfaz activar.

Ahora con el stm32f407vgt6

SPI1
PA5, PA6, PA7
PB3, PB4, PB5
SPI2
PB10, PC2, PC3
PB13,PB14,PB15
SPI3:
PC10, PC11, PC12
PB3, PB4, PB5

Recuerda que sólo vas a estar usando una sola combinación del SPI por vez, por lo que todos los demás pines quedan libres para que puedas hacer con ellos lo que quieras.
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: planeta9999 en 29 de Junio de 2017, 22:18:37
.

Si he entendido bien, lo que quieres hacer es seleccionar entre varios dispositivos SPI externos, para comunicar con un microcontrolador que utilizaría siempre el mismo puerto SPI.

Yo lo haría con buffers triestado externos, por ejemplo el 74HCT244, que tiene 8 buffers triestado agrupados en 2 grupos de 4 entradas, y 4 señales son las que tiene cada puerto SPI (DI, DO, SCK, CS). Con cada 74HCT244 podrías conmutar dos dispositivos externos SPI. Las dos patillas de control de cada 74HCT244 las llevas al microcontrolador, y por software activas el dispositivo SPI con el que quieras comunicar. Cada dos dispositivos SPI que quieras conmutar, necesitará un 74HCT244.

Otra opción sería utilizar conmutadores electrónicos CD4066, pero no se como se comportarán con señales de alta frecuencia.

Yo no implementaría SPI por software, hazlo por hardware. Y si lo vinculas a DMA, mucho mejor, es más rápido y te libera la CPU para otras tareas.


74HCT244, Octal buffer/line driver; 3-state.

(https://www.technobotsonline.com/images/thumbnails/280/371/detailed/5/Ext-2202-244.jpg?t=1442655931)
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: tsk en 29 de Junio de 2017, 23:47:37
.

Si he entendido bien, lo que quieres hacer es seleccionar entre varios dispositivos SPI externos, para comunicar con un microcontrolador que utilizaría siempre el mismo puerto SPI.

Yo lo haría con buffers triestado externos, por ejemplo el 74HCT244, que tiene 8 buffers triestado agrupados en 2 grupos de 4 entradas, y 4 señales son las que tiene cada puerto SPI (DI, DO, SCK, CS). Con cada 74HCT244 podrías conmutar dos dispositivos externos SPI. Las dos patillas de control de cada 74HCT244 las llevas al microcontrolador, y por software activas el dispositivo SPI con el que quieras comunicar. Cada dos dispositivos SPI que quieras conmutar, necesitará un 74HCT244.

Otra opción sería utilizar conmutadores electrónicos CD4066, pero no se como se comportarán con señales de alta frecuencia.

Yo no implementaría SPI por software, hazlo por hardware. Y si lo vinculas a DMA, mucho mejor, es más rápido y te libera la CPU para otras tareas.


74HCT244, Octal buffer/line driver; 3-state.

(https://www.technobotsonline.com/images/thumbnails/280/371/detailed/5/Ext-2202-244.jpg?t=1442655931)

Menciona que necesita al menos 36 I/O, porque a su parecer SCLK y las otras señales puede caer en cualquiera de los pines del conector, por lo que no creo que este circuito sea lo más adecuado.

Arriba mencionaron los PSoC, nunca los he usado, pero ve la siguiente tarjeta de desarrollo de bajo costo.
http://www.cypress.com/documentation/development-kitsboards/cy8ckit-059-psoc-5lp-prototyping-kit-onboard-programmer-and

Le veo bastantes pines, por lo que probablemente pudiera resolver el proyecto, por que es algo relativamente sencillo, desde el punto de vista de la lógica digital. Sin contar el manejo del tercer estado y otros detalles, me imagino que se podría hacer de la siguiente forma

(http://i.imgur.com/m5ypbjL.png)

Bueno, si es que el PSoC lo permite.
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: planeta9999 en 30 de Junio de 2017, 00:05:22
Menciona que necesita al menos 36 I/O, porque a su parecer SCLK y las otras señales puede caer en cualquiera de los pines del conector, por lo que no creo que este circuito sea lo más adecuado.

No indica cuantas combinaciones va a usar de esos 36 puertos (a 4 hilos para cada SPI), ni que las señales puedan caer en cualquiera de esos 36 hilos.

Si, por ejemplo, tiene 10 placas distintas a reparar y cada una se comunica por SPI usando pines distintos, con tan solo 5 chips 74HCT244 y un microcontrolador, lo tendría resuelto para conmutar desde el PC.

Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: KILLERJC en 30 de Junio de 2017, 00:19:13
Citar
con tan solo 5 chips 74HCT244 y un microcontrolador

No te sirve eso, porque las demas salidas no estan en alta impedancia, necesitarias un control individual de las salidas.
Y son solo 5 de esos ( si tuviera control de tri-state ) para solo la salida de datos.

Luego necestias 5 de estos:

https://www.onsemi.com/pub/Collateral/MC74HC251A-D.PDF

Por cada entrada.

Suponiendo que no tenes el CS, y que consiguieras un De-multiplexor (8-a-1) necesitarias 15 integrados, aunque lo mas feo imagino que va a ser el routeado de la misma, y no va a ser nada practico llevar una placa la cual tienen que entrar esos 15 integrados, o 20 con el CS.

Todo va a depender de cuales son los objetivos de la persona, si no le importa tener una placa grande entonces que siga este camino y va a tener la placa configurable al maximo.
O si quiere ahorrar espacio va a tener que ir a una FPGA imagino, asi posee USB, crear multiplexacion dentro como mas le guste, siempre y cuando le den los bloques para realizarlo dentro, asi que esto va a definir el costo final que tenga, cuantos bloques le son necesarios para crear el SPI y todos esos multiplexores.
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: tsk en 30 de Junio de 2017, 00:49:34

No indica cuantas combinaciones va a usar de esos 36 puertos (a 4 hilos para cada SPI), ni que las señales puedan caer en cualquiera de esos 36 hilos.

Si, por ejemplo, tiene 10 placas distintas a reparar y cada una se comunica por SPI usando pines distintos, con tan solo 5 chips 74HCT244 y un microcontrolador, lo tendría resuelto para conmutar desde el PC.


Citar
¿Como lo veis? Se puede implementar SPI a nivel software para poder trabajar con cualquier pin y asi solo es pinchar el cable plano y via software PC decirle, este pin es esta señal, esta otra, etc. Llevo toda la mañana con esto y no me ha quedado muy claro, ademas me da miedo programar un bicho de estos...  :g) Igual es intentar matar moscas a cañonazos, porque es un diseño muy sencillo. Un software en el PC (que programe en visual basic), se conecta por USB y le manda comunicacion via serie al micro, que este unas veces mediante SPI lee datos y otras escribe, otras veces se comunica via bus de datos datos para hacer algo similar al SPI; solo que ahora hay que "enrutar" estas señales en un conector de 40 pines  :D

Quiere enrutar las señales SPI en un conector de 40 pines y decirle por ejemplo:

Pin 1: SCLK
Pin 5: MISO
Pin 10: MOSI
Pin 7: CS

o

Pin 20: SCLK
Pin 7: MISO
Pin 10: MOSI
Pin 3: CS
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: Carl47D en 30 de Junio de 2017, 13:32:09
El problema no es el costo del CPLD, sino el costo del programador del CPLD, sino buscaria algun micro que permita remapear a cualquier pin el SPI.
Y ya que esta dependiendo que pensas hacer, porque no buscar un CPLD mas grande y meterle USB o un FPGA directamente.

Realmente no se si los PSoC permiten esto en runtime, se que se puede en el momento de grabacion pero no se si runtime. Igual los PSoC no son nada baratos.
Nunca he hecho la reconfiguración de los pines en runtime, pero me parece que si es posible, los PSoC5LP tienen USB, también los PSoC4L, pero estos últimos tienen menos lógica re-programable (la lógica es parecida a un CPLD).

.

Si he entendido bien, lo que quieres hacer es seleccionar entre varios dispositivos SPI externos, para comunicar con un microcontrolador que utilizaría siempre el mismo puerto SPI.

Yo lo haría con buffers triestado externos, por ejemplo el 74HCT244, que tiene 8 buffers triestado agrupados en 2 grupos de 4 entradas, y 4 señales son las que tiene cada puerto SPI (DI, DO, SCK, CS). Con cada 74HCT244 podrías conmutar dos dispositivos externos SPI. Las dos patillas de control de cada 74HCT244 las llevas al microcontrolador, y por software activas el dispositivo SPI con el que quieras comunicar. Cada dos dispositivos SPI que quieras conmutar, necesitará un 74HCT244.

Otra opción sería utilizar conmutadores electrónicos CD4066, pero no se como se comportarán con señales de alta frecuencia.

Yo no implementaría SPI por software, hazlo por hardware. Y si lo vinculas a DMA, mucho mejor, es más rápido y te libera la CPU para otras tareas.


74HCT244, Octal buffer/line driver; 3-state.

(https://www.technobotsonline.com/images/thumbnails/280/371/detailed/5/Ext-2202-244.jpg?t=1442655931)

Menciona que necesita al menos 36 I/O, porque a su parecer SCLK y las otras señales puede caer en cualquiera de los pines del conector, por lo que no creo que este circuito sea lo más adecuado.

Arriba mencionaron los PSoC, nunca los he usado, pero ve la siguiente tarjeta de desarrollo de bajo costo.
http://www.cypress.com/documentation/development-kitsboards/cy8ckit-059-psoc-5lp-prototyping-kit-onboard-programmer-and

Le veo bastantes pines, por lo que probablemente pudiera resolver el proyecto, por que es algo relativamente sencillo, desde el punto de vista de la lógica digital. Sin contar el manejo del tercer estado y otros detalles, me imagino que se podría hacer de la siguiente forma

(http://i.imgur.com/m5ypbjL.png)

Bueno, si es que el PSoC lo permite.
La tarjeta que mencionas es barata (cuesta menos que el propio PSoC5LP) y el control de los MUX y DEMUX lo puedes hacer con un bloque que se llama Control Register (este lo puedes controlar con el CPU) o una LUT.
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: Kid_Bengala en 01 de Julio de 2017, 16:23:05
Hola

Muchas gracias a todos por responder, de verdad que se agradece mucho, luego me paro mas a leer detenidamente las respuestas.

Ya me supuse que no puse muy claro el mensaje de lo que queria hacer, es lo que pasa cuando duermes poco (tengo que tomarme la vida con mas tranquilidad) y andar un pongo estresado, que me voy por los cerros de ubeda  :D

Basicamente son unas placas que muchas las tengo identificadas el puerto SPI en que pines caen las correspondientes señales, pero otras aun toca hacer pruebas para detectarlas y otras nuevas que estan entrando que a saber en que pines estan, son un hardware cerrado de electronica industrial que ni esquemas electronicos me han proporcionado para reparar... y he visto que son como una memoria que si la lees y le grabas de otra, muchas se reparan  :-)

Entonces como no se en que pines caen (las que faltan por indentificar y las que en un futuro entren), por eso dije de utilizar todas las combinaciones posibles y creia que se podria hacer SPI por soft, pero como comento el compañero KILLERJC y vi por ahi, tienen velocidades muy lentas, asi que tendre que poner algo externo que "enrute" las señales de SPI por hardware a los distintos pines del conector. He estado mirando por internet sobre cpld y vi temas de io expander y multiplexadores, pero no tengo ni idea de esto, llegado el caso le diria a un amigo que controla que me eche una manita, pero la verdad que anda un poco desanimado porque tuvo que cerrar sus negocios (como puse en otro post) por tanto no quiero molestarle mucho y aparte que capaz que me lo haga entero y yo no aprenda nada  :5], mas que nada por eso he pedido ayuda, tampoco que se me de hecho.

Voy a revisar todo lo que me habeis comentado aunque creo que ira con cpld/fpga o alguno tipo de integrado que haga de switch o multiplexe, mas que nada por no encarecer el desarrollo, ya sabeis, lo quieren completo y muy barato... (supongo que cuanto menos gasten, mas tienen para el nuevo mercedes  :D). Quizas se podria haber hecho con un monton de pines con jumper (bueno, segun las combinaciones seria inmenso, ni una centarl nuclear), pero creo que van a ir a parar a los tecnicos de mantenimientos que estan en las instalaciones in-situ y como los deben considerar como tontos lo quieren sencillo, aunque a mi tambien me deben considerar lo mismo, pero lo mio es con razon  :D

Reviso todo y os voy comentando, muchas gracias de nuevo por el favor.

Saludos
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: tsk en 01 de Julio de 2017, 16:48:46
¿Que tan barato es barato?

https://www.aliexpress.com/item/Spartan6-Mojo-V3-FPGA-Development-Board-kits-Module-Spartan-6-XC6SLX9-for-Arduino-DIY/32798926767.html

Cuenta con un FPGA y un ATMEGA32U4 y no requieres comprar un programador tanto para programar el FPGA como el ATMEGA, además es compatible con Arduino.

Puedes ver más info aquí

https://embeddedmicro.com/tutorials
https://embeddedmicro.com/tutorials/mojo-fpga-beginners-guide
https://embeddedmicro.com/tutorials/mojo-software-and-updates/arduino-ide
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: Kid_Bengala en 02 de Julio de 2017, 12:51:33
Hola

Barato para estos debe ser menos de 10€... por lo que me han dejado caer, que yo no me dedico a diseñar nada y como di con eso para facilitarme el trabajo de reparacion, pues ahora quieren que haga eso... En que hora hice nada... Pero bueno, es lo que toca. Mañana ya comentare que no se va a hacer de un dia para otro (voy a "intentar" hacerlo con STM32 y tengo que aprender a hacer algo con eso) y ya lo otro... a ver si doy con la formula de como hacerlo.

Son cosas que uno no entiende, para unas cosas escatiman dinero y para otra gastan en chorradas o en proveedores que tienen el material 10 veces mas caros que otros, cosas que nunca entendere...

Seguire peleandome y os voy comentando al final que hago, si es que no me despiden antes  :-/ ¡ al menos descansaria la mente !

gracias

P.D: La placa esta muy buena, tiene buena pinta aunque yo ni idea. Tengo aqui al lago una de CPLD y otra de FPGA de xilinx oficiales y una de otra marca, que me las dejo mi amigo hace ya un tiempo para que practicara y ahi estan cogiendo polvo... Voy a ver si comprarla o que

Saludos
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: tsk en 02 de Julio de 2017, 14:23:05
Pues si ya tienes el FPGA de Xilinx de hace tiempo puedes meterle el PicoBlaze para controlar la comunicación entre la PC y el SPI.

Hace tiempo use el PicoBlaze en un Spartan 3E starter Kit, y es muy sencillo de usar, son muy pocas instrucciones en ASM.

https://www.xilinx.com/products/intellectual-property/picoblaze.html

Pero, si no quieren gastar, tu tampoco vas a poner de tus recursos para resolverles los problemas, deben de entender que lo que haces los beneficia a ellos, pero para alcanzar ese beneficio tienen que invertir tanto en tiempo como dinero.

Las tarjetas que tienes, tuvieron un costo en su momento, y su costo es mucho mayor de los de 10 euros. De cualquier forma en que lo quieras hacer el costo va a ser mayor, sobre todo porque tienes que en rutar todas esas señales.

SaludOS
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: planeta9999 en 02 de Julio de 2017, 17:10:59
... ya sabeis, lo quieren completo y muy barato... (supongo que cuanto menos gasten, mas tienen para el nuevo mercedes  :D). Quizas se podria haber hecho con un monton de pines con jumper (bueno, segun las combinaciones seria inmenso, ni una centarl nuclear), pero creo que van a ir a parar a los tecnicos de mantenimientos que estan en las instalaciones in-situ y como los deben considerar como tontos lo quieren sencillo, aunque a mi tambien me deben considerar lo mismo, pero lo mio es con razon  :D


Vale, lo quieren sencillo, barato y además totalmente configurable de cualquier pin de entrada de los 30 posibles a las 4 señales del SPI + GND.

Con jumpers, no, serían tropecientos mil (creo que 150 jumpers, de 30 entradas a 5 del SPI+GND), algo poco elegante y muy lioso. Pero SI puedes hacerlo con cables Dupont,  pones un conector de entrada con 30 pines macho de paso 2.54mm, pones otro conector macho de 5 pines 2.54mm  con las señales de un único SPI por hardware + GND (CS, SDI, SDO, CLK, GND) ruteadas al SPI del microcontrolador.

Ahora con cables Dupont hembra-hembra, que el usuario pinche los 5 cables de un conector a otro, eligiendo el ruteado de las 5 señales a su elección. Conforme averigües que pines usa cada placa, les preparas un plano (en papel, en un A4 caben montones de configuraciones). O si lo quieres complicar un poco, pero dejarlo más bonito, conéctale, al microcontrolador, una pantalla TFT de 4 pulgadas (algo con un ILI9341, por ejemplo), que saque ese plano de conexiones, con un menú para elegir la placa, y arreando.

Supongo que usando un CPLD o un FPGA lo podrás hacer, pero si tienes tantas placas todavía sin identificar, cada vez que surja una nueva, tendrás las mismas, no podrán usar tu invento hasta que no programes la nueva placa. Mientras que con un par de conectores y 5 cables dupont, el producto es 100% universal y de uso inmediato para cualquier combinación, además si tu presupuesto no puede pasar de 10€, no creo que tengas muchas alternativas.
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: KILLERJC en 02 de Julio de 2017, 17:44:32

Ahora con cables Dupont hembra-hembra, que el usuario pinche los 5 cables de un conector a otro, eligiendo el ruteado de las 5 señales a su elección. Conforme averigües que pines usa cada placa, les preparas un plano (en papel, en un A4 caben montones de configuraciones). O si lo quieres complicar un poco, pero dejarlo más bonito, conéctale, al microcontrolador, una pantalla TFT de 4 pulgadas (algo con un ILI9341, por ejemplo), que saque ese plano de conexiones, con un menú para elegir la placa, y arreando.

Supongo que usando un CPLD o un FPGA lo podrás hacer, pero si tienes tantas placas todavía sin identificar, cada vez que surja una nueva, tendrás las mismas, no podrán usar tu invento hasta que no programes la nueva placa. Mientras que con un par de conectores y 5 cables dupont, el producto es 100% universal y de uso inmediato para cualquier combinación.

Es que creo que hasta ahora eso estan haciendo. Conectandolo con cables ( y soldandolos ), bueno en realidad aca se estan ahorrando esa parte.. la de soldarlos.
Aun asi es MUY pero MUY propenso a errores, vos tenes que pensar que eso puede ser agarrado por cualquier persona. Ya que segun el autor del propio hilo:

Citar
me han mandado que vaya pensando en hacer unos pcbs para implementar esto (no se si quieren venderlo o enviarlos a los distintos mantenimientos para reparar en la misma ubicacion)

Y exactamente se le pide una PCB, ahora dice que posee una placa Xilinx.
A mi parecer yo intentaria en esa placa con el FPGA:

- Crear el multiplexado para todos los pines ( los 40 )
- Crear el SPI
- Crear una conexion USB.

Una ves realizado todo esto en la placa de prueba de la FPGA, revisaria cuantos recursos son necesarios para realizar esto. De alli elegiria un FPGA con recursos acorde al proyecto.

Como lidiar con varias placas sin que otras personas que no tienen idea toquen algo que puede romper tu PCB.
Creo que nadie quisiera que alguien elija el pin y se ponga a probar, ya que de seleccionar en el multiplexor una salida en donde existe una salida (placa en prueba), te enfrentas al problema de un cortocircuito. Entonces no quisieras que nadie juegue con los pines.
Pienso que deberia desarrollar un pequeño software que segun el modelo de placas estudiadas elija pines pre-definidos, en caso de querer agregar mas placas, tanto si es para un cliente o para la fabrica, solo deberia actualizar un archivo que es el que le dice que pin es cada cosa. Previamente estudiado esa PCB.
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: planeta9999 en 02 de Julio de 2017, 20:03:19
Es que creo que hasta ahora eso estan haciendo. Conectandolo con cables ( y soldandolos ), bueno en realidad aca se estan ahorrando esa parte.. la de soldarlos.
Aun asi es MUY pero MUY propenso a errores, vos tenes que pensar que eso puede ser agarrado por cualquier persona.

¿ Errores, conectar 4 hilos ??, para eso ni siquiera hace falta ser inteligente, con que sean seres humanos capaces de atarse los cordones de los zapatos, es suficiente.

Ahora, si tienen contratados a cabreros, es otra cosa, pero si es así, peor me lo pones, porque tampoco tendrán ni idea de manejar un ordenador, para desde software seleccionar la placa. Es una contradicción, pensar que alguien es incapaz de conectar 4 hilos, y si va a ser capaz de manejar un ordenador. O son unos burros para manejar ambas soluciones, o son seres normales capaces de lidiar con algo tan simple en ambos casos.


Citar
Y exactamente se le pide una PCB, ahora dice que posee una placa Xilinx.
A mi parecer yo intentaria en esa placa con el FPGA:

- Crear el multiplexado para todos los pines ( los 40 )
- Crear el SPI
- Crear una conexion USB.

Una ves realizado todo esto en la placa de prueba de la FPGA, revisaria cuantos recursos son necesarios para realizar esto. De alli elegiria un FPGA con recursos acorde al proyecto.

¿ Todo eso, con un presupuesto que no supere los 10€ por placa ?.  :mrgreen: :mrgreen: :-/ :-/ :-/ :mrgreen: :mrgreen:

Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: KILLERJC en 02 de Julio de 2017, 20:35:53
¿ Errores, conectar 4 hilos ??, para eso ni siquiera hace falta ser inteligente, con que sean seres humanos capaces de atarse los cordones de los zapatos, es suficiente.

Ahora, si tienen contratados a cabreros, es otra cosa, pero si es así, peor me lo pones, porque tampoco tendrán ni idea de manejar un ordenador, para desde software seleccionar la placa. Es una contradicción, pensar que alguien es incapaz de conectar 4 hilos, y si va a ser capaz de manejar un ordenador. O son unos burros para todo, o son seres normales para todo.

Y si planeta, teniendo un conector de 40 pines no me extraña que alguien conecte el pin del lado, tampoco conoces cual es el destinatario de esta PCB, ya que no se lo dijeron a la persona que se lo encargaron, seleccionar una opcion de una lista, es MUCHO mas simple que conectar cablecitos, cualquier persona puede usar una PC. Si lo piensan hacer para ellos, entonces van a seguir a cablecitos. Y no necesitamos hablar mas, ya que seria un solo micro con USB y nada mas.

¿ Todo eso, con un presupuesto que no supere los 10€ por placa ?.  :mrgreen: :mrgreen: :-/ :-/ :-/ :mrgreen: :mrgreen:

Pensandolo mejor no, en realidad FPGA hay desde los 2.8 dolares en digikey por unidad, teniendo unos de 5.7 dolares mejores FPGA con 65K RAM 1000LE y 160LABs.
La PCB seria pequeña, con tecnologia TQFP por lo cual no deberias tener una tecnologia costosa para crearla. Ya que routearias los pines a pines disponibles y luego que dentro de la FPGA se encargue de todo.
El problema es la interfaz. Ya que la FPGA tiene un voltaje de 1.2V o 3.3V en algunas un poquito mas caras.
Y finalmente como te decia, no se que cantidad de LAB/LE van a consumir generar todos esos multiplexores/SPI/USB. Si es posible con esta FPGA o deba irse a una mucho mas grande, aumentando el costo.
Una FPGA con un micro no esta en la discusion ya que son mucho mas caros.

La otra es usar un micro con USB + un SPI en hardware. Y luego de alli multiplexarlo como dijimos, cada multiplexor 8:1 (MC74HC151A) son 0.37 dolares ( por unidad ), o sea 1.85 dolares por entrada, hay multiplexores 16:1 pero son mas caros, y encima tenes las salidas (MC74HC238A ), las cuales estan casi al mismo precio, ya con las 2 entradas y 2 salidas ya tenes casi 8 dolares (Suponete 7 dolares por comprar de a 20 o mas). Y encima necesitarias una PCB mucho mayor area, con mas cantidad de vias por el routeado de esos 40 a todos lados, etc. Esta opcion permite un cambio de tension distinto del FPGA que se complica mucho mas realizarlo.

Y finalmente la opcion mas barata que es la que planteas vos. Y que simplemente es usar un micro + cables, pero te digo que si esto es para algun consumidor, no es muy lindo que la persona deba estar contando pines uno por uno para conectar los 4 cables. Y si yo te ofresco la opcion de 6 dolares y vos tenes que conectar los cables uno por uno, y te ofresco otra opcion que sale 15 dolares donde conectas y te olvidas, creo que vas a tener mayor demanda la de 15 dolares que la de 6. La de 6 la va a comprar el pobre que arregla 1 placa con suerte. Pero el que trabaja con esas placas simplemente quiere perder el menor tiempo posible, entonces no se va a poner a buscar que pines en esa placa eran los del SPI, luego buscar el manual de cual era cada cablecito y finalmente ponerse a contar sobre el conector o tratar de recordar como se enumeran los pines sobre ese conector.

En fin.. el problema aca es que no sabemos que grado de comodidad pretende. Todas las opciones de tratar de poder configurar los 40 pines de forma automatica superan los 10€ facilmente. Y si no tiene que ir a la placa esa que comentas. Pero para eso directamente siguen con su Arduino y con sus cablecitos.
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: Kid_Bengala en 03 de Julio de 2017, 08:47:42
Hola

Muchas gracias a todos por las respuestas, de verdad.

Me estoy dando cuenta que os estoy mareando para un problema que ni tan siquiera deberia tenerlo yo, y mas que ayuda casi me lo estais diseñando y no os deberia quitar tiempo con mis "tonterias", he estado viendo los io expander de microchip que se usan por SPI y creo que va a ser lo mas rapido y sencillo de implementar, al menos para salir del paso... Así que no os voy a marear más, voy a intentar hacerlo con eso y si sale del presupuesto que tengan pues que se busquen alguien que se lo haga, que yo estoy contratado para "reparar" no para otras cosas. Asi que voy a decirles que pidan lo mas facil de conseguir y programar, sin mirar el precio y si les interesa ya saben, sino...

De todas formas de forma personal voy a mirar de hacerlo con otras formas y ya os informare como ha quedado, mas que nada ya por interes personal  ;-). Gracias de nuevo.

Saludos
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: Kid_Bengala en 03 de Julio de 2017, 12:04:37
Hola de nuevo

Una pregunta (posiblemente sea otra tonteria lo que pregunto), he estado pensando ya por tema personal (y mande un email a mi amigo  :D), que a nivel profesional va como dije, ya les mande email a mis "jefes" ¿Puedo atacar el cableado con dos circuitos? Me explico:

Si utilizo un microcontrolador con muchos pines, puedo unirlos todos al conector del cable plano y luego mediante software utilizar los pines para el bus de datos que necesite y aparte, utilizar los cuatro pines de spi a algun integrado o cpld que este unido tambien a todos los pines del cable, asi solo habria que enrutar 4 señales a todos los pines del cable plano, entiendo que habria que usar unos pines mas para direccionar las señales en caso de multiplexores/demultiplexores.

Lo que quiero preguntar es si puede haber algun problema y dañarse a nivel de hardware, no van a esta simultaneamente, pero por ejemplo al estar unidos los pines del micro y el sistema que enruta, si cuando se comunique via SPI (sistema enrutador) puede retornar al microcontrolador señal (y viceversa) ¿habria que poner algun tipo de resistencia o algo o puede ir a "pelo"?

Bueno, la clave va a ser que me pida un par de micros y en casa haga pruebas, quemando cosas se aprende  :D

muchas gracais.

saludos
antonio
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: tsk en 03 de Julio de 2017, 13:10:07
Suena medio peligroso.

Viendo la situación y por la falta de recursos lo que haría sería una PCB con con 3 conectores, como lo muestro en la siguiente imágen

(http://i.imgur.com/nN5WQwq.png)

El micro ahí puede ser cualquiera que tenga SPI o puedes hacer unos sockets para colocar un arduino (mciro o nano) o la tarjeta con el stm32f103c8t6 que sale muy económica.

Las conexiones las realizarías a mano con cables hembra-hembra, entre el primer y segundo conector. Entre el segundo y el tercer conector estaría cableados pin a pin en el PCB. Es algo que hasta te puedes hacer la PCB en casa.
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: planeta9999 en 03 de Julio de 2017, 19:20:00
Si utilizo un microcontrolador con muchos pines, puedo unirlos todos al conector del cable plano y luego mediante software utilizar los pines para el bus de datos que necesite y aparte, utilizar los cuatro pines de spi a algun integrado o cpld que este unido tambien a todos los pines del cable, asi solo habria que enrutar 4 señales a todos los pines del cable plano, entiendo que habria que usar unos pines mas para direccionar las señales en caso de multiplexores/demultiplexores.

Lo que quiero preguntar es si puede haber algun problema y dañarse a nivel de hardware, no van a esta simultaneamente, pero por ejemplo al estar unidos los pines del micro y el sistema que enruta, si cuando se comunique via SPI (sistema enrutador) puede retornar al microcontrolador señal (y viceversa) ¿habria que poner algun tipo de resistencia o algo o puede ir a "pelo"?

Bueno, la clave va a ser que me pida un par de micros y en casa haga pruebas, quemando cosas se aprende  :D


Menudo galimatías, yo ya he perdido el hilo de lo que quieres hacer. Al final terminarás haciendo lo más simple, que es lo que yo comenté, con dos conectores y 5 cables dupont, más aún teniendo un presupuesto de 10€/placa. Usar un CPLD o un FPGA para esto es matar mosquitos a base de misiles Tomahawk (que son más caros que los cañonazos).

Si te incomoda mezclar o compartir señales, puedes aislarlas entre si con buffers, por ejemplo el CD4050, y para prevenir barrabasadas que terminen quemando los buffers, yo los pondría pasantes en zócalo. Como parece que los operarios son tan manazas, como se ha comentado, mejor prevenir que curar (le das a cada operario un saquito de CD4050, y cuando los quemen que los cambien).

Y sobre mi idea, añadir, que en vez de poner una pantallita de 4 pulgadas para mostrar el plano de conexiones para la placa seleccionada, puesto que se va a controlar por USB desde el PC, se puede mostrar el plano de conexión de los 5 hilos en la misma pantalla del PC. Asi que con un micro STM32, conector USB, placa con 2 conectores de paso 2.54, y 5 cables dupont hembra-hembra, va que chuta, y seguramente cumpliendo el presupuesto de no pasarse de 10€ (aunque aún así, lo veo algo justo, que rácanos son)
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: Kid_Bengala en 04 de Julio de 2017, 20:24:49
Si, si yo te contara que racanos son... Han llegado a perder contratos importantes por no gastar x dinero que estaba por contrato... O meter personal y furgonetas de menos que lo contratado ¡ Asi mas dinero de beneficios ! Lo de los cables no lo veo por una razon, yo no es que sea mas espabilado, que posiblemente este a la misma altura, pero los de mantenimiento han llegado a traer placas electronicas de instalaciones a mas de 300km y dejando la maquina del cliente fuera de servicio, con el coste que ello conlleva para este, por tener un cable suelto o un terminal roto en otro  y no pegarle una soldadura (viendose el cable colgando), asi que...

Al final tragaran con el presupuesto que sea, siempre que no sea exagerado, porque sino saben que es dejar maquinas fuera de servicio porque como no hay repuestos... Eso que se ahorran, ahora bien, tendran que formar a los tecnicos para hacer eso...

Les dije para hacerlo con esos io expander de microchip, de momento no han dicho nada, aunque a titulo personal, en mi casa y ratos libres voy a ver si puedo hacer algo "mas pro" con STM32.

Saludos
antonio
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: KILLERJC en 04 de Julio de 2017, 23:02:39
Es que con los I/O expander no lo vas a poder hacer.
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: Kid_Bengala en 05 de Julio de 2017, 13:09:23
De momento les pedi eso y los integrados que me comentasteis (menos fpga y demas, que sino les da un infarto, ademas no tengo ni puñetera idea de usarlas) para hacer pruebas/prototipos, solo falta que sus majestades me los hagan llegar... Igual estan haciendo numeros para ver si se pasan de los 10€ :D (que triste de empresa...), con eso tiene para unos litros de los mercedes jejeje

Saludos
Título: Re:Micro para implementar SPI en diferentes patillas
Publicado por: elreypic2 en 05 de Julio de 2017, 13:44:14
Que tal Kid_Bengala,

Como bien mencionas por tu propia persona, es claro que no tienes idea de como hacer el hardware para esta aplicación y desde ya te puedo decir que con 10 Euros no podras realizarla. Algunos diran que sí con el uso de FPGA o de CPLD, pero el caso es que tú lo tienes que hacer y pues tampoco tienes el conocimiento para esto. Como bien te comentaron anteriormente, lo más fácil es que hagas uso del 74HC4066 y con el uso de demux como el 74HC138 realizar la lógica de control/selección. Esto implicara varios integrados de este tipo. Esto parece un trabajo sencillo y lo es a nivel de lógica, pero para el interconexionado en el PCB, esto sera una pesadilla.
No quiero en ninguna forma desanimarte, sino mas bien ponerte en la perspectiva correcta según lo que tus propias palabras expresan.

elreypic.