Índice:

Sistema de desenvolvimento de lógica programável do gueto (CPLD): 13 etapas
Sistema de desenvolvimento de lógica programável do gueto (CPLD): 13 etapas

Vídeo: Sistema de desenvolvimento de lógica programável do gueto (CPLD): 13 etapas

Vídeo: Sistema de desenvolvimento de lógica programável do gueto (CPLD): 13 etapas
Vídeo: PUBLICAR DADOS NA NUVEM COM PROTOCOLO MQTT E CLP NEXTO 2024, Novembro
Anonim
Sistema de desenvolvimento de lógica programável do gueto (CPLD)
Sistema de desenvolvimento de lógica programável do gueto (CPLD)

Nos últimos meses, tenho aproveitado o Ghetto Development System para os processadores AVR. Na verdade, essa ferramenta quase zero dólar se mostrou tão fascinante e útil que me fez pensar se seria possível estender o conceito para o desenvolvimento de FPGA / CPLD também. (FPGA: Field Programmable Gate Array. CPLD: Complex Programmable Logic Device.) Então eu fiz algumas pesquisas na web e encontrei um sistema de desenvolvimento para CPLDs da Atmel. A comparação com dispositivos Altera mostra que sua pinagem é a mesma (dentro das restrições que detalho abaixo), então eles funcionarão também. Construindo a placa de desenvolvimento e o cabo de interface que apresentarei e, em seguida, baixando as ferramentas, você pode desenvolver seus próprios aplicativos CPLD. Observe as seguintes limitações e restrições. Tentei equilibrar capacidade e simplicidade para que você possa construir algo que goste e aprenda apenas com dispositivos.5V. Estender o sistema para cobrir tensões adicionais (3,3 V, 2,5 V, 1,8 V são suportados por dispositivos Atmel da mesma família) não é difícil, mas complica a placa de desenvolvimento e o cabo de programação. Vamos pular por enquanto. Observe que você deve fornecer uma alimentação de 5 V para a placa. PLCC de 44 pinos apenas. Especificamente, programei o Atmel ATF1504AS. O conceito Ghetto CPLD pode ser facilmente estendido a outros dispositivos Atmel, mas esse dispositivo parecia um bom meio-termo entre preço, facilidade de uso e capacidade. O conceito também deve se estender a outros dispositivos, como os da Altera, Xilinx, Actel, etc. Na verdade, a família Max7000 EPM7032 e EPM7064 funcionará no mesmo soquete, desde que você use as versões PLCC de 44 pinos. Até agora, usei apenas o cabo de programação Atmel, mas o Altera Byte-Blaster é compatível com o software Atmel e também deve funcionar bem. Na verdade, é um design um pouco mais simples do que o cabo Atmel. (Eu construí a versão Atmel e ela funciona, então não experimentei a versão Altera.) SparkFun oferece uma versão de $ 15 do cabo Altera. Uma vez que isso funcionará tanto para Atmel quanto para Altera, eu o recomendo. Se você vai desenvolver com peças Altera, você também vai querer obter o software Altera. Na verdade, não tentei fazer isso, mas não consigo pensar em nenhuma razão para que não funcionasse. A velocidade é limitada. Como o Sistema de Desenvolvimento Ghetto CPLD é construído com fiação manual e sem plano de aterramento, não espere uma operação confiável em velocidades acima de alguns megahertz. Mesmo que isso não seja garantido, sua milhagem pode variar! Obviamente, se você construir um protótipo de hardware que tenha um plano de aterramento, seu CPLD poderá funcionar bem em velocidades mais altas. Só não espere que ele vá rapidamente montado no Ghetto Development System.

Etapa 1: Peça peças para ir

Peça peças para ir
Peça peças para ir

Você precisará de um soquete plcc de 44 pinos, algumas tampas de desacoplamento, alguns CPLDs não programados, soquetes para conexões de protoboard, um resistor pull-up e talvez alguma placa perf para construí-lo. Se você tiver algum desses itens em sua caixa de lixo, você pode economizar alguns dólares. Para sua conveniência, aqui estão os números de peça da Digikey: CONN PLCC SOCKET 44POS TIN PN: 1-822473-4-ND SOCKET IC OPEN FRAME 14POS.3 "PN: 3M5462-ND Qtd: 2SOCKET IC OPEN FRAME 18POS.3 "PN: 3M5464-ND Qtd: 2CAP ELECT 10UF 50V SU BI-POLAR PN: P1280-ND Qtd: 1, C1CAP CER.10UF 50V 20% DISC RAD PN: 478 -4275-1-ND Qty: 4, C2-C5RES METAL FILM 5,10K OHM 1 / 4W 1% PN: P5.10KCACT-ND PLACA PC FR4 1-LADO PPH 4.0X4.0 PN: V2010-ND IC CPLD 64 MACROCELL 10NS 44PLCC PN: ATF1504AS-10JC44-ND Algumas peças podem ter quantidades mínimas, mas ainda assim devem ser muito baratas. Se você deseja construir algumas luzes piscantes (Etapa 8) ou fazer um conjunto de interruptores (etapa 9), você pode pedir estes também. Lembre-se de que a Digikey tem um mínimo de $ 25 para evitar custos de manuseio, então você pode querer obter alguns CPLDs extras não programados ou um processador AVR ou dois apenas por diversão. Recomendo que você compre o cabo de programação Altera da SparkFun. Aqui estão os números das peças. Pegue o cabo e o conector também. (Caso contrário, peça peças para o cabo da Digikey se você estiver construindo o seu próprio.) Altera FPGA Programador compatível PN: PGM-087052x5 Pin IDC Ribbon Cable PN: PRT-085352x5 Pin Encoberto PN: PRT-08506

Etapa 2: Obtenha e instale o software

Obtenha e instale o software
Obtenha e instale o software

Atualmente, estou usando a cadeia de ferramentas Atmel Prochip Designer 5.0. Essa ferramenta requer que você se registre na Atmel e preencha o formulário de solicitação oficial. Eu disse a eles que era um engenheiro de design, atualmente desempregado, e meu objetivo principal era aprender seus dispositivos e VHDL (tudo verdade, BTW). Eles aprovaram o pedido de licença. O único problema é que a licença é válida por apenas 6 meses. Espero encontrar uma cadeia de ferramentas de domínio público quando ela expirar. Altera também tem uma corrente de ferramentas que posso verificar. Todas as sugestões serão apreciadas. Veja comentários e links na última etapa. O Atmel Prochip Designer 5.0 está aqui. Se você conseguir, certifique-se de obter o Service Pack 1 também.

Etapa 3: Faça o cabo de programação

Faça o cabo de programação
Faça o cabo de programação

A abordagem mais fácil aqui é comprar o Altera Byte-Blaster da Sparkfun (consulte a Etapa 1). Se $ 15 é mais do que você gostaria de gastar, você pode usar o esquema do cabo SparkFun Altera ou usar o esquema do cabo Atmel e criar um. (Se houver muito interesse em criar o cabo em arranhões, posso oferecer algumas sugestões, mas o kit Sparkfun parece ser a resposta certa para mim.)

Etapa 4: Faça o Programmer Cradle

Make Programmer Cradle
Make Programmer Cradle
Make Programmer Cradle
Make Programmer Cradle
Make Programmer Cradle
Make Programmer Cradle

Dê uma olhada no programador Atmel. Isso é muito flexível e é uma ótima opção se você tem dinheiro e planeja fazer muito desenvolvimento de CPLD. Altera oferece algo semelhante, creio eu. Mas optei por uma abordagem mais barata - é disso que se trata! As fotos mostram as vistas frontal e traseira do berço que construí. Observe os soquetes DIP usados como conectores de breadboard. Todos os pinos de um lado de cada conector são conectados ao aterramento; os pinos do outro lado se conectam aos pinos de sinal no CPLD. Incluí algumas conexões de energia também; coloque-os onde caberem. Os diagramas são uma espécie de esquemas pictóricos; apenas as conexões de alimentação extra não são mostradas. Veja as fotos para ter ideias sobre isso.

Etapa 5: Construindo o berço - Parte 1

Construindo o Berço - Parte 1
Construindo o Berço - Parte 1
Construindo o Berço - Parte 1
Construindo o Berço - Parte 1

Comece a construir o berço inserindo os soquetes nos locais onde deseja. Deixe uma ou duas fileiras livres para que haja espaço para as tampas de desacoplamento. Isso também facilita a conexão com os pinos de sinal do CPLD. Encaixe os soquetes com um pouco de solda ou epóxi, dependendo do tipo de placa de desempenho usada. Deixe algum espaço extra na parte superior (acima do pino 1 do soquete CPLD) para o conector JTAG e o conector de alimentação. Consulte as fotos do que eu construí. Direcione um fio desencapado (bitola 20 ou mais) ao redor da parte externa dos soquetes para um barramento de aterramento. Passe o barramento de força também. (O fio vermelho nas fotos.) Consulte as fotos para obter alguma orientação, mas sua placa provavelmente será um pouco diferente - e isso é ótimo. Prenda os pinos externos dos soquetes no barramento de aterramento. Isso ajudará a ancorar o fio do barramento.

Etapa 6: Construindo o berço - Parte 2

Construindo o Berço - Parte 2
Construindo o Berço - Parte 2
Construindo o Berço - Parte 2
Construindo o Berço - Parte 2

Instale as tampas de desacoplamento e conecte-as aos pinos de aterramento e de alimentação em cada lado do soquete CPLD. Eu sugiro direcionar os fios para cima e sobre as fileiras externas de pinos para alcançar as fileiras internas. Consulte os diagramas de número de pinos para obter os pinos corretos - a pinagem do soquete CPLD está longe de ser óbvia. Deixe espaço suficiente para permitir a conexão de todos os pinos pelos quais você passar os fios. Assim que as conexões das tampas forem feitas, conecte o barramento de alimentação e aterramento. Todos os pinos vermelhos nos diagramas são Vcc e devem ser conectados. Os pinos pretos são aterrados e também devem ser conectados. Novamente, direcioná-lo no ar é uma boa abordagem. Olhe as fotos para ter ideias.

Etapa 7: Construindo o Berço - Conclusão

Construindo o Berço - Conclusão
Construindo o Berço - Conclusão
Construindo o Berço - Conclusão
Construindo o Berço - Conclusão
Construindo o Berço - Conclusão
Construindo o Berço - Conclusão

Direcione as conexões JTAG para os pinos corretos. Dê uma olhada em seu cabo de programação para ter certeza de que o conector está orientado corretamente. Não se esqueça do pull-up no pino TDO. Isso é mostrado apenas na imagem e fica entre o pino TDO e o Vcc. A última etapa é conectar cada pino I / O do CPLD a um pino nos soquetes. Use os números nos diagramas para as conexões. Isso leva mais tempo! Se você seguir meu esquema de numeração, poderá usar o diagrama de vista superior como um guia ao conectar seus circuitos. Você realmente não precisa conectar todos esses inicialmente, você pode esperar até precisar deles para os circuitos que você projeta. Verifique seu trabalho com atenção. Certifique-se de que a alimentação e o aterramento não estejam em curto!

Etapa 8: Faça Blinkenlights (versão TTL)

Make Blinkenlights (versão TTL)
Make Blinkenlights (versão TTL)

Você vai querer ver seus circuitos funcionando, é claro. Então você vai querer algumas luzes piscantes (que ficaram famosas pelo The Real Elliot). O único problema é que os CPLDs não têm as saídas robustas que os processadores AVR têm. Use LEDs classificados para 10ma e use resistores da série de 1KOhm. Isso fornecerá sinais de saída claros sem sobrecarregar as saídas CPLD.

Etapa 9: Faça as trocas

Faça mudanças
Faça mudanças
Faça mudanças
Faça mudanças

Para fornecer estímulos para seus circuitos, você precisará de alguns interruptores. Você tem algumas opções aqui, mas os requisitos são diferentes daqueles para processadores AVR. As saídas de CPLD não têm pull-ups embutidos e não é tão fácil fazer debouncing no software. (É possível, mas requer recursos que você provavelmente deseja usar em seus circuitos.) Os interruptores DIP mostrados fornecem vários interruptores em um pacote conveniente, mas devem ser puxados para cima. Usei pull-up de 1K. Os botões de pressão podem ser feitos usando o circuito que a Atmel recomenda para sua placa de demonstração. Os esquemas estão na página 36 ou mais. Outra opção é conectar um processador AVR para fornecer estímulos - e até mesmo verificar as respostas. Mas esse é um exercício deixado para o aluno.

Etapa 10: Crie seu primeiro circuito

Crie seu primeiro circuito
Crie seu primeiro circuito
Crie seu primeiro circuito
Crie seu primeiro circuito

A essa altura, você já deve ter obtido e instalado o software. Siga o tutorial completo e detalhado para criar seu primeiro circuito CPLD simples (porta AND de duas entradas; não fica muito mais simples). Certifique-se de selecionar o dispositivo correto (44 Pin PLCC, 5V, 1504AS [detalhes]) e escolha os números dos pinos de I / O que estão disponíveis (usei 14 e 16 como entradas; 28 como uma saída). Esses detalhes diferem um pouco do tutorial, mas não devem causar problemas.

Etapa 11: programe seu primeiro CPLD

Programe seu primeiro CPLD
Programe seu primeiro CPLD
Programe seu primeiro CPLD
Programe seu primeiro CPLD

Ligue o seu cabo de programação à porta paralela do seu PC, ligue-o ao Programmer Cradle, ligue 5 Volts ao conector Power e siga o tutorial para realmente programar o seu primeiro CPLD. Selecione a versão correta do cabo. Observe que o Altera Byte-Blaster é uma das opções.

Etapa 12: Teste sua parte programada

Teste sua parte programada!
Teste sua parte programada!
Teste sua parte programada!
Teste sua parte programada!

Desconecte o cabo de programação do berço. Conecte os interruptores e luzes piscantes nos pinos corretos, ligue a energia e experimente. Já que você está começando com um circuito simples, o teste não é um grande desafio. Se funcionar, você está pronto para começar! O diagrama de vista superior irá guiá-lo na conexão de seus interruptores e luzes piscantes para teste.

Etapa 13: Fim e alguns recursos da web

Fim e alguns recursos da web
Fim e alguns recursos da web

O objetivo deste tutorial não é ensiná-lo a usar o VHDL. (Estou começando a aprender que é por isso que criei o programador, lembra?) Dito isso, encontrei vários tutoriais muito úteis e alguns recursos úteis que posso apontar para você. Comentários e outras sugestões são muito bem-vindos. Observe que você também pode usar o Ghetto CPLD Development System para aprender Verilog e outras técnicas de programação de CPLD para as quais o hardware não se importa. Recursos de HDL na Web: Noções básicas e alguns links aqui e aqui. ferramentas gratuitas. Os tutoriais de que gosto estão aqui e aqui, mas você encontrará muitos outros. Finalmente (por agora), você vai querer verificar o grupo de discussão. Divirta-se, aprenda muito e compartilhe o que sabe.

Recomendado: