Cómo: Gadgets de lógica programables (CPLD)

Cómo: Gadgets de lógica programables (CPLD)

March 12, 2023 Digital Electronics 0

Los dispositivos lógicos programables complejos (CPLD) contienen los bloques de construcción para numerosos ICS lógicos de 7400 serries. Los circuitos totales se pueden diseñar en una PC, así como luego cargarse a una CPLD para la implementación inmediata. Un microcontrolador vinculado a una CPLD es como un microcontrolador emparejado con una tarjeta de circuito reprogrammable, así como una tienda de electrónica completamente almacenada.

Al principio, no estábamos seguros del amplio encanto, así como la aplicación de CPLDS en proyectos aficionados, sin embargo, hemos estado convencidos. Un gadget de lógica personalizado puede deshacerse de los días de lectura de hojas de datos, descubriendo la combinación perfecta de Logic IC, y luego esperando en que lleguen los chips. Los tableros de circuitos son más fáciles con CPLDS, ya que un solo chip con colocación de PIN programable puede reemplazar 100s de ICS lógicos privados. Los errores de circuito se pueden corregir cargando un nuevo diseño, en lugar de grabado, además de rellenar una nueva placa de circuito. Los CPLDs son rápidos, con tiempos de reacción a partir de 100 MHz. A pesar de su versatilidad extrema, CPLDS es una innovación madura con chips a partir de $ 1.

Tenemos un tablero de avance de autoajustes en casa y automático para que comience. No se preocupe, esta placa tiene una interfaz de puerto serie para trabajar con la CPLD, así como no necesita un programador JTAG de JTAG separado (generalmente paralelo).

Introducción a CPLDS

Cuándo utilizar un CPLD

Considere la utilización de una CPLD cuando un estilo requiere más de un ICS lógico de la serie 7400. Una CPLD será más barata, más rápida, así como se puede programar con su perfecta configuración de PIN-OUT para facilitar las PCB.

Use una CPLD en estilos complicados que pueden necesitar una serie de iteraciones. Es más fácil detilizar un nuevo circuito en la aplicación de software, así como la carga a la CPLD de lo que es diseñar, grabar, así como es rellenar una nueva placa de circuito.

Para una velocidad máxima, así como la respuesta inmediata, seleccione una CPLD. La diferencia en la velocidad es increíble; CPLDS comienza a 100 MHz, mientras que los microcontroladores responden a las interrupciones a unos pocos MHz. CPLD Estilos Tipo Circuitos que reaccionan al estímulo externo, las reacciones ocurren casi instantáneamente. Un microcontrolador ejecuta un código para reaccionar a los eventos, incluso las rutinas de interrupción tienen una latencia comparativamente alta.

Cpld vs fpga

Las FPGA son mucho mejores entendidas que las CPLD, sin embargo, comparten muchas características. Esta analogía no es perfecta, sin embargo, nos gusta: donde los FPGA son un núcleo procesador reprogramable, una CPLD es una tarjeta de circuito reprogramable o una tabla de presa. FPGAs Reemplace los microcontroladores, la memoria, así como otros componentes. Los CPLDs toman un ICS lógico, así como funcionan bien con un microcontrolador.

Fabricantes

Altera, así como Xilinx, los mayores fabricantes de CPLD, se entienden mucho mejor para sus FPGA. El semiconductor en celosía es un fabricante más grande de CPLD con menos vecindario siguiente. Atmel hace versiones compatibles con PIN de antiguas CPLD estándar de la industria.

Si planea trabajar a 5 Volts, sus opciones son limitadas. Xilinx XC9500 CPLDS todavía se ofrecen como un nuevo stock antiguo, sin embargo, los gastos cuatro veces más que los equivalentes más nuevos 3.3Volts. La serie ATF1502 de Atmel funciona a 5 Volts, sin embargo, no ofrecen un entorno de avance gratuito.

A 3.3Volts Hay más opciones, sin embargo, las nuevas CPLD tienen progresivamente un núcleo que se extiende a 2.5Volts, 1.8Volts, o más bajo. El Altera Maxii, así como la serie Xilinx XC9500XL, son más probables en los 3,3 Volt CPLDS más prominentes. Igilinx también hace que la CPLD coolrunnerii sea, sin embargo, solo está disponible en un paquete TQFP, así como también necesita un suministro separado de 1.8Volt para el núcleo.

Paquetes

La mayoría de los fabricantes ofrecen una o dos CPLD en un paquete de PLCC 44 amigables con el afición, aunque esto está empezando a desaparecer. PLCC es un chip de instalación de superficie de tamaño deóxido con pasadores en los cuatro lados. Los zócalos PLCC44 se ofrecen comúnmente en el agujero a través del agujero, así como las versiones SMD. Desafortunadamente, los nuevos hogares CPLD están comenzando a deshacerse del paquete PLCC, así como a ofrecer solo 44 pines, así como chips de TQFP más grandes, como FOOLRUNNIII de Xilinx.

Entornos de desarrollo

La mayoría de los fabricantes ofrecen una atmósfera de avance gratuito que admite la entrada de estilo que utiliza esquemas simples, además de VeriLog o VHDL. Muchos no admitirán los últimos FPGA en la versión gratuita, sin embargo, solo los requisitos de las partes CPLD de todos modos. Altera tiene Quartus, Xilinx tiene ISE, así como en celosía tiene islaver. Atmel tiene un diseñador de PROCHIP para la serie ATF15XX, sin embargo, solo ofrecen un permiso de prueba de 6 meses, que realmente no nos proporcionarían.

Programadores

La junta de avance que presentamos no requiere un programador JTAG separado ya que el microcontrolador PIC ya programa la CPLD. If you want an outside programmer, the cheapest are the parallel port programmers: Parallel cable III for Xilinx as well as BytleBlaster for Altera. affordable clones, as well as schematics, are offered at SparkFun. The OpenOCD is a generic USB JTAG programmer that will work with many CPLDs, FPGAs, as well as ARMs.

Nuestra eleccion

We ultimately settled on the Xilinx XC9500XL series since it haD Un conjunto de avance económico Podríamos utilizar para probar nuestro programador JTAG antes de implementar un diseño completo.

El DO-CPLD-DK de Digilent incluye un XC9572XL, un coolrunnerii, así como el programador portuario paralelo. Los horizontes de NU tienen algunos diseños antiguos de no RoHS por $ 40, sin embargo, debido a un manejo de tipo variable descuidado en sus scripts de procesamiento de tarjetas de historial de crédito, no pudimos totalizar un pedido en línea. Intentamos hacerlo por teléfono, sin embargo, se negaron a tomar un pedido tan pequeño en el teléfono, incluso durante un mal funcionamiento del sitio web. Al final, era más barato pagar el costo total en Digikey (# 122-1512-ND) después de incluir los gastos de envío exorbitantes de New Horizon. Normalmente, normalmente no mencionaríamos esto, sin embargo, con solo dos ubicaciones para comprar la Junta, es probable que valga la pena señalar nuestra experiencia.

Tablero de avance CPLD

Haga clic en aquí para obtener una imagen esquemática de tamaño completo (PNG). El circuito, así como la PCB, se diseñan utilizando la versión gratuita de CADSOFT EAGLE. Todos los datos para este trabajo están incluidos en el archivo de trabajo vinculado al final del artículo.

Circuito

Un microcontrolador PIC 24FJ64GA002 (IC1) proporciona la interfaz individual, así como la interfaz de programación en la CPLD. Utilizamos esta foto de $ 4 en una gran cantidad de trabajos, ya que el PIN periférico, elija la función hace que el enrutamiento de la placa sea realmente fácil. Inspeccione nuestra introducción a la PIC24F para obtener más detalles. La PIC debe interactuar con un puerto serie de PC, por lo que agregamos un transceptor RS232 asequible MAX3232 RS232. La interfaz serial debe funcionar con un adaptador de serie USB->.

Nuestra opción de CPLD (IC3), un Xilinx XC9572XL (PDF), está vinculado entre la PIC, así como una serie de otros componentes. Podemos producir una interminable gama de circuitos entre la foto, así como otros chips que utilizan la lógica reprogrammable dentro de la CPLD. La PIC programará la CPLD con el código enviado desde un puerto serie de PC, sin embargo, todavía llevamos a los pines JTAG a un encabezado para una depuración exterior simple.

Un oscilador programable digital DS1085 (IC4) produce frecuencias de reloj entre 8kHz, así como 133MHz, a los incrementos de 10 kHz. Esto es extremadamente similar al DS1077 que cubrimos anteriormente, sin embargo, incluso tiene pasos entre todas las frecuencias. El DS1085 necesita un suministro de 5Volt (VR2). La interfaz I2C también se extiende a 5 Volts, por lo que lo vinculamos a los pines de imágenes tolerantes a 5Volt. Es posible utilizar el 3.3Volt 66MHz 1085L en su lugar, así como eliminar el suministro de 5VOLT.

Utilizamos un regulador de voltaje de 3.3VOLT SOT223 económico (VR1) para alimentar la mayor parte del circuito. La oferta de 5 Volt (VR2) se puede excluir si utiliza un oscilador más lento de 1085L 3.3VOLT.

Los CPLD se utilizan comúnmente como un controlador de memoria, por lo que incluimos 32k de SRAM (IC5) en la placa de avance. Un pestillo de 3.3Volt con insumos tolerantes de 5VOLT Interfaz Las entradas de memoria a una amplia variedad de voltajes externos (IC6). Las entradas de cierre se mantienen bajas con una red de resistencia de 1mohm (RN1). Discutiremos esta sección extensamente en un próximo artículo.

tarjeta de circuito impreso

El tablero es un diseño cuasi unilateral. Hicimos una serie de compromisos, por lo que podríamos prototipos de esta PCB extremadamente experimental nosotros mismos. Presentamos la Junta ‘tal como está’ para otros morenos que pueden querer grabar este consejo en casa. Si envía la PCB a una casa de la junta, intente corregir estos problemas antes de crear una placa de doble cara ‘real’.

Se le falta un pasador de alimentación del CPLD un condensador de desacoplamiento enteramente; No había ningún método para poner a un condensador en esa área. Un condensador de desacoplamiento CPLD, así como el condensador de desacoplamiento SRAM, son partes a través de los orificios. Utilizando estas partes a través del agujero deshacerse de algunos cables de puente.

Los cables de puente en la parte posterior de la placa están optimizados para la producción de un solo lado, en lugar de las grandes prácticas de estilo. Fingimos un tablero de doble cara soldando el bus de alimentación en la parte posterior. Un estilo de tablero de doble cara genuino debe pasar el bus de alimentación para evitar que las rutas de la señal de cruce, así como incluyen los condensadores de desacoplamiento que faltan.

Utilizamos un zócalo de fichas PLCC de instalación de la superficie, sin embargo, una versión a través del orificio es definitivamente una idea mucho mejor. Aunque la versión SMD sería fácil de soldar, sin embargo, [resultó ser] una pesadilla. Realmente deseamos que la CPLD estuviera en la parte delantera del tablero para la presentación más genial posible. Un tablero de dos caras apropiado con orificios pasados ​​a través de los orificios puede tener un zócalo del orificio a través del frente, sin embargo, esto no fue posible con nuestro tablero prototipo de 1 lados.

Lista de partes

Haga clic en aquí para un diagrama de colocación de tamaño completo (PNG).

Parte
Valor

IC1
PIC25FJ64GA002 (SOIC)

IC2
Max3232cse (SOIC-N)

IC3
Xc9572xl-10pcg44c (PLCC)


Socket PLCC44, SMD

IC4
DS1085 o DS1085L (SOIC)

IC5
32kx8, 3.3v, sram (SOJ)

IC6
74LVT573D (SOIC)

Vr1
Regulador 3.3V, LD1117S33 (SOT223)

Vr2
Regulador de 5V, LD1117S50 (SOT223)

C1-11,13-17
Capacitores de desacoplamiento 0.1UF (0805)

C12
Capacitor 0.01UF (0805)

C15,16
Capacitores de desacoplamiento de 0.1UF (a través del orificio)

C18
Condensador Tantalum 10UF (A)

R1,2
Resistor 390OHM (0805)

R3-5
Resistencia de 2000OHM (0805)

Rn1
Red de resistencia 1MOHM (9 PIN)

Led1,2
LED (0805)

X1
Conector de puerto serie femenino DB9 * no probado

J1
2.1mm Power Jack

ICSP, JTAG, SV1
Encabezado de 0.1 “PIN, ángulo recto

S1
Interruptor táctil (DTSM-6)

Firmware

El firmware está escrito en C Utilizando la versión de presentación gratuita del compilador PIC C30. Descubra todo sobre cómo trabajar con esta foto en nuestra introducción a la serie PIC 24F. El firmware se incluye en el archivo de trabajo al final del artículo.

Deseamos un método súper simple para interactuar con el hardware en la pizarra sin ciclos de prueba de compilación sin fin. Hicimos una versión personalizada del firmware pirata de autobuses que proporciona una interfaz de terminal ASCII simple al chip de reloj DS1085 (I2C), la interfaz de programación de CPLD (JTAG), así como una interfaz de 3 cables (SPI) a la CPLD. Inspeccione el tutorial del pirata de bus para el fondo en la sintaxis simple utilizada con el firmware.

El firmware del pirata de bus original maneja una serie de protocolos que comparten los mismos pasadores exactamente. Para la versión CPLD, modificamos las asignaciones PIN en forma de las conexiones en la placa de avance. Asimismo, también eliminamos los módulos no utilizados, así como las opciones.

CPLD BLINKY LED ejemplos

Preparamos una serie de estilos en el entorno de avance de ISE de Xilinx. Los archivos de colocación de pines, así como los estilos compilados (XSVF) se incluyen en el archivo de trabajo vinculado al final del artículo. Una explicación completa de ISE está más allá del rango de este artículo; Descubrimos los datos de asistencia suficientemente útiles para hacer estos ejemplos.

El primer estilo, simplemente enciende el LED vinculado al pin 8 de la CPLD.

Preparar el archivo XSVF

XSVF es un formato de programación JTAG comprimido, como se explica por Xilinx en esta Nota de aplicación (PDF). XSVF no está restringido a programación de dispositivos Xilinx, así como se puede preparar para cualquier tipo de chip que proporcione un archivo Significado de BSDL JTAG típico.

Abra la herramienta de programación de efectos del panel de trabajo de suite de estilo ISE en Configurar dispositivo de destino-> Impacto.

Seleccione la opción para producir un archivo de escaneo de límite, así como configurar el tipo a XSVF.

Haga que la salida XSVF sea un nombre de datos, así como luego agregue una imagen CPLD compilada (EX1.JED) cuando se le solicite agregar un dispositivo.

Debe ver una cadena JTAG que contiene un solo dispositivo.

Haga clic en el gadget, así como el programa Seleccionar; El efecto registrará las secuencias de programación a un archivo XSVF.

Con los datos XSVF en la mano, es hora de abrir un terminal, así como programar la CPLD. Nos gusta TERA TERVER, así como Hércules en Windows. Debe permitir que Xon / Xoff Flow Administre en el cliente utilice la interfaz JTAG. La configuración del lado predeterminada de PC para el terminal de la placa de avance es de 115200bps, 8N1.

HIB> M modo -select
1. HI
2. I2C
3. jtag
4. RAW3WIRE
MODO> 3 <-JTAG Conjunto de modo 900 602 JTAG LISTO Jtag> (2) <-probe jtag cadena macro xxx jtag init cadena xxx jtagsm: reinicio xxx jtagsm: reinicio-> inactivo
xxx jtagsm: inactivo-> Registro de instrucciones (retrasado de un bit para TMS)
xxx jtagsm: IR-> inactivo
xxx jtagsm: inactivo-> registro de datos
xxx jtagsm: dr-> inactivo
xxx jtagsm: reinicio
xxx jtagsm: reinicio-> inactivo
xxx jtagsm: inactivo-> registro de datos
Informe de cadena XXX JTAG:
0x01 dispositivo (s)
# 0x01: 0xc9 0x02 0x06 0x9a <-xc9572xl responde xxx jtagsm: dr-> inactivo
Jtag>

En el terminal, vamos al menú MODO (M), así como seleccionar JTAG (3). Macro 2 sondas La cadena JTAG, en nuestra situación, esta es solo la CPLD. El informe de la cadena nos dice que el chip está vinculado, así como responder. Viajé más sobre la interfaz JTAG.

Ahora podemos ejecutar el programador XSVF, MACRO (3), así como cargar los datos XSVF del terminal en modo binario. El primer ejemplo, simplemente enciende el LED en PIN 8. Si las luces LED, podemos confirmar que la programación fue exitosa. Si su LED no se enciende, no se desespere; A veces, el programador JTAG se pega, así como una macro de reinicio (1) obtendrá el chip.

LED a pleno brillo.

74LS32 / 4071 o Puerta, parpadea a la mitad (/ 2)

Un elemento importante de la placa de avance CPLD es el sintetizador de frecuencia de 1085 (L) (l) vinculado al pin 7 de la CPLD. El siguiente ejemplo utiliza una lógica o puerta, como un 74LS32 o 4071 IC, para parpadear el LED siempre que la señal del reloj es alta. A lo largo de la velocidad de reloj más lenta, el parpadeo será tan rápido para ver, sin embargo, deberíamos obtener un buen impacto de atenuación de PWM en comparación con el primer ejemplo.

Jtag> m <-select Mode 1. HI 2. I2C 3. jtag 4. RAW3WIRE Modo> 2 <-I2C Interfaz a DS1085 Conjunto de modo 900 202 I2C listo I2C> (1) <-Address Examinar macro XXX navegando 7bit I2C Space Space. Gadgets encontrados en: 0xb0 0xb1 <: la dirección DS1085 I2c>

Programe la CPLD como antes, así como luego cambie al modo I2C para obtener acceso al reloj DS1085. Podríamos buscar la dirección del gadget en th

Leave a Reply

Your email address will not be published. Required fields are marked *