Table des matières:

Système de développement Ghetto Programmable Logic (CPLD) : 13 étapes
Système de développement Ghetto Programmable Logic (CPLD) : 13 étapes

Vidéo: Système de développement Ghetto Programmable Logic (CPLD) : 13 étapes

Vidéo: Système de développement Ghetto Programmable Logic (CPLD) : 13 étapes
Vidéo: Programming of ispMACH4000ZE CPLD 2024, Juillet
Anonim
Système de développement Ghetto Programmable Logic (CPLD)
Système de développement Ghetto Programmable Logic (CPLD)

Au cours des derniers mois, j'ai profité du système de développement Ghetto pour les processeurs AVR. En fait, cet outil à presque zéro dollar s'est avéré si fascinant et utile que je me suis demandé s'il était également possible d'étendre le concept au développement FPGA/CPLD. (FPGA: Field Programmable Gate Array. CPLD: Complex Programmable Logic Device.) J'ai donc fait quelques recherches sur le Web et j'ai proposé un système de développement pour les CPLD Atmel. La comparaison avec les appareils Altera montre que leur brochage est le même (dans les restrictions que je détaille ci-dessous), donc ils fonctionneront également. En construisant la carte de développement et le câble d'interface que je vais présenter, puis en téléchargeant les outils, vous pouvez développer vos propres applications CPLD. Veuillez noter les limitations et restrictions suivantes. J'ai essayé d'équilibrer la capacité et la simplicité afin que vous puissiez créer quelque chose que vous apprécierez et apprendrez à partir d'appareils 5V uniquement. Étendre le système pour couvrir des tensions supplémentaires (3,3 V, 2,5 V, 1,8 V sont pris en charge par les appareils Atmel de la même famille) n'est pas difficile, mais cela complique à la fois la carte de développement et le câble de programmation. Ignorons-le pour l'instant. Notez que vous devez fournir une alimentation 5V à la carte. PLCC à 44 broches uniquement. Plus précisément, j'ai programmé l'Atmel ATF1504AS. Le concept Ghetto CPLD peut être facilement étendu à d'autres appareils Atmel, mais cet appareil semblait être un bon compromis entre prix, facilité d'utilisation et capacité. Le concept devrait également s'étendre à d'autres appareils tels que ceux d'Altera, Xilinx, Actel, etc. En fait, la famille Max7000 EPM7032 et EPM7064 fonctionnera dans le même socket tant que vous utiliserez les versions PLCC à 44 broches. Jusqu'à présent, je n'ai utilisé que le câble de programmation Atmel, mais Altera Byte-Blaster est pris en charge par le logiciel Atmel et devrait également fonctionner correctement. C'est en fait un design un peu plus simple que le câble Atmel. (J'ai construit la version Atmel et cela fonctionne, donc je n'ai pas essayé la version Altera.) SparkFun propose une version à 15 $ du câble Altera. Étant donné que cela fonctionnera à la fois pour Atmel et Altera, je le recommande. Si vous envisagez de développer avec des pièces Altera, vous voudrez également vous procurer le logiciel Altera. Je n'ai pas vraiment essayé cela, mais il n'y a aucune raison pour laquelle je peux penser que cela ne fonctionnerait pas. La vitesse est limitée. Étant donné que le système de développement Ghetto CPLD est construit avec un câblage manuel et aucun plan de masse, ne vous attendez pas à un fonctionnement fiable à des vitesses supérieures à quelques mégahertz. Même cela n'est pas garanti, votre kilométrage peut varier ! Bien sûr, si vous construisez un prototype de matériel doté d'un plan de masse, votre CPLD peut très bien fonctionner à des vitesses plus élevées. Ne vous attendez pas à ce qu'il aille vite monté dans le système de développement du ghetto.

Étape 1: Allez commander des pièces

Allez commander des pièces
Allez commander des pièces

Vous aurez besoin d'une prise plcc à 44 broches, de capuchons de découplage, de CPLD non programmés, de prises pour les connexions de la maquette, d'une résistance de rappel et peut-être d'une carte de perforation pour la construire. Si vous avez tout cela dans votre boîte à ordures, vous pouvez économiser quelques dollars. Pour votre commodité, voici les numéros de pièce Digikey: CONN PLCC SOCKET 44POS TIN PN: 1-822473-4-ND SOCKET IC OPEN FRAME 14POS.3" PN: 3M5462-ND Qté: 2SOCKET IC CADRE OUVERT 18POS.3" PN: 3M5464-ND Qté: 2CAP ELECT 10UF 50V SU BI-POLAR PN: P1280-ND Qté: 1, C1CAP CER.10UF 50V 20% DISC RAD PN: 478 -4275-1-ND Qté: 4, FILM MÉTAL C2-C5RES 5.10K OHM 1/4W 1% PN: P5.10KCACT-ND CARTE PC FR4 1-SIDE PPH 4.0X4.0 PN: V2010-ND IC CPLD 64 MACROCELL 10NS 44PLCC PN: ATF1504AS-10JC44-ND Quelques pièces peuvent avoir des quantités minimales, mais devraient toujours être assez bon marché. ceux-ci aussi. Gardez à l'esprit que Digikey a un minimum de 25 $ pour éviter des frais de gestion, donc vous voudrez peut-être obtenir quelques CPLD supplémentaires non programmés ou un processeur AVR ou deux juste pour le plaisir. Je vous recommande d'acheter le câble de programmation Altera de SparkFun. Voici les numéros de pièces. Procurez-vous également le câble et le connecteur. (Sinon, commandez des pièces pour le câble auprès de Digikey si vous construisez le vôtre.) PN du programmeur compatible FPGA Altera: PGM-087052x5 Pin IDC Ribbon Cable PN: PRT-085352x5 Pin Shrouded Header PN: PRT-08506

Étape 2: Obtenir et installer le logiciel

Obtenir et installer le logiciel
Obtenir et installer le logiciel

J'utilise actuellement la chaîne d'outils Atmel Prochip Designer 5.0. Cet outil nécessite que vous vous inscriviez auprès d'Atmel et remplissiez son formulaire de demande officiel. Je leur ai dit que j'étais un ingénieur de conception, actuellement au chômage, et que mon objectif principal était d'apprendre leurs appareils et VHDL (tous vrais, BTW). Ils ont approuvé la demande de licence. Le seul hic, c'est que le permis n'est valable que pour 6 mois. J'espère trouver une chaîne d'outils du domaine public avant son expiration. Altera a également une chaîne d'outils que je peux vérifier. Toute suggestion sera appréciée. Voir les commentaires et les liens dans la dernière étape. L'Atmel Prochip Designer 5.0 est ici. Si vous l'obtenez, assurez-vous également d'obtenir le Service Pack 1 correspondant.

Étape 3: Faire un câble de programmation

Faire un câble de programmation
Faire un câble de programmation

L'approche la plus simple ici est d'acheter l'Altera Byte-Blaster de Sparkfun (voir l'étape 1). Si 15 $ est plus que ce que vous voulez dépenser, vous pouvez utiliser le schéma du câble SparkFun Altera ou utiliser le schéma du câble Atmel et le créer à l'aide d'un scratch. (S'il y a beaucoup d'intérêt à créer le câble en scratch, je peux faire quelques suggestions, mais le kit Sparkfun me semble être la bonne réponse.)

Étape 4: Créer un berceau de programmeur

Faire un berceau de programmeur
Faire un berceau de programmeur
Faire un berceau de programmeur
Faire un berceau de programmeur
Faire un berceau de programmeur
Faire un berceau de programmeur

Jetez un œil au programmeur Atmel. C'est très flexible et c'est une excellente option si vous avez l'argent et prévoyez de faire beaucoup de développement CPLD. Altera propose quelque chose de similaire, je crois. Mais j'ai opté pour une approche moins chère - c'est de cela qu'il s'agit ! Les photos montrent des vues avant et arrière du berceau que j'ai construit. Notez les prises DIP utilisées comme connecteurs de maquette. Toutes les broches d'un côté de chaque connecteur sont connectées à la terre; les broches de l'autre côté se connectent aux broches de signal du CPLD. J'ai également inclus quelques connexions électriques; placez-les à leur place. Les diagrammes sont en quelque sorte des schémas illustrés; seules les connexions d'alimentation supplémentaires ne sont pas affichées. Regardez les images pour des idées à ce sujet.

Étape 5: Construire le berceau - Partie 1

Construire le berceau - Partie 1
Construire le berceau - Partie 1
Construire le berceau - Partie 1
Construire le berceau - Partie 1

Commencez à construire le berceau en insérant les douilles aux endroits où vous le souhaitez. Laissez une rangée vide ou deux pour qu'il y ait de la place pour les capuchons de découplage. Cela facilite également la connexion aux broches de signal CPLD. Ancrez les prises avec un peu de soudure ou d'époxy selon le type de carte de perforation que vous utilisez. Prévoyez un peu d'espace supplémentaire en haut (au-dessus de la broche 1 de la prise CPLD) pour le connecteur JTAG et le connecteur d'alimentation. Reportez-vous aux images de celui que j'ai construit. Acheminez un fil nu (calibre 20 environ) autour de l'extérieur des prises pour un bus de terre. Acheminez également le bus d'alimentation. (Le fil rouge sur les images.) Reportez-vous aux images pour obtenir des conseils, mais votre carte sera probablement un peu différente - et c'est très bien. Soudez les broches extérieures des prises au bus de masse. Cela aidera à ancrer le fil de bus.

Étape 6: Construire le berceau - Partie 2

Construire le berceau - Partie 2
Construire le berceau - Partie 2
Construire le berceau - Partie 2
Construire le berceau - Partie 2

Installez les capuchons de découplage et connectez-les aux broches de terre et d'alimentation de chaque côté de la prise CPLD. Je suggère d'acheminer les fils vers le haut et sur les rangées extérieures de broches pour atteindre les rangées intérieures. Reportez-vous aux schémas des numéros de broches pour obtenir les bonnes broches - le brochage de la prise CPLD est loin d'être évident. Laissez suffisamment d'espace pour permettre la connexion à toutes les broches sur lesquelles vous passez les fils. Une fois les connexions du capuchon terminées, connectez le bus d'alimentation et de terre. Toutes les broches rouges sur les schémas sont Vcc et doivent être connectées. Les broches noires sont à la masse et doivent également être connectées. Encore une fois, l'acheminer dans les airs est une bonne approche. Regardez les images pour des idées.

Étape 7: Construire le berceau - Conclusion

Construire le berceau - Conclusion
Construire le berceau - Conclusion
Construire le berceau - Conclusion
Construire le berceau - Conclusion
Construire le berceau - Conclusion
Construire le berceau - Conclusion

Acheminez les connexions JTAG vers les bonnes broches. Examinez votre câble de programmation pour vous assurer que le connecteur est correctement orienté. N'oubliez pas le pull-up sur la broche TDO. Ceci est montré dans l'image uniquement et va entre la broche TDO et Vcc. La dernière étape consiste à connecter chaque broche d'E/S du CPLD à une broche sur les sockets. Utilisez les numéros dans les schémas pour les connexions. Cela prend le plus de temps ! Si vous suivez mon schéma de numérotation, vous pouvez utiliser le diagramme Top View comme guide lors du raccordement de vos circuits. Vous n'avez vraiment pas besoin de brancher tous ces éléments au départ, vous pouvez attendre d'en avoir besoin pour les circuits que vous concevez. Vérifiez soigneusement votre travail. Assurez-vous que l'alimentation et la terre ne sont pas court-circuitées !

Étape 8: Créer des Blinkenlights (Version TTL)

Faire Blinkenlights (Version TTL)
Faire Blinkenlights (Version TTL)

Vous voudrez bien sûr voir vos circuits fonctionner. Vous aurez donc besoin de clignotants (rendu célèbre par The Real Elliot). Le seul hic, c'est que les CPLD n'ont pas les sorties puissantes que les processeurs AVR ont. Utilisez des LED de 10 mA et des résistances de la série 1 KOhm. Ceux-ci vous donneront des signaux de sortie clairs sans solliciter les sorties CPLD.

Étape 9: faire des commutateurs

Faire des commutateurs
Faire des commutateurs
Faire des commutateurs
Faire des commutateurs

Pour fournir des stimuli à vos circuits, vous aurez besoin de quelques commutateurs. Vous avez quelques options ici, mais les exigences sont différentes de celles des processeurs AVR. Les sorties CPLD n'ont pas les pull-ups intégrés et il n'est pas si facile de faire un anti-rebond dans le logiciel. (C'est possible, mais cela prend des ressources que vous souhaitez probablement utiliser dans vos circuits.) Les commutateurs DIP illustrés fournissent plusieurs commutateurs dans un boîtier pratique, mais doivent être tirés vers le haut. J'ai utilisé des tractions 1K. Les boutons-poussoirs peuvent être fabriqués à l'aide du circuit recommandé par Atmel pour leur carte de démonstration. Les schémas sont à la page 36 environ. Une autre option consiste à connecter un processeur AVR pour fournir des stimuli - et même vérifier les réponses. Mais c'est un exercice laissé à l'élève.

Étape 10: Créez votre premier circuit

Créez votre premier circuit
Créez votre premier circuit
Créez votre premier circuit
Créez votre premier circuit

À ce stade, vous devriez avoir obtenu et installé le logiciel. Suivez le didacticiel complet et détaillé pour créer votre premier circuit CPLD simple (porte ET à deux entrées; rien de plus simple). Assurez-vous de sélectionner le bon appareil (44 broches PLCC, 5V, 1504AS [détails]) et choisissez les numéros de broches d'E/S disponibles (j'ai utilisé 14 et 16 comme entrées; 28 comme sortie). Ces détails diffèrent légèrement du tutoriel, mais ne devraient pas vous poser de problème.

Étape 11: Programmez votre premier CPLD

Programmez votre premier CPLD
Programmez votre premier CPLD
Programmez votre premier CPLD
Programmez votre premier CPLD

Branchez votre câble de programmation au port parallèle de votre PC, branchez-le à votre berceau de programmation, branchez 5 volts au connecteur d'alimentation et suivez le didacticiel pour programmer réellement votre tout premier CPLD. Sélectionnez la bonne version de câble. Notez que l'Altera Byte-Blaster est l'une des options.

Étape 12: Testez votre pièce programmée

Testez votre pièce programmée !
Testez votre pièce programmée !
Testez votre pièce programmée !
Testez votre pièce programmée !

Déconnectez votre câble de programmation du socle. Branchez les interrupteurs et les clignotants sur les bonnes broches, mettez l'appareil sous tension et essayez-le. Puisque vous commencez avec un circuit simple, les tests ne sont pas un grand défi. Si ça marche, c'est parti ! Le diagramme de la vue de dessus vous guidera dans la connexion de vos commutateurs et clignotants pour les tests.

Étape 13: La fin et quelques ressources Web

La fin et quelques ressources Web
La fin et quelques ressources Web

Ce n'est pas le but de ce tutoriel de vous apprendre à utiliser le VHDL. (Je commence juste à apprendre que c'est pourquoi j'ai créé le programmeur, vous vous souvenez ?) Cela dit, j'ai trouvé plusieurs tutoriels très utiles et des ressources utiles vers lesquelles je peux vous orienter. Les commentaires et autres suggestions sont grandement appréciés. Notez que vous pouvez également utiliser le système de développement Ghetto CPLD pour apprendre Verilog et d'autres techniques de programmation CPLD que le matériel ne se soucie pas. Ressources VHDL sur le Web:Bases et quelques liens ici et ici. Liens vers outils gratuits. Les tutoriels que j'aime sont ici et ici, mais vous en trouverez plein d'autres. Enfin (pour l'instant), vous aurez envie de consulter le groupe de discussion. Profitez, apprenez beaucoup et partagez ce que vous savez.

Conseillé: