General Category > Test and Review Area

LibMPSSE Beta

(1/2) > >>

FTDI Community:
Hi Everyone,

We have a beta version of libMPSSE 1.0.2 which includes various improvements as well as a Linux 64-bit version.

This also adds support for our latest Power Delivery ICs (FT23xHP, FT223xHP, FT423xHP).

Please contact support1@ftdichip.com for this version before we release it to our website.

Let us know if you have any feedback please.

Best Regards,
FTDI Community

FTDI Community:
LibMPSSE 1.0.3 has now been released to the website:

https://ftdichip.com/software-examples/mpsse-projects/

Note v1.0.3 has a known bug which will be fixed in a future version.

The code is not sending I2C ACK after 1st byte read.

Please check this bit of code in particular:

static FT_STATUS I2C_Read8bitsAndGiveAck(FT_HANDLE handle, uint8 *data, bool ack)
{
    FT_STATUS status = FT_OTHER_ERROR;
    uint8 buffer[20], inBuffer[5];
    uint32 noOfBytes = 0;
    DWORD noOfBytesTransferred;
    FN_ENTER;

    /*set direction*/
    buffer[noOfBytes++] = MPSSE_CMD_SET_DATA_BITS_LOWBYTE;/* MPSSE command */
    buffer[noOfBytes++] = VALUE_SCLLOW_SDALOW; /*Value*/
    buffer[noOfBytes++] = DIRECTION_SCLOUT_SDAIN; /*Direction*/
    /*Command to read 8 bits*/
    buffer[noOfBytes++] = MPSSE_CMD_DATA_IN_BITS_POS_EDGE;
    buffer[noOfBytes++] = DATA_SIZE_8BITS;/*0x00 = 1bit; 0x07 = 8bits*/
    /*Command MPSSE to send data to PC immediately */
    buffer[noOfBytes++] = MPSSE_CMD_SEND_IMMEDIATE;
    /* Fix introduced to solve a glitch issue */
    buffer[noOfBytes++] = MPSSE_CMD_SET_DATA_BITS_LOWBYTE; 
    buffer[noOfBytes++] = VALUE_SCLLOW_SDALOW ;
    buffer[noOfBytes++] = DIRECTION_SCLOUT_SDAIN;                                                                                                     

    /* Burn off one I2C bit time */
    buffer[noOfBytes++] = MPSSE_CMD_DATA_OUT_BITS_NEG_EDGE;
    buffer[noOfBytes++] = 0; /*0x00 = 1bit; 0x07 = 8bits*/ 
    buffer[noOfBytes++] = ack ? SEND_ACK : SEND_NACK;/*Only MSB is sent*/

SDA has been left as input:

    buffer[noOfBytes++] = DIRECTION_SCLOUT_SDAIN;   

But this should actually be output:

    buffer[noOfBytes++] = DIRECTION_SCLOUT_SDAOUT; 

Best Regards,
FTDI Community

alexh:
Any updates on when a new version might be out with the fix already in place?

Thanks!

FTDI Community:
Hello,

Unfortunately there is no update from our R&D team due to other ongoing projects and priorities.

The source code is provided so should be easy for you to rebuild.

However if you send us an email we can send you a pre-release version that we have build containing this fix.

Thanks,
FTDI Community

bryantsorensen:
It appears the change also needs to happen in I2C_FastRead(...)

Navigation

[0] Message Index

[#] Next page

Go to full version