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:33:44 2017 +0000
Parent:
1:d175631a5803
Child:
6:d1e569f370ac
Commit message:
sync commit.

Changed in this revision

MCP4728.lib Show annotated file Show diff for this revision Revisions of this file
MCP4728setaddr.lib Show annotated file 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
--- a/MCP4728.lib	Wed Jan 13 19:12:45 2016 +0000
+++ b/MCP4728.lib	Fri Jan 13 12:33:44 2017 +0000
@@ -1,1 +1,1 @@
-https://developer.mbed.org/users/wbeaumont/code/MCP4728/#f45f4ff5a51a
+https://developer.mbed.org/users/wbeaumont/code/MCP4728/#164362cf5836
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MCP4728setaddr.lib	Fri Jan 13 12:33:44 2017 +0000
@@ -0,0 +1,1 @@
+MCP4728setaddr#bb5afe877b43
--- a/main.cpp	Wed Jan 13 19:12:45 2016 +0000
+++ b/main.cpp	Fri Jan 13 12:33:44 2017 +0000
@@ -4,7 +4,7 @@
  * (C) Wim Beaumont Universiteit Antwerpen 2016 
  */ 
 
-#define MCP4728EXAMPLEVER "1.10                    "
+#define MCP4728EXAMPLEVER "2.04"
 
 #include "mbed.h"
 
@@ -27,12 +27,17 @@
 #include "MBEDI2CInterface.h" 
 #include "DACInterface.h" 
 #include "dev_interface_def.h"
+#include "MCP4728setaddr.h"
 #include "mcp4728.h"
 
 MBEDI2CInterface mbedi2c( SDA, SCL); 
 MBEDI2CInterface* mbedi2cp=  &mbedi2c ;
 I2CInterface* i2cdev= mbedi2cp;
-const float Vdd=5.0;
+const float Vdd=4.5;
+
+DigitalOut LDAC(PTA6);
+DigitalOut CntPin(PTA7);
+
 
 Serial pc(USBTX, USBRX);
 
@@ -40,12 +45,48 @@
   
    // get the version of getVersion 
    getVersion gv;
+   int addr;
    printf("MCP4728 example program version %s, compile date %s time %s\n\r",MCP4728EXAMPLEVER,__DATE__,__TIME__);
-   printf("getVersion :%s\n\r",gv.getversioninfo());
-   
-   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);
+   printf("getVersion :%s\n\r ",gv.getversioninfo());
+   printf("\n\rMCP4728 set address program date : %s  time :%s\n\r",__DATE__,__TIME__); 
+   printf("give new addr ");
+   scanf("%d",&addr);
+    if ( addr < 8) {
+        LDAC=1;
+        char oldaddr, eeaddr, regaddr, newaddr= 2;
+        int newaddrint;
+        // Set addr part 
+        MPC4728_address_set mpc4728(PTB0,&LDAC,i2cdev, &CntPin);
+        int i2cresult =mpc4728.readaddress(&oldaddr, &eeaddr, &regaddr);
+        if ( i2cresult ) {
+            printf("failed to read current address error code: %d , scl cnt = %d  \n", i2cresult,mpc4728.getsclcnt() );
+        }
+        else { 
+            printf( " current address = %d ,eeaddr %d , regaddr %d  sclcnt= %d  give new address :  ", (int) oldaddr,(int) eeaddr, (int)regaddr, mpc4728.getsclcnt());  
+            scanf( "%d",&newaddrint);
+            printf("\n\r");
+            if ( newaddrint >= 0 && newaddrint <= 8 ) {
+                newaddr= (char) newaddrint;
+                i2cresult=mpc4728.setaddress(eeaddr,newaddr);
+                if ( i2cresult ) printf("failed to set address to %d error : %d , sclcnt= %d  \n",newaddr, i2cresult,mpc4728.getsclcnt());
+                else {
+                     printf("set new  address \n");
+                    i2cresult =mpc4728.readaddress(&oldaddr, &eeaddr, &regaddr);
+                    if ( i2cresult ) printf("failed to read (new)  address error : %d  \n", i2cresult);
+                    else     printf( "new address = %d ,eeaddr %d , regaddr %d  sclcnt= %d  \n\r", (int) oldaddr,(int) eeaddr, (int)regaddr, mpc4728.getsclcnt());  printf( " new address = %d \n", (int) oldaddr);
+                }
+            }    
+            else {
+                printf( " new address %d is not valid reset the up to restart the program \n", (int)newaddr );
+            }
+        }
+  } // if add < 16 
+  printf("give test addr ");
+  scanf("%d",&addr);
+ 
+   MCP4728  dac( i2cdev ,addr, Vdd);  // assuming the address  of the MCP4728 is set to 0 factory default 
+   printf("\n\raddr %d MCP4728 :%s\n\r",addr,dac.getversioninfo());
+   wait(1);
    float voltage=0;
    int cnt=0;
    while(cnt < 4096){
@@ -54,7 +95,7 @@
                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);
+            printf("set to %d result ",cnt);
                // no else read anyway even if set fails 
             if(dac.update()) printf("\n\rfailed to readback channel info \n\r");
             else {
@@ -66,9 +107,10 @@
             }
              cnt++;
              cnt=cnt % 4096;     
-             wait_ms(200);
+             wait_ms(1200);
 
   }
+
   // now the same with the DAC interface 
   DACInterface* di = &dac;
   cnt=0;
--- a/mbed.bld	Wed Jan 13 19:12:45 2016 +0000
+++ b/mbed.bld	Fri Jan 13 12:33:44 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