What's new

JTAG

anyone use the ATDH1150USB programmers: https://www.digikey.com/en/products/detail/microchip-technology/ATDH1150USB/2050869
seems like a nice solution. on my project I'm not looking to power in-circuit just using a pogo-pin JTAG header to reflash in-circuit.
Been using it for 7 years, at that time there was a lot less open source options for JTAG and I chose the path of least resistance and in hindsight I did well, worked on the first try and never missed a beat since.

FYI there's an alternative to the official cable for half the price:
https://www.tindie.com/products/tersteeg/atmel-atf15xx-programmer/?pt=ac_prod_search

1744581545475.png


This is a lower cost alternative to the Atmel ATDH1150USB programmer for the ATF15xx family of CPLD's. It's based on the same FTD2232D USB transceiver and SN74LVC1T45DBV level convertors for the JTAG signal lines so it works with 5V, 3.3V, 2.5V and 1.8V devices and is recognized as a ATDH1150USB by Atmel's ATMISP software.

It connects via USB-C to your host computer and via a standard 2x5p 2.54mm JTAG port to your target device.
 
Second Test with VHDL, I am using "Intel® Quartus® II Web Edition Design Software Version 13.0sp1 for Windows". which is the last version supporting the MAX7000 devices (which are similar to the ATF150x devices):

Quartus supports VHDL, Verilog and a schematic editor. I used Pascal for a long time so VHDL looked most appealing to me. I expect the synthesis/fitting back-end is the same for all three options, so it depends only on someone's preference what to use.
Unfortunately I can't recommend the Quartus -> pof -> jed pipeline. I had it twice now where I got non-working chips: Once with a Verilog project for a someone, which was split into a few modules. This produced a chip where not all features worked correctly. Mysteriously these features worked when I put them as test circuit on unused pins of the top design, and when I inlined all separate modules into the top design.
The second was with my own VHDL project, with only a single top level file. It worked initially, then stopped working when I removed an unnecessary part of the design.
In both cases the RTL schematic looked perfectly fine, I didn't get any errors during synthesis or conversion.
What I ended up doing is use GHDL to convert my VHDL to Verilog, then JsonToCupl to use Yosys for synthesis and Cupl for fitting. Also I found fuseconv to convert the jed to svf, which is easier then running ATMISP all the time. The differences between an svf file produced by fuseconv and ATMISP seem to be cosmetic.
I put everything into batch files so I can quickly run it from Visual Studio Code.
Of course, there are alternatives: The commercial version of Yosys contains a VHDL compiler (if you want to use VHDL), also the fitter included in ProChip Designer can use EDIF output from Yosys directly (though I didn't find a working link last time I looked, and I don't know if the fitter works without a license).
 
I managed to program a device with urjtag+picoDirtyJtag. I had to remove lots of delays from the svf file to get it to complete without errors, it still printed a lot of messages, but the device worked in the end. No idea if the problem is in urjtag or dirtyjtag.
I see this as cheap option to bootstrap a project for people who don't want to spend much. (A pico goes for ~$4 from reputable sources, and can be reused for other stuff when done.)
I ran the device with 5V from usb, without level shifters. The pico is not "officially" 5V tolerant, but unofficially well enough.
I had to install the libusb driver with https://zadig.akeo.ie/ for it to work.
 
anyone use the ATDH1150USB programmers: https://www.digikey.com/en/products/detail/microchip-technology/ATDH1150USB/2050869
seems like a nice solution. on my project I'm not looking to power in-circuit just using a pogo-pin JTAG header to reflash in-circuit.
I ended up picking one of these up. Works quite well with the ATMISP software and code written and compiled on WinCUPL.

I also picked up this pogo pin adapter from adafruit: https://www.adafruit.com/product/5434

I did this because I want to use this on some of the multis I'm developing and wanted an easy way to program the CPLD without having to include a header on every board. it uses a 1.27" pitch so it's pretty tiny and works quite well.

here's a little test-bed PCB I made to try it out:

IMG_20250602_135314967_HDR.jpg
IMG_20250602_135341040.jpg
IMG_20250602_135355530.jpg
 
Back
Top