General Category > Discussion - Drivers

FT230X Java D2xx eeprom write failed

(1/1)

Luk3:
Hello,

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: ---int FT_EEPROM_Program(
        Pointer ftHandle, Structure eepromData, int eepromDataSize, Pointer Manufacturer, Pointer ManufacturerId,
        Pointer Description, Pointer SerialNumber);
--- End code ---

My eeprom structure:


--- Code: ---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
    }
}
--- End code ---

FTDI Community:
Hello,

Please see AN_428 D2XX EEPROM Programming Examples for some useful information.

Also refer to the D2XX Programmer's Guide.

FT_EEPROM_Read and FT_EEPROM_Program must be used with the FT_X Series.

If you send us an email I can send a simple code example. This forum is limited to 20000 characters so couldn't post it here.

Best Regards,
FTDI Community

Luk3:
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.

FTDI Community:
Hello,

OK we have received your email.

You can post any resolution here to help other customers.

Thanks,
FTDI Community

Luk3:
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.

Navigation

[0] Message Index

Go to full version