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.
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:
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.
Antworten:
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.
quelle
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.
quelle