EMI nedeniyle SPI'ye alternatifler


24

Şu anda yaklaşık 5 cm uzunluğunda 2MHz SPI kullanan 7 ADC ile konuşan bir MCU içeren plastik bir mahfazadan oluşan bir sistem yapıyorum.

SPI ile bağlanan MCU ve ADC'ler

Sorun şu ki EMI konusunda endişeliyim. Okuduğum her şey, topraklanmış bir metal şasideki PCB'de güvenle olmayan herhangi bir dijital sinyalin, EMI testini geçemeyecek kadar fazla yayacağını gösteriyor. Sanırım buna I2C de dahil olacak.

EMI testinde başarısız olma ihtimali var mı? Bu konuda ne yapabilirim?

"Farklı bir veri yolu / ADC kullanın" dahil olmak üzere her türlü cevabı arıyorum, ancak "Tüm ADC'leri aynı PCB'ye yerleştirin" veya "Her şeyi metal bir kutuya koyun" gibi cevaplar da dahil değil. . Özellikle diferansiyel otobüsler de dahil olmak üzere SPI'nin Düşük-EMI alternatifleriyle ilgileniyorum.

İşte başvuru ile ilgili bazı bilgiler. Daha fazla bilgiye ihtiyacınız olursa lütfen bana bildirin:

  • Her ADC panosuna 6 kablo (Güç, GND, CS, CLK, MOSI, MISO) gider.
  • ADC'ler şu anda MCP3208’dir (Microchip 8-channel, 12-bit)
  • Ben çalışıyorum umutsuzca böylece tellere koruyucu gerçekten bir seçenek değildir ekleyerek, uzay kısıtlı bir uygulama.
  • Bir tür diferansiyel veri yolu kullanmak iyi olurdu (yalnızca bir veya iki çift), ancak yalnızca farklı haberleşmeli ADC'ler çoklu MSPS LVDS tipleri gibi görünüyor.
  • CAN muhtemelen çok yavaş ve aynı zamanda bu tür bir alan kısıtlaması olan uygulama için biraz hantal.
  • Örnekleme hızı: Her kanalı 1kHz'de örneklemem gerekiyor.

Katma:

Sadece alan kısıtlamaları hakkında bir fikir vermek için:

MCP3202 ile Küçük PCB

Burada ADC PCB'lerden birini görebilirsiniz. Bu aslında bir MCP3208 yerine bir MCP3202'ye sahip, ancak uyumlu (ish). TSSOP 8 paketinde. PCB 11mm x 13mm'dir. Siyah kablo 2 mm çapındadır. Gördüğünüz gibi, bir konektör için yer bile yok ve teller doğrudan PCB'ye lehimleniyor, sonra saklanıyor. Bağlayıcı eksikliği, PCB alanı sınırlamaları yerine çevre alanı kısıtlamaları nedeniyledir.


4
Kabloların ekranlanması nasıl pratik olmaz?
timrorr,

Üzgünüm, daha net olmalıydım. 2 tel diferansiyel olan CAN gibi bir şey demek istedim. Açıkçası tel sayısını iki katına çıkarmak imkansız. Soruyu değiştirdim.
Rocketmagnet

1
Özellikle ne tür bir test / sertifika almaya çalışıyorsunuz?
Joel B,

1
@JoelB - Üzgünüm, EMI için biraz yeniyim, bu yüzden gerçekten emin değilim. Ancak bir noktada EMI testi yapmak zorunda kalacağız. Muhtemelen, böyle bir şey varsa, bir tür normal / tüketici düzeyindeki EMI testi.
Rocketmagnet

1
@Rocketmagnet, Ohh, çok kolay bir anten yaptığınızı anlamıyorum. Bunun için tasarım yöntemleri var, o daha çok işe yarıyor, ancak eğer bir EMI testinin sizin için kontrol edeceği herhangi bir frekansı taşımıyorsanız, iyi olacağını, diğer yüksek frekanstaki gürültüyü başka yerlerden bağlamadığınızdan emin olmanız gerekir. (yüksek hızlı dijital tasarımın dediği gibi kolay). Sadece senin sorunun hakkında daha iyi bir fikir istiyorum Soruyu çok beğendim ve zaten + 1
Kortuk

Yanıtlar:


13

5 cm kablo üzerindeki 2 MHz SPI çok büyük değildir. FCC Sınıf B'yi ve CE eşdeğerini geçen 10 cm kablo üzerinde 30 MHz SPI yapıyorum. Anahtar, iyi bir kablonuz olduğundan emin olmak (döngü alanı için elinizden geldiğince kontrol etmek) ve sinyallerinizi uygun şekilde sonlandırmaktır.

Güç / GND sinyallerini kablonun ortasındaki bir yere koyarak döngü alanını kontrol edersiniz: Her iki konektörün ortasına, ancak kablo demetinin ortasına da. Normalde sinyal başına bir gücünüz veya GND'niz olur, ancak bu nadiren pratik bir çözüm olduğundan, sahip olduklarınızla en iyisini yapmanız gerekir. Ayrıca, PCB'lerin üzerine kablonun her iki ucunda bir veya iki ayırma kapağı taktığınızdan emin olun.

Kabloların üzerinde kontrollü bir empedans olmadığından, sinyalleri düzgün şekilde sonlandırmanız biraz zor olacaktır. Yapacağım şey, kablonun her iki ucundaki PCB'ye bir RC filtresi koymak. RC filtresi kablo tarafında C ve çip tarafında R'ye sahip olacaktır. Sinyal sürücüsünde, yaklaşık 75 ohm'luk bir R ve yaklaşık 1 nF'lik bir C ile başlardım. Alıcıda, R yaklaşık 10 ohm olacaktır ve C hala 1 nF olacaktır. Prototipleri oluşturduktan sonra farklı değerler denemelisiniz. Temel olarak R ve C için daha yüksek değerler istiyorsunuz, ancak o şeyin çalışmasını durduracak veya sinyal seviyeleri çok zayıflayacak kadar yüksek değilsiniz. Sinyallerinizin kenarları çok yuvarlatılmış gibi görünmelidir, ancak zil çalmamalı ve sinyal geçiş bandında (genellikle 0,8 - 2,0 volt) saatler iyi olmalıdır.

ESD koruması için en az 3 nF'lik bir başlık değeri idealdir, ancak bu, uygulamanızda bir sorun olmayabilir.


Cevabınız için teşekkürler. Evet, empedansın pcb'den konnektöre kabloya vb. Geçerken birkaç noktada değiştiğinden eminim. Ayrıca CS, CLK ve MOSI hatları tüm ADC'lerde paylaşılıyor. Bu bir fark yaratır mı?
Rocketmagnet

@Rocketmagnet RC filtreleri temelde aşırı sonlandırılacak. Bu yüzden sinyaller çok yuvarlak görünecek. Bu sizin için birkaç şey yapacak, en önemlisi empedansı çok kritik değil. CS, CLK ve MOSI sinyallerini kablolar arasında paylaşılmaması için yeniden oluşturmalısınız. Bazen bu mümkün olmayabilir, bu yüzden ikinci (uzak) en iyi her kablo için ayrı sonlandırma kullanmak ve sonlandırmayı paylaşmamaktır.

2

CAN, bu tür uygulamalarda neredeyse kesinlikle en iyi tercihiniz. Diferansiyeldir ve aslında her karta giden kablo sayısını azaltmalıdır. Yedi fiş, yonga başına sekiz kanal, kanal başına on iki bit örnekliyorsanız, bu örnekleme süresi başına 672 bit veridir. 1 kHz numunelerde, 1 Mbit transfer hızı, bu örnekleme zamanı 1000 bit. Bu size genel gider için fazla yer bırakmaz, bu nedenle yerleşik iki ayrı CANbus denetleyicisine sahip bir mikro denetleyici kullanmayı düşünebilirsiniz. (Microchip birkaç tane yapar, dsPIC 30F6012a'yı kullanırım.) A / D'lerinizi iki veriyoluna bölün her ikisinde de merkezi mikroişlemci ve çok fazla bant genişliğine sahip olmalısınız.

Diğer taraftan, A / D dönüştürücülerinin mikro denetleyicilerle değiştirilmesini düşünebilirsiniz. dsPIC 30F4013 orada iyi bir seçim olabilir. 13 12 bit A / D kanalları, ayrıca CANbus.

Alternatif olarak, SPI’yi RS-485 gibi diferansiyel voltaj protokollerine çevirebilir. Ama bunun hakkında akıllıca yorum yapacak kadar bilgim yok.


Cevabınız için teşekkürler. CAN'ı düşündüm ama sonuçta, bileşenler için yeterli alan olduğundan emin değilim. Kullanılabilir küçük CAN alıcıları varsa, o zaman mümkün olabilir. Bulabildiğim en küçüğü SOIC 8 gibi görünüyor.
Rocketmagnet

2
!! Boşluk kısıtlı derken, onu kastediyorsun! Bu cevaba bakabilirsiniz : electronics.stackexchange.com/a/30596/7523 Görünüşe göre, bu durumda bir alıcı-verici kullanmamaktan kurtulabilirsiniz. Yapabileceklerini bilmek isterim kesinlikle!
Stephen Collings

3
Heh. Bağlandığınız cevabın adını kontrol edin.
Rocketmagnet

1
Yani benim hakkımda söylediğim şey akıllıca yorum yapacak kadar bilgim yok mu? Evet.
Stephen Collings,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.