Saya memiliki desain menggunakan LPC1788 bersama dengan modul SDRAM dari ISSI ( IS42S32800D ). Ini adalah antarmuka 32bit.
Saya telah mengeluarkan desain ini dan membuat prototipe yang dibuat dengan pabrikan PCB yang melakukan 6 lapisan prototipe. Prototipe PCB berfungsi dengan baik. Saya kemudian berpikir saya akan mendapatkan PCB yang diproduksi dalam jumlah kecil (100) dari pemasok PCB saya yang biasa. Saya memberi mereka informasi tumpukan yang digunakan prototipe saya untuk memastikan tidak akan ada masalah.
Namun! Saya memiliki masalah besar dengan dewan produksi. Pada awalnya saya tidak dapat meningkatkan respons dari SDRAM apa-begitu dengan kode yang sama yang saya gunakan di papan prototipe saya. Papan sebelumnya bekerja pada 120Mhz jadi saya yakin ada yang salah dengan papan baru ini. Saya kemudian menemukan posting di mana orang menyarankan menggunakan Mode Repeater pada jalur data SDRAM (saya belum pernah menggunakan ini sebelumnya) dan ini menimbulkan respons dari SDRAM, namun tidak stabil. Saya dapat menulis ke 16 atau lebih alamat, tetapi kemudian dengan membaca selanjutnya data yang dikembalikan (di setiap alamat) adalah data yang saya tulis terakhir (mungkin karena Mode Repeater). Ketika saya menonaktifkan mode repeater, data yang dikembalikan adalah 0xFFFFFFF. Saya sekarang mencoba untuk terhubung pada 48Mhz, konfigurasi terendah saya punya waktu untuk.
Saya menggunakan resistor terminasi yang sama (pada jalur Data) dari 22Ohms di kedua papan, garis data rata-rata panjangnya 3cm. Garis jam adalah 2,4 cm. Garis alamat rata-rata sepanjang 3,8 cm.
Apakah ini terlalu tidak spesifik, haruskah saya menunda jam lebih lama jika secara substansial lebih pendek? Saya benar-benar terjebak di sini, karena saya tidak mengubah apa pun tentang desain yang saya harapkan untuk proses pembuatan yang mulus untuk papan ini.
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
Berikut adalah konfigurasi tumpukan PCB untuk prototipe asli (yang berfungsi):
Berikut adalah konfigurasi tumpukan PCB untuk PCB produksi (tidak berfungsi)
Berikut adalah perutean untuk SDRAM:
sumber
Jawaban:
Itu adalah tumpukan yang buruk. Inti Anda harus 0,2 mm dan keseimbangan ketebalan Anda harus di prepreg antara lapisan 3 dan 4 (Bagian 1 dan Bagian 2).
Alasan untuk ini adalah bahwa, untuk setiap sinyal pada jejak, perlu ada jalur arus balik di pesawat tepat di bawahnya. Arus balik di pesawat akan mencoba meminimalkan induktansi (yaitu loop area), yang berarti akan mencoba mengikuti jejak sinyal. Jika jejak sinyal jauh dari pesawat, itu akan mencari jejak lain untuk menemukan jalur balik. Ini adalah elektromagnetik yang Anda lawan.
Lebih jauh, dengan memiliki lapisan dalam pada jarak yang berbeda dari bidang referensi mereka (ingat, semua rel pasokan terlihat seperti tanah di AC!) Dibandingkan dengan jarak lapisan luar, Anda membuat perubahan impedansi setiap kali Anda menukar lapisan (meskipun ini dapat dilawan dengan jejak perubahan lebar, meskipun saya merasa sepadan dengan kesulitan hanya sekali), dan Anda secara signifikan meningkatkan potensi crosstalk dan gangguan lainnya.
Hal lain yang perlu Anda periksa adalah bahan yang digunakan: ada lebih dari 20 bahan berbeda yang menyebut diri mereka "FR-4", misalnya. Barang-barang yang biasa saya gunakan disebut 370-HR. Berperilaku cukup baik dengan sinyal 100-500 MHz berkecepatan tinggi.
Mengenai garis jam, IIRC pada desain SDRAM terakhir saya, saya telah mengatur jam sehingga ujungnya terjadi terakhir (jejaknya terpanjang 1 cm), setelah semua alamat dan jalur data stabil. Jadi, ya, memperlambat jam layak dicoba. Saya tidak memerlukan kontrol impedansi pada jalur SDRAM.
Resistor terminasi Anda harus ditempatkan sedekat mungkin dengan driver garis. Jika mereka tidak berada dalam jarak sekitar 0,5 cm, mereka dapat menyebabkan pantulan sendiri, menghasilkan overshoot dan dering. IMHO, panjang jejak 3 cm sangat pendek untuk membutuhkan resistor terminasi (saya menggunakannya mulai sekitar 6-10 cm); Sudahkah Anda mencoba mengeluarkannya?
Hal lain yang perlu diperiksa adalah pesawat Anda: Apakah Anda memiliki jejak sinyal yang melintasi pemotongan pesawat? Ini sangat tidak boleh, karena memaksa arus balik untuk mengambil rute panjang di sekitar cut.
Akhirnya, tingkat tepi adalah masalah besar dalam desain ini. Banyak chip memiliki waktu naik dan turun yang tidak perlu, dan mengurangi frekuensi clock tidak berpengaruh pada hal ini. Tepi cepat ini bagus untuk membuat refleksi. Ini adalah apa yang coba Anda perbaiki resistor terminator 22 ohm Anda: mereka memperlambat tepinya. Padahal, jika Anda benar-benar mendorongnya, alat seperti HyperLynx Mentor Graphics dapat digunakan untuk menemukan desain terminasi yang optimal.
Beberapa buku yang bisa saya rekomendasikan untuk Anda yang membahas semua ini dan lebih banyak lagi, dan kami bersumpah demi mereka di tempat kerja:
Buku-buku ini mencakup pengurangan EMI, desain pelindung, susun PCB, kontrol impedansi, decoupling catu daya, dan banyak lagi. Selanjutnya, Pak Ott mengajarkan seminar tentang topik ini (dilengkapi dengan salinan bukunya gratis).
sumber
Pada frekuensi semacam ini saya pikir masalah tipe lintasan tidak mungkin menjadi masalah utama, tentu untuk masalah keterlambatan. Ketika masalah dimulai dengan PCB baru, hal pertama yang harus dilakukan adalah menguji semua lini untuk kontinuitas (terhadap datasheet, bukan skematis Anda, jika skematis Anda memiliki kesalahan), dan lingkup setiap pin untuk memeriksa bahwa gelombang berada pada paling tidak masuk akal - bahkan jika ruang lingkup Anda tidak sampai untuk memeriksa rincian waktu itu harus cukup jelas jika ada pin yang terbuka atau pendek.
Melakukan hal-hal semacam ini tanpa ruang lingkup yang memadai dipenuhi dengan potensi bahaya - bagaimana Anda tahu berapa banyak margin yang Anda miliki? Bahkan jika itu berhasil, bagaimana Anda tahu apakah Anda benar atau tidak, dan rentan terhadap kegagalan bidang / produksi karena toleransi, suhu atau Fase Bulan?
sumber
2nd add Kami menganggap desain Anda telah diuji marjin dan kode tersebut sempurna dalam pertanyaan Anda. (tidak) Saya sarankan Anda memverifikasi yang berikut;
Apakah Anda menggunakan for / next loop atau kode diskrit seperti;
Saya ingat men-debug desain CMOS pertama saya dari mahasiswa pasca sarjana Fisika untuk rekaman portabel seismik, papan logika timer yang dapat diganti. Tidak ada firmware atau UC tetapi ia tidak pernah melakukan analisis toleransi kasus terburuk dan perangkat keras memiliki kondisi lomba di mana-mana ketika selusin papan lebih dibangun dan didebet sendiri. Prof Seismik membawa Kepala Departemen Fisika untuk bertanya mengapa saya tidak bisa membuat debug papan, maka saya harus menasihatinya variasi komponen memperlihatkan banyak kekurangan desain yang disebut kondisi waktu balapan karena kondisi metastabil dan ujung jam yang digunakan. Dia masih tidak mengerti, lalu saya bertanya kepadanya berapa banyak jari yang saya buka ketika saya mengangkat tangan sebelum mencapai tingkat pinggang saya dari rendah ke tinggi. Lalu dia berkata, Anda tidak bisa melakukan itu dan mengharapkan jawaban yang benar. Kataku, tepatnya. Itu adalah kondisi ras primitif. Mereka menjadi kurang jelas dengan lebih banyak tingkat kompleksitas. U dari Manitoba 1973.
1st menambahkan: Skema pemberhentian bus mana yang Anda gunakan? Metode (1) lebih disukai, Apakah 1,25Vdc bersih?
Konstanta dielektrik pada papan dan lapisan # pre-preg mengontrol impedansi stripline dan microstrip bersama dengan lebar jejak dan celah.
Ada banyak kalkulator Z online gratis untuk stripline.
Anda dapat mencoba mengukur kapasitansi pada trek besar atau bidang tanah dan membandingkan kedua papan kosong.
Lihat juga sinyal dengan cakupan kecepatan tinggi dan amati pola mata data overshoot dan clock.
Harus ada penjelasan sederhana untuk kesalahan, tetapi tidak mudah ditemukan. Tetapi begitu Anda menemukan akar masalahnya ... Anda tidak akan membuat kesalahan itu lagi.
menambahkan: Kesalahan lain yang saya temukan adalah diagram tinggi tumpukan Anda tidak menunjukkan ketebalan lapisan Cu dan ada cukup untuk masuk dalam 6 lapisan kecuali itu salah atau ketebalan Cu 0,039 mm (TIDAK;)
sumber