Tabla de contenido:

Sistema de desarrollo de lógica programable de ghetto (CPLD): 13 pasos
Sistema de desarrollo de lógica programable de ghetto (CPLD): 13 pasos

Video: Sistema de desarrollo de lógica programable de ghetto (CPLD): 13 pasos

Video: Sistema de desarrollo de lógica programable de ghetto (CPLD): 13 pasos
Video: Webinario: 6 Errores Clásicos y Fatales cuando Comisionamos Instrumentación y Sistemas de Control 2024, Mes de julio
Anonim
Sistema de desarrollo de lógica programable de ghetto (CPLD)
Sistema de desarrollo de lógica programable de ghetto (CPLD)

Durante los últimos meses he disfrutado del Ghetto Development System para los procesadores AVR. De hecho, esta herramienta de casi cero dólares ha resultado ser tan fascinante y útil que me hizo preguntarme si sería posible extender el concepto al desarrollo de FPGA / CPLD también. (FPGA: Field Programmable Gate Array. CPLD: Dispositivo lógico programable complejo). Así que investigué un poco en la web y se me ocurrió un sistema de desarrollo para los CPLD de Atmel. La comparación con los dispositivos Altera muestra que su configuración de pines es la misma (dentro de las restricciones que detallo a continuación), por lo que también funcionarán. Al construir la placa de desarrollo y el cable de interfaz que presentaré, luego descargar las herramientas, puede desarrollar sus propias aplicaciones CPLD. Tenga en cuenta las siguientes limitaciones y restricciones. Intenté equilibrar la capacidad y la simplicidad para que puedas crear algo que disfrutes y de lo que aprendas solo dispositivos de 5V. Extender el sistema para cubrir voltajes adicionales (3.3V, 2.5V, 1.8V son compatibles con dispositivos Atmel de la misma familia) no es difícil, pero complica tanto la placa de desarrollo como el cable de programación. Vamos a saltarlo por ahora. Tenga en cuenta que debe proporcionar un suministro de 5 V a la placa, solo PLCC de 44 pines. Específicamente, he programado el Atmel ATF1504AS. El concepto Ghetto CPLD se puede extender fácilmente a otros dispositivos Atmel, pero este dispositivo parecía un buen compromiso entre precio, facilidad de uso y capacidad. El concepto también debería extenderse a otros dispositivos como los de Altera, Xilinx, Actel, etc. De hecho, la familia Max7000 EPM7032 y EPM7064 funcionarán en el mismo zócalo siempre que utilice las versiones PLCC de 44 pines. Hasta ahora solo he usado el cable de programación Atmel, pero el Altera Byte-Blaster es compatible con el software Atmel y también debería funcionar bien. En realidad, es un diseño un poco más simple que el cable Atmel. (Construí la versión de Atmel y funciona, así que no he probado la versión de Altera). SparkFun ofrece una versión de $ 15 del cable Altera. Dado que esto funcionará tanto para Atmel como para Altera, lo recomiendo. Si va a desarrollar con piezas de Altera, también querrá obtener el software de Altera. En realidad, no he probado esto, pero no hay ninguna razón por la que pueda pensar que no funcionaría. La velocidad es limitada. Dado que el sistema de desarrollo Ghetto CPLD está construido con cableado manual y sin plano de tierra, no espere un funcionamiento confiable a velocidades superiores a unos pocos megahercios. Incluso eso no está garantizado, ¡su millaje puede variar! Por supuesto, si construye un prototipo de hardware que tiene un plano de tierra, su CPLD puede funcionar bien a velocidades más altas. Simplemente no espere que se instale rápidamente en el sistema de desarrollo Ghetto.

Paso 1: Ir a pedir piezas

Ir a pedir piezas
Ir a pedir piezas

Necesitará un enchufe plcc de 44 pines, algunas tapas de desacoplamiento, algunos CPLD no programados, enchufes para conexiones de placa de prueba, una resistencia pull-up y tal vez alguna placa de perforación para construirlo. Si tiene algo de esto en su caja de basura, puede ahorrar algunos dólares. Para su conveniencia, aquí están los números de pieza de Digikey: CONN PLCC SOCKET 44POS TIN PN: 1-822473-4-ND SOCKET IC OPEN FRAME 14POS.3 "PN: 3M5462-ND Cant: 2SOCKET IC OPEN FRAME 18POS.3 "PN: 3M5464-ND Cant: 2CAP ELECT 10UF 50V SU BI-POLAR PN: P1280-ND Cant: 1, C1CAP CER.10UF 50V 20% DISC RAD PN: 478 -4275-1-ND Cant: 4, C2-C5RES PELÍCULA DE METAL 5.10K OHM 1 / 4W 1% PN: P5.10KCACT-ND PLACA DE PC FR4 1-LADO PPH 4.0X4.0 PN: V2010-ND IC CPLD 64 MACROCELL 10NS 44PLCC PN: ATF1504AS-10JC44-ND Algunas piezas pueden tener cantidades mínimas, pero aún así deberían ser bastante baratas. Si desea construir algunas luces intermitentes (paso 8) o hacer un conjunto de interruptores (paso 9), es posible que desee realizar un pedido estos también. Tenga en cuenta que Digikey tiene un mínimo de $ 25 para evitar un cargo por manejo, por lo que es posible que desee obtener un par de CPLD extra no programados o un procesador AVR o dos solo por diversión. Le recomiendo que compre el cable de programación Altera de SparkFun. Aquí están los números de pieza. Consigue también el cable y el conector. (De lo contrario, solicite piezas para el cable a Digikey si está construyendo el suyo propio). Programador compatible con FPGA de Altera PN: PGM-087052 Cable de cinta IDC de 5 pines PN: PRT-08535 Cabezal envuelto de 2 pines de 5 pines PN: PRT-08506

Paso 2: Obtenga e instale el software

Obtener e instalar software
Obtener e instalar software

Actualmente estoy usando la cadena de herramientas Atmel Prochip Designer 5.0. Esta herramienta requiere que se registre con Atmel y complete su formulario de solicitud oficial. Les dije que era un ingeniero de diseño, actualmente desempleado, y mi propósito principal era aprender sus dispositivos y VHDL (todo es cierto, por cierto). Aprobaron la solicitud de licencia. El único inconveniente es que la licencia es válida por solo 6 meses. Espero encontrar una cadena de herramientas de dominio público para cuando expire. Altera también tiene una cadena de herramientas que puedo revisar. Cualquier sugerencia será apreciada. Vea los comentarios y enlaces en el último paso. El Atmel Prochip Designer 5.0 está aquí. Si lo obtiene, asegúrese de obtener también el Service Pack 1.

Paso 3: haga el cable de programación

Hacer cable de programación
Hacer cable de programación

El enfoque más fácil aquí es comprar el Altera Byte-Blaster similar a Sparkfun (ver Paso 1). Si $ 15 es más de lo que le gustaría gastar, entonces puede usar el esquema de SparkFun Altera Cable o usar el esquema de Atmel Cable y construir uno desde cero. (Si hay mucho interés en construir el cable desde cero, puedo ofrecer algunas sugerencias, pero el kit Sparkfun me parece la respuesta correcta).

Paso 4: Haga la base del programador

Hacer la base del programador
Hacer la base del programador
Hacer la base del programador
Hacer la base del programador
Hacer la base del programador
Hacer la base del programador

Eche un vistazo al programador de Atmel. Esto es muy flexible y es una gran opción si tiene dinero y planea hacer mucho desarrollo de CPLD. Altera ofrece algo similar, creo. Pero opté por un enfoque más económico, ¡de eso se trata todo esto! Las imágenes muestran vistas frontal y trasera de la base que construí. Tenga en cuenta los enchufes DIP utilizados como conectores de placa de pruebas. Todos los pines de un lado de cada conector están conectados a tierra; los pines del otro lado se conectan a los pines de señal del CPLD. También incluí algunas conexiones eléctricas; colóquelos donde quepan. Los diagramas son una especie de esquemas pictóricos; solo no se muestran las conexiones de alimentación adicionales. Mire las imágenes para obtener ideas sobre estos.

Paso 5: Construcción de la base - Parte 1

Construyendo la cuna - Parte 1
Construyendo la cuna - Parte 1
Construyendo la cuna - Parte 1
Construyendo la cuna - Parte 1

Comience a construir la base insertando los enchufes en los lugares donde los desee. Deje una fila o dos vacías para que haya espacio para las tapas de desacoplamiento. Esto también facilita la conexión a los pines de señal CPLD. Fije los enchufes con un poco de soldadura o epoxi según el tipo de placa de perforación que utilice. Deje algo de espacio adicional en la parte superior (encima del pin 1 del zócalo CPLD) para el conector JTAG y el conector de alimentación. Consulte las imágenes del que construí. Enrute un cable desnudo (calibre 20 más o menos) alrededor del exterior de los enchufes para un bus de tierra. Encamine también el bus de energía. (El cable rojo en las imágenes.) Consulte las imágenes para obtener una guía, pero su placa probablemente será un poco diferente, y eso está bien. Suelde las clavijas exteriores de los enchufes al bus de tierra. Esto ayudará a anclar el cable del bus.

Paso 6: Construcción de la base - Parte 2

Construyendo la cuna - Parte 2
Construyendo la cuna - Parte 2
Construyendo la cuna - Parte 2
Construyendo la cuna - Parte 2

Instale las tapas de desacoplamiento y conéctelas a las clavijas de tierra y de alimentación a cada lado del zócalo CPLD. Sugiero enrutar los cables hacia arriba y sobre las filas externas de pines para llegar a las filas internas. Consulte los diagramas de números de pines para obtener los pines correctos; la asignación de pines del zócalo CPLD está lejos de ser obvia. Deje suficiente espacio para permitir la conexión a los pines por los que pasa los cables. Una vez que se realizan las conexiones de la tapa, conecte el bus de alimentación y tierra. Todos los pines rojos en los diagramas son Vcc y deben estar conectados. Los pines negros están conectados a tierra y también deben conectarse. Nuevamente, enrutarlo en el aire es un buen enfoque. Mire las imágenes en busca de ideas.

Paso 7: Construcción de la base - Conclusión

Construyendo la cuna - Conclusión
Construyendo la cuna - Conclusión
Construyendo la cuna - Conclusión
Construyendo la cuna - Conclusión
Construyendo la cuna - Conclusión
Construyendo la cuna - Conclusión

Dirija las conexiones JTAG a los pines correctos. Eche un vistazo a su cable de programación para asegurarse de que el conector esté orientado correctamente. No olvide el pull-up en el pin TDO. Esto se muestra solo en la imagen y va entre el pin TDO y Vcc. El último paso es conectar cada pin de E / S del CPLD a un pin en los enchufes. Utilice los números de los diagramas para las conexiones. ¡Esto lleva más tiempo! Si sigue mi esquema de numeración, puede utilizar el diagrama de la vista superior como guía al conectar sus circuitos. Realmente no tiene que conectar todos estos inicialmente, puede esperar hasta que los necesite para los circuitos que diseña. Revise su trabajo cuidadosamente. ¡Asegúrese de que la energía y la tierra no estén en cortocircuito!

Paso 8: hacer luces intermitentes (versión TTL)

Hacer luces intermitentes (versión TTL)
Hacer luces intermitentes (versión TTL)

Querrá ver cómo funcionan sus circuitos, por supuesto. Así que querrás algunas luces intermitentes (que se hicieron famosas por The Real Elliot). El único inconveniente es que los CPLD no tienen los resultados robustos que tienen los procesadores AVR. Use LED clasificados para 10ma y use resistencias de la serie 1KOhm. Estos le darán señales de salida claras sin forzar las salidas CPLD.

Paso 9: hacer cambios

Hacer interruptores
Hacer interruptores
Hacer interruptores
Hacer interruptores

Para proporcionar estímulos a sus circuitos, necesitará algunos interruptores. Tiene algunas opciones aquí, pero los requisitos son diferentes a los de los procesadores AVR. Las salidas CPLD no tienen los pull-ups incorporados y no es tan fácil eliminar los rebotes en el software. (Es posible, pero requiere recursos que probablemente desee utilizar en sus circuitos). Los interruptores DIP que se muestran proporcionan varios interruptores en un paquete conveniente, pero deben levantarse. Usé pull-ups de 1K. Los pushbuttton se pueden hacer usando el circuito que Atmel recomienda para su placa de demostración. Los esquemas están en la página 36 más o menos. Otra opción es conectar un procesador AVR para proporcionar estímulos e incluso verificar las respuestas. Pero ese es un ejercicio que se le deja al estudiante.

Paso 10: crea tu primer circuito

Crea tu primer circuito
Crea tu primer circuito
Crea tu primer circuito
Crea tu primer circuito

Para entonces, debería haber obtenido e instalado el software. Siga el tutorial completo y detallado para crear su primer circuito CPLD simple (puerta AND de dos entradas; no se vuelve mucho más simple). Asegúrese de seleccionar el dispositivo correcto (44 pines PLCC, 5V, 1504AS [detalles]) y elija los números de pines de E / S que estén disponibles (utilicé 14 y 16 como entradas; 28 como salida). Estos detalles difieren ligeramente del tutorial, pero no deberían causarle ningún problema.

Paso 11: programe su primer CPLD

Programe su primer CPLD
Programe su primer CPLD
Programe su primer CPLD
Programe su primer CPLD

Conecte su cable de programación al puerto paralelo de su PC, conéctelo a la base del programador, conecte 5 voltios al conector de alimentación y siga el tutorial para programar su primer CPLD. Seleccione la versión correcta de cable. Tenga en cuenta que Altera Byte-Blaster es una de las opciones.

Paso 12: ¡Pruebe su pieza programada

¡Pruebe su pieza programada!
¡Pruebe su pieza programada!
¡Pruebe su pieza programada!
¡Pruebe su pieza programada!

Desconecte su cable de programación de la base. Enchufe los interruptores y las luces intermitentes en los pines correctos, encienda la alimentación y pruébelo. Dado que está comenzando con un circuito simple, las pruebas no son un gran desafío. Si funciona, ¡estás listo y funcionando! El diagrama de la vista superior lo guiará en la conexión de sus interruptores y luces intermitentes para realizar pruebas.

Paso 13: El final y algunos recursos web

El fin y algunos recursos web
El fin y algunos recursos web

No es el propósito de este tutorial enseñarle cómo usar VHDL. (Estoy empezando a aprender que es por eso que creé el programador, ¿recuerdas?) Dicho esto, encontré varios tutoriales muy útiles y algunos recursos útiles que puedo señalar. Se agradecen enormemente los comentarios y otras sugerencias. Tenga en cuenta que también puede utilizar el Sistema de desarrollo de CPLD de Ghetto para aprender Verilog y otras técnicas de programación de CPLD que al hardware no le importan. Recursos de VHDL en la Web: Conceptos básicos y algunos enlaces aquí y aquí. herramientas gratuitas. Los tutoriales que me gustan están aquí y aquí, pero encontrarás muchos otros. Finalmente (por ahora), querrás ver el grupo de discusión. Disfruta, aprende mucho y comparte lo que sabes.

Recomendado: