Test for mike

Dependencies:   mbed DevInterfaces MCP4728 MCP4728setaddr I2Cinterfaces

Files at this revision

API Documentation at this revision

Comitter:
wbeaumont
Date:
Fri Jan 13 12:28:09 2017 +0000
Parent:
1:d175631a5803
Child:
4:527490fdcfd8
Commit message:
testprogram for the AT30TSE75X class

Changed in this revision

AT30TSE75x.lib Show annotated file Show diff for this revision Revisions of this file
MCP4728.lib Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/AT30TSE75x.lib	Fri Jan 13 12:28:09 2017 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/users/wbeaumont/code/AT30TSE75x/#7cb648bc5c2a
--- a/MCP4728.lib	Wed Jan 13 19:12:45 2016 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-https://developer.mbed.org/users/wbeaumont/code/MCP4728/#f45f4ff5a51a
--- a/main.cpp	Wed Jan 13 19:12:45 2016 +0000
+++ b/main.cpp	Fri Jan 13 12:28:09 2017 +0000
@@ -1,16 +1,19 @@
-/** example program for the use of the MCP4728 class and DACInterface.h classes
+/** example program for the use of the AT30TSE7xx class 
  *
- *  V 1.0  : tested on the KL05z  but without the MCP4728 connected \
- * (C) Wim Beaumont Universiteit Antwerpen 2016 
+ *  V 0.4  : tested on the KL25z 
+ * tested eeprom read/ write  full page / single byte  
+ * temperature read 12 bit resolution
+ * fix chip configuration.
+ * (C) Wim Beaumont Universiteit Antwerpen 2017 
  */ 
 
-#define MCP4728EXAMPLEVER "1.10                    "
+#define AT30TSE753EXAMPLEVER "0.40"
 
 #include "mbed.h"
 
 #if   defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
-  PinName const SDA = PTE25;
-  PinName const SCL = PTE24;
+  PinName const SDA = PTE0;
+  PinName const SCL = PTE1;
 #elif defined (TARGET_KL05Z)
   PinName const SDA = PTB4;
   PinName const SCL = PTB3;
@@ -24,74 +27,74 @@
 
 #include "I2C.h"
 #include "I2CInterface.h" 
-#include "MBEDI2CInterface.h" 
-#include "DACInterface.h" 
+#include "MBEDI2CInterface.h"  
 #include "dev_interface_def.h"
-#include "mcp4728.h"
+#include "AT30TSE75x.h"
+
 
 MBEDI2CInterface mbedi2c( SDA, SCL); 
 MBEDI2CInterface* mbedi2cp=  &mbedi2c ;
 I2CInterface* i2cdev= mbedi2cp;
-const float Vdd=5.0;
 
 Serial pc(USBTX, USBRX);
 
+void print_buf_hex( char *data, int length){
+    int nr;
+    char *ptr=data;
+    for ( int lc=0; lc < length ; lc++){
+        nr= (int) *(ptr++);
+        printf( "%02x ",nr);
+    }
+    printf("\n\r");
+}        
+
+
 int main(void) {
-  
+   char str1[16] = "SOLID Temp";
+   char write_eprom= 'n';
    // get the version of getVersion 
    getVersion gv;
-   printf("MCP4728 example program version %s, compile date %s time %s\n\r",MCP4728EXAMPLEVER,__DATE__,__TIME__);
-   printf("getVersion :%s\n\r",gv.getversioninfo());
+   int addr=0;
+   printf("AT30TSE752  example program version %s, compile date %s time %s\n\r",AT30TSE753EXAMPLEVER,__DATE__,__TIME__);
+   printf("getVersion :%s\n\r ",gv.getversioninfo());
+   printf("%s\n\r",str1);
+   printf("give new addr "); scanf("%d", &addr);
+   if ( addr < 0 || addr > 15) addr=0;
+   fflush(stdin);
    
-   MCP4728  dac( i2cdev ,0, Vdd);  // assuming the address  of the MCP4728 is set to 0 factory default 
-   printf("MCP4728 :%s\n\r",dac.getversioninfo());
-   wait(4);
-   float voltage=0;
+   AT30TSE75x tid( i2cdev ,addr); 
+   printf ( "AT30SE75x version :%s\n\r ",tid.getversioninfo());
+   printf( "Taddr %x , Eaddr %x  subaddr %d\n\r ", tid.getTaddr(),tid.getEaddr(), addr);
+   
    int cnt=0;
-   while(cnt < 4096){
-           // first set the 4 channels 
-           for ( int cc =0 ; cc <4 ; cc++) { 
-               if ( dac.setDACvalue(cnt,cc) )
-                   printf("failed to set dac value %d for channel %d\n\r",cnt,cc);
-            }
-            printf("set DAC value  to %d result in",cnt);
-               // no else read anyway even if set fails 
-            if(dac.update()) printf("\n\rfailed to readback channel info \n\r");
-            else {
-                for ( int cc =0 ; cc <4 ; cc++) { 
-                 (void)dac.getVoltage(voltage,cc);//no need to test done with updat 
-                  printf(" CH%d %f[V]",cc,voltage);
-                }
-                printf("\n\r");
-            }
-             cnt++;
-             cnt=cnt % 4096;     
-             wait_ms(200);
-
-  }
-  // now the same with the DAC interface 
-  DACInterface* di = &dac;
-  cnt=0;
-  while(1){
-           // first set the 4 channels 
-           for ( int cc =0 ; cc <4 ; cc++) { 
-               if ( di->setDACvalue(cnt,cc) )
-                   printf("failed to set dac value %d for channel %d\n\r",cnt,cc);
-            }
-            printf("set DAC value  to %d result in",cnt);
-               // no else read anyway even if set fails 
-            if(di->update()) printf("\n\rfailed to readback channel info \n\r");
-            else {
-                for ( int cc =0 ; cc <4 ; cc++) { 
-                 (void)di->getVoltage(voltage,cc);// no need to test done with update
-                  printf(" CH%d %f[V]",cc,voltage);
-                }
-                printf("\n\r");
-            }
-            
-             cnt++;
-             cnt=cnt % 4096;     
-             wait_ms(200);
+   int i2cerr;
+   i2cerr=tid.set_config();
+   if( i2cerr) printf("config not set  %d \n\r", i2cerr);
+   int configrd= tid.read_config( 0, &i2cerr);
+   printf( " config %x  I2cerr %d \n\r", configrd,i2cerr ); 
+   printf("write to eprom ?"); scanf("%c",&write_eprom);
+   int pagenr=0;write_eprom = 'y';
+   if(write_eprom == 'y'){   
+    printf("\n\rgive pagenr");
+    scanf("%d",&pagenr);
+    i2cerr= tid.write_eeprompage(str1, 16, 0, (uint8_t) pagenr);
+    if(i2cerr) printf("eeprom write error %d\n\r",i2cerr);
+   }
+   wait_ms(400); // give some time to write 
+   while(1) {
+    i2cerr=tid.read_eeprompage(str1, 16, 0, (uint8_t) pagenr);
+    if(i2cerr) printf("eeprom read error %d \n\r",i2cerr);
+    str1[15]='\0'; //make sure it ends 
+    printf("eeprom content page %d :\n\r %s\n\r",pagenr,str1);
+    //print_buf_hex( str1,16);
+    char singlechar;
+    i2cerr=tid.read_eeprombyte(singlechar, 3, (uint8_t) pagenr); 
+    if(i2cerr) printf("eeprom read error %d \n\r",i2cerr);
+    printf("third char is : %c\n\r",singlechar);
+    wait_ms(1000);    
+    float Tmp= tid.get_temperature(&i2cerr);      
+    printf ("%d:Temp = %f I2cerr %d \n\r",cnt++, Tmp, i2cerr);
+   
 
   }
   
--- a/mbed.bld	Wed Jan 13 19:12:45 2016 +0000
+++ b/mbed.bld	Fri Jan 13 12:28:09 2017 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/4336505e4b1c
\ No newline at end of file
+http://mbed.org/users/mbed_official/code/mbed/builds/6c34061e7c34
\ No newline at end of file