The last time we checked in with [Downtown Doug Brown], he had some cheap Altera USB Blaster clones that didn’t want to work under Linux. The trick at that time was to change the device’s 24 MHz clock to 12 MHz. This month, he’s found some different ones that don’t work, but now the clock change doesn’t work. What’s the problem?
He also picked up a Terasic clone, which does work on Linux and is considered, according to [Doug], the best of the clones. The units were superficially similar. So what follows is a lot of USB tracing and dumping of the CPLD chip’s configuration.
The problem is that even though CPLDs are relatively simple, relative is a — well — relative word. It is still a lot of work to reverse engineer a CPLD bitstream. However, he did find some public VHDL source code that acted the same so he presumed it shared a common problem with the original configuration.
Inspecting the code, he realized that there was no delay between a critical part of the protocol. For some reason, Windows didn’t seem to care, but it was enough to upset the Linux driver. At least, that was the theory.
Theory, in this case, translated to practice. As a bonus, the new code even made the original units work at full speed. Although it isn’t technically accurate, you can think of CPLDs as little FPGAs, and sometimes, they are more approachable for beginners. They are also great when you don’t need a full-blown FPGA.
What is a USB Blaster? Aside from a sidearm in Galactic Patrol generally called a DeLameter.
It’s a programming cable for Altera/Intel CPLDs and FPGAs.
“Although it isn’t technically accurate, you can think of CPLDs as little FPGAs, and sometimes, they are more approachable for beginners. ”
It’s frustrating because there are devices that are *really* CPLDs (like this one) and then there are devices that are really little FPGAs that companies *call* CPLDs, like the MAX II/V’s, and then there are devices that companies just call FPGAs or CPLDs whenever they feel like it (all of the MachXO’s). At least Renesas/Silego gave up calling the GreenPAKs “FPGAs” when they weren’t even remotely close.
The biggest downside to “true” CPLDs (programmable and/or structure) is that they’re all incredibly legacy products at this point.
The USB blaster clones I have seen were a simple FTDI devices, without any CPLD, so whats the difference here?