this is a first compilation of a library for IQS5xx. For now, it work with the iqs572ev02 devellopment board. The code is inspired with the sample code provide by Azotech. I have some issu with the interrupt pin RDY, which seem to be high even I don't touch de board.

Dependencies:   mbed

Revision:
2:bd4b620316aa
Parent:
0:4907da2299a4
--- a/IQS5xx/IQS5xx.cpp	Wed Jan 01 12:58:46 2020 +0000
+++ b/IQS5xx/IQS5xx.cpp	Wed Jan 01 16:39:19 2020 +0000
@@ -56,13 +56,31 @@
     ////////////////////////
     // check other address :
     ////////////////////////
+    
+    // System Config 1
+    ui8DataBuffer[0] = 3; 
+    I2C_Write(SystemConfig1_adr, &ui8DataBuffer[0] ,1);
+    I2C_Read(SystemConfig1_adr, &ui8DataBuffer[0] ,1);
+    printf("System Config : %d\n", ui8DataBuffer[0]); 
       
     // swipe initial distance
-    ui8DataBuffer[1] = 180; ui8DataBuffer[0] = 0; 
+    ui8DataBuffer[1] = 150; ui8DataBuffer[0] = 0; 
     I2C_Write(SwipeInitDistance_adr, &ui8DataBuffer[0] ,2);
     I2C_Read(SwipeInitDistance_adr, &ui8DataBuffer[0] ,2);
     printf("Swp init dist. : %d\n", (ui8DataBuffer[0]<<8) + ui8DataBuffer[1]); 
     
+    // X resolution
+    ui8DataBuffer[1] = 0; ui8DataBuffer[0] = 8; 
+    I2C_Write(XResolution_adr, &ui8DataBuffer[0] ,2);
+    I2C_Read(XResolution_adr, &ui8DataBuffer[0] ,2);
+    printf("X resolution : %d\n", (ui8DataBuffer[0]<<8) + ui8DataBuffer[1]); 
+    
+    // Yresolution
+    ui8DataBuffer[1] = 0; ui8DataBuffer[0] = 8; 
+    I2C_Write(YResolution_adr, &ui8DataBuffer[0] ,2);
+    I2C_Read(YResolution_adr, &ui8DataBuffer[0] ,2);
+    printf("Y resolution : %d\n", (ui8DataBuffer[0]<<8) + ui8DataBuffer[1]);
+    
     // Rx mapping
     I2C_Read(RxMapping_adr, &ui8DataBuffer[0] ,10);
     printf("mapping Rx :"); 
@@ -88,10 +106,14 @@
     printf(" %d\n", ui8DataBuffer[7]);
     
     // total chanel Rx
+    ui8DataBuffer[0] = 3; 
+    I2C_Write(TotalRx_adr, &ui8DataBuffer[0] ,1);
     I2C_Read(TotalRx_adr, &ui8DataBuffer[0] ,1);
     printf("nombre cannaux Rx : %d\n", ui8DataBuffer[0]); 
 
     // total chanel Tx
+    ui8DataBuffer[0] = 4; 
+    I2C_Write(TotalTx_adr, &ui8DataBuffer[0] ,1);
     I2C_Read(TotalTx_adr, &ui8DataBuffer[0] ,1);
     printf("nombre cannaux Tx : %d\n", ui8DataBuffer[0]);  
 }
@@ -176,7 +198,7 @@
     //
     if((ui8SystemFlags[0] & SHOW_RESET) != 0)
     {
-        printf("RESET DETECTED");
+        printf("RESET DETECTED\n");
         AcknowledgeReset(); 
         return;
     }