Πίνακας περιεχομένων:

Σύστημα ανάπτυξης Ghetto Programmable Logic (CPLD): 13 Βήματα
Σύστημα ανάπτυξης Ghetto Programmable Logic (CPLD): 13 Βήματα

Βίντεο: Σύστημα ανάπτυξης Ghetto Programmable Logic (CPLD): 13 Βήματα

Βίντεο: Σύστημα ανάπτυξης Ghetto Programmable Logic (CPLD): 13 Βήματα
Βίντεο: Internet Technologies - Computer Science for Business Leaders 2016 2024, Ιούλιος
Anonim
Σύστημα ανάπτυξης Ghetto Programmable Logic (CPLD)
Σύστημα ανάπτυξης Ghetto Programmable Logic (CPLD)

Τους τελευταίους μήνες απολαμβάνω το Ghetto Development System για τους επεξεργαστές AVR. Στην πραγματικότητα, αυτό το εργαλείο σχεδόν μηδενικού δολαρίου αποδείχθηκε τόσο συναρπαστικό και χρήσιμο που με έκανε να αναρωτηθώ αν ήταν δυνατόν να επεκτείνουμε την ιδέα και στην ανάπτυξη FPGA/CPLD. (FPGA: Field Programmable Gate Array. CPLD: Complex Programmable Logic Device.) Έτσι, έκανα μια μικρή αναζήτηση στο διαδίκτυο και βρήκα ένα σύστημα ανάπτυξης για Atmel CPLD. Η σύγκριση με τις συσκευές Altera δείχνει ότι το pinout τους είναι το ίδιο (εντός των περιορισμών που περιγράφω παρακάτω), οπότε θα λειτουργήσουν επίσης. Δημιουργώντας τον πίνακα ανάπτυξης και το καλώδιο διασύνδεσης που θα παρουσιάσω, στη συνέχεια κατεβάζοντας τα εργαλεία, μπορείτε να αναπτύξετε τις δικές σας εφαρμογές CPLD. Λάβετε υπόψη τους ακόλουθους περιορισμούς και περιορισμούς. Προσπάθησα να εξισορροπήσω την ικανότητα και την απλότητα, ώστε να μπορείτε να δημιουργήσετε κάτι από το οποίο θα απολαύσετε και θα μάθετε από συσκευές 5V μόνο. Η επέκταση του συστήματος για κάλυψη πρόσθετων τάσεων (3.3V, 2.5V, 1.8V υποστηρίζονται από συσκευές Atmel της ίδιας οικογένειας) δεν είναι δύσκολη, αλλά περιπλέκει τόσο τον πίνακα ανάπτυξης όσο και το καλώδιο προγραμματισμού. Ας το παραλείψουμε προς το παρόν. Σημειώστε ότι πρέπει να παρέχετε μια τροφοδοσία 5V στην πλακέτα. Μόνο PLCC 44 ακίδων. Συγκεκριμένα, έχω προγραμματίσει το Atmel ATF1504AS. Η έννοια του Ghetto CPLD μπορεί εύκολα να επεκταθεί σε άλλες συσκευές Atmel, αλλά αυτή η συσκευή φαινόταν ένας καλός συμβιβασμός μεταξύ της τιμής, της ευκολίας χρήσης και της δυνατότητας. Η ιδέα θα πρέπει επίσης να επεκταθεί σε άλλες συσκευές, όπως αυτές των Altera, Xilinx, Actel, κ.λπ. Στην πραγματικότητα, οι οικογένειες Max7000 EPM7032 και EPM7064 θα λειτουργούν στην ίδια πρίζα εφόσον χρησιμοποιείτε τις εκδόσεις PLCC 44 ακίδων. Μέχρι στιγμής έχω χρησιμοποιήσει μόνο το καλώδιο προγραμματισμού Atmel, αλλά το Altera Byte-Blaster υποστηρίζεται από το λογισμικό Atmel και θα πρέπει επίσης να λειτουργεί καλά. Στην πραγματικότητα είναι λίγο πιο απλός σχεδιασμός από το καλώδιο Atmel. (Έφτιαξα την έκδοση Atmel και λειτουργεί, οπότε δεν έχω δοκιμάσει την έκδοση Altera.) Το SparkFun προσφέρει μια έκδοση $ 15 του καλωδίου Altera. Δεδομένου ότι αυτό θα λειτουργήσει τόσο για το Atmel όσο και για το Altera, το προτείνω. Εάν πρόκειται να αναπτυχθείτε με μέρη Altera, θα θελήσετε να αποκτήσετε και το λογισμικό Altera. Στην πραγματικότητα δεν το έχω δοκιμάσει, αλλά δεν υπάρχει λόγος να σκεφτώ ότι δεν θα λειτουργούσε. Η ταχύτητα είναι περιορισμένη. Δεδομένου ότι το σύστημα ανάπτυξης Ghetto CPLD είναι κατασκευασμένο με καλωδίωση στο χέρι και χωρίς επίπεδο γείωσης, μην περιμένετε αξιόπιστη λειτουργία σε ταχύτητες άνω των μερικών megahertz. Ακόμα και αυτό δεν είναι εγγυημένο ότι τα χιλιόμετρα μπορεί να διαφέρουν! Φυσικά, εάν κατασκευάζετε ένα πρωτότυπο υλικό που έχει επίπεδο γείωσης, τότε το CPLD σας μπορεί να λειτουργήσει μια χαρά σε υψηλότερες ταχύτητες. Απλώς μην περιμένετε να τοποθετηθεί γρήγορα στο Ghetto Development System.

Βήμα 1: Μεταβείτε στην παραγγελία ανταλλακτικών

Μεταβείτε σε ανταλλακτικά
Μεταβείτε σε ανταλλακτικά

Θα χρειαστείτε μια πρίζα plcc 44 ακίδων, μερικά καπάκια αποσύνδεσης, μερικά μη προγραμματισμένα CPLD, πρίζες για συνδέσεις σανίδων, μια αντίσταση έλξης και ίσως κάποια πλακέτα perf για να την χρησιμοποιήσετε. Εάν έχετε κάτι από αυτά στο junk box σας, μπορείτε να εξοικονομήσετε μερικά δολάρια. Για την καλύτερη εξυπηρέτησή σας, εδώ είναι οι Digikey Part Numbers: CONN PLCC SOCKET 44POS TIN PN: 1-822473-4-ND SOCKET IC OPEN FRAME 14POS.3 "PN: 3M5462-ND Ποσότητα: 2SOCKET IC OPEN FRAME 18POS.3 "PN: 3M5464-ND Ποσότητα: 2CAP ELECT 10UF 50V SU BI-POLAR PN: P1280-ND Ποσότητα: 1, C1CAP CER.10UF 50V 20% DISC RAD PN: 478 -4275-1-ND Ποσότητα: 4, C2-C5RES METAL FILM 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 Μερικά μέρη μπορεί να έχουν ελάχιστες ποσότητες, αλλά πρέπει να είναι αρκετά φθηνά. Εάν θέλετε να φτιάξετε μερικά φλας (Βήμα 8) ή να δημιουργήσετε ένα σύνολο διακοπτών (βήμα 9), μπορεί να θέλετε να παραγγείλετε αυτά επίσης. Λάβετε υπόψη ότι το Digikey έχει ένα ελάχιστο ποσό $ 25 για να αποφύγει μια χρέωση χειρισμού, οπότε μπορεί να θέλετε να πάρετε μερικά επιπλέον μη προγραμματισμένα CPLD ή έναν επεξεργαστή AVR ή δύο μόνο για διασκέδαση. Σας συνιστώ να αγοράσετε το καλώδιο προγραμματισμού Altera από το SparkFun. Εδώ είναι οι αριθμοί μερών. Πάρτε επίσης το καλώδιο και τη φίσα. (Διαφορετικά, παραγγείλετε ανταλλακτικά για το καλώδιο από το Digikey αν χτίζετε το δικό σας.) Συμβατός προγραμματιστής Altera FPGA PN: PGM-087052x5 Pin IDC Ribbon Cable PN: PRT-085352x5 Pin Shrouded Header PN: PRT-08506

Βήμα 2: Λήψη και εγκατάσταση λογισμικού

Λήψη και εγκατάσταση λογισμικού
Λήψη και εγκατάσταση λογισμικού

Αυτή τη στιγμή χρησιμοποιώ την αλυσίδα εργαλείων Atmel Prochip Designer 5.0. Αυτό το εργαλείο απαιτεί να εγγραφείτε στο Atmel και να συμπληρώσετε την επίσημη φόρμα αιτήματος. Τους είπα ότι ήμουν μηχανικός σχεδιασμού, επί του παρόντος άνεργος, και ο κύριος σκοπός μου ήταν να μάθω τις συσκευές τους και το VHDL (όλα αλήθεια, BTW). Εγκρίνουν το αίτημα για άδεια. Το μόνο πλεονέκτημα είναι ότι η άδεια είναι καλή μόνο για 6 μήνες. Ελπίζω να βρω μια αλυσίδα εργαλείων δημόσιου τομέα μέχρι τη λήξη της. Το Altera διαθέτει επίσης μια αλυσίδα εργαλείων που μπορώ να ελέγξω. Οποιεσδήποτε προτάσεις θα εκτιμηθούν. Δείτε σχόλια και συνδέσμους στο τελευταίο βήμα. Ο Atmel Prochip Designer 5.0 είναι εδώ. Εάν το λάβετε, φροντίστε να πάρετε το Service Pack 1 και για αυτό.

Βήμα 3: Δημιουργήστε καλώδιο προγραμματισμού

Δημιουργήστε καλώδιο προγραμματισμού
Δημιουργήστε καλώδιο προγραμματισμού

Η ευκολότερη προσέγγιση εδώ είναι να αγοράσετε το Altera Byte-Blaster όπως και από το Sparkfun (βλ. Βήμα 1). Εάν τα 15 $ είναι περισσότερα από όσα νοιάζεστε να δαπανήσετε, τότε μπορείτε να χρησιμοποιήσετε το σχηματικό SparkFun Altera Cable ή να χρησιμοποιήσετε το σχηματικό καλώδιο Atmel Cable και ένα μηδενικό. (Εάν υπάρχει μεγάλο ενδιαφέρον για το χτίσιμο του καλωδίου με γρατσουνιές, μπορώ να προσφέρω κάποιες προτάσεις, αλλά το κιτ Sparkfun μου φαίνεται η σωστή απάντηση.)

Βήμα 4: Φτιάξτε το Programmer Cradle

Φτιάξτε το Programmer Cradle
Φτιάξτε το Programmer Cradle
Φτιάξτε το Programmer Cradle
Φτιάξτε το Programmer Cradle
Φτιάξτε το Programmer Cradle
Φτιάξτε το Programmer Cradle

Ρίξτε μια ματιά στον προγραμματιστή Atmel. Αυτό είναι πολύ ευέλικτο και είναι μια εξαιρετική επιλογή εάν διαθέτετε χρήματα και σκοπεύετε να κάνετε πολλή ανάπτυξη CPLD. Το Altera προσφέρει κάτι παρόμοιο, πιστεύω. Αλλά πήγα με μια φθηνότερη προσέγγιση - αυτό είναι το θέμα! Οι εικόνες δείχνουν την μπροστινή και πίσω όψη της κούνιας που έφτιαξα. Σημειώστε τις υποδοχές DIP που χρησιμοποιούνται ως συνδετήρες σανίδων. Όλοι οι πείροι στη μία πλευρά κάθε συνδέσμου συνδέονται με τη γείωση. Οι ακίδες από την άλλη πλευρά συνδέονται με ακίδες σήματος στο CPLD. Συμπεριέλαβα επίσης μερικές συνδέσεις ρεύματος. βάλτε τα εκεί που ταιριάζουν. Τα διαγράμματα είναι κάπως εικονογραφικά σχήματα. μόνο οι πρόσθετες συνδέσεις ισχύος δεν εμφανίζονται. Κοιτάξτε τις εικόνες για ιδέες για αυτά.

Βήμα 5: Χτίζοντας το λίκνο - Μέρος 1

Χτίζοντας το λίκνο - Μέρος 1
Χτίζοντας το λίκνο - Μέρος 1
Χτίζοντας το λίκνο - Μέρος 1
Χτίζοντας το λίκνο - Μέρος 1

Ξεκινήστε να χτίζετε το λίκνο εισάγοντας τις πρίζες στις θέσεις όπου τις θέλετε. Αφήστε μια ή δύο κενές σειρές, ώστε να υπάρχει χώρος για τα καπάκια αποσύνδεσης. Αυτό διευκολύνει επίσης τη σύνδεση με τις ακίδες σήματος CPLD. Αγκυρώστε τις πρίζες με λίγο συγκολλητικό ή εποξειδικό, ανάλογα με τον τύπο της πλακέτας perf που χρησιμοποιείτε. Αφήστε λίγο επιπλέον χώρο στο επάνω μέρος (πάνω από τον ακροδέκτη 1 της υποδοχής CPLD) για τη σύνδεση JTAG και την υποδοχή τροφοδοσίας. Ανατρέξτε στις εικόνες αυτού που έφτιαξα. Δρομολογήστε ένα γυμνό καλώδιο (περίπου 20 gauge) γύρω από το εξωτερικό των πριζών για ένα λεωφορείο γείωσης. Δρομολογήστε επίσης το ηλεκτρικό λεωφορείο. (Το κόκκινο καλώδιο στις εικόνες.) Ανατρέξτε στις εικόνες για οδηγίες, αλλά ο πίνακας σας πιθανότατα θα είναι λίγο διαφορετικός - και αυτό είναι εντάξει. Συγκολλήστε τις εξωτερικές ακίδες των πριζών στο λεωφορείο γείωσης. Αυτό θα βοηθήσει στην αγκύρωση του καλωδίου του διαύλου.

Βήμα 6: Χτίζοντας το λίκνο - Μέρος 2

Χτίζοντας το λίκνο - Μέρος 2
Χτίζοντας το λίκνο - Μέρος 2
Χτίζοντας το λίκνο - Μέρος 2
Χτίζοντας το λίκνο - Μέρος 2

Τοποθετήστε τα καπάκια αποσύνδεσης και συνδέστε τα στη γείωση και τις ακίδες τροφοδοσίας σε κάθε πλευρά της πρίζας CPLD. Προτείνω να δρομολογήσετε τα καλώδια πάνω και πάνω στις εξωτερικές σειρές των ακίδων για να φτάσετε στις εσωτερικές σειρές. Ανατρέξτε στα διαγράμματα αριθμού καρφιτσών για να λάβετε τις σωστές ακίδες - η εξαγωγή της υποδοχής CPLD δεν είναι καθόλου προφανής. Αφήστε αρκετό χώρο για να επιτρέψετε τη σύνδεση με τις ακίδες που περνάτε καλώδια. Μόλις ολοκληρωθούν οι συνδέσεις καπακιού, συνδέστε το δίαυλο τροφοδοσίας και γείωσης. Όλες οι κόκκινες ακίδες στα διαγράμματα είναι Vcc και πρέπει να συνδεθούν. Οι μαύρες ακίδες είναι αλεσμένες και πρέπει επίσης να συνδεθούν. Και πάλι, η δρομολόγηση στον αέρα είναι μια καλή προσέγγιση. Κοιτάξτε τις εικόνες για ιδέες.

Βήμα 7: Χτίζοντας το λίκνο - Συμπέρασμα

Χτίζοντας το λίκνο - Συμπέρασμα
Χτίζοντας το λίκνο - Συμπέρασμα
Χτίζοντας το λίκνο - Συμπέρασμα
Χτίζοντας το λίκνο - Συμπέρασμα
Χτίζοντας το λίκνο - Συμπέρασμα
Χτίζοντας το λίκνο - Συμπέρασμα

Δρομολογήστε τις συνδέσεις JTAG στις σωστές ακίδες. Ρίξτε μια ματιά στο καλώδιο προγραμματισμού για να βεβαιωθείτε ότι ο σύνδεσμος είναι σωστά προσανατολισμένος. Μην ξεχάσετε το τράβηγμα στον πείρο TDO. Αυτό εμφανίζεται μόνο στην εικόνα και πηγαίνει μεταξύ του πείρου TDO και του Vcc. Το τελευταίο βήμα είναι να συνδέσετε κάθε ακίδα εισόδου/εξόδου του CPLD σε έναν πείρο στις πρίζες. Χρησιμοποιήστε τους αριθμούς στα διαγράμματα για τις συνδέσεις. Αυτό παίρνει τον μεγαλύτερο χρόνο! Εάν ακολουθείτε το σχήμα αρίθμησης μου, τότε μπορείτε να χρησιμοποιήσετε το διάγραμμα Top View ως οδηγό όταν συνδέετε τα κυκλώματά σας. Πραγματικά δεν χρειάζεται να τα συνδέσετε όλα αυτά αρχικά, μπορείτε να περιμένετε μέχρι να τα χρειαστείτε για τα κυκλώματα που σχεδιάζετε. Ελέγξτε προσεκτικά τη δουλειά σας. Βεβαιωθείτε ότι η ισχύς και η γείωση δεν έχουν βραχυκύκλωμα!

Βήμα 8: Δημιουργήστε φλας (έκδοση TTL)

Δημιουργήστε φλας (έκδοση TTL)
Δημιουργήστε φλας (έκδοση TTL)

Φυσικά, θα θέλετε να δείτε τα κυκλώματά σας να λειτουργούν. Θα θελήσετε λοιπόν μερικά φλας (που έγιναν διάσημα από τους The Real Elliot). Το μόνο πλεονέκτημα είναι ότι τα CPLD δεν έχουν τις ισχυρές εξόδους που έχουν οι επεξεργαστές AVR. Χρησιμοποιήστε LED με ονομαστική τιμή 10ma και χρησιμοποιήστε αντιστάσεις σειράς 1KOhm. Αυτά θα σας δώσουν σαφή σήματα εξόδου χωρίς να επιβαρύνετε τις εξόδους CPLD.

Βήμα 9: Κάντε διακόπτες

Κάντε διακόπτες
Κάντε διακόπτες
Κάντε διακόπτες
Κάντε διακόπτες

Για να παρέχετε ερεθίσματα για τα κυκλώματά σας, θα χρειαστείτε μερικούς διακόπτες. Έχετε μερικές επιλογές εδώ, αλλά οι απαιτήσεις είναι διαφορετικές από αυτές για τους επεξεργαστές AVR. Οι έξοδοι CPLD δεν διαθέτουν ενσωματωμένα pull-ups και δεν είναι τόσο εύκολο να κάνετε αποσύνδεση στο λογισμικό. (Είναι δυνατόν, αλλά απαιτεί πόρους που πιθανώς θέλετε να χρησιμοποιήσετε στα κυκλώματά σας.) Οι διακόπτες DIP που εμφανίζονται παρέχουν αρκετούς διακόπτες σε ένα βολικό πακέτο, αλλά πρέπει να ανασυρθούν. Χρησιμοποίησα 1K pull-up. Τα κουμπιά μπορούν να γίνουν χρησιμοποιώντας το κύκλωμα που συνιστά η Atmel για τον πίνακα επίδειξης. Τα σχήματα βρίσκονται στη σελίδα 36 περίπου. Μια άλλη επιλογή είναι να συνδέσετε έναν επεξεργαστή AVR για να παρέχετε ερεθίσματα - και ακόμη και να ελέγχετε τις αποκρίσεις. Αλλά αυτή είναι μια άσκηση που αφήνεται στον μαθητή.

Βήμα 10: Δημιουργήστε το πρώτο σας κύκλωμα

Δημιουργήστε το πρώτο σας κύκλωμα
Δημιουργήστε το πρώτο σας κύκλωμα
Δημιουργήστε το πρώτο σας κύκλωμα
Δημιουργήστε το πρώτο σας κύκλωμα

Μέχρι αυτή τη στιγμή θα πρέπει να έχετε αποκτήσει και εγκαταστήσει το λογισμικό. Ακολουθήστε το λεπτομερές, λεπτομερές σεμινάριο για να δημιουργήσετε το πρώτο σας απλό κύκλωμα CPLD (πύλη AND δύο εισόδων. Δεν γίνεται πολύ απλούστερο). Βεβαιωθείτε ότι έχετε επιλέξει τη σωστή συσκευή (44 Pin PLCC, 5V, 1504AS [λεπτομέρειες]) και επιλέξτε τους διαθέσιμους αριθμούς ακίδων εισόδου/εξόδου (χρησιμοποίησα 14 και 16 ως εισόδους, 28 ως έξοδο). Αυτές οι λεπτομέρειες διαφέρουν ελαφρώς από το σεμινάριο, αλλά δεν πρέπει να σας δημιουργήσουν κανένα πρόβλημα.

Βήμα 11: Προγραμματίστε το πρώτο σας CPLD

Προγραμματίστε το πρώτο σας CPLD
Προγραμματίστε το πρώτο σας CPLD
Προγραμματίστε το πρώτο σας CPLD
Προγραμματίστε το πρώτο σας CPLD

Συνδέστε το καλώδιο προγραμματισμού στην παράλληλη θύρα του υπολογιστή σας, συνδέστε το στο Programmer Cradle, συνδέστε 5 βολτ στην υποδοχή τροφοδοσίας και ακολουθήστε το σεμινάριο για να προγραμματίσετε πραγματικά το πρώτο σας CPLD. Επιλέξτε τη σωστή έκδοση του καλωδίου. Σημειώστε ότι το Altera Byte-Blaster είναι μία από τις επιλογές.

Βήμα 12: Δοκιμάστε το προγραμματισμένο μέρος σας

Δοκιμάστε το προγραμματισμένο μέρος σας!
Δοκιμάστε το προγραμματισμένο μέρος σας!
Δοκιμάστε το προγραμματισμένο μέρος σας!
Δοκιμάστε το προγραμματισμένο μέρος σας!

Αποσυνδέστε το καλώδιο προγραμματισμού από τη βάση. Συνδέστε τους διακόπτες και τα φλας στους σωστούς ακροδέκτες, ενεργοποιήστε το ρεύμα και δοκιμάστε το. Δεδομένου ότι ξεκινάτε με ένα απλό κύκλωμα, οι δοκιμές δεν αποτελούν μεγάλη πρόκληση. Εάν λειτουργεί, είστε εκτός λειτουργίας και τρέχετε! Το διάγραμμα κάτοψης θα σας καθοδηγήσει στη σύνδεση των διακοπτών και των φλας για δοκιμή.

Βήμα 13: Το τέλος και ορισμένοι πόροι ιστού

Το τέλος και ορισμένοι πόροι ιστού
Το τέλος και ορισμένοι πόροι ιστού

Ο σκοπός αυτού του σεμιναρίου δεν είναι να σας διδάξει πώς να χρησιμοποιείτε το VHDL. (Μόλις άρχισα να μαθαίνω, γι 'αυτό δημιούργησα τον προγραμματιστή, θυμάσαι;) Τούτου λεχθέντος, βρήκα πολλά πολύ χρήσιμα σεμινάρια και μερικούς χρήσιμους πόρους προς τους οποίους μπορώ να σας υποδείξω. Η ανατροφοδότηση και άλλες προτάσεις εκτιμώνται ιδιαίτερα. Σημειώστε ότι μπορείτε επίσης να χρησιμοποιήσετε το Ghetto CPLD Development System για να μάθετε Verilog και άλλες τεχνικές προγραμματισμού CPLD που δεν ενδιαφέρει το υλικό. Πόροι VHDL στον Ιστό: Βασικά και ορισμένοι σύνδεσμοι εδώ και εδώ. δωρεάν εργαλεία. Τα σεμινάρια που μου αρέσουν είναι εδώ και εδώ, αλλά θα βρείτε πολλά άλλα. Τέλος (προς το παρόν), θα θέλετε να ελέγξετε την ομάδα συζήτησης. Απολαύστε, μάθετε πολλά και μοιραστείτε όσα γνωρίζετε.

Συνιστάται: