From e7bc1934205ca68e753e0d0e500628e5476db92a Mon Sep 17 00:00:00 2001
From: mfenner <mfenner@e4d10518-288a-426b-ba36-e453799dee6f>
Date: Mon, 22 Jun 2015 22:04:42 +0000
Subject: [PATCH] Finished Routines for I2C Programming. Function as command
 line tool not tested so far.

git-svn-id: https://svnsrv.desy.de/desy/MSK_PROJECTS/other/Fuse-Relay-Board/MCU_Firmware/trunk@801 e4d10518-288a-426b-ba36-e453799dee6f
---
 FTDI_I2C/main.c         | 160 ++++++++++++++++++----------------------
 FTDI_I2C/proghyt.exe    | Bin 38740 -> 38312 bytes
 FTDI_I2C/proghyt.layout |  12 +--
 3 files changed, 76 insertions(+), 96 deletions(-)

diff --git a/FTDI_I2C/main.c b/FTDI_I2C/main.c
index 8087b87..474a799 100644
--- a/FTDI_I2C/main.c
+++ b/FTDI_I2C/main.c
@@ -48,7 +48,6 @@
 encountered \n",__FILE__, __LINE__, __FUNCTION__);exit(1);}else{;}};
 
 /* Application specific macro definations */
-#define I2C_DEVICE_ADDRESS_HYT	    0x50 >> 1
 #define I2C_WRITE_COMPLETION_RETRY  10
 #define CHANNEL_TO_OPEN			    0
 
@@ -86,35 +85,6 @@ void waitFor (unsigned int secs) {
  * \note 
  * \warning
  */
-FT_STATUS write_byte(uint8 slaveAddress, uint8 registerAddress, uint8 data)
-{
-	uint32 bytesToTransfer = 0;
-	uint32 bytesTransfered;
-	bool writeComplete=0;
-	uint32 retry=0;
-	
-	bytesToTransfer=0;
-	bytesTransfered=0;
-	buffer[bytesToTransfer++]=registerAddress; /* Byte addressed inside EEPROM */
-	buffer[bytesToTransfer++]=data;
-	status = I2C_DeviceWrite(ftHandle, slaveAddress, bytesToTransfer, buffer, &bytesTransfered, I2C_TRANSFER_OPTIONS_START_BIT|I2C_TRANSFER_OPTIONS_STOP_BIT);
-
-	/* poll to check completition */
-	while((writeComplete==0) && (retry<I2C_WRITE_COMPLETION_RETRY))
-	{
-		bytesToTransfer=0;
-		bytesTransfered=0;
-		buffer[bytesToTransfer++]=registerAddress; /* Addressed inside EEPROM  */
-		status = I2C_DeviceWrite(ftHandle, slaveAddress, bytesToTransfer, buffer, &bytesTransfered, I2C_TRANSFER_OPTIONS_START_BIT|I2C_TRANSFER_OPTIONS_BREAK_ON_NACK);
-		if((FT_OK == status) && (bytesToTransfer == bytesTransfered))
-		{
-			writeComplete=1;
-			printf("  ... Write done\n");
-		}
-		retry++;
-	}
-	return status;
-}
 
 
 
@@ -130,76 +100,67 @@ FT_STATUS write_hyt(uint8 slaveAddress, uint8 commandByte, uint8 datah, uint8 da
 	buffer[bytesToTransfer++]=commandByte;
 	buffer[bytesToTransfer++]=datah;
 	buffer[bytesToTransfer++]=datal;
-	status = I2C_DeviceWrite(ftHandle, slaveAddress, bytesToTransfer, buffer, &bytesTransfered, I2C_TRANSFER_OPTIONS_START_BIT|I2C_TRANSFER_OPTIONS_STOP_BIT);
+	status = I2C_DeviceWrite(ftHandle, slaveAddress, bytesToTransfer, buffer, &bytesTransfered, 
+      I2C_TRANSFER_OPTIONS_START_BIT |
+      I2C_TRANSFER_OPTIONS_STOP_BIT |
+      //I2C_TRANSFER_OPTIONS_NACK_LAST_BYTE |  
+      I2C_TRANSFER_OPTIONS_FAST_TRANSFER_BYTES   
+      //I2C_TRANSFER_OPTIONS_FAST_TRANSFER_BITS  
+      //I2C_TRANSFER_OPTIONS_FAST_TRANSFER
+      );
     APP_CHECK_STATUS(status);
 	return status;
 }
 
-FT_STATUS read_hyt(uint8 slaveAddress, uint8 *data)
+FT_STATUS read_hyt(uint8 slaveAddress, uint8 *data, uint8 len)
 {
 	FT_STATUS status;
 	uint32 bytesToTransfer = 0;
 	uint32 bytesTransfered;
-    status = I2C_DeviceRead(ftHandle, slaveAddress, 3, buffer, &bytesTransfered, I2C_TRANSFER_OPTIONS_START_BIT | I2C_TRANSFER_OPTIONS_STOP_BIT);
+    status = I2C_DeviceRead(ftHandle, slaveAddress, len, buffer, &bytesTransfered, 
+      I2C_TRANSFER_OPTIONS_START_BIT 
+      //I2C_TRANSFER_OPTIONS_STOP_BIT  |
+      //I2C_TRANSFER_OPTIONS_NACK_LAST_BYTE |
+      //I2C_TRANSFER_OPTIONS_FAST_TRANSFER_BYTES  
+      );
 	APP_CHECK_STATUS(status);
 	*data = buffer[0];
 	return status;
 }
 
 
-/*!
- * \brief Reads from EEPROM
- *
- * This function reads a byte from a specified address within the 24LC024H EEPROM
- *
- 
- * \param[in] slaveAddress Address of the I2C slave (EEPROM)
- * \param[in] registerAddress Address of the memory location inside the slave from where the 
- *			byte is to be read
- * \param[in] *data Address to where the byte is to be read
- * \return Returns status code of type FT_STATUS(see D2XX Programmer's Guide)
- * \sa Datasheet of 24LC024H http://ww1.microchip.com/downloads/en/devicedoc/22102a.pdf
- * \note 
- * \warning
- */
-FT_STATUS read_byte(uint8 slaveAddress, uint8 registerAddress, uint8 *data)
-{
-	FT_STATUS status;
-	uint32 bytesToTransfer = 0;
-	uint32 bytesTransfered;
-
-	bytesToTransfer=0;
-	bytesTransfered=0;
-	buffer[bytesToTransfer++]=registerAddress; /*Byte addressed inside EEPROM */
-	status = I2C_DeviceWrite(ftHandle, slaveAddress, bytesToTransfer, buffer, \
-		&bytesTransfered, I2C_TRANSFER_OPTIONS_START_BIT);
-	APP_CHECK_STATUS(status);
-	bytesToTransfer=1;
-	bytesTransfered=0;
-	status |= I2C_DeviceRead(ftHandle, slaveAddress, bytesToTransfer, buffer, \
-		&bytesTransfered, I2C_TRANSFER_OPTIONS_START_BIT);
-	APP_CHECK_STATUS(status);
-	*data = buffer[0];
-	return status;
-}
 
 
-int main()
+int main(int argc, char *argv[])
 {
 	FT_STATUS status;
 	FT_DEVICE_LIST_INFO_NODE devList;
 	uint8 address;
 	uint8 data;
-	int i,j;
-
-
+	uint8 CurrAddr=0x28;
+	uint8 NewAddr=0x31;
+    int i,j;
+
+    if (argc != 2)
+    {
+      printf("Expected two arguments: proghyt [CurrentAddr] [NewAddr]\r\n");
+      return 0;
+    } else printf("Changing address from %X to %X.\r\n",CurrAddr, NewAddr);
+    
+    CurrAddr=strtol(argv[1], NULL, 0);
+    NewAddr=strtol(argv[2], NULL, 0);
+    
 	Init_libMPSSE();
 
-	channelConf.ClockRate = I2C_CLOCK_STANDARD_MODE;/*i.e. 100000 KHz*/
+	channelConf.ClockRate = 10000;/*i.e. 100000 KHz*/
 	channelConf.LatencyTimer= 2;
-	//channelConf.Options = I2C_DISABLE_3PHASE_CLOCKING;
-	//channelConf.Options = I2C_ENABLE_DRIVE_ONLY_ZERO;
-
+	channelConf.Options = 0;
+	//channelConf.Options |= I2C_DISABLE_3PHASE_CLOCKING;
+	//channelConf.Options |= I2C_ENABLE_DRIVE_ONLY_ZERO;
+    //channelConf.Options |= I2C_TRANSFER_OPTIONS_FAST_TRANSFER_BYTES;
+    //channelConf.Options |= I2C_TRANSFER_OPTIONS_FAST_TRANSFER_BITS;
+    //channelConf.Options |= I2C_TRANSFER_OPTIONS_FAST_TRANSFER;
+    
 	status = I2C_GetNumChannels(&channels);
 	APP_CHECK_STATUS(status);
 	printf("Number of available I2C channels = %d\n",channels);
@@ -224,11 +185,11 @@ int main()
 		/* Open the first available channel */
 		status = I2C_OpenChannel(CHANNEL_TO_OPEN,&ftHandle);
   	    APP_CHECK_STATUS(status);
-        printf("%s\r\n",status);
+        printf("%d\r\n",status);
         printf("\nhandle=0x%x status=%d\n",ftHandle,status);
 		status = I2C_InitChannel(ftHandle,&channelConf);
 		APP_CHECK_STATUS(status);
-        printf("%s\r\n",status);
+        printf("%d\r\n",status);
 
 
         printf("Setting GPIO Pin OFF.\r\n");
@@ -237,31 +198,50 @@ int main()
         waitFor(1);
         printf("Setting GPIO Pin ON.\r\n");
         FT_WriteGPIO(ftHandle, 0x01, 0x01);
-		//printf("%d\r\n",status);
+		printf("%d\r\n",status);
 		
-		//printf("Starting Command Mode.\r\n");
-		write_hyt(I2C_DEVICE_ADDRESS_HYT,0xA0,0x00,0x00);
+		printf("Starting Command Mode.\r\n");
+		write_hyt(CurrAddr,0xA0,0x00,0x00);
         //printf("%d\r\n",status);
-
+		read_hyt(CurrAddr, buffer, 1);
+        //printf("%X\r\n", buffer[0]);
+        if (buffer[0]==0x81) printf("success.\r\n");
+          else if (buffer[0] | 0x40) printf("Failed: stale.\r\n");
+          else printf("failed.\r\n");
+        
+                           
+                           
         //printf("Request I2C Address.\r\n");
-   	    write_hyt(I2C_DEVICE_ADDRESS_HYT,0x1C,0x00,0x00);
+   	    //write_hyt(CurrAddr,0x1C,0x00,0x00);
         //printf("%d\r\n",status);                                                         
 
         //waitFor(1);
         //printf("Reading I2C Address.\r\n");
-		read_hyt( I2C_DEVICE_ADDRESS_HYT, buffer);
-        printf("%X %X %X\r\n", buffer[0], buffer[1], buffer[2]);
-
+		//read_hyt( CurrAddr, buffer,3);
+        //printf("%X %X %X\r\n", buffer[0], buffer[1], buffer[2]);
+
+
+        printf("Writing new I2C Address.\r\n");
+		write_hyt(CurrAddr,0x5C,0x00,NewAddr);
+        //printf("%d\r\n",status);     
+		read_hyt(CurrAddr, buffer, 1);
+        //printf("%X\r\n", buffer[0]);
+        if (buffer[0]==0x81) printf("success.\r\n");
+          else printf("failed.\r\n");
+            
+     
 		printf("Leaving Command Mode.\r\n");
-		write_hyt(I2C_DEVICE_ADDRESS_HYT,0x80,0x00,0x00);
-        printf("%d\r\n",status);
-
+		write_hyt(CurrAddr,0x80,0x00,0x00);
+        //printf("%d\r\n",status);
 
+        waitFor(1);
+        printf("Setting GPIO Pin OFF.\r\n");
+        FT_WriteGPIO(ftHandle, 0x01, 0x00);
+        //printf("%d\r\n",status);
 
         printf("Closing Handle\r\n");
 		status = I2C_CloseChannel(ftHandle);
 	}
-	
 
 	Cleanup_libMPSSE();
 
diff --git a/FTDI_I2C/proghyt.exe b/FTDI_I2C/proghyt.exe
index 6dd60eb61973ca04961fb4040d218ca53631d77d..0fbbdafda7dd30c1f9928e5b7bc332b11c46da70 100644
GIT binary patch
delta 10827
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
U{Rb44R#+^qh1$C4m0SG(0onb~82|tP

delta 10843
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
b*-RYS;|L?KI{Xz>%Jtt4F2Hq^++zO&ocX?T

diff --git a/FTDI_I2C/proghyt.layout b/FTDI_I2C/proghyt.layout
index fd9f05a..f14cdad 100644
--- a/FTDI_I2C/proghyt.layout
+++ b/FTDI_I2C/proghyt.layout
@@ -4,9 +4,9 @@ CursorRow=1
 TopLine=1
 LeftChar=1
 [Editor_1]
-CursorCol=1
-CursorRow=1
-TopLine=35
+CursorCol=44
+CursorRow=50
+TopLine=34
 LeftChar=1
 Open=1
 Top=0
@@ -16,7 +16,7 @@ Order=0,1
 [Editor_0]
 Open=1
 Top=1
-CursorCol=33
-CursorRow=238
-TopLine=227
+CursorCol=12
+CursorRow=146
+TopLine=118
 LeftChar=1
-- 
GitLab