FTDI Community

Please login or register.

Login with username, password and session length.
Advanced Search  


Welcome to the FTDI Community!

Please read our Welcome Note

Technical Support enquires
please contact the team
@ FTDI Support

New Bridgetek Community is now open

Please note that we have created the Bridgetek Community to discuss all Bridgetek products e.g. EVE, MCU.

Please follow this link and create a new user account to get started.

Bridgetek Community

Show Posts

You can view here all posts made by this member. Note that you can only see posts made in areas to which you currently have access.

Messages - Luk3

Pages: [1]
Discussion - Drivers / Re: FT230X Java D2xx eeprom write failed
« on: April 07, 2020, 08:38:50 PM »
I have solved the problem!

Problem was caused by other thread which is communicates with my device using uart. When the FT_EEPROM_PROGRAM function was invoked and other thread tried to read or write to uart then EEPROM_WRITE_FAILED was returned.

Discussion - Drivers / Re: FT230X Java D2xx eeprom write failed
« on: March 23, 2020, 09:33:52 PM »
Thank you for reply. I have written an email.

I have created C++ console application in the Visual Studio and it works - FT_EEPROM_Program returns FT_OK, but in Java still FT_EEPROM_WRITE_FAILED.

Discussion - Drivers / FT230X Java D2xx eeprom write failed
« on: March 17, 2020, 11:08:39 AM »

In my hardware I have used FT230X. PC software is developed in Java. I decided to add X series support to https://github.com/akuhtz/JavaFTD2XX
I have read eeprom with status OK but have problem with write to. Function FT_EEPROM_Program returns status 12 = FT_EEPROM_WRITE_FAILED but in FT_PROG I see new programmed values. Why this function returns error? What should I check?

Function prototype in FTD2XX interface:
Code: [Select]
int FT_EEPROM_Program(
        Pointer ftHandle, Structure eepromData, int eepromDataSize, Pointer Manufacturer, Pointer ManufacturerId,
        Pointer Description, Pointer SerialNumber);

My eeprom structure:

Code: [Select]
public class FT_EEPROM_HEADER extends Structure {
    public int deviceType = 0;
    public short vendorId;
    public short productId;
    public byte serNumEnable;
    public short maxPower;
    public byte selfPowered;
    public byte remoteWakeup;
    public byte pullDownEnable;

public class FT_EEPROM_X_SERIES extends Structure {
    public FT_EEPROM_HEADER header;
    public byte acSlowSlew;
    public byte acSchmittInput;
    public byte acDriveCurrent;
    public byte adSlowSlew;
    public byte adSchmittInput;
    public byte adDriveCurrent;
    public byte[] cBus = new byte[7];
    public byte invertTxd;
    public byte invertRxd;
    public byte invertRTS;
    public byte invertCTS;
    public byte invertDTR;
    public byte invertDSR;
    public byte invertDCD;
    public byte invertRI;
    public byte bcdEnable;
    public byte bcdForceCBusPWREN;
    public byte bcdDisableSleep;
    public short I2CSlaveAddress;
    public int I2CDeviceId;
    public byte I2CDisableSchmitt;
    public byte FT1248Cpol;
    public byte FT1248Lsb;
    public byte FT1248FlowControl;
    public byte RS485EchoSuppress;
    public byte powerSaveEnable;
    public byte driverType;

    public FT_EEPROM_X_SERIES() {
        this.header.deviceType = (short)DeviceType.DEVICE_X_SERIES.ordinal(); // 9

Pages: [1]