The EasyFlash³ module is still a popular accessory for the Commodore C64. And meanwhile you can get the single components from Asia for little money. However there are here and there some stumbling blocks. Today I would like to give a few tips about the problems that can occur with the CPLD and how to fix them.
Especially at the popular dealer AliExpress there are sometimes problems with the Xilinx XC95144XL CPLD components purchased there. After all components have been assembled, the CPLD is the first to be flashed. Detailed instructions can be found on the website of SKOE, the developer of the EF3 module.
In the best case the flashing of the CPLD with the tool easp ends with the message "<<< All TDO outputs matched to the expected values! >>>".
This is actually the most exciting moment, as most problems happen here. Frequently the message "<<< 119872 TDO outputs didn't match to the expected values... >>>", where the number already gives a valuable hint. With the number "119872" flashing generally did not work. This could indicate a defective CPLD, of course, but since the Xilinx are extremely difficult to destroy, it is highly unlikely, though not impossible, that the chip is defective.
It is much more likely that either the jumpers are not set correctly, or the card is not in the C64, or the C64 is not turned on. The power supply for flashing is provided by the Commodore C64. Without the necessary power supply, the chip is not programmed.
But if now any number comes out, which in most cases is in the range from 65.00 to 80.000, there are basically only two possibilities. The first one is due to not optimally executed solder joints. Unfortunately it doesn't even have to be at the CPLD itself, the flash and RAM memory are also considered, as well as the two resistor networks near the contact strip. The first thing to check is whether two contacts have a solder bridge. It is best to use a magnifying glass to check all contacts of the suspicious chips.
If nothing is found there, solder the CPLD again with a lot of flux (here a good flux is needed, e.g. from Chip Quick or Amtech). If this does not improve the situation, it could also be due to the soldering points of the flash memory. But in rare cases it can even be a soldering point on the RAM chip, which can cause problems.
If the CPLD came from AliExpress or eBay, there may be another problem. You have to know that the sometimes unbelievable low prices are not only due to the Asian market. Rather, overproductions are often purchased in order to sell them later to individual customers.
And this is the crux of the matter, because programmable chips, such as the CPLD here, are often beautifully programmed during production according to the customer's wishes. And with CPLD you can set different protection mechanisms during programming. One of them is write protection. This is used so that such a chip is not accidentally overwritten by the end customer during a firmware update.
Unfortunately it is not possible to view such a chip from the outside. And if you don't have a JTAG programming adapter for these chips, you won't be able to see it from the outside. However, an attempt to flash such a chip with normal board means is very much in the error described above. The message "<<< 76233 TDO outputs didn't match to the expected values... >>>". The number is not identical for every chip.
For example, if you have the ISE Webpack version 13 SP1, which can be downloaded for free from the Xilinx homepage, and a corresponding JTAG programmer, you can easily fix the problem by unlocking the write protection and deleting the chip. But since most people don't have the appropriate equipment at home now, I created a file which unlocks the write protection, deletes the chip and then programs the CPLD accordingly.
The files for this project can be found in the download area. Questions or suggestions can be left in the comment area.
There is once the CPLD version 1.1.1 of SKOE, and the version 1.2.1 of Kim Jorgensen with Final Cartridge III# support. The flashing is done with the easp tool, as you would do with the original files.
The flash process takes a little longer because first the write protection is removed, then the chip is completely erased, and only then the actual flashing of the chip starts. If then the message "<<<< All TDO outputs matched to the expected values! >>>" appears, the write protection has been successfully removed, the factory preset programming has been deleted and the chip has been flashed correctly for Easyflash3 operation.
If you have any other problems or questions, please feel free to write something in the comments.
Translated with www.deepl.com/translator