TODOPIC
Otros Microcontroladores / Dispositivos programables => Lógica Programable => Mensaje iniciado por: Picuino en 13 de Junio de 2014, 12:58:13
-
He pedido unos samples a Atmel de un CPLD sencillo (ATF750C) para comenzar con estos dispositivos.
¿Alguien sabe cómo puedo programarlo de forma sencilla?
Necesito un compilador (a ser posible opensource o freeware) y un programador.
De antemano, gracias por los consejos.
Saludos.
-
Este CPLD tiene la ventaja de trabajar con 5 voltios y tener encapsulado PDIP.
Dejo aquí los recursos que voy encontrado:
Artículos:
Wikipedia: CPLD (http://es.wikipedia.org/wiki/CPLD)
Hackaday: programmable logic devices (CPLD) (http://hackaday.com/2008/12/11/how-to-programmable-logic-devices-cpld)
Dangerousprototypes: CPLD on a PDIP (http://dangerousprototypes.com/2011/03/14/trivia-cpld-on-a-pdip/)
ATMEL CPLD:
Atmel CPLD Development/Programmer Kit (http://www.atmel.com/tools/ATF15XX-DK3CPLDDEVELOPMENT_PROGRAMMERKIT.aspx)
Atmel ATF750C Datasheet (http://www.atmel.com/Images/doc0776.pdf)
WinCUPL: Compiler for Universal Programmable Logic
WinCUPL compilador gratuíto para CPLD (http://www.atmel.com/tools/WINCUPL.aspx)
Download WinCUPL (http://www.atmel.com/System/BaseForm.aspx?target=tcm:26-17232)
WinCUPL reference manual (http://www.atmel.com/Images/doc0737.pdf)
Saludos.
-
¿Cómo te fue picuino?
Yo estoy planteándome meterme con los ATF15xx, pero todo son problemas... ni siquiera encuentro con qué programarlos (hay un programador por el puerto paralelo pero no sé si se pueden programar por usb)
-
Al final resolví el problema con un par de módulos CLC de un PIC.
No encontré un programador adecuado para la CPLD. Por otro lado vi que las FPGA tienen un precio asequible así que compre un programador USB Blaster para Altera y una Cyclone II.
La tengo en el cajón de proyectos pendientes.
No hay mucho soporte para estos CPLD en Internet. Por un poco más de dinero, creo que es mejor dar el salto directamente a una FPGA.
Un saludo.
-
Gracias picuino... veo que vamos recorriendo el mismo camino.
Yo también me he estado peleando con el módulo clc de los pic, pero tengo el problema de que durante el reseteo del pic el clc entra en estado desconocido hasta que el pic arranca y yo necesito que esté vigente desde el mismo momento que recibe energía.
Los CPLD y FPGA nuevos no me valen porque tengo que trabajar a 5V.
Voy a intentar seguir este tutorial: http://www.instructables.com/id/Ghetto-Programmable-Logic-CPLD-Development-Syste/?ALLSTEPS
-
Otros documentos interesantes:
http://www.google.es/url?sa=t&rct=j&q=&esrc=s&source=web&cd=9&cad=rja&uact=8&ved=0CGIQFjAI&url=http%3A%2F%2Fwww.davidswinscoe.com%2Felectronics%2Fnotes%2Fpracticals%2FUsing%2520Atmel%2520WinCUPL.doc&ei=wcdeVa_GFIS2UZTzgPgH&usg=AFQjCNGl-3PBuyLOeOKhAdCsCzqdw3kibw&sig2=g0BAni2IN55T0sERdBC8xQ&bvm=bv.93990622,d.d24
http://fixunix.com/cp-m/161-atmel-xilinx-cplds.html
https://sites.google.com/site/solderandcircuits/home/atmel-photos/atmel-cpld-advice
-
Hola jfmateos, ¿Al final has conseguido hacer funcionar el CPLD?
-
No me equivoqué al pedirlos y compré la versión de 3v3 que no me servía en mi diseño.
Hoy voy a pedir de nuevo algunos ATF1502 o ATF1504 y estoy montando un byteblaster II...
¿Cómo lo llevas tú?
-
Ahora tengo el proyecto abandonado.
Hace tiempo que quería trabajar con las CPLD porque son la única solución para conseguir respuestas rápidas y ese problema se presenta a menudo.
Creo que este es el proyecto en el que quería hacer un frecuencímetro con una resolución menor de 1 nanosegundo.
Al final conseguí lo que quería con el módulo CLC y el CTMU, pero no siempre medía correctamente y además la frecuencia máxima era relativamente baja (10 o 20 Mhz creo recordar)
Otra solución para el preescaler que encontré es utilizar un PLL programable. Son baratos y muy flexibles.
De todas formas, si consigues resultados, por favor postealos.
Tengo por ahí las CPLD esperando poder programarlas cuando sepa cómo hacerlo.
Un saludo.
-
Por supuesto picuino...
-
A mí me falta resolver estas dudas:
¿Se puede programar con un JTAG genérico? He visto cómo hacer uno sencillo en varias páginas.
El WinCUPL sirve para compilar, pero ¿qué programa se utiliza para grabar los datos?
Un saludo.
-
Creo que el ATMISP (http://www.atmel.com/tools/ATMISP.aspx), pero el caso que la versión de Windows 7 sólo admite el cable USB.
Voy a intentar instalar la de XP en una máquina virtual a ver qué pasa.
-
Sí, la versión de XP permite elegir los puertos LPT
-
Algunos post sobre JTAG con Arduino:
The Arduino as a simple JTAG adapter (http://www.khjk.org/log/2013/aug/jtagbang.html)
JTAG connection using Arduino (https://balau82.wordpress.com/2014/08/10/jtagduino-jtag-connection-using-arduino/)
Un enlace interesante que he encontrado. Programa libre para manejar JTAG desde el PC :
OpenOCD: Open On-Chip Debugger (http://openocd.org/)
-
Lo interesante de estos links es que se trata de hardware y software abierto que puedes estudiar, modificar o adaptar.
Saludos.
-
La verdad que yo tambien estoy "atorado" por el tema de los programadores, es cierto que existen clones del USB Blaster y Jlink, pero no funcionan en todo, no se por que.
A mi no me interesa debuggear o ir paso a paso, con solo programarlo estoy feliz, ya sea micros o CPLDs/FPGAs.
Conocia de OpenOCD pero aun asi me falta el HW.
-
OpenOCD es todo un sistema de software donde se ofrece soporte para muchísimo hardware, de esta manera si tienes un JTAG compatible con OCD podrás usarlo para depurar cualquier micro o FPGA que tambien este soportado por openOCD, por ejemplo si tienes una atmel-ice, puedes usar openOCD para usarla con un micro ST por ejemplo.
Un saludo.
-
No, algunos solo soportan sus micros:
http://openocd.org/doc/html/Debug-Adapter-Hardware.html#Debug-Adapter-Hardware
ATMEL SAMICE Only works with ATMEL chips!
En fin... Vi que puede usarse con conversores USB-UART
-
POR EJEMPLO si tienes una atmel-ice, puedes usar openOCD para usarla con un micro ST POR EJEMPLO.
Repito, era solo un ejemplo como comprenderás no me los se de memoria.
un saludo
-
Yo creo que no debe haber una incompatibilidad tan grande.
El estandar JTAG es simplemente un bus serie con niveles lógicos estandar.
Qué yo sepa no se utilizan tensiones elevadas para programación ni nada por el estilo.
El problema está en que toda la cadena de Hardware/Software debe ser compatible entre sí para conseguir que funcione:
1. Programa de ordenador (por ejemplo OpenOCD)
2. Bus de comunicaciones y Driver (por ejemplo USB)
3. Tarjeta JTAG (USB Blaster, arduino JTAG, etc)
4. Dispositivo (CPLD, FPGA, microcontrolador, etc)
Si me he saltado alguna, por favor completadlo.
Si una tarjeta JTAG (p.e. USB Blaster) se puede manejar con un programa (p.e. Quartus II) que sólo comunica con FPGAs Altera, entonces en principio no servirá para nada más.
Pero creo que si utilizas otro programa (por ejemplo OpenOCD) que sea capaz de manejar la USB Blaster y comunicar con CPLD Atmel, entonces se podrá usar esta tarjeta para Atmel.
¿Estoy equivocado?
-
Me respondo:
Algunas tarjetas JTAG parecen tener ya programado internamente un protocolo que las hace compatibles SOLO con un tipo de dispositivos e incompatibles con todos los demás.
http://openocd.org/doc/html/Debug-Adapter-Hardware.html
Si la tarjeta JTAG se controlase en todo el protocolo a través del ordenador, podría ser compatible con todos los micros. Quizás sea mucho más lenta, pero a cambio podría programar todos los dispositivos.
¿Alguien conoce una tarjeta JTAG todoterreno?
Saludos.
-
Eso es exactamente, yo uso openOCD para los procesadores de freescale.
Debes de buscar si el JTAG es compatible con openOCD y si la familia de micros que quierer programar esta dentro del sistema openOCD.
un saludo
-
Todos los JTAG que no tengan una marca, como por ejemplo jlink o si te vas a sistemas mas simples los JTAG de olimex por poner un ejemplo. Pero si te vas a un JTAG propio de una marca de micros, pues puede que lo tengan capado.
pero no vas a encontrar un JTAG que sea universal, ya que muchas marcas se guardan de que solo se utilicen sus herramientas.
-
Disculpa juaperser, pense que cuando dijiste por ejemplo crei que asumias que era eso.
Y si Picuino, el estandar JTAG es el mismo en todos lados, Y es como vos decis, algunos no solo traducen el USB al JTAG sino que pasan por otro micro/cpld antes y tal ves es eso lo que termina molestando.
Aparte del JTAG normal suelen incluir cada uno de los fabricantes sus propias "instrucciones" por ejemplo el PIC32 que usa mig_santiago:
http://ww1.microchip.com/downloads/en/DeviceDoc/61129F.pdf
Algunos fabricantes ni siquiera te dan cuales son esas instrucciones de mas.
Pero creo que con un JTAG simple que pueda acceder a los registros de instrucciones/datos (que es lo basico, ni siquiera pido debug) deberia ser relativamente simple de hacer. E incluso hasta vendertelos ya hechos, pero no hay... y es lo que me parece raro. O realmente me estoy perdiendo algo. La unica diferencia puede ser la de los voltajes manejados. La maquina de estado es la misma. En fin no se.
FTDI con un FT232HL
http://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_C232HM_MPSSE_CABLE.PDF
-
Disculpa juaperser, pense que cuando dijiste por ejemplo crei que asumias que era eso.
He leído otra vez mi mensaje y parece que lo he escrito a mala leche, pero nada mas lejos de la realidad, así que soy yo el que te pide disculpas si ha parecido otra cosa ;-)
Yo también me pregunto lo del JTAG, y añado que para comprar un JTAG lo mas genérico posible creo que la mejor opción es el jlink Edu, que es como el base pero para uso no "comercial" (guiño guiño) por 50 euros tienes un buen jtag al que le actualizan el software y le meten soporte a nuevos dispositivos, si si están los piratas, pero de un día a otro te puede dejar de funcionar por un software nuevo por ejemplo, y el jlink original me da mas garantía desde luego. Yo tengo pensado pillarmelo dentro de poco, a no ser que encuntre algo mejor.
Un saludo
-
Lo feo del Jlink es que es para unicamente microcontroladores. No es feo, pero no lo que estamos tratando aca.
soporta algunas FPGA pero solo si posee un micro dentro. Y asumo que se trata del micro solo. Me fije solamente en Xilinx y Altera.
-
Bueno también es para microprocesadores( que es para lo que me mas me interesa).
En este tema se ha tratado el tema de las FPGA de atmel, que es un FPGA muy simple pero dentro tiene un micro avr de 25MHz aunque este sistema no lo conozco muy bien y no parece que haya mucha documentación, pero seria la leche para las aplicaciones que necesitas FPGA pero poner una simple spartan es demasiado.
Un saludo
-
¿Podría ser esto una alternativa a las CPLD?
http://hackaday.com/2015/06/04/hackaday-prize-entry-very-very-small-logic/
-
Estan buenas esas. En su mejor version tienen bastantes cosas, y es para un proyecto pequeño
Creo que el mas grande:
http://www.silego.com/uploads/Products/product_336/SLG46620r059_05292015.pdf
Y el mas chico:
http://www.silego.com/uploads/Products/product_123/SLG46200r124_08062014.pdf
Lo que si tenes que comprar su programador y es OTP su memoria.
Yo por mi parte acabo de pedir una FPGA Cyclone II a los chinos (la version mas pequeña), esperemos que llegue , luego comprar un clon del USB Blaster para poder probarla.
Y empezar a jugar con VHDL, haciendo cosas simples por supuesto.
-
Pues llevo unos días viendo los vídeos de estos GreenPak y he decidido darles una oportunidad porque:
- Parecen más fáciles de programar que un CPLD
- Entorno de desarrollo actualizado
- Sobre todo, más económicas que una CPLD
Así que he pedido el kit de desarrollo del GreenPak4 y a ver qué pasa :embarrassed:
-
Hoy llegó el GreenPak4... tras sablazo de la aduana nuevamente (en total se me ha puesto la broma en unos 110€).
Pero promete... he creado un programa sencillo a base de LUTs y DFF, lo he emulado y parece que va todo bien.
Me ha mosqueado que nada más conectarlo me ha pedido actualizar el firmware porque estaba desactualizado y que luego, al meter el ic, me dice que "The device you are using is out of date".... pero aparentemente todo funciona bien en el simulador.
También en encargado unos pcb breakout para estos mini chips porque realmente son inmanejables por su diminuto tamaño.
-
Hola fjmateos, puedes decirme que es un greenpad, no los conozco? Y ya quuee estamos, El ide es gratuito? y cuanto sale su prograMador.
Un saludo y gracias
-
Es una especie de pequeña CPLD de silego que se programa gráficamente.
El IDE es gratuito pero la placa de desarrollo es la que me ha salido por unos 110€
-
Pues la broma es un pelin cara, aunque si la placa de desarrollo tiene el programador embebido tampoco es excesivamente caro o hay que comprarlo aparte?
Parecen interesantes para aplicaciones donde poner una FPGA es excesivo. Los estudiare cuando pueda, gracias por la respuesta.
Un saludo.
-
La misma place sirve de programador y emulador... en realidad no emula, sino que tiene que estar el ic colocado en la placa y ejecuta el código directamente en él.