                                  LibMPSSE-I2C
                                  Release Notes
                                  Version 0.6
                                  12-July-2017


	     Copyright (c) 2000-2014 FTDI, Inc. All rights reserved.



CONTENTS
========
  1.  Overview

  2.  Installation Procedure 
  
  3.  Known Limitations
  
  4.  Test Environment

  5.  Change log


1. Overview
===========
The library is compiled using GCC version 4.5. The files that have been provided with this release are:

1.1) AN_177_User_Guide_For_LibMPSSE-I2C.pdf - The user manual for libMPSSE-I2C
1.2) Release_Notes.txt - This file
1.3) include/libMPSSE_i2c.h - The header file for libMPSSE-I2C
1.4) include/windows/ftd2xx.h - The header file for D2XX windows driver
1.5) include/linux/ftd2xx.h - The header file for D2XX linux driver
1.6) include/linux/WinTypes.h - Header file required required by ftd2xx.h
1.7) lib/windows/i386/libMPSSE.a - libMPSSE static library for windows
1.8) lib/windows/i386/libMPSSE.dll - libMPSSE dynamic library for windows
1.9) lib/linux/i386/libMPSSE.a - libMPSSE static library for 32bit linux
1.10) lib/linux/i386/libMPSSE.so - libMPSSE dynamic library for 32bit linux
1.11) lib/linux/x86_64/libMPSSE.a - libMPSSE static library for 64bit linux
1.12) lib/linux/x86_64/libMPSSE.so - libMPSSE dynamic library for 64bit linux
1.13) I2C/sample-dynamic.c - Sample code showing the use of libMPSSE as a dynamic library for I2C
1.14) I2C/sample-static.c - Sample code showing the use of libMPSSE as a static library for I2C
1.15) b.bat - A batch file for windows that builds the samples and executes them
1.16) b.bash - A shell script for linux that builds the samples and executes them(requires to be executed from bash shell using root)

2. Installation Procedure
=========================
The D2XX driver(http://www.ftdichip.com/Drivers/D2XX.htm) should be 
installed for libMPSSE to work. 

For linux, the drivers ftdi_sio and usbserial should be removed 
before the D2XX drivers can be used. The library has to be installed at 
/usr/lib (or /usr/lib64) before the application tries to use it.

3. Known Limitations
====================
1) The APIs I2C_GetNumChannels, I2C_GetChannelInfo and I2C_OpenChannel does not 
work when they are called simultaneously from multiple applications at the same time.
2) LatencyTimer should be greater than 0 for FT232H


4. Test Environment
==================
The library has been tested and known to work on a "HP Compaq DX 2710 SF" 
running "Fedora 14" distribution with linux kernel 2.6.38. The hardware 
that has been tested consists of a FT2232H-Mini-Module connected 
to a 24LC024H EEPROM chip. 

5. Change log
================================

12 July 2017
-------------
1. I2C stop was not done in certain fail cases...fixed.
2. Modified the code to get closer clock granualarity when I2C_CLOCK_HIGH_SPEED_MODE is selected.
3. Fix for clock resolution issue with FT2232D 

02 March 2016
-------------
1. Updated to driver 2.12.14
2. Edited ftdi_mid.c, Mid_CheckMPSSEAvailable function, to remove LocID and use Description.

12 December 2011
----------------
1) FT_IO_ERROR was returned when a device doesn't respond to the master when it is addressed, as well as when a data transfer fails. To distinguish between these to errors, FT_DEVICE_NOT_FOUND is now returned after a device doesn't respond when its addressed
2) Clock rate adjustments are now performed within the library when 3-phase-clocking is enabled.
3) Changes made to support 64bit linux
4) New features added:
	a) I2C_ENABLE_DRIVE_ONLY_ZERO : Support for Drive-Only-Zero feature
	b) I2C_TRANSFER_OPTIONS_NACK_LAST_BYTE : Support nAcking last byte from I2C_DeviceRead
	c) I2C_TRANSFER_OPTIONS_BREAK_ON_NACK : Provide option to stop writing data when slave nAcks
	d) I2C_TRANSFER_OPTIONS_FAST_TRANSFER_BYTES : Read/write data without delays in between START/ADDRESS/DATA/STOP phases
	e) I2C_TRANSFER_OPTIONS_FAST_TRANSFER_BITS : Added support to read/write any number of bits
	f) I2C_TRANSFER_OPTIONS_NO_ADDRESS : Added support to exclude the address and directions bits, this 
	feature can be used with I2C_TRANSFER_OPTIONS_FAST_TRANSFER_BITS to support non standard implementations.

08 July 2011
------------
1) Added functions Init_libMPSSE and Cleanup_libMPSSE
2) Added functions FT_ReadGPIO & FT_WriteGPIO
3) Added 3-phase clocking functionality. This functionality is enabled by default.

20 May 2011
-----------
1) Change in APIs I2C_GetChannelInfo & I2C_OpenChannel to start indexing channels from 0
2) Solved bug: I2C_GetNumChannels reports only one available channel when FT2232H chip is conected
3) Exported library infrastructure functions for initializing library when used with VC++ in static mode

20 May 2014
-----------
1) Solved bug: Glitch on I2C clock
2) Solved bug: compilation failure in release mode with MSVC version 2010

18 Sep 2014
-----------
1) Fix I2C glitch issue on multibyte transfers and continuous transfers
2) Fix release package compilation errors and warnings on Linux and Windows
3) Include 64-bit libraries for 64-bit Windows Visual Studio applications
4) Include 32-bit library (.lib) for Visual Studio Debug and Release mode applications
5) Include Visual Studio projects for libMPSSE and test applications
