24 votos

Alternativas a SPI por EMI

Actualmente hago un sistema que consiste en una caja de plástico que contiene un MCU hablando con 7 ADCs usando 2MHz SPI sobre cables de unos 5cm de largo.

MCU and ADCs connected by SPI

El problema es que me preocupa el IME. Todo lo que he leído sugiere que cualquier tipo de señal digital que no está a salvo en un PCB en un chasis metálico conectado a tierra irradiará demasiado para pasar las pruebas de EMI. Supongo que esto incluiría I2C también.

¿Es probable que no supere las pruebas EMI? ¿Qué puedo hacer al respecto?

Estoy buscando cualquier tipo de respuestas, incluyendo "Usar un bus / ADC diferente", pero no incluyendo respuestas que impliquen cambios mecánicos como: "Poner todos los ADCs en la misma PCB" o "Poner todo en una caja de metal". Estoy especialmente interesado en alternativas Low-EMI a SPI incluyendo buses diferenciales.

Aquí tiene información relevante sobre la aplicación. Por favor, hágamelo saber si usted necesita saber más cosas:

  • 6 cables van a cada placa ADC (Power, GND, CS, CLK, MOSI, MISO).
  • Actualmente, los ADC MCP3208 (Microchip 8 canales, 12 bits)
  • Trabajo en un desesperadamente aplicación con limitaciones de espacio, por lo que añadir blindaje a los cables no es realmente una opción.
  • Estaría bien utilizar algún tipo de bus diferencial (sólo uno o dos pares), pero los únicos ADC con comunicación diferencial parecen ser los tipos LVDS multi-MSPS.
  • CAN es probablemente demasiado lento, y también un poco voluminoso para una aplicación tan limitada en espacio.
  • Frecuencia de muestreo: Necesito muestrear cada canal a 1kHz.

Añadido:

Sólo para dar una idea de las limitaciones de espacio:

Small PCB with MCP3202

Aquí puedes ver uno de los PCB ADC. Este en realidad tiene un MCP3202 en lugar de un MCP3208, pero es compatible(ish). Está en un encapsulado TSSOP 8. El PCB mide 11mm x 13mm. El cable negro es de 2mm de diametro. Como se puede ver, ni siquiera hay espacio para un conector y los cables se sueldan directamente a la PCB, a continuación, en macetas. La falta de conector se debe a las limitaciones de espacio circundante más que a las limitaciones de espacio de la PCB.

13voto

2 MHz SPI a través de cables de 5 cm no es enorme. Yo utilizo a menudo SPI de 30 MHz en cables de 10 cm, y supero la clase B de la FCC y el equivalente de la CE. La clave es asegurarse de que tienes un buen cable (controlando lo mejor que puedas la zona de bucle) y terminando correctamente tus señales.

La zona de bucle se controla colocando las señales de alimentación/GND en algún punto intermedio del cable: En medio del conector, pero también en medio del haz de cables. Normalmente tendrías una alimentación o GND por señal, pero como eso rara vez es una solución práctica tienes que hacer lo mejor con lo que tienes. Además, asegúrate de poner una o dos tapas de desacoplamiento en las placas de circuito impreso de ambos extremos del cable.

Terminar correctamente las señales va a ser un poco complicado ya que no tienes una impedancia controlada en tu cable. Lo que yo haría es poner un filtro RC en el PCB en ambos extremos del cable. El filtro RC tendría la C en el lado del cable y la R en el lado del chip. En el conductor de señal, empezaría con una R de unos 75 ohmios y una C de 1 nF. En el receptor, la R sería de unos 10 ohmios y la C de 1 nF. Una vez que tengas los prototipos construidos entonces deberías probar diferentes valores. Esencialmente quieres valores más altos para R y C, pero no tan altos que la cosa deje de funcionar o los niveles de señal estén demasiado atenuados. Los bordes de tus señales deben verse muy redondeados, pero no debe haber timbre y los relojes deben ser agradables mientras estén en la banda de transición de la señal (normalmente de 0.8 a 2.0 voltios).

Un valor de cap de al menos 3 nF es ideal para la protección ESD, pero eso podría no ser un problema en su aplicación.

2voto

Stephen Collings Puntos 8713

CAN es casi con toda seguridad la mejor opción para este tipo de aplicaciones. Es diferencial y debería reducir el número de cables que van a cada placa. Si estás muestreando siete chips, ocho canales por chip, doce bits por canal, eso es 672 bits de datos por tiempo de muestreo. A muestras de 1 kHz, velocidad de transferencia de 1 Mbit, son 1000 bits por tiempo de muestra. Eso no te deja mucho espacio para los gastos generales, por lo que podría considerar el uso de un microcontrolador que tiene dos controladores CANbus separados incorporados. (Microchip fabrica varios, yo utilizo el dsPIC 30F6012a.) Divide tus A/D en dos buses, con tu microcontrolador central en ambos, y tendrás ancho de banda de sobra.

En el otro extremo, podrías considerar sustituir los convertidores A/D por microcontroladores. El dsPIC 30F4013 podría ser una buena opción. 13 12-bit A / D canales, además de CANbus.

Alternativamente, creo que se puede convertir SPI a/desde protocolos de voltaje diferencial como RS-485. Pero yo no sabría lo suficiente sobre eso para comentar inteligentemente.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X