SDRAM Prototip ve Üretim Woes


11

ISSI ( IS42S32800D ) bir SDRAM modülü ile birlikte bir LPC1788 kullanarak bir tasarım var . Bu bir 32bit arayüzdür.

Bu tasarımı çıkardım ve 6 katmanlı prototip yapan bir PCB üreticisi ile yapılmış bir prototipim vardı. Prototip PCB iyi çalışıyor. Daha sonra PCB'yi her zamanki PCB tedarikçimden küçük hacimli bir partide (100) üreteceğimizi düşündüm. Onlara prototipimin hiçbir sorun olmamasını sağlamak için kullandığı bilgileri verdim.

Ancak! Üretim panosunda büyük sorunlar yaşıyorum. İlk başta SDRAM'dan prototip kartımda kullandığım kodla hiçbir yanıt alamadım. Önceki tahta 120Mhz'de çalışıyordu, bu yüzden bu yeni tahtada bir sorun olduğundan emindim. Daha sonra insanların SDRAM veri hatlarında Tekrarlayıcı Modu kullanmanızı önerdiği bir yazı buldum (bunu daha önce kullanmamıştım) ve bu SDRAM'dan bir yanıt aldı, ancak kararlı değil. 16 ya da öylesine adrese yazabilirim, ama sonradan okuduktan sonra geri dönen veriler (her adreste) en son yazdığım verilerdir (muhtemelen Tekrarlayıcı Modu nedeniyle). Tekrarlayıcı modunu devre dışı bıraktığımda, döndürülen veriler 0xFFFFFFF olur. Şimdi 48Mhz'de bağlanmaya çalışıyorum, zamanlamaları için en düşük yapılandırma.

Her iki kartta da 22Ohm'luk aynı sonlandırma dirençlerini (Veri hatlarında) kullanıyorum, veri hatları ortalama 3 cm uzunluğunda. Saat çizgisi 2.4 cm uzunluğundadır. Adres satırları ortalama 3.8 cm uzunluğundadır.

Bu çok spesifikasyon dışında mı, çok daha kısa ise saati daha uzun geciktirmeli miyim? Bu tahtalar için dikişsiz bir üretim çalışması umduğum tasarımla ilgili hiçbir şeyi değiştirmediğim için burada gerçekten sıkıştım.

Maximum Data Line Length: 59mm (Although this includes the branch to the NAND Flash)
Minimum Data Line Length (Ctrl to Res): 18mm
Maximum Address Line Length: 44mm
Minimum Address Line Length: 24mm
CLK: 24.5mm
CKE: 25mm
CAS: 28mm
RAS: 28.7mm

Orijinal (çalışan) prototip için PCB yığın yapılandırması: resim açıklamasını buraya girin

İşte üretim (çalışmayan) PCB'leri için PCB yığın yapılandırması resim açıklamasını buraya girin

SDRAM için yönlendirme: SDRAM Yönlendirme


3
Empedans kontrolü proto ve üretim çalışmaları arasında aynı mıydı?
dext0rb

Emin değilim. Bu parametreleri tahta evler için uygun şekilde tanımlamak için sinyal bütünlüğü hakkında yeterli bilgim yok. Ne yaptığımı bilmeyen parametreler belirlersem sorunları düzeltmek yerine sorun çıkaracağımı hissettim.
James

Ve empedansı doğrulamak için onlara ödeme yaptınız mı (@dextorb kontrol etmenizi önerdi)?
Brian Carlton

Önemli olan ortalama uzunluk değil. Grup içindeki minimum ve maksimumdur.
Brian Carlton

1
Saat izindeki sinyal bütünlüğü SDRAM pinlerine nasıl bakar?
Brian Carlton

Yanıtlar:


10

Bu berbat bir yığın. Çekirdekleriniz 0,2 mm olmalı ve kalınlığınızın dengesi 3 ve 4 katmanları (İç 1 ve İç 2) arasındaki prepregde olmalıdır.

Bunun nedeni, bir iz üzerindeki herhangi bir sinyal için, hemen altındaki düzlemde bir dönüş akımı yolunun olması gerektiğidir. Düzlemdeki geri dönüş akımı, endüktansı (yani döngü alanı) en aza indirmeye çalışacaktır, bu da sinyal izi altında takip etmeye çalışacağı anlamına gelir. Sinyal izi düzlemden uzaksa, bir dönüş yolu bulmak için diğer izlere bakacaktır. Bu dövüştüğünüz elektromanyetik.

Ayrıca, iç katmanları referans düzlemlerinden farklı mesafelerde (hatırlayın, tüm besleme rayları AC'de topraklara benziyor!) Dış katman mesafelerine kıyasla, katmanları her değiştirdiğinizde bir empedans değişikliği yaratırsınız (bununla dengelenebilir) iz genişliği değişti, ancak sadece bir kez sorun bulmaya değer) ve çapraz konuşma ve diğer parazit potansiyelini önemli ölçüde artırıyorsunuz.

Kontrol etmeniz gereken başka bir şey de kullanılan malzemelerdir: örneğin "FR-4" olarak adlandırılan 20'den fazla farklı malzeme vardır. Genellikle kullandığım şeylere 370-HR denir. Yüksek hızlı 100-500 MHz sinyalleri ile oldukça iyi çalışır.

Saat hattı ile ilgili olarak, son SDRAM tasarımımda IIRC, tüm adres ve veri hatları dengelendikten sonra, kenarı en son olacak şekilde (izi 1 cm kadar uzundu) ayarladım. Yani, evet, saati geciktirmek denemeye değer. SDRAM hatlarında empedans kontrolüne ihtiyacım yoktu.

Sonlandırma dirençleriniz hat sürücülerine mümkün olduğunca yakın yerleştirilmelidir. Yaklaşık 0,5 cm içinde değilse, yansımalara neden olabilir ve bu da aşma ve zil sesiyle sonuçlanabilir. IMHO, 3 cm iz uzunluğu sonlandırma dirençlerine ihtiyaç duymak için çok kısa (onları 6-10 cm'den başlayarak kullanıyorum); sadece onları çıkarmayı denedin mi?

Kontrol edilecek başka bir şey de uçaklarınız: Uçak kesimlerini geçen sinyal izleriniz var mı? Bu büyük bir hayır-hayır, çünkü dönüş akımını kesimin etrafında uzun bir yol izlemeye zorlar.

Son olarak, bu tasarımlarda kenar hızı büyük bir sorundur. Birçok çip gereksiz yere kısa yükselme ve düşme sürelerine sahiptir ve saat frekansını azaltmanın bunun üzerinde bir etkisi yoktur . Bu hızlı kenarlar yansıma oluşturmak için mükemmeldir. 22 ohm terminatör dirençlerinizin düzeltmeye çalıştığı budur: kenarları yavaşlatırlar. Gerçi, gerçekten zorluyorsanız, en uygun sonlandırma tasarımını bulmak için Mentor Graphics'in HyperLynx gibi bir araç kullanılabilir.

Tüm bunları ve çok daha fazlasını kapsayan size önerebileceğim bazı kitaplar ve iş yerinde yemin ediyoruz:

Bu kitaplar EMI azaltma, ekranlama tasarımı, PCB yığını, empedans kontrolü, güç kaynağı ayrıştırması ve çok daha fazlasını içerir. Ayrıca, Bay Ott bu konuda seminerler vermektedir (kitabının ücretsiz bir kopyası ile birlikte gelir).


Henry Ott'un kitabı 1980'de benim için bir İncil. Ancak onu okumadan önce, EMC testi başlamadan önce mekanik / elektriksel tasarımda RF sızıntısını görme konusunda zaten yetenekliydim. Yuvalar, radyatörler ve dielektrik antenler ve G / Ç veri yolu kabloları giriş ve çıkış için en iyi antendi.
Tony Stewart Sunnyskyguy EE75

Girilen simülasyon verilerime dayanan Hyperlynx simülasyonuna göre iyi bilgi, 22 Ohm dirençlere ihtiyaç duyuluyor, aksi takdirde SDRAM'dan veri merkezlerindeki dalga formu (1ns yükselme zamanında tahrik ediliyor) korkunç bir şekilde bozuluyor ve bazı yansımalar referans voltajını geçiyor.
James

Ayrıca, yığın önerisi iyidir. Prototip ve üretici arasındaki yığınta küçük bir fark vardır. Görmeniz için Soruya diyagramları ekliyorum. Ayrıca - Eric Bogatin tarafından Sadeleştirilmiş Sinyal Bütünlüğü okuyorum. İyi bilgi burada ama sindirmek ve önerileri ile yeni bir tahta düzeni başlamak için yeterli batacak biraz zaman alacak.
James

Değer için OP, aslında Altium pics gibi görünüyordu vardı. Altium, IBIS dosyalarını kullanabilen kendi sinyal bütünlüğü araçlarına sahiptir. Ayrıca, çapraz konuşmayı da inceleyebilir. Ancak bunu yapmak için tam yığın bilgisi gerekir.
ajs410

1
Bu noktada, en çok dirençlerden endişeliyim. Onlar ait oldukları sürücüler yerine izlerin ortasında gibi görünüyorlar. Bu uygulamalarda, bu en iyisidir değil direnç paketlerini kullanmak, ancak bunun yerine küçük bireysel rezistanslar kullanılır. Direnç paketlerini kullanmanız gerekiyorsa , düzeni daha az çılgın hale getirmek için dirençleri değiştirerek çok daha iyi bir iş yapmak için zaman ayırmalısınız . Bu, paket anahatları olmayan ve katmanların yarısını görmeyi zorlaştıran düzeninizden söyleyebileceğim her şeyle ilgili.
Mike DeSimone

4

Bu tür sıklıkta, parça uzunluğu tipi sorunlarının büyük olasılıkla büyük bir sorun olmayacağını düşünüyorum, kesinlikle gecikme sorunları için. Sorunlar yeni bir PCB ile başladığında, yapılacak ilk şey tüm satırları süreklilik açısından test etmek olacaktır (şemanızda hata olması durumunda şematiğinize değil, veri sayfasına karşı) ve dalga formlarının en az akla yatkın - kapsamınız zamanlama ayrıntılarını kontrol etmese bile, açık veya kısa pimler varsa oldukça açık olmalıdır.

Bu tür şeyleri yeterli bir kapsam olmadan yapmak potansiyel tehlikelerle doludur - ne kadar marjınız olduğunu nasıl bilebilirsiniz? Çalışsa bile, doğru kenarda olup olmadığınızı ve toleranslar, sıcaklık veya Ayın Evresi nedeniyle saha / üretim hatalarına karşı savunmasız olup olmadığınızı nasıl anlarsınız?


2

2. ekleme Tasarımınızın marj testinden geçirildiğini ve kodun sorularınızda mükemmel olduğunu varsaydık. (değil) Aşağıdakileri doğrulamanızı öneririm;

  1. IO'yu hızlı dönüş yapacak şekilde yapılandırın ve giriş filtrelerini devre dışı bırakın
  2. Saatte giriş modunu etkinleştirin
  3. SDRAM arayüz pinleri için dönüş hızını artırmak için dönüş bitini (9?) Ayarlayın
  4. Tekrarlayıcı modunu etkinleştirin, çünkü bunlar çift yönlüdür ve bir CMOS girişi üzerinde yüzen bırakılmamalıdır.
  5. Hata hassasiyetini belirlemek için besleme gerilimini değiştirin.
  6. veri yolu pimi için varsayılan sıfırlama modu FUNC = 0X00, MODE = 0X02, HYSTERESIS = ETKİN, INVERT = DEVRE DIŞI ve SLEW = STANDART
  7. PINSEL_ConfigPin () işlevine yeni bir işlev değeri ile çağrılıyor, MODE'u INACTIVE (sıfırlama / çekme direnci yok) olarak sıfırlıyor ve HYSTERESIS'i kapatıyor mu?
  8. For / next döngülerini veya ayrık kodu mu kullanıyorsunuz;

    • LPC_IOCON-> P3_0 | = 1; // D0 @ P3.0
    • LPC_IOCON-> P3_1 | = 1; // D1 @ P3.1
    • LPC_IOCON-> P3_2 | = 1; // D2 @ P3.2 vb.
  9. Gerektiğinde WE pinini yeniden etkinleştirdiğinizi iddia ediyor musunuz?
  10. Kullanır mısın? * pPIN & = ~ (0x00000007); // İşlev bitlerini temizle "

Bir Sismik taşınabilir kayıt, değiştirilebilir zamanlayıcı mantık kartı için bir Fizik yüksek lisans öğrencisinden 1. CMOS tasarımımda hata ayıklamayı hatırlıyorum. Ürün yazılımı veya UC yoktu ama hiçbir zaman en kötü durum tolerans analizi yapmadı ve donanımın kendim tarafından bir düzine daha fazla pano oluşturulduğu ve hata ayıklandığı her yerde yarış koşulları vardı. Sismik Prof, Fizik Bölümü Başkanı'nı neden tahtalarda hata ayıklama yapamadığımı sormak için getirdi, ardından bileşen varyasyonunu, metastabil koşullar ve kullanılan saat kenarı nedeniyle zamanlama yarışı koşulları adı verilen birçok tasarım kusurunu ortaya çıkardı. Hala hala anlamadı, sonra bel seviyemden alçaktan yükseğe çıkmadan önce elimi kaldırırken kaç tane parmak açtığımı söylemesini istedim. Sonra dedi ki, bunu yapamazsın ve doğru bir cevap bekleyemezsin. Kesinlikle dedim. Bu ilkel bir yarış koşulu. Daha fazla karmaşıklık seviyesi ile daha az belirgin hale gelirler. U Manitoba 1973.

İlk eklendi: Hangi otobüs sonlandırma şemasını kullandınız? otobüs yöntem (1) tercih edilir, 1.25Vdc temiz mi?


  1. Bu kurullarda BİT için ödeme yaptınız mı? çıplak tahta testi bir zorunluluktur
  2. Gerber yerleşim talimatlarınızda empedans belirttiniz mi?
  3. Düzeninizde toleranslarla simülasyonlar yaptınız mı?
  4. Levhalardaki dielektrik sabiti ve pre-preg öncesi katmanlar, iz genişliği ve boşluğuyla birlikte stripline ve mikroşerit empedansını kontrol eder.

    Stripline için birçok ücretsiz çevrimiçi Z hesap makinesi vardır.

    Büyük pistlerde veya zemin düzlemlerinde kapasitansı ölçmeye ve her iki çıplak tahtayı da karşılaştırabilirsiniz.

    Ayrıca yüksek hız kapsamına sahip sinyallere bakın ve aşma ve saat <> veri göz modelini gözlemleyin.

Hatalar için basit bir açıklama olmalı, ama bulmak kolay değil. Ama bir kere temel sebebi bulduğunuzda ... bu hatayı bir daha yapmayacaksınız.

katma: Bulduğum başka bir hata, yığın yükseklik diyagramınızın Cu katman kalınlığını göstermediği ve yanlış olmadıkça veya Cu kalınlığı 0,039 mm (DEĞİL;) olmadığı sürece 6 katmana sığacak kadar yetersiz olmasıdır.


Sadece OP için bir yorum - OP Altium Designer kullanıyor görüyorum ve yazılıma entegre bir empedans hesap makinesi var. Ben çok kullanmadım ama orada bir yerde biliyorum!
dext0rb

2
Bir izi kablolarken (PCB görünümünde W tuşuna basın), Sekme tuşuna basın; tahmini empedansı göreceksiniz.
ajs410

genellikle düşük karmaşıklık için Qty 100 PWB's ICT (test) için ödeme yapmazdım, ancak bunların kör izleri var, bu yüzden ... dikkate alınması gereken bir şey ... ve çıplak bir tahtadaki kapasiteyi ölçmek V + <> GND
Tony Stewart Sunnyskyguy EE75

Bu kartlarda empedans kontrolü için ödeme yapmadım. Hyperlynx'teki (MentorGraphics) simüle edilmiş çizgiler, yönlendirilen tasarımım temelinde oldukça mükemmel (veya spesifikasyon dahilinde) dalga formları gösterdi. Bunu modellemek için her iletim hattını ve IBIS modelleri ile birlikte yeniden oluşturdum. Gerçek sinyalleri doğru bir şekilde araştırmak için yeterli bant genişliği kapsamım yok = (
James

1
Merhaba @TonyStewart, desteğiniz için teşekkürler. 1) Prototip kartı hızlı dönüş gerektirmedi. Hiçbir değişiklik olmadan etkindir. 2) Bunun ne anlama geldiğinden emin değilsiniz - saat çıktı mı? 3) Histeresiz etkinleştirildi. Hiçbir değişiklik olmadan devre dışı bırakıldı. 4) Protokolde artırılmış dönüş etkin değil. Hiçbir değişiklik olmadan etkindir. 5) Test edilmedi. 7) Pin Yapılandırma işlevi diğer bitleri değiştirmez. 8) Kontrol pimleri, veri / adres döngüsü için ayrık kod 9) WE'yi ne zaman etkinleştirmem gerekir? EMC kontrolörü bunu benim için yapmalı mı? 10) Bitler ayarlanmadan önce DEĞİLDİR. Siparişte başka bir prototipim var, gelecek hafta burada ol.
James
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.