Daftar Isi:

Sistem Pengembangan Ghetto Programmable Logic (CPLD): 13 Langkah
Sistem Pengembangan Ghetto Programmable Logic (CPLD): 13 Langkah

Video: Sistem Pengembangan Ghetto Programmable Logic (CPLD): 13 Langkah

Video: Sistem Pengembangan Ghetto Programmable Logic (CPLD): 13 Langkah
Video: Russian Soldiers Shocked by U.S. Soldier Training (Russians dream of moving targets) #Shorts 2024, November
Anonim
Sistem Pengembangan Ghetto Programmable Logic (CPLD)
Sistem Pengembangan Ghetto Programmable Logic (CPLD)

Selama beberapa bulan terakhir saya telah menikmati Sistem Pengembangan Ghetto untuk prosesor AVR. Faktanya, alat hampir nol dolar ini telah terbukti sangat menarik dan berguna sehingga membuat saya bertanya-tanya apakah mungkin untuk memperluas konsep ke pengembangan FPGA/CPLD juga. (FPGA: Array Gerbang yang Dapat Diprogram Lapangan. CPLD: Perangkat Logika yang Dapat Diprogram Kompleks.) Jadi saya melakukan sedikit penggalian di web dan menghasilkan sistem pengembangan untuk Atmel CPLD. Perbandingan dengan perangkat Altera menunjukkan pinout mereka sama (dalam batasan yang saya jelaskan di bawah), jadi mereka juga berfungsi. Dengan membangun papan pengembangan dan kabel antarmuka yang akan saya sajikan, kemudian mengunduh alat, Anda dapat mengembangkan aplikasi CPLD Anda sendiri. Harap perhatikan batasan dan batasan berikut. Saya telah mencoba menyeimbangkan kemampuan dan kesederhanaan sehingga Anda dapat membangun sesuatu yang akan Anda nikmati dan pelajari dari perangkat.5V saja. Memperluas sistem untuk menutupi tegangan tambahan (3.3V, 2.5V, 1.8V didukung oleh perangkat Atmel dalam keluarga yang sama) tidak sulit, tetapi memperumit papan pengembangan dan kabel pemrograman. Mari kita lewati untuk saat ini. Perhatikan bahwa Anda harus menyediakan suplai 5V ke board.44 pin PLCC saja. Secara khusus, saya telah memprogram Atmel ATF1504AS. Konsep Ghetto CPLD dapat dengan mudah diperluas ke perangkat Atmel lainnya, tetapi perangkat ini tampak seperti kompromi yang baik antara harga, kemudahan penggunaan, dan kemampuan. Konsep ini juga harus diperluas ke perangkat lain seperti dari Altera, Xilinx, Actel, dll. Faktanya, keluarga Max7000 EPM7032 dan EPM7064 akan bekerja di soket yang sama selama Anda menggunakan versi PLCC 44 pin. Sejauh ini saya hanya menggunakan kabel pemrograman Atmel, tetapi Altera Byte-Blaster didukung oleh perangkat lunak Atmel dan juga harus berfungsi dengan baik. Ini sebenarnya desain yang sedikit lebih sederhana daripada kabel Atmel. (Saya membuat versi Atmel dan berhasil, jadi saya belum mencoba versi Altera.) SparkFun menawarkan kabel Altera versi $15. Karena ini akan berfungsi untuk Atmel dan Altera, saya merekomendasikannya. Jika Anda akan mengembangkan dengan bagian Altera, Anda juga ingin mendapatkan perangkat lunak Altera. Saya belum benar-benar mencoba ini, tetapi tidak ada alasan saya dapat berpikir bahwa itu tidak akan berhasil. Kecepatan terbatas. Karena Sistem Pengembangan Ghetto CPLD dibangun dengan kabel tangan dan tanpa bidang tanah, jangan berharap pengoperasian yang andal pada kecepatan di atas beberapa megahertz. Bahkan itu tidak menjamin jarak tempuh Anda mungkin berbeda! Tentu saja, jika Anda membuat perangkat keras prototipe yang memiliki bidang tanah, maka CPLD Anda dapat bekerja dengan baik pada kecepatan yang lebih tinggi. Hanya saja, jangan berharap itu akan dipasang dengan cepat di Sistem Pengembangan Ghetto.

Langkah 1: Pergi Pesan Suku Cadang

Pergi Pesan Suku Cadang
Pergi Pesan Suku Cadang

Anda memerlukan soket plcc 44 pin, beberapa tutup decoupling, beberapa CPLD yang tidak diprogram, soket untuk koneksi papan tempat memotong roti, resistor pull-up dan mungkin beberapa papan kinerja untuk membuatnya. Jika Anda memiliki semua ini di kotak sampah Anda, Anda dapat menghemat beberapa dolar. Untuk kenyamanan Anda, berikut adalah Nomor Bagian Digikey: CONN PLCC SOCKET 44POS TIN PN: 1-822473-4-ND SOCKET IC OPEN FRAME 14POS.3" PN: 3M5462-ND Kuantitas: 2SOCKET IC OPEN FRAME 18POS.3" PN: 3M5464-ND Kuantitas: 2CAP PILIH 10UF 50V SU BI-POLAR PN: P1280-ND Kuantitas: 1, C1CAP CER.10UF 50V 20% DISC RAD PN: 478 -4275-1-ND Jumlah: 4, C2-C5RES FILM LOGAM 5.10K OHM 1/4W 1% PN: P5.10KCACT-ND PC BOARD FR4 1-SIDE PPH 4.0X4.0 PN: V2010-ND IC CPLD 64 MACROCELL 10NS 44PLCC PN: ATF1504AS-10JC44-ND Beberapa bagian mungkin memiliki jumlah minimum, tetapi masih cukup murah. Jika Anda ingin membuat beberapa lampu kedip (Langkah 8) atau membuat satu set sakelar (langkah 9) Anda mungkin ingin memesan ini juga. Ingatlah bahwa Digikey memiliki minimum $25 untuk menghindari biaya penanganan, jadi Anda mungkin ingin mendapatkan beberapa CPLD tambahan yang tidak diprogram atau satu atau dua prosesor AVR hanya untuk bersenang-senang. Saya sarankan Anda membeli kabel pemrograman Altera dari SparkFun. Berikut adalah nomor bagian. Dapatkan juga kabel dan konektornya. (Jika tidak, pesan suku cadang untuk kabel dari Digikey jika Anda membuat sendiri.) Programmer yang Kompatibel dengan Altera FPGA PN: PGM-087052x5 Pin Kabel Pita IDC PN: PRT-085352x5 Pin Terselubung Header PN: PRT-08506

Langkah 2: Dapatkan dan Instal Perangkat Lunak

Dapatkan dan Instal Perangkat Lunak
Dapatkan dan Instal Perangkat Lunak

Saat ini saya menggunakan rantai alat Atmel Prochip Designer 5.0. Alat ini mengharuskan Anda mendaftar ke Atmel dan mengisi formulir permintaan resmi mereka. Saya memberi tahu mereka bahwa saya adalah seorang insinyur desain, saat ini menganggur, dan tujuan utama saya adalah mempelajari perangkat dan VHDL mereka (semua benar, BTW). Mereka menyetujui permintaan lisensi. Satu-satunya tangkapan adalah bahwa lisensinya hanya bagus untuk 6 bulan. Saya berharap menemukan rantai alat domain publik pada saat kedaluwarsa. Altera juga memiliki rantai alat yang dapat saya periksa. Setiap saran akan dihargai. Lihat komentar dan tautan di langkah terakhir. Atmel Prochip Designer 5.0 ada di sini. Jika Anda mendapatkannya, pastikan untuk mendapatkan Service Pack 1 juga.

Langkah 3: Buat Kabel Pemrograman

Membuat Kabel Pemrograman
Membuat Kabel Pemrograman

Pendekatan termudah di sini adalah membeli Altera Byte-Blaster work-alike dari Sparkfun (lihat Langkah 1). Jika $15 lebih dari yang ingin Anda belanjakan, maka Anda dapat menggunakan skema Kabel SparkFun Altera atau menggunakan skema Kabel Atmel dan versi awal. (Jika ada banyak minat untuk membuat kabel awal, saya dapat menawarkan beberapa saran, tetapi kit Sparkfun sepertinya merupakan jawaban yang tepat untuk saya.)

Langkah 4: Buat Cradle Programmer

Buat Cradle Programmer
Buat Cradle Programmer
Buat Cradle Programmer
Buat Cradle Programmer
Buat Cradle Programmer
Buat Cradle Programmer

Lihatlah programmer Atmel. Ini sangat fleksibel dan merupakan pilihan yang bagus jika Anda memiliki banyak uang dan berencana untuk melakukan banyak pengembangan CPLD. Altera menawarkan sesuatu yang serupa, saya percaya. Tapi saya pergi dengan pendekatan yang lebih murah - itulah semua tentang ini! Gambar-gambar menunjukkan pandangan depan dan belakang dari cradle yang saya buat. Perhatikan soket DIP yang digunakan sebagai konektor papan tempat memotong roti. Semua pin di satu sisi setiap konektor terhubung ke ground; pin di sisi lain terhubung ke pin sinyal di CPLD. Saya menyertakan beberapa koneksi daya juga; menempatkan ini di mana mereka cocok. Diagram adalah semacam skema bergambar; hanya sambungan daya ekstra yang tidak ditampilkan. Lihatlah gambar untuk ide-ide ini.

Langkah 5: Membangun Cradle - Bagian 1

Membangun Cradle - Bagian 1
Membangun Cradle - Bagian 1
Membangun Cradle - Bagian 1
Membangun Cradle - Bagian 1

Mulailah membangun dudukan dengan memasukkan soket di lokasi yang Anda inginkan. Biarkan satu atau dua baris kosong sehingga akan ada ruang untuk tutup decoupling. Ini juga memudahkan untuk menghubungkan ke pin sinyal CPLD. Jangkar soket dengan sedikit solder atau epoksi tergantung pada jenis papan kinerja yang Anda gunakan. Berikan ruang ekstra di bagian atas (di atas pin 1 soket CPLD) untuk konektor JTAG dan konektor daya. Lihat gambar yang saya buat. Arahkan kabel telanjang (20 gauge atau lebih) di sekitar bagian luar soket untuk bus darat. Rutekan bus listrik juga. (Kabel merah pada gambar.) Lihat gambar untuk beberapa panduan, tetapi papan Anda mungkin akan sedikit berbeda - dan itu tidak masalah. Solder pin luar soket ke bus arde. Ini akan membantu menambatkan kabel bus.

Langkah 6: Membangun Cradle - Bagian 2

Membangun Cradle - Bagian 2
Membangun Cradle - Bagian 2
Membangun Cradle - Bagian 2
Membangun Cradle - Bagian 2

Pasang tutup decoupling dan sambungkan ke ground dan pin daya di setiap sisi soket CPLD. Saya sarankan merutekan kabel ke atas dan melewati baris luar pin untuk mencapai baris dalam. Lihat diagram nomor pin untuk mendapatkan pin yang benar - pin-out dari soket CPLD jauh dari jelas. Sisakan ruang yang cukup untuk memungkinkan koneksi ke pin apa pun yang Anda lewati dengan kabel. Setelah koneksi tutup selesai, sambungkan bus daya dan ground. Semua pin merah pada diagram adalah Vcc dan harus dihubungkan. Pin hitam ditanahkan dan harus dihubungkan juga. Sekali lagi, mengarahkannya di udara adalah pendekatan yang baik. Lihatlah gambar untuk mendapatkan ide.

Langkah 7: Membangun Cradle - Kesimpulan

Membangun Cradle - Kesimpulan
Membangun Cradle - Kesimpulan
Membangun Cradle - Kesimpulan
Membangun Cradle - Kesimpulan
Membangun Cradle - Kesimpulan
Membangun Cradle - Kesimpulan

Rutekan koneksi JTAG ke pin yang benar. Lihat Kabel Pemrograman Anda untuk memastikan konektor diarahkan dengan benar. Jangan lupa pull-up pada pin TDO. Ini hanya ditunjukkan pada gambar dan berada di antara pin TDO dan Vcc. Langkah terakhir adalah menghubungkan setiap pin I/O dari CPLD ke pin pada soket. Gunakan angka-angka dalam diagram untuk koneksi. Ini membutuhkan waktu paling lama! Jika Anda mengikuti skema penomoran saya, maka Anda dapat menggunakan diagram Tampilan Atas sebagai panduan saat menghubungkan sirkuit Anda. Anda benar-benar tidak perlu menghubungkan semua ini pada awalnya, Anda dapat menunggu sampai Anda membutuhkannya untuk sirkuit yang Anda desain. Periksa pekerjaan Anda dengan cermat. Pastikan daya dan ground tidak korsleting!

Langkah 8: Membuat Blinkenlights (Versi TTL)

Membuat Blinkenlight (Versi TTL)
Membuat Blinkenlight (Versi TTL)

Anda pasti ingin melihat sirkuit Anda berfungsi, tentu saja. Jadi, Anda akan menginginkan beberapa lampu kedip (dipopulerkan oleh The Real Elliot). Satu-satunya tangkapan adalah bahwa CPLD tidak memiliki output besar yang dimiliki prosesor AVR. Gunakan LED dengan rating 10ma dan gunakan resistor seri 1KOhm. Ini akan memberi Anda sinyal keluaran yang jelas tanpa membebani keluaran CPLD.

Langkah 9: Lakukan Switch

Buat Beralih
Buat Beralih
Buat Beralih
Buat Beralih

Untuk memberikan rangsangan pada sirkuit Anda, Anda memerlukan beberapa sakelar. Anda memiliki beberapa opsi di sini, tetapi persyaratannya berbeda dengan prosesor AVR. Keluaran CPLD tidak memiliki pull-up bawaan dan tidak mudah untuk melakukan debouncing dalam perangkat lunak. (Itu mungkin, tetapi membutuhkan sumber daya yang mungkin ingin Anda gunakan di sirkuit Anda.) Sakelar DIP yang ditunjukkan menyediakan beberapa sakelar dalam paket yang mudah digunakan, tetapi harus ditarik. Saya menggunakan pull-up 1K. Tombol dapat dibuat menggunakan sirkuit yang direkomendasikan Atmel untuk papan demo mereka. Skema ada di halaman 36 atau lebih. Pilihan lainnya adalah menghubungkan prosesor AVR untuk memberikan rangsangan - dan bahkan memeriksa respons. Tapi itu adalah latihan yang diserahkan kepada siswa.

Langkah 10: Buat Sirkuit Pertama Anda

Buat Sirkuit Pertama Anda
Buat Sirkuit Pertama Anda
Buat Sirkuit Pertama Anda
Buat Sirkuit Pertama Anda

Pada saat ini Anda seharusnya sudah mendapatkan dan menginstal perangkat lunak. Ikuti tutorial terperinci dan menyeluruh untuk membuat sirkuit CPLD sederhana pertama Anda (gerbang AND dua input; tidak menjadi lebih sederhana). Pastikan untuk memilih perangkat yang benar (44 Pin PLCC, 5V, 1504AS [detail]) dan pilih nomor pin I/O yang tersedia (saya menggunakan 14 dan 16 sebagai input; 28 sebagai output). Detail ini sedikit berbeda dari tutorial, tetapi seharusnya tidak memberi Anda masalah.

Langkah 11: Program CPLD Pertama Anda

Program CPLD Pertama Anda
Program CPLD Pertama Anda
Program CPLD Pertama Anda
Program CPLD Pertama Anda

Hubungkan kabel pemrograman Anda ke port paralel pada PC Anda, hubungkan ke Programmer Cradle Anda, hubungkan 5 Volt ke konektor Power dan ikuti tutorial untuk benar-benar memprogram CPLD pertama Anda. Pilih versi kabel yang benar. Perhatikan bahwa Altera Byte-Blaster adalah salah satu opsi.

Langkah 12: Uji Bagian Terprogram Anda

Uji Bagian Terprogram Anda!
Uji Bagian Terprogram Anda!
Uji Bagian Terprogram Anda!
Uji Bagian Terprogram Anda!

Lepaskan Kabel Pemrograman Anda dari dudukannya. Colokkan sakelar dan kedipkan lampu ke pin yang benar, hidupkan daya, dan coba. Karena Anda memulai dengan sirkuit sederhana, pengujian bukanlah tantangan besar. Jika berhasil, Anda aktif dan berjalan! Diagram tampilan atas akan memandu Anda dalam menghubungkan sakelar dan lampu kedip untuk pengujian.

Langkah 13: Akhir dan Beberapa Sumber Daya Web

Akhir dan Beberapa Sumber Daya Web
Akhir dan Beberapa Sumber Daya Web

Ini bukan tujuan dari tutorial ini untuk mengajari Anda cara menggunakan VHDL. (Saya baru mulai belajar itu sebabnya saya membuat programmer, ingat?) Yang mengatakan, saya telah menemukan beberapa tutorial yang sangat membantu dan beberapa sumber daya yang berguna yang dapat saya arahkan kepada Anda. Umpan balik dan saran lainnya sangat dihargai. Perhatikan bahwa Anda juga dapat menggunakan Sistem Pengembangan Ghetto CPLD untuk mempelajari Verilog dan teknik pemrograman CPLD lainnya yang tidak dipedulikan oleh perangkat keras. Sumber VHDL di Web: Dasar-dasar dan beberapa tautan di sini dan di sini. Tautan ke alat gratis. Tutorial yang saya suka ada di sini dan di sini, tetapi Anda akan menemukan banyak yang lain. Akhirnya (untuk saat ini), Anda akan ingin melihat grup diskusi. Nikmati, pelajari banyak, dan bagikan apa yang Anda ketahui.

Direkomendasikan: