Kurul Haberleşmesine Kısa Mesafeli Yönetim Kurulu


24

MCU’mda yaklaşık 4 cihaz bulunan bir SPI veri yolu çalışıyor. Bu veri yolunu gemiden uzak olacak şekilde genişletmek istiyorum, yani bazı PCB'lerin "ana" panele bağlanmasını ve işlevselliğini genişletmesini istiyorum. "Pedin yastığı" mesafesi şöyle olurdu:

ana kartın iz uzunluğu + Kablo uzunluğu + uzatma kartının iz uzunluğu

3 "+ 6" + 3 "= yaklaşık 12"

Tecrübelerime göre, yaklaşık 7 ns yükselme süresine sahip 1 MHz'lik bir sinyal bile, bir şerit kablo aracılığıyla bu mesafenin üzerinde 1 V'den fazla (ancak fazla zil sesi yoktu) atlıyordu. Kartlara aynı güç kaynağı tarafından güç verilecek.

görüntü tanımını buraya girin

Not: Burada yükselme sürelerini göremezsiniz ancak aşırı aşmayı görebilirsiniz - bu bir 3.3V sinyalidir. Ve evet, bu probdan toprağa çok kısa bir kabloyla doğru şekilde ölçülmüştür. Bu sitede sık sık tavsiye ettiği gibi. Bunun bir ölçüm hatası olduğunu sanmıyorum.

Sistemin 4 MHz'de çalışmasını istiyorum, ancak 2 MHz de kabul edilebilir. Maks. Bağlanmak istediğim pano sayısı yaklaşık 4 olacak ve bu da SPI veriyolunu yaklaşık 12 cihaza sahip olacak şekilde genişletecektir. Zaten böyle bir şey çalıştığım için kod üzerinden yönetmenin çok zor olacağını düşünmüyorum. Ek köle seçme çizgileri olması da sorun değil.

Ancak benim endişem SPI verilerini bir panodan diğerine nasıl göndereceğimiz. Sadece düz SPI göndermeli mi yoksa bir ucundan LVDS'ye mi dönüştürmeliyim ve sonra diğer uçtan SPI'ye mi dönüştüreyim?


1
Yükseliş zamanın nedir?
Kortuk

@Kortuk Maalesef listelemeyi unuttum, üzgünüm. Soru güncellendi.
Saad

7nS yükselme süresi, bu hızlı çığlık atıyor.
Kortuk

İki alakasız soru için özür dilerim. kullandığınız osiloskop nedir? 2. Halkalar neden bu kadar önemli?
richieqianle

Yanıtlar:


15

Temel kural, bağlantı uzunluğunuzun sinyalin dalga boyunun 1 / 10'undan daha uzun olması durumunda iletim hattı etkilerini hesaplamanız gerektiğini söyler.

görüntü tanımını buraya girin

İletim hatları, empedansta ani bir değişiklik gösterdikleri yerlerde yansımalara neden olacaktır. Yansıtılan sinyal orijinali ekler, verici tarafında tekrar yansıtır ve bu şekilde ileri geri gider. Sonuç grafikte gösterilmektedir: bahsettiğiniz aşma süresi ve bazı zil sesleri.

12 "kablo uzunluğu (30cm), 3m dalga boyunun 1 / 10'u veya 100MHz, 1MHz'dir ve hatta 4MHz bile burada çok fazla sorun yaratmamalıdır. Wouter'ın dediği gibi hattı sonlandırmak ilk önlem olabilir. girdi muhtemelen yüksek empedanstır ve bu asla iyi bir eşleşme değildir. Bağlantınızda üç farklı parça bulunduğundan (PCB, tel, PCB) karakteristik empedansı bulmak zor olacaktır. (PCB ve tel için de farklı olacaktır. bu nedenle, çok yüksek frekanslarda, kablo bağlantılarında da yansıma elde edersiniz.) Kısa uzunluk ve düşük frekans verildiğinde, sonlandırma direncinizin değeri kritik değildir, 100 mikrodenetleyici için çok düşük olabilir, çoğu 33mA (hatta 5V'da 50mA) tedarik etmiyorum. 1kΩΩΩ Direnç ile başlamak ve bizi ne kadar uzağa götürdüğünü görün.

düzenleme (yeniden soru güncelleme)
Yükseliş zamanı 7ns gibi görünüyor. Bu hızlı, Kortuk'un dediği gibi, en az 400 MHz'e kadar bir spektrumunuz var ve saatiniz sadece 1 MHz olsa bile, bu harmonikler aslında iletim hattı etkilerine maruz kalacaklar. Bunları filtrelemeye çalışın, 20MHz bant genişliği (4MHz saat için 80MHz) size yeteri kadar yükselme süresi kazandırır. Bu 20MHz'de bir tuğla duvar LPF ile filtrelenmiş bir 1MHz kare dalgadır :

görüntü tanımını buraya girin

Seri direnç yerleştirmek, hattın kapasitansı ile birinci dereceden bir LPF oluşturacaktır. Bunu 50pF'de tahmin edersek

R,=12π100M'Hz50pF=32Ω

100MHz kesme frekansı verir. Öyleyse 33 serisi bir direnç yükselme sürenizi kısaltmalıdır, ancak 4MHz'de iyi bir sinyal alabilmek için yeterince fazla bırakın.Ω


2
1 MHz frekansın önemi yoktur. Önemli olan yükseliş zamanı.
Rocketmagnet

@ stevenvh, Hedefe toprağa 1K direnç eklemeye çalıştı. Sivri uçlara yardımcı oldu ama aynı zamanda sinyal seviyesini de biraz düşürdü. Bu normal mi? Sinyalin oturduğu seviyeyi söylediğimde. Ayrıca 500 Ohm, 220 Ohm da aynı etkiyi denedim, ancak daha belirgindi.
Saad

@Saad - Biraz ne kadar? 1k'de 3.3V sadece 3mA'dır, sürücünün bunu sağlayabilmesi gerekir. Bazı iç dirençlere sahip olabilir, ancak bu birkaç on ohm'dur, bu nedenle seviye yalnızca% 2 veya 3 oranında düşmelidir.
stevenvh

@ stevenvh Hattaki direnci seri olarak unuttuğumu unuttum, bu yüzden belli ki biraz voltaj düşüreceğim. Aptal ben! Ancak, 180 Ohm'luk bir direnç bile çok yardımcı olmadı. Bu aşımı 4.5V'a getirdi. Sanırım çok daha düşük bir dirence ihtiyacım olacak ama sonra mevcut çekiliş için endişelenmeliyim.
Saad

Ayrıca, aktif sonlandırmayı dikkate almalı mıyım? Düşük direnç kullanmak, tüm panodaki güç gereksinimlerini artıracak ve veri yolu her zaman çalıştığından güç tüketimini artıracaktır. Schottky diyotları kelepçeler olarak kullanmak iyi olur mu?
Saad

6

Bu kadar kısa bir otobüs için, bir çizgiyi süren herhangi bir şeyi içeren seri olarak küçük bir direnç koymak isterim. Bu, iletim hattı teorisini hesaba katan teorik ideal yol değil, davanız için yeterince işe yarayacağını düşündüğüm pragmatik bir yaklaşım. Yeni başlayanlar için 47 deneyin ve ne yaptığını görün. Bu yardımcı olur ama yeterince değil, daha yüksek olabilir ama 120 Ω geçmem. Muhtemelen, bu aralığın herhangi bir yerinde, yeterince işe yarayan bir değer bulacağınızdır.


Bu yaklaşımı denedim, Olin. 100 Ohm'luk bir rezistans kullandım ve çekimi yaklaşık 500 mV düşürdü ve 4,7 V'den 4,3 V'a düşürdü. Bu hala 3,3 V'un üstünde bir volt! Yükselme zamanı, ilk 7'ye kıyasla 12 ns idi.
Saad

Cevabınızı yayınlarken dirençimi hesaplıyor gibiyim, Olin. Bunun için üzgünüm
stevenvh

@OlinLathrop Seri direncimi 330 Ohm'a yükselttim ve bu yükselişi 3.7V'a getirdim. Bundan oldukça memnunum. Yükselme süresi 10 ns idi. Sadece buna bağlı kalmalı mıyım yoksa yönetim kurulunun bir sonraki revizyonuna sonlandırma dirençleri mi koymalıyım? Soruyorum çünkü 120 Ohm'u geçmemenizi tavsiye ettiniz.
Saad

@ Saad: Diğer yüklerin hat üzerindeki etkisi konusunda endişeliydim ve gürültüye duyarlı hale gelmeye başladım. Sinyaller temizse ve hatlarda herhangi bir DC yükü (örneğin sadece yüksek empedanslı CMOS girişleri) yoksa, devam edin ve 300 Ohm'u kullanın.
Olin Lathrop

4

Sürücünüz yükü sürdürebiliyorsa, AFAIK aşan yükleme, sonlandırma ile elimine edilebilir. Aksi taktirde LVDS veya hatta RS485 gibi bazı özel sürücü / alıcı çifti kesinlikle işe yarar.


+1: SPI sinyallerini taşımak için sıklıkla LVDS kullanıyoruz.
Jason S

1

Geçmişte, SPI'yi şerit kablolar üzerinden yürütmekle, ciddi olarak tanımladığımdan daha uzun süren sorunlar yaşadım. Gürültü bağışıklığı gerçek bir sorun haline geldi ve bozulmuş komutlar çevre birimime ulaştı. CE gürültü dokunulmazlığı testinin başarısız olması yeterliydi. Daha sonra bu konuda sorun yaşarsanız, her panoya ayrı bir MCU koymanızı ve bunları CANbus üzerinden bağlamanızı öneririm.

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.