Programming the CPLD#

CPLD Versions#

There are two different versions available:

  • LA4128V for old revisions and Rev04 with serial number UZ2021-002-001-200-0001 to UZ2021-001-001-004-0004

  • LC4256V for all other Rev04 with serial number UZ2022-001-001-401-0007 up to UZ2024-001-001-0401-0031

Note that there are two different folders for the CPLD programs in the repository.

Step-by-step for Trenz TE0790#

  1. Install the Diamond Programmer by Lattice and clone the CPLD repository, see Install Lattice Toolchain (CPLD) for details.

  2. Remove the programmer (normally used for programming the Zynq) from X8 of the Carrier Board.

../../_images/Programmer_Zynq_position.jpg
  1. Set the DIP-switches S2 on the programmer to (1on-2off-3off-4off).

  2. Plug the programmer onto X1. Make sure that the hole in the programmer aligns exactly with the mounting hole on the carrier board.

../../_images/Programmer_CPLD_position.jpg
  1. Have all jumpers on the Carrier Board plugged on to X2 to create the daisy chain. This step is not necessary for Rev04 and later.

../../_images/jumper_chain.png ../../_images/schematic.png
  1. Start the Diamond Programmer by Lattice and open the file in the git Programm_all5_CPLDs.xcf

../../_images/diamond_programmer_getting_started2.png
  1. Chose the proper CPLD software and chose which CPLDs you want to program. The standard configuration is:

    • D1-D4 with 26Tx_with_enable

    • D5 for the encoder with 30Rx

Note that it is possible to program only one of the CPLDs by the enable check box in each line.

../../_images/diamond_programmer_settings.jpg
  1. Plug in the USB cable and turn on the power of the UltraZohm. The programmer on X1 should light up.

  2. Click on “Program”, after successful programming it should look like this:

../../_images/diamond_programmer_successful_closeup.png
  1. Turn off the UltraZohm. Remove the programmer from X1 of the Carrier Board, put the DIP switches back in their original position (1on-2off-3off-4on) and plug it back to X8 next to the Zynq processor. Make sure that the mounting hole in the programmer aligns exactly with the hole on the carrier board.

../../_images/Programmer_Zynq_position.jpg

Step-by-step for IsoJTAG_Adapter#

  1. Install the Diamond Programmer by Lattice and clone the CPLD repository, see Install Lattice Toolchain (CPLD) for details.

  2. Start the Diamond Programmer by Lattice and open the file in the git Programm_all5_CPLDs.xcf with regard to the installed CPLD.

../../_images/LA4128V.png

In this example the CPLD LA4128V is installed on the carrier board.

  1. Chose the proper CPLD software and chose which CPLDs you want to program. The standard configuration is:

    • D1-D4 with 26Tx_with_enable

    • D5 for the encoder with 30Rx

Note that it is possible to program only one of the CPLDs by the enable check box in each line.

  1. Plug in the USB cable and turn on the power of the UltraZohm. The three green LED’s on the programmer should light up.

  2. Click Detect cable and set the right port for UltraZohm B Location. Depending on the OS, the mapping can differ (in this case the UltraZohm B Location Port is mapped on FTUSB-0).

../../_images/detect_cable.png
  1. Setup a custom clock divider TCK 3.

../../_images/clockdivider.png
  1. Click on “Program”, after successful programming it should look like this:

../../_images/cpld_programmed.png

Known issues#

Not possible to find the CPLDs#

../../_images/error_cannot_find_cplds.png

Close all Vivado and Vitis instances and retry. Restart your PC and retry.

See also#