Bob Giesberts / LDC1614

Dependencies:   SHTx

Dependents:   Inductive_Sensor_3

Fork of LDC1101 by Bob Giesberts

Revision:
8:b5fb9681869c
Parent:
7:7f1522ad3df5
Child:
9:6e2d808b113d
diff -r 7f1522ad3df5 -r b5fb9681869c LDC1000.cpp
--- a/LDC1000.cpp	Tue May 26 14:50:16 2015 +0000
+++ b/LDC1000.cpp	Fri May 29 09:28:46 2015 +0000
@@ -20,27 +20,28 @@
     wait_us(100);
     mode(LDC_MODE_STANDBY);
     setFrequency(f_external);
-   wait(0.1);
-    //setOutputPower(LDC_AMPLITUDE_4V);
+    wait(0.1);
     wait_us(10);
-    //setResponseTime(LDC_RESPONSE_384);
-    //setWatchdog(5000);
+
+    setWatchdog(5000);
+    setResponseTime(LDC_RESPONSE_6144);
+    setOutputPower(LDC_AMPLITUDE_4V);
     
-// Write comando's like in EVM start log:
-    //writeSPIregister(0x0B,0x00);
-    //writeSPIregister(0x01,0x0E);
-    //writeSPIregister(0x02,0x3C);
+//*** Write comando's like in EVM start log:
+/*    writeSPIregister(0x0B,0x00); */
+    writeSPIregister(0x01,0x0E);
+    writeSPIregister(0x02,0x3C);
     writeSPIregister(0x03,0x15);
-    writeSPIregister(0x04,0x17);
-    writeSPIregister(0x05,0x00);
-    //writeSPIregister(0x06,0x50);
-    //writeSPIregister(0x07,0x14);
-    //writeSPIregister(0x08,0xC0);
-    //writeSPIregister(0x09,0x12);
-    //writeSPIregister(0x0A,0x04);
-//    writeSPIregister(0x0C,0x01);
-    //writeSPIregister(0x0B,0x01);
-
+    writeSPIregister(0x04,0x17); 
+    writeSPIregister(0x05,0x00); 
+    writeSPIregister(0x06,0x50);
+    writeSPIregister(0x07,0x14);
+    writeSPIregister(0x08,0xC0);
+    writeSPIregister(0x09,0x12);
+    writeSPIregister(0x0A,0x04);
+    writeSPIregister(0x0C,0x01);
+    writeSPIregister(0x0B,0x01);/*
+*/
     mode(LDC_MODE_ACTIVE);
 }
 
@@ -50,7 +51,7 @@
     _amplitude  = amplitude;
     readSPI(&buffer, 0x04);
     buffer &= 0xE7; //clear amplitude bits
-    buffer |= (amplitude<<3) & 0xE7;
+    buffer |= (amplitude<<3) & 0x18;
     writeSPI(&buffer,0x04);
 
 }
@@ -60,7 +61,6 @@
     uint8_t buffer;
     buffer = 68.94*log(frequency/2500);
     writeSPI(&buffer,0x03);
-
 }
 
 void LDC1000::setResponseTime(LDC_RESPONSE responsetime)
@@ -70,6 +70,7 @@
     readSPI(&buffer, 0x04);
     buffer &= 0xF8; //clear responsetime bits
     buffer |= responsetime & 0x07;
+    //writeSPIregister(0x04,buffer);
     writeSPI(&buffer,0x04);
 }
 
@@ -82,12 +83,33 @@
 
 float LDC1000::getInductance()
 {
-    uint16_t resp[] = {192, 384, 768, 1536, 3072, 6144};
+    uint16_t resp[] = {0,0,192, 384, 768, 1536, 3072, 6144};
     _raw_l = readRawCounts();
     _fsensor = (_frequency/(_raw_l*3.0))*resp[(uint8_t)(_responsetime)];
     return 1./(cap*pow(2*PI*_fsensor,2));
 };
 
+
+/* oude code terugzetten*/
+
+uint32_t LDC1000::readRawCounts(void)
+{
+    //union
+    //{
+    //    uint8_t buf[4];
+    //    uint32_t value;
+    //} val;
+    //val.value = 0;
+    uint8_t val[5];
+    readSPI(val,0x21,5);
+    return (uint32_t)(*(&val[2]));
+}
+
+
+
+
+
+ /*
 uint32_t LDC1000::readRawCounts(void)
 {
     union
@@ -95,13 +117,11 @@
         uint8_t buf[4];
         uint32_t value;
     } val;
-    val.value = 0;
-    uint8_t bla[5];
-    readSPI(bla,0x21,5);
+    val.value = 8;
+    readSPI(val.buf,0x23,3);
     return val.value;
 }
-
-
+*/
 
 void LDC1000::readSPI(uint8_t *data, uint8_t address, uint8_t num_bytes)
 {
@@ -123,4 +143,20 @@
         _spiport.write(data[i]);
     }
     _cs_pin.write(1);
-}
\ No newline at end of file
+}
+
+// EXTRA test get and print variables values to verify (to calculate the induction)
+// Begin ***********************************************************
+    float LDC1000::get_raw_l()          {_raw_l = readRawCounts(); 
+                                        return _raw_l;};        
+    float LDC1000::get_fsensor()        {
+    uint16_t resp[] = {0, 0, 192, 384, 768, 1536, 3072, 6144};
+    _raw_l = readRawCounts();
+    _fsensor = (_frequency/(_raw_l*3.0))*resp[(uint8_t)(_responsetime)];                
+        return _fsensor;};        
+    
+    float LDC1000::get_frequency()      {return _frequency;};    
+    float LDC1000::get_responsetime()   {return _responsetime;};    
+    float LDC1000::get_cap()            {return cap;};
+// END ***********************************************************
+