FTDI Community

Please login or register.

Login with username, password and session length.
Advanced Search  

News:

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

Author Topic: LibMPSSE Beta 1.0.2  (Read 3015 times)

FTDI Community

  • Administrator
  • Hero Member
  • *****
  • Posts: 800
    • View Profile
LibMPSSE Beta 1.0.2
« on: March 04, 2021, 10:46:48 AM »

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
« Last Edit: June 13, 2022, 09:33:21 AM by FTDI Community »
Logged

FTDI Community

  • Administrator
  • Hero Member
  • *****
  • Posts: 800
    • View Profile
Re: LibMPSSE Beta 1.0.2
« Reply #1 on: August 16, 2022, 10:48:47 AM »

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
Logged