4988 - What are the programming considerations for SSPIEM and I2CEM modification with Aardvark SPI/I2C APIs?
Aardvark is a SPI/I2C adapter which can be used for programming of Lattice FPGA devices with Slave SPI or Slave I2C. Lattice Diamond provides SSPIEM and I2CEM example source codes which are modified with Aardvark SSPI and I2C API’s respectively. However we do not guarantee that these API’s will be supported for all the programming modes incorporated in the .sea and .iea files generated by the Lattice Deployment Tool, which are used by our SSPIEM and I2CEM source codes. This is due to the limitation of the Aardvark adapter and with its associated read/write API’s meant for the data transfer between the Lattice’s algo interpretation logic and the actual programming hardware driver logic. The Aardvark adapter has a buffer limitation of 4KB and any algo file data above 4KB will overflow the buffer and will result in a programming failure.
The Deployment tool modes which are effected due to this are the ‘Fast Programming’ modes for any device, for example the LIFMD-6000(crosslink) device support fast programming mode but will not program with Aardvark API’s. As the Fast Programming mode results in an algo file in which the whole data is passed at once as a whole for fast programming and overflows in the Aardvark buffer resulting in a programming failure. The supported programming modes are ‘Erase Program Verify’ , ‘Background Erase Program Verify’, ‘Flash Program’, ‘SSPI Program’ etc.
The example source code using FTDI can be used to program devices in Fast Programming mode as we guarantee that our drivers work with this mode and the buffer in the FTDI device is large enough to hold large Fast Programming mode data.
Related Articles
Radiant Programmer: What is Erase, Program, Verify Quad 1 operation used for?
Description: Erase, Program, Verify Quad 1 enables that QE bit to '1'. In general, there are two (2) requirements/steps to enable booting from external SPI Flash through x4 (QUAD Mode) Step 1 - Convert the bitstream file into hex (Quad I/O read mode) ...
How to enable SSPI programming in MachX03-9400 Development Board
To enable SSPI programming, this is the generic checklist user should follow through: Enable SPI port in Diamond/Radiant Software Tools some device may have Slave SPI port enabled, but it is essential for user to cross-check their project to ensure ...
Avant Rev 03x: Why program Quad SPI Flash Programming failed with JTAG2SPI Bridge
Description User may experience Radiant Programmer fails to perform SPI flash programming via the JTAG2SPI bridge function on Avant Versa RevA Boards populated with Micron MT25QU512ABB8E12-0SIT (Quad) for Avant 03A silicon. There is no issue ...
6190 - Lattice Radiant and Lattice Diamond: Is there any reference C source code available for embedded programming?
C source code for embedded programming is provided in the software installation directory. For Radiant: <install_path>\programmer\embedded_source Example: C:\lscc\radiant\<Radiant version>\programmer\embedded_source For Diamond: ...
6179 - How do user program Lattice FPGA after programming a bitstream to the SPI Flash with JTAG_PORT and MASTER_SPI_PORT set to DISABLED?
Description: When JTAG_PORT and MASTER_SPI_PORT is set to DISABLED, user can no longer access the configuration logic through JTAG and MSPI Port. Thus, user can't perform programming with the interface. Solution: To workaround on this, user can ...