Alternatif untuk SPI karena EMI


24

Saat ini saya membuat sistem yang terdiri dari selungkup plastik yang berisi MCU berbicara dengan 7 ADC menggunakan 2MHz SPI melalui kabel sekitar 5cm panjang.

MCU dan ADC terhubung oleh SPI

Masalahnya adalah saya khawatir tentang EMI. Semua yang saya baca menunjukkan bahwa segala jenis sinyal digital yang tidak aman pada PCB dalam sasis logam yang dibumikan akan memancarkan terlalu banyak untuk melewati pengujian EMI. Saya kira ini akan termasuk I2C juga.

Apakah ini kemungkinan gagal pengujian EMI? Apa yang bisa saya lakukan?

Saya mencari segala jenis jawaban, termasuk "Gunakan bus yang berbeda / ADC", tetapi tidak termasuk jawaban yang melibatkan perubahan mekanis seperti: "Letakkan semua ADC pada PCB yang sama" atau "Letakkan semuanya dalam kotak logam" . Saya terutama tertarik pada alternatif Low-EMI untuk SPI termasuk bus diferensial.

Berikut adalah beberapa informasi yang relevan tentang aplikasi tersebut. Tolong beri tahu saya jika Anda perlu tahu lebih banyak hal:

  • 6 kabel pergi ke setiap papan ADC (Power, GND, CS, CLK, MOSI, MISO).
  • ADC saat ini MCP3208 (Microchip 8-channel, 12-bit)
  • Saya bekerja dalam aplikasi yang sangat terbatas ruang, jadi menambahkan perisai ke kabel sebenarnya bukan pilihan.
  • Akan menyenangkan untuk menggunakan beberapa jenis bus diferensial (satu atau dua pasang saja), tetapi satu-satunya ADC dengan komunikasi diferensial tampaknya adalah tipe LVDS multi-MSPS.
  • CAN mungkin terlalu lambat, dan juga agak besar untuk aplikasi yang dibatasi ruang seperti itu.
  • Tingkat sampel: Saya perlu mengambil sampel setiap saluran pada 1kHz.

Ditambahkan:

Hanya untuk memberikan gambaran tentang batasan ruang:

PCB kecil dengan MCP3202

Di sini Anda dapat melihat salah satu PCB ADC. Yang ini sebenarnya memiliki MCP3202 bukan MCP3208, tetapi ini kompatibel (ish). Ada dalam paket TSSOP 8. PCB berukuran 11mm x 13mm. Kabel hitam berdiameter 2mm. Seperti yang Anda lihat, bahkan tidak ada ruang untuk konektor dan kabel disolder langsung ke PCB, kemudian pot. Kurangnya konektor disebabkan oleh kendala ruang di sekitarnya daripada kendala ruang PCB.


4
Bagaimana melindungi kabel dianggap tidak praktis tetapi menggandakan jumlah kabel (pensinyalan diferensial) dianggap praktis?
timrorr

Maaf, saya seharusnya lebih jelas. Saya berarti sesuatu seperti CAN, yaitu 2 kawat diferensial. Jelas menggandakan jumlah kabel tidak mungkin. Saya telah mengedit pertanyaan.
Rocketmagnet

1
Khususnya, jenis pengujian / sertifikasi apa yang Anda coba lewati?
Joel B

1
@ JoelB - Maaf, saya agak baru di EMI, jadi saya tidak begitu yakin. Tetapi pada titik tertentu kita harus melakukan semacam pengujian EMI. Mungkin semacam tingkat normal / konsumen pengujian EMI, jika ada hal seperti itu.
Rocketmagnet

1
@ Rocketagnet, Ohh, jangan salah paham kalau kamu membuat antena dengan sangat mudah. Ada beberapa metode desain untuk ini, ia akan membahasnya lebih lanjut, tetapi jika kabel Anda tidak membawa frekuensi apa pun yang diperiksa oleh tes EMI untuk Anda akan baik-baik saja, Anda harus memastikan Anda tidak menggabungkan kebisingan frekuensi tinggi lainnya dari tempat lain. keluar (yang semudah kata desain digital kecepatan tinggi). Saya hanya ingin ide yang lebih baik tentang masalah Anda. Saya sangat menyukai pertanyaan itu dan sudah mendapatkan +1 saya
Kortuk

Jawaban:


13

2 MHz SPI lebih dari 5 cm kabel tidak besar. Saya melakukan 30 MHz SPI lebih dari 10 cm kabel banyak, melewati FCC Kelas B dan setara CE. Kuncinya adalah memastikan bahwa Anda memiliki kabel yang baik (mengendalikan sebaik mungkin untuk area loop), dan mengakhiri sinyal Anda dengan benar.

Anda mengontrol area loop dengan meletakkan sinyal power / GND di suatu tempat di tengah kabel: Kedua tengah konektor, tetapi di tengah bundel kabel juga. Biasanya Anda akan memiliki kekuatan atau GND per sinyal, tetapi karena itu jarang solusi praktis Anda harus melakukan yang terbaik dengan apa yang Anda miliki. Juga, pastikan untuk meletakkan satu atau dua tutup pelepas sambungan pada PCB di kedua ujung kabel.

Menghentikan sinyal dengan benar akan sedikit rumit karena Anda tidak memiliki impedansi yang terkontrol pada kabel Anda. Apa yang akan saya lakukan adalah meletakkan filter RC pada PCB di kedua ujung kabel. Filter RC akan memiliki C di sisi kabel dan R di sisi chip. Pada driver sinyal, saya akan mulai dengan R sekitar 75 ohm dan C sekitar 1 nF. Pada penerima, R akan sekitar 10 ohm dan C masih 1 nF. Setelah prototipe dibangun, Anda harus mencoba nilai yang berbeda. Pada dasarnya Anda menginginkan nilai yang lebih tinggi untuk R dan C, tetapi tidak terlalu tinggi sehingga benda itu berhenti bekerja atau level sinyal terlalu dilemahkan. Tepi sinyal Anda harus terlihat sangat membulat, tetapi seharusnya tidak ada dering dan jam harus bagus saat berada di pita transisi sinyal (biasanya 0,8 hingga 2,0 volt).

Nilai batas minimal 3 nF ideal untuk perlindungan ESD, tetapi itu mungkin tidak menjadi masalah dalam aplikasi Anda.


Terima kasih atas jawaban anda. Ya, saya cukup yakin bahwa perubahan impedansi di beberapa titik saat bergerak dari pcb ke konektor ke kabel, dll. Juga, jalur CS, CLK dan MOSI dibagi di semua ADC. Apakah itu membuat perbedaan?
Rocketmagnet

@ Rocketagnet Filter RC pada dasarnya akan terlalu-terminasi. Itu sebabnya sinyal akan terlihat sangat membulat. Ini akan melakukan beberapa hal untuk Anda, yang paling penting adalah membuat impedansi tidak terlalu kritis. Anda harus membangun kembali sinyal CS, CLK, dan MOSI sehingga tidak dibagikan melalui kabel. Kadang-kadang itu tidak mungkin sehingga yang kedua (jauh) terbaik adalah menggunakan pemutusan terpisah untuk setiap kabel, dan tidak berbagi pemutusan.

2

CAN hampir pasti merupakan taruhan terbaik Anda dalam aplikasi semacam ini. Ini diferensial, dan seharusnya mengurangi jumlah kabel yang masuk ke setiap papan. Jika Anda mengambil sampel tujuh chip, delapan saluran per chip, dua belas bit per saluran, itu adalah 672 bit data per waktu sampel. Pada sampel 1 kHz, kecepatan transfer 1 Mbit, itu 1000 bit per waktu sampel. Itu tidak meninggalkan Anda banyak ruang untuk overhead, jadi Anda mungkin mempertimbangkan untuk menggunakan mikrokontroler yang memiliki dua pengendali CANbus terpisah. (Microchip membuat beberapa, saya menggunakan dsPIC 30F6012a.) Bagi A / D Anda menjadi dua bus, dengan mikrokontroler sentral pada keduanya, dan Anda harus memiliki banyak bandwidth.

Di ujung lain, Anda dapat mempertimbangkan mengganti konverter A / D dengan mikrokontroler. dsPIC 30F4013 mungkin merupakan pilihan yang baik di sana. 13 saluran A / D 12-bit, ditambah CANbus.

Sebagai alternatif, saya pikir Anda dapat mengubah SPI ke / dari protokol tegangan diferensial seperti RS-485. Tetapi saya tidak cukup tahu tentang itu untuk berkomentar dengan cerdas.


Terima kasih atas jawaban anda. Saya telah mempertimbangkan BISA, tetapi pada akhirnya, saya tidak yakin ada cukup ruang untuk komponen. Jika ada transceiver BISA kecil yang tersedia, maka itu mungkin. Yang terkecil yang saya dapat temukan tampaknya adalah SOIC 8.
Rocketmagnet

2
!! Ketika Anda mengatakan ruang terbatas, Anda sungguh-sungguh! Anda mungkin memeriksa jawaban ini: electronics.stackexchange.com/a/30596/7523 Tampaknya, Anda MUNGKIN dapat pergi dengan tidak menggunakan transceiver dalam keadaan ini. Saya pasti tertarik untuk mengetahui apakah Anda bisa!
Stephen Collings

3
Heh. Lihatlah nama jawaban yang Anda tautkan.
Rocketmagnet

1
Jadi hal yang saya katakan tentang saya tidak cukup tahu untuk berkomentar dengan cerdas? Ya.
Stephen Collings
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.