Pengembangan modul pada iMX8 dari NXP. Fitur transfer jejak DDR

Salam, Habr!



Beberapa waktu lalu, NXP memperkenalkan jajaran prosesor iMX8. Akan aneh untuk melewatkan kesempatan dan tidak mengembangkan modul baru. Siapa yang peduli dengan nuansa, saya minta dipotong (banyak gambar ringan).

Pendahuluan (lewati)


Kami telah lama "ketagihan" pada produk NXP, dalam hal prosesor, dan kami selalu mengikuti pembaruan terbaru perusahaan. Ketika produk baru dirilis, kami membeli referensi dan menerima sampel melalui distributor sehingga programmer segera memulai pengembangan chip, dan apparatchik, setelah menyelesaikan iterasi pertama, dengan cepat menerima model produk. Peran penting dalam semua ini dimainkan oleh dukungan teknis, yang menyediakan SDK dan HDK dan menjawab pertanyaan dari programmer dan apparatchik. Sementara yang pertama memulai perangkat lunak dan mulai menyesuaikannya dengan tugas kami, yang kedua mempersiapkan iterasi kedua papan dengan kesalahan yang diperbaiki, jika ada (misalnya, modul prosesor pada chip iMX7 yang dikembangkan oleh pelanggan ditugaskan dari iterasi pertama, dan yang kedua murni kosmetik, modul pada iMX6UL / ULL, pertama kali dikembangkan untuk proyek kami, dan kemudian menjadi produk terpisah,juga hampir tidak berubah setelah rilis pertama). Saat mengembangkan besi, kami mempertahankan sebagian sirkuit referensi (asalkan ini tidak merusak kualitas produk), sehingga pemasangan perangkat lunak dan perangkat kerasnya cepat dan tidak menyakitkan. Setiap iterasi baru mengarah ke tes baru, yang tidak hanya harus dijalankan kembali, tetapi juga ditambah, dengan mempertimbangkan semua perubahan. Setiap bongkar muat gerberas baru dari proyek memerlukan verifikasi (produksi sampel dan pengujiannya) sebelum memulai seri. Biasanya modul yang dikembangkan adalah solusi universal dan digunakan dalam berbagai proyek kami. Juga, beberapa pelanggan meminta penyesuaian modul, misalnya, dalam hal lubang pemasangan, jenis konektor, konfigurasi, atau sekaligus, untuk digunakan sebagai produk jadi dalam pengembangan mereka di masa depan.Saat mengembangkan besi, kami mempertahankan sebagian sirkuit referensi (asalkan ini tidak merusak kualitas produk), sehingga pemasangan perangkat lunak dan perangkat kerasnya cepat dan tidak menyakitkan. Setiap iterasi baru mengarah ke tes baru, yang tidak hanya harus dijalankan kembali, tetapi juga ditambah, dengan mempertimbangkan semua perubahan. Setiap bongkar muat gerberas baru dari proyek memerlukan verifikasi (produksi sampel dan pengujiannya) sebelum memulai seri. Biasanya modul yang dikembangkan adalah solusi universal dan digunakan dalam berbagai proyek kami. Juga, beberapa pelanggan meminta penyesuaian modul, misalnya, dalam hal lubang pemasangan, jenis konektor, konfigurasi, atau sekaligus, untuk digunakan sebagai produk jadi dalam pengembangan mereka di masa depan.Saat mengembangkan besi, kami mempertahankan sebagian sirkuit referensi (asalkan ini tidak merusak kualitas produk), sehingga pemasangan perangkat lunak dan perangkat kerasnya cepat dan tidak menyakitkan. Setiap iterasi baru mengarah ke tes baru, yang tidak hanya harus dijalankan kembali, tetapi juga ditambah, dengan mempertimbangkan semua perubahan. Setiap bongkar muat gerberas baru dari proyek memerlukan verifikasi (produksi sampel dan pengujiannya) sebelum memulai seri. Biasanya modul yang dikembangkan adalah solusi universal dan digunakan dalam berbagai proyek kami. Juga, beberapa pelanggan meminta penyesuaian modul, misalnya, dalam hal lubang pemasangan, jenis konektor, konfigurasi, atau sekaligus, untuk digunakan sebagai produk jadi dalam pengembangan mereka di masa depan.sehingga docking perangkat lunak dan bagian perangkat keras cepat dan tidak menyakitkan. Setiap iterasi baru mengarah ke tes baru, yang tidak hanya harus dijalankan kembali, tetapi juga ditambah, dengan mempertimbangkan semua perubahan. Setiap bongkar muat gerberas baru dari proyek memerlukan verifikasi (produksi sampel dan pengujiannya) sebelum memulai seri. Biasanya modul yang dikembangkan adalah solusi universal dan digunakan dalam berbagai proyek kami. Juga, beberapa pelanggan meminta penyesuaian modul, misalnya, dalam hal lubang pemasangan, jenis konektor, konfigurasi, atau sekaligus, untuk digunakan sebagai produk jadi dalam pengembangan mereka di masa depan.sehingga docking perangkat lunak dan bagian perangkat keras cepat dan tidak menyakitkan. Setiap iterasi baru mengarah ke tes baru, yang tidak hanya harus dijalankan kembali, tetapi juga ditambah, dengan mempertimbangkan semua perubahan. Setiap bongkar muat gerberas baru dari proyek memerlukan verifikasi (produksi sampel dan pengujiannya) sebelum memulai seri. Biasanya modul yang dikembangkan adalah solusi universal dan digunakan dalam berbagai proyek kami. Juga, beberapa pelanggan meminta penyesuaian modul, misalnya, dalam hal lubang pemasangan, jenis konektor, konfigurasi, atau sekaligus, untuk digunakan sebagai produk jadi dalam pengembangan mereka di masa depan.Setiap bongkar muat gerberas baru dari proyek memerlukan verifikasi (produksi sampel dan pengujiannya) sebelum memulai seri. Biasanya modul yang dikembangkan adalah solusi universal dan digunakan dalam berbagai proyek kami. Juga, beberapa pelanggan meminta penyesuaian modul, misalnya, dalam hal lubang pemasangan, jenis konektor, konfigurasi, atau sekaligus, untuk digunakan sebagai produk jadi dalam pengembangan mereka di masa depan.Setiap bongkar muat gerberas baru dari proyek memerlukan verifikasi (produksi sampel dan pengujiannya) sebelum memulai seri. Biasanya modul yang dikembangkan adalah solusi universal dan digunakan dalam berbagai proyek kami. Juga, beberapa pelanggan meminta penyesuaian modul, misalnya, dalam hal lubang pemasangan, jenis konektor, konfigurasi, atau sekaligus, untuk digunakan sebagai produk jadi dalam pengembangan mereka di masa depan.

Ini adalah cara yang biasanya kita beralih dari output prosesor ke munculnya produk baru kami. Terkadang sederhana dan cepat, tetapi Anda harus membuat peningkatan serius dalam waktu singkat, yang muncul saat pengujian.

Di mana untuk memulai?


Saya tidak akan menyelidiki pekerjaan persiapan yang mendahului dimulainya proyek - ini adalah koordinasi TOR, menyusun jadwal kerja, persetujuan estimasi, dll. Saya akan berbicara tentang beberapa langkah pertama yang dapat membantu secara signifikan mengurangi waktu pengembangan proyek, menggunakan iMX8 di Altium Designer sebagai contoh. Itu tidak akan menjadi sesuatu yang supernatural dan musykil, saya pikir banyak yang melakukannya, tetapi mungkin tidak semua.

Hal yang paling menakutkan, mungkin, ketika saya melihat dokumentasi untuk prosesor atau rangkaian yang sudah jadi, adalah prospek melacak RAM. Cepat atau lambat semua orang dihadapkan dengan ini, tetapi, seperti yang mereka katakan, lebih baik nanti, jika ada kesempatan seperti itu. Nah, jika Anda hanya menggunakan satu chip di perangkat, maka akan lebih mudah untuk melakukan penelusuran sendiri. Di bawah ini adalah contoh dari jejak DDR3L untuk Xilinx (papan 4-lapisan). Didesain dari awal, tidak ada keluhan.



Fig. 1. Jejak DDR3L RAM untuk Xilinx XC7A35T-1FTG256

Tetapi ketika Anda membutuhkan 4 bilah, dan bahkan pada sisi papan yang berbeda, untuk mengurangi ukuran. Berikut ini adalah contoh modul pada iMX6Q.



Fig. 2. Lacak 4 chip RAM DDR3 untuk NXP iMX6Q (2 di atas, 2 di bawah - satu di bawah yang lain)

Ini juga bukan tugas yang luar biasa, tetapi saya tidak melihat titik di dalamnya (saya ulangi, sayangnya ini tidak selalu terjadi) jika dapat disederhanakan sambil menjaga kualitas produk yang di-debug dan diuji (dalam kasus kami, ini adalah referensi yang dapat Anda "sentuh" ) Pada iterasi pertama, hal utama adalah chip dijalankan dan sebanyak mungkin antarmuka bekerja. Ini berarti bahwa setidaknya memori bekerja dengan kami, semua daya yang diperlukan dipasok dan tumpukan papan dipilih dengan benar. Pekerjaan lebih lanjut akan dilakukan untuk meningkatkan parameter papan dalam hal kinerja perangkat. Jadi, prioritas pertama bagi kami adalah memori (operasional dan non-volatile) dan daya.

Bukan rahasia bahwa untuk prosesor yang diproduksi secara massal dan memiliki dukungan dari pabrikan, Anda biasanya dapat menemukan set lengkap dokumentasi (pengecualian adalah produk di bawah NDA, produk baru tanpa dukungan, dll.). Saya, pada tahap pertama, hanya akan tertarik pada beberapa dokumen - ini adalah lembar data, skema, dan jejak papan referensi. Lebih lanjut, itu semua tergantung pada dalam bentuk apa dokumentasi ini akan ditransfer dan di mana sistem CAD Anda bekerja. Saya hanya bekerja di Altium Designer dan karena itu saya tidak dapat menggunakan sirkuit dan PCB dari produsen, karena mereka biasanya datang dalam format yang berbeda. Masalah lain dalam mengkonversi proyek dari program pihak ketiga adalah ketidakcocokan bidang basis komponen, dan sebagai akibatnya, ketidakmungkinan membongkar daftar elemen. Dan, yang sangat menyedihkan adalah kurangnya koneksi antar komponen (tidak selalu, tetapi lebih sering).

Pada artikel ini saya ingin berbicara tentang bagaimana Anda dapat mentransfer sebagian proyek ke Altium dengan sirkuit yang dikonversi dan PCB.

Paket bawaan Altium Designer, yang disebut Import Wizard, memungkinkan Anda untuk mengimpor file dari sistem CAD lainnya. Secara pribadi, ini disertai dengan tarian konstan dengan rebana, karena selain Altium, misalnya, Allegro harus dipasang, tetapi saya tidak akan membicarakannya. Ini didedikasikan untuk video dan artikel individual di Internet. Konversi, biasanya, tetapi tidak selalu, tidak memungkinkan Anda untuk mendapatkan konsep kerja, yang tidak saya butuhkan. Untuk pekerjaan kami, kami membutuhkan file PCB dan lebih disukai skema. Sebagai contoh, saya akan menggunakan proyek referensi di iMX8 - "MCIMX8M-EVK-DESIGNFILES".



Fig. 3. Papan Referensi MCIMX8M-EVK-DESIGNFILES

Karena saya berencana untuk mengembangkan modul, saya tidak akan memerlukan sebagian besar antarmuka - mereka akan diimplementasikan pada motherboard. Bahkan gambar menunjukkan bahwa Anda harus menyusut banyak ketika mengatur komponen dan dari pcb saya hanya dapat mengambil jejak LPDDR4 (MT53B768M32D4NQ-062) dan PMIC (pengontrol daya untuk prosesor MC34PF4210A1ES). kartu eMMC dan SD jauh dari chip, mereka harus ditelusuri kembali, tetapi ini bukan masalah.

Perpustakaan komponen


Untuk perpustakaan saya dari proyek MCIMX8M-EVK-DESIGNFILES, saya hanya mengambil beberapa komponen, termasuk prosesor, memori, dan PMIC.

Mari kita lihat komponen iMX8. Di bawah ini adalah screenshot dari perpustakaan. MIMX8MQ7DVAJZXA memiliki 14 bagian digabungkan menjadi satu komponen. Pemisahan ini memungkinkan Anda untuk lebih lanjut mendistribusikan antarmuka pada lembar yang berbeda (bagian sirkuit, yang digabungkan menjadi satu proyek). Misalnya, "BAGIAN A" adalah semua tentang USB, "BAGIAN D" adalah MIPI DSI, "BAGIAN G" adalah semua SAI, dll. Ke depan, saya akan mengatakan bahwa proyek saya hanya memiliki 12 lembar skema, masing-masing, saya menggabungkan beberapa elemen untuk kemudahan membaca.



Fig. 4. Skema MIMX8MQ7DVAJZXA

Memiliki komponen seperti itu setelah impor, saya menghindari membuatnya dari awal, sehingga secara signifikan mengurangi kemungkinan kesalahan dalam rangkaian. Sekarang tentang apa yang harus diperbaiki dalam parameter komponen.



Gbr.5. Skema MIMX8MQ7DVAJZXA

Untuk komponen yang berbeda, jumlah parameter bisa berbeda, tetapi beberapa bidang harus sama sehingga Anda nanti dapat mengunggah daftar komponen untuk pemesanan dan perakitan. Bidang di sebelah kiri diimpor dari referensi. Di sebelah kanan - yang saya perlukan untuk pekerjaan lebih lanjut. Resistor, misalnya, memiliki lebih banyak parameter, kapasitor lebih banyak, dll. Dalam contoh saya, set parameter minimum yang diperlukan dengan header yang saya butuhkan.

Dengan cara yang sama, saya mengkonversi dan mengubah RAM dan pengontrol daya. Selanjutnya, saya membuat proyek baru (kira-kira mengetahui berapa banyak lembar yang akan saya miliki), mentransfer bagian dari sirkuit dengan mengikat di sana, dan mengganti komponen yang diimpor dengan saya sendiri. Hasilnya adalah potongan-potongan sirkuit yang sangat mirip dengan aslinya. Dalam artikel ini saya tidak akan berbicara tentang struktur proyek, hubungan antara lembar, dll., Jadi mari kita lanjutkan.

Bagian paling sederhana dari pekerjaan telah dilakukan. Sekarang Anda dapat memulai tahap kedua - ini adalah transfer komponen pcb perpustakaan.

Ini hampir sama seperti sebelumnya, tetapi bukannya parameter - lapisan. Dalam komponen saya, saya menggunakan seperangkat lapisan tetap. Selain "top" standar, "overlay atas", "masa lalu atas", dll., Misalnya, dalam "mekanik 1" Saya menggambar garis besar komponen, model 3D-nya dan meletakkan ".Designator" - ini dilakukan agar nanti lebih mudah untuk membongkar gambar perakitan (dan lainnya). Semua bidang tambahan yang tidak saya gunakan dihapus. Jadi, saya memiliki sekitar 15 di antaranya, bukan 24, seperti setelah impor. Seringkali untuk BGA dan QFN perlu untuk mengubah pembukaan topeng bantalan, membuat penyesuaian lain pada kemampuan produksi, dll.



Fig. 6. pcb MIMX8MQ7DVAJZXA

Sekarang dalam properti skematis Anda perlu menghubungkan komponen dengan PCB. Untuk lebih memahami semua yang ditulis di atas, Anda dapat menonton video instruksional tentang cara membuat perpustakaan untuk Altium.

Dalam dua tahap persiapan pertama, saya berhasil membuat komponen perpustakaan yang sekarang dapat digunakan dalam proyek. Butuh waktu jauh lebih sedikit daripada jika saya melakukannya dari awal.

Lacak transfer


Tahap ketiga adalah yang paling sulit - itu adalah pengalihan sebagian jejak dari papan referensi ke proyek. Anda harus sangat berhati-hati. Biasanya, kesalahan impor memunculkan kesalahan transfer (antara lingkungan pengembangan), jadi Anda hanya perlu "meminjam" apa yang Anda butuhkan, sesuatu yang akan membutuhkan banyak waktu dan usaha. Saya terutama tidak merekomendasikan memindahkan vias, poligon, guntingan dalam poligon, dan aturan untuk DRC (Desain -> Aturan ...).

IMX8 dilacak pada 10 lapisan, jadi saya akan menggunakan tumpukan yang sama dengan urutan lapisan yang sama. Untuk kenyamanan bekerja dengan proyek MCIMX8M-EVK-DESIGNFILES, saya akan menyembunyikan semua poligon.



Gbr. 7. Papan Referensi MCIMX8M-EVK-DESIGNFILES. PCB

Itu terlihat menakutkan. Sangat menakutkan. Tampaknya pada ini Anda sudah bisa menutup Altium dan menangis. Untuk kenyamanan, Anda dapat menyembunyikan lapisan yang tidak perlu sama sekali, tetapi ini tidak akan membantu secara radikal, tetapi demi lapisan akan terlihat lebih atau kurang sederhana. DDR bercerai pada 4 lapisan, tetapi saya tidak membawa bagian bawah secara kebetulan (lebih lanjut tentang itu di bawah).



Gbr. 8. Melacak LPDDR4 MCIMX8M-EVK-DESIGNFILES berdasarkan lapisan

Jika Anda telah mencapai titik ini dalam proyek Anda, maka setengah dari pekerjaan transfer, atau mungkin seluruh proyek, telah dilakukan.

Mungkin Anda sudah menebak apa yang perlu dilakukan selanjutnya? Ya, itu hanya menyalin lapisan demi lapisan dengan benar. Saya akan memberi tahu Anda bagaimana saya melakukannya untuk menghindari kesalahan sederhana.

Pertama-tama, saya membuka papan referensi dan menambang, dengan komponen dimuat dari sirkuit pada dua monitor (opsi ini paling nyaman untuk pengembangan). Saya menyalin prosesor dan memori dari papan referensi ke diri saya sendiri (ini diperlukan untuk mengekspos komponen ini dengan mempertimbangkan jejak yang ada).



Gambar 9. Pengaturan bersama antara memori dan prosesor (referensi di sebelah kiri)

Setelah itu, perlu untuk menginstal prosesor dan memori board kami di atas yang terpasang dengan benar, dan setelah itu cukup lepaskan komponen yang disalin dari referensi.



Gbr. 10. Lokasi prosesor dan memori yang benar

Jalur komunikasi yang berlebihan dapat disembunyikan untuk sementara waktu dan melanjutkan untuk mentransfer jejak secara langsung.

Anda perlu menggunakan dua cara untuk menyalin kabel. Yang pertama adalah yang paling sederhana dan paling lama - menyalin konduktor satu per satu. Anda tidak perlu menyalin semua koneksi dengan cara ini - itu akan memakan banyak waktu, tetapi kadang-kadang lebih mudah. Misalnya, ambil sinyal guncangan pada bantalan AE14, AD14, AE12 dan AD12. Klik RMB pada penjelajah, pilih item menu Temukan Objek Serupa ..., di jendela yang muncul, tandai nama penjelajah dan lapisan (Anda dapat menyalin langsung dari semua lapisan, termasuk lubang).



Fig. 11. Salin satu konduktor dalam satu lapisan (atas)

Selanjutnya, tekan Ctrl + C dan atur mouse ke pad prosesor. Kami pergi ke papan kami dan tekan Ctrl + V dan rekatkan. Kami ulangi untuk keempat konduktor dan menempatkan lubang di bantalan memori untuk pergi ke bawah - ada resistor. Jika Anda membuat salinan di semua lapisan, maka resistor akan lebih mudah dipasang.



Gambar 12. Menyalin satu konduktor

Gambar 12. (kanan) ada konduktor terpisah (dengan salib mouse) - ini adalah contoh menyalin konduktor di semua lapisan dengan vias. Inti dari metode ini adalah ketika Anda menyalin konduktor dan "mengaturnya ke pad", dibutuhkan nama pad (Anda harus berhati-hati - jika Anda menyalin konduktor ke pad lain , itu akan mengambil nama pad lainnya ).

Bahkan sekarang Anda dapat mentransfer semua konduktor dari referensi ke papan Anda sendiri, tetapi ada cara yang lebih mudah (ada beberapa dari mereka, tetapi mari kita fokus pada satu), itu bagus untuk menyalin grup konduktor dalam satu lapisan. Untuk mulai menyalin konduktor dari lapisan kedua (dan selanjutnya), perlu untuk memindahkan konduktor atas dari semua bantalan prosesor, jika tidak, sambungan konduktor akan terputus (kita perlu mentransfer vias dari atas ke lapisan lain, sehingga konduktor kemudian terikat pada mereka) .



Gbr. 13. Salin semua konduktor dengan vias ke atas

Sekarang saya memiliki semua bantalan dilepas dari prosesor dan mereka dapat digunakan pada lapisan lain. Artinya, di lapisan lain, saya dapat mengikat konduktor tanpa takut mereka akan menjadi NoNet (konduktor menggantung "di udara" yang tidak mengangkat). Selanjutnya saya akan mentransfer layer 6 (yang ketiga, jika Anda melihat Gambar. 8.), untuk menunjukkan hack lain. Semua sama, pilih, salin dengan penjilidan di setiap lubang atau kertas dan tempel.



Fig. 14. Menyalin semua konduktor dengan vias dari layer 6

Apa itu retas? Jadi, selain jejak RAM, saya berhasil mengeluarkan antarmuka dari prosesor, yang sudah akan dikelompokkan dalam bagian-bagian tertentu dari papan. Dalam chip, bus data individu terletak di tempat-tempat tertentu. Misalnya, di iMX8, di kiri bawah CSI, tepat di atas NAND, dll. Yaitu, mereka tidak dapat ditampilkan dengan cara yang berbeda pula.

Setelah semua lapisan yang diperlukan telah ditransfer, maka perlu untuk menghapus semua vias dan konduktor NoNet (saat menyalin lima lapisan, akan ada lima vias di setiap papan di setiap papan). Kemudian saya mengatur secara manual, pada saat yang sama memeriksa semua koneksi. Dengan sedikit keterampilan, semua pekerjaan transfer akan memakan waktu beberapa jam.

Bawah


Dalam Gambar. 8. Saya menunjukkan lapisan bawah, yang juga ingin saya transfer. Tetapi hal utama di dalamnya bukanlah konduktor (jumlahnya tidak banyak), tetapi pengaturan komponen. Ada 132 elemen di bawah chip dan RAM. Biasanya saya tidak menyalin lapisan ini, tetapi cukup mengatur pasif serta referensi (dengan membuka dua papan pada monitor yang berbeda). Opsi ini cocok jika Anda belum mengubah ukuran komponen ke komponen yang lebih besar, jika tidak Anda harus mengotak-atik.



Gbr. 15. Komponen di bagian belakang papan modul



Gbr. 16. Jejak terakhir di bawah prosesor dan memori lapisan sinyal

Kata penutup


Kesimpulannya, saya dapat mengatakan bahwa metode transfer ini cukup sederhana (saya tidak mengecualikan ada yang lain). Jika Anda mulai dengan kartu sederhana pada 4 lapisan, maka Anda dapat dengan cepat belajar cara mentransfer jejak yang lebih kompleks, tanpa menghabiskan sumber daya besar di atasnya. Tentang ini, saya yakin, artikelnya bisa diselesaikan.

Untuk "seed", saya akan mengatakan bahwa di papan yang dihasilkan ada 156 poligon dan, jika ada yang tertarik, saya dapat menulis artikel tentang bagaimana mereka diletakkan pada modul ini, kesulitan apa yang muncul karena dimensi kecil (dimensi modul 81mm * 58mm) dan apa Seharusnya dipertimbangkan.

Terimakasih atas perhatiannya!

All Articles