Alternativen zu SPI aufgrund von EMI


24

Ich mache derzeit ein System, das aus einem Kunststoffgehäuse besteht, das eine MCU enthält, die mit 7 ADCs unter Verwendung von 2 MHz SPI über Kabel mit einer Länge von etwa 5 cm kommuniziert.

MCU und ADCs sind über SPI verbunden

Das Problem ist, dass ich über EMI besorgt bin. Alles, was ich gelesen habe, deutet darauf hin, dass jede Art von digitalem Signal, das auf einer Platine in einem geerdeten Metallgehäuse nicht sicher ist, zu viel Strahlung abgibt, um eine EMI-Prüfung zu bestehen. Ich denke, das würde auch I2C einschließen.

Scheitert dies wahrscheinlich an der EMI-Prüfung? Was kann ich dagegen tun?

Ich suche nach Antworten aller Art, einschließlich "Einen anderen Bus / ADC verwenden", aber ohne Antworten, die mechanische Änderungen beinhalten, wie: "Alle ADCs auf derselben Platine platzieren" oder "Das Ganze in eine Metallbox packen". . Ich interessiere mich besonders für Low-EMI-Alternativen zu SPI, einschließlich Differentialbussen.

Hier finden Sie einige relevante Informationen zur Anwendung. Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen:

  • Zu jeder ADC-Karte (Power, GND, CS, CLK, MOSI, MISO) führen 6 Drähte.
  • ADCs sind derzeit MCP3208 (Microchip 8-Kanal, 12-Bit)
  • Ich arbeite in einer extrem beengten Anwendung, daher ist das Hinzufügen einer Abschirmung zu den Kabeln eigentlich keine Option.
  • Es wäre schön, eine Art Differentialbus zu verwenden (nur ein oder zwei Paare), aber die einzigen ADCs mit Differentialkommunikation scheinen Multi-MSPS-LVDS-Typen zu sein.
  • CAN ist wahrscheinlich zu langsam und auch sperrig für eine solche platzbeschränkte Anwendung.
  • Abtastrate: Ich muss jeden Kanal mit 1 kHz abtasten.

Hinzugefügt:

Nur um eine Vorstellung von den Platzbeschränkungen zu geben:

Kleine Platine mit MCP3202

Hier sehen Sie eine der ADC-Leiterplatten. Dieser hat tatsächlich einen MCP3202 anstelle eines MCP3208, ist aber kompatibel (ish). Es ist in einem TSSOP 8-Paket enthalten. Die Leiterplatte ist 11 mm x 13 mm groß. Das schwarze Kabel hat einen Durchmesser von 2 mm. Wie Sie sehen, ist nicht einmal Platz für einen Stecker, und die Drähte werden direkt auf die Leiterplatte gelötet und dann vergossen. Der Mangel an Steckverbindern ist eher auf Platzbeschränkungen der Umgebung als auf Platzbeschränkungen der Leiterplatte zurückzuführen.


4
Wie kann eine Abschirmung der Kabel als unpraktisch angesehen werden, eine Verdoppelung der Anzahl der Adern (Differenzsignalisierung) jedoch als praktisch angesehen werden?
Timrorr

Entschuldigung, ich hätte klarer sein sollen. Ich meinte so etwas wie CAN, das 2-Draht-Differential ist. Offensichtlich ist es unmöglich, die Anzahl der Drähte zu verdoppeln. Ich habe die Frage bearbeitet.
Rocketmagnet

1
Welche Art von Prüfung / Zertifizierung versuchen Sie konkret zu bestehen?
Joel B

1
@ JoelB - Entschuldigung, ich bin ein bisschen neu bei EMI, also bin ich mir nicht wirklich sicher. Aber irgendwann müssen wir EMI-Tests durchführen. Wahrscheinlich eine Art normaler / Verbraucher-EMI-Test, wenn es so etwas gibt.
Rocketmagnet

1
@Rocketmagnet, Ohh, versteh mich nicht falsch, dass du sehr, sehr leicht eine Antenne machst. Hierfür gibt es Entwurfsmethoden, auf die er näher eingeht. Wenn Ihr Kabel jedoch keine Frequenz überträgt, die ein EMI-Test für Sie überprüft, müssen Sie sicherstellen, dass Sie keine anderen höheren Frequenzen mit Rauschen von anderen Orten koppeln out (was so einfach ist, wie High-Speed-Digital-Design sagte). Ich wollte nur eine bessere Vorstellung von Ihrem Problem haben. Ich mag die Frage sehr und sie hat bereits mein +1
Kortuk erhalten.

Antworten:


13

2 MHz SPI über 5 cm Kabel ist nicht riesig. Ich mache viel 30 MHz SPI über 10 cm Kabel, die die FCC-Klasse B und das CE-Äquivalent erfüllen. Der Schlüssel ist, sicherzustellen, dass Sie ein gutes Kabel haben (so gut es geht für den Schleifenbereich) und Ihre Signale richtig terminieren.

Sie steuern den Schleifenbereich, indem Sie die Power / GND-Signale in der Mitte des Kabels platzieren: Sowohl in der Mitte des Steckers als auch in der Mitte des Kabelbündels. Normalerweise haben Sie eine Leistung oder GND pro Signal, aber da dies selten eine praktische Lösung ist, müssen Sie das Beste aus dem machen, was Sie haben. Stellen Sie außerdem sicher, dass an beiden Enden des Kabels eine oder zwei Entkopplungskappen auf den Leiterplatten angebracht sind.

Das ordnungsgemäße Abschließen der Signale ist etwas schwierig, da das Kabel keine kontrollierte Impedanz aufweist. Was ich tun würde, ist ein RC-Filter auf der Platine an beiden Enden des Kabels zu setzen. Das RC-Filter hätte das C auf der Kabelseite und das R auf der Chipseite. Beim Signaltreiber würde ich mit einem R von ungefähr 75 Ohm und einem C von ungefähr 1 nF beginnen. Am Empfänger wäre R ungefähr 10 Ohm und C noch 1 nF. Sobald Sie die Prototypen gebaut haben, sollten Sie verschiedene Werte ausprobieren. Grundsätzlich möchten Sie höhere Werte für R und C, aber nicht so hoch, dass das Ding nicht mehr funktioniert oder die Signalpegel zu gedämpft sind. Die Flanken Ihrer Signale sollten sehr abgerundet aussehen, aber es sollte kein Klingeln geben, und die Uhren sollten im Signalübergangsband (normalerweise 0,8 bis 2,0 Volt) schön sein.

Ein Grenzwert von mindestens 3 nF ist ideal für den ESD-Schutz, dies ist jedoch in Ihrer Anwendung möglicherweise kein Problem.


Danke für deine Antwort. Ja, ich bin mir ziemlich sicher, dass sich die Impedanz an mehreren Stellen ändert, wenn sie von der Leiterplatte zum Anschluss zum Kabel usw. wechselt. Außerdem werden die CS-, CLK- und MOSI-Leitungen von allen ADCs gemeinsam genutzt. Macht das einen Unterschied?
Rocketmagnet

@Rocketmagnet Die RC-Filter werden im Wesentlichen übermäßig terminiert. Deshalb werden die Signale sehr abgerundet aussehen. Dies wird einige Dinge für Sie tun, das Wichtigste ist, die Impedanz nicht so kritisch zu machen. Sie sollten CS-, CLK- und MOSI-Signale neu puffern, damit sie nicht über Kabel gemeinsam genutzt werden. Manchmal ist dies nicht möglich. Daher empfiehlt es sich, für jedes Kabel einen separaten Abschluss zu verwenden und nicht einen gemeinsamen Abschluss.

2

CAN ist mit ziemlicher Sicherheit die beste Wahl für diese Art von Anwendung. Es ist ein Differential und sollte eigentlich die Anzahl der Drähte reduzieren, die zu jeder Platine führen. Wenn Sie sieben Chips abtasten, acht Kanäle pro Chip, zwölf Bits pro Kanal, sind das 672 Datenbits pro Abtastzeit. Bei 1-kHz-Abtastwerten und 1-Mbit-Übertragungsrate sind dies 1000 Bit pro Abtastzeit. Das lässt Ihnen nicht viel Platz für Overhead, so dass Sie in Betracht ziehen könnten, einen Mikrocontroller zu verwenden, der zwei separate CANbus-Controller enthält zentraler Mikrocontroller auf beiden, und Sie sollten viel Bandbreite haben.

Am anderen Ende könnten Sie in Betracht ziehen, die A / D-Wandler durch Mikrocontroller zu ersetzen. Hier könnte dsPIC 30F4013 eine gute Wahl sein. 13 12-Bit-A / D-Kanäle plus CANbus.

Alternativ kann man SPI nach / von Differenzspannungsprotokollen wie RS-485 konvertieren. Aber ich würde nicht genug darüber wissen, um intelligent zu kommentieren.


Danke für deine Antwort. Ich habe über CAN nachgedacht, bin mir aber letztendlich nicht sicher, ob genügend Platz für die Komponenten vorhanden ist. Wenn winzige CAN-Transceiver verfügbar wären, wäre dies möglicherweise möglich. Die kleinsten, die ich finden kann, scheinen SOIC 8 zu sein.
Rocketmagnet

2
!! Wenn Sie von Platzmangel sprechen, meinen Sie es auch so! Sie könnten diese Antwort lesen : electronics.stackexchange.com/a/30596/7523 Anscheinend könnten Sie unter diesen Umständen möglicherweise davonkommen, keinen Transceiver zu verwenden. Ich würde mich auf jeden Fall interessieren, wenn Sie können!
Stephen Collings

3
Heh. Überprüfen Sie den Namen der Antwort, mit der Sie verknüpft sind.
Rocketmagnet

1
Also das Ding, von dem ich sagte, dass ich nicht genug weiß, um es intelligent zu kommentieren? Ja.
Stephen Collings
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.