STM mbed.org OSRAM team / Mbed 2 deprecated eye_r_eye-htpa32x32-v_1_9

Dependencies:   eye_r_eye-htpa32x32-v_1_8-ticker mbed

Fork of eye_r_eye-htpa32x32-v_1_8-ticker by STM mbed.org OSRAM team

Files at this revision

API Documentation at this revision

Comitter:
withboobs
Date:
Thu Mar 15 13:16:22 2018 +0000
Parent:
1:7fd5cc2052cf
Commit message:
Use eoc between the conversion, rather than an external timer. I2C speed set to 400kHz which seems to work fine. If some blocks don't get downloaded right, decrease that to 100kHz.

Changed in this revision

eye_r_eye-htpa32x32-v_1_8-ticker.lib Show annotated file Show diff for this revision Revisions of this file
heimann32x32.cpp Show annotated file Show diff for this revision Revisions of this file
heimann32x32.h 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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eye_r_eye-htpa32x32-v_1_8-ticker.lib	Thu Mar 15 13:16:22 2018 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/teams/STM-mbedorg-OSRAM-team/code/eye_r_eye-htpa32x32-v_1_8-ticker/#7fd5cc2052cf
--- a/heimann32x32.cpp	Tue Mar 13 23:54:51 2018 +0000
+++ b/heimann32x32.cpp	Thu Mar 15 13:16:22 2018 +0000
@@ -1,16 +1,15 @@
 #include "mbed.h"
 #include "heimann32x32.h"
-
 #include "heimann32x32_table.cpp"
 
 HTPA32x32::HTPA32x32(I2C * _i2c, I2C * _i2ce, uint8_t addr1, uint8_t addr2)
 {
     i2c  = _i2c;
-    i2c->frequency(100000);    
+    i2c->frequency(400000);    
     //i2c->frequency(1000000);    
 
     i2ce = _i2ce;
-    i2ce->frequency(100000);    
+    i2ce->frequency(400000);    
 
     i2c_addr_htpa = addr1;
     i2c_addr_eeprom = addr2;
@@ -40,7 +39,7 @@
     data_write[1] = m & TRIM1_ADC_MASK;
   
     i2c->write((int) i2c_addr_htpa, data_write, 2, 1);
- 
+    wait_ms(5);
     return mbit;
 }
 
@@ -59,9 +58,12 @@
     bias = m;
     data_write[1] = m & TRIM_BIAS_MASK;    
     i2c->write(i2c_addr_htpa, data_write, 2, 1);
+    wait_ms(5);
     
     data_write[0] = HTP_TRIM3_BIAS2;        
     i2c->write(i2c_addr_htpa, data_write, 2, 1);    
+    wait_ms(5);
+    
     return bias;
 }
 
@@ -80,6 +82,7 @@
     
     data_write[1] = m & TRIM_FREQ_MASK;
     i2c->write(i2c_addr_htpa, data_write, 2, 1);    
+    wait_ms(5);
     
     return clk;
 }
@@ -98,6 +101,7 @@
         pu = m<<4 | m;
         data_write[1] = pu;        
         i2c->write(i2c_addr_htpa, data_write, 2, 1);
+        wait_ms(5);
     }   
           
     return pu;
@@ -118,10 +122,12 @@
     bpa = m & TRIM_BPA_MASK;
     data_write[1] = bpa;
     i2c->write(i2c_addr_htpa, data_write, 2, 1);    
+    wait_ms(5);
     
     data_write[0] = HTP_TRIM6_BPA2;        
     i2c->write(i2c_addr_htpa, data_write, 2, 1);    
-
+    wait_ms(5);
+    
     return bpa;
 }
 
@@ -178,6 +184,9 @@
 
 void HTPA32x32::init( void )
 {
+    char data_write[2] = { HTP_CONFIG, CONFIG_WAKEUP };    
+    i2c->write(i2c_addr_htpa, data_write, 2, 1);      
+
     uint8_t raw[5] = {0};
     read_eeprom(HTP_EEPROM_CALIB_HI, HTP_EEPROM_CALIB_LO, (char *)  raw, 5);
     mbit = raw[0];
@@ -201,7 +210,7 @@
     return;
 }
 
-uint8_t HTPA32x32::end ( ) 
+uint8_t HTPA32x32::eoc ( ) 
 {
     uint8_t rval = HTP_STATUS;
     i2c->write(i2c_addr_htpa, (char *) &rval, 1, 1);    
--- a/heimann32x32.h	Tue Mar 13 23:54:51 2018 +0000
+++ b/heimann32x32.h	Thu Mar 15 13:16:22 2018 +0000
@@ -540,7 +540,7 @@
         uint8_t 
             BPA ( void ), BPA (uint8_t);
         uint8_t
-            end (void);
+            eoc (void);
         void
             init( void );     
         void
--- a/main.cpp	Tue Mar 13 23:54:51 2018 +0000
+++ b/main.cpp	Thu Mar 15 13:16:22 2018 +0000
@@ -5,20 +5,16 @@
   */
 #include "heimann32x32.h"
 
-#define FIRMWARE "eye_r_eye-v_1_8-ticker"
+#define FIRMWARE "eye_r_eye-v_1_9"
 
-#define BAUDRATE 115200
-//#define BAUDRATE 230400
+//#define BAUDRATE 115200
+#define BAUDRATE 230400
 //#define PROC     HTPA_PROC_RAW
 #define PROC     (HTPA_PROC_ELOFFS  | HTPA_PROC_THOFFS)
 //#define PROC        HTPA_PROC_ELOFFS
 //#define PROC     (HTPA_PROC_ELOFFS  | HTPA_PROC_THOFFS | HTPA_PROC_CONVERT)
 
-#if BAUDRATE == 230400
-    #define HTPA_DT_MS  100 
-#elif BAUDRATE == 115200
-    #define HTPA_DT_MS  100 
-#endif
+#define HTPA_DT_MS  5
 
 I2C i2c(I2C_SDA, I2C_SCL), i2ce(I2C_SDA, I2C_SCL);
 
@@ -28,14 +24,6 @@
 
 DigitalOut led_green(LED2);
 
-Ticker tick;
-volatile bool call_htpa=0;
-void tick_set_htpa_flag( void ) 
-{
-    call_htpa = 1;
-}
-
-
 int main()
 {
     bool printme=0, print_labels=0;
@@ -58,15 +46,12 @@
     wait_ms(HTPA_DT_MS);
 
     led_green = 0;    // initializaiton complete
-    
-    // start ticker
-    tick.attach(&tick_set_htpa_flag, (float) HTPA_DT_MS *  (float) 1e-3);
-    
+
     if (h.tn != TABLENUMBER)
     {
         pc.printf("TN=%d does not match the interpolation table %d\n", h.tn, TABLENUMBER);
-//        pc.printf("Cannot continue!\n");
-//        while (1);
+        pc.printf("Cannot continue!\n");
+        while (1);
     }
         
     while (1)
@@ -173,10 +158,9 @@
                     break;
             } // switch
         }
-        if (call_htpa)
+
+        if (h.eoc())
         {
-            call_htpa=0;
-            
             led_green = 1;
             h.readb();
             led_green = 0;