Mode1 Optical Validation

Dependencies:   max32630fthr

Revision:
64:10da950111dd
Parent:
63:61f62564922c
Child:
65:84513856f64e
--- a/main.cpp	Wed Jun 01 01:20:49 2022 +0000
+++ b/main.cpp	Wed Jun 01 01:28:18 2022 +0000
@@ -96,8 +96,8 @@
 //#define MAXM86146_OPT_VALIDATION_GRN1 1 // Optical validatation
 //#define MAXM86146_OPT_VALIDATION_GRN2 1 // Optical validatation
 //#define MAXM86146_OPT_VALIDATION_RED 1 // Optical validatation
-#define MAXM86146_OPT_VALIDATION_IR 1 // Optical validatation
-//#define MAXM86146_OPT_VALIDATION_XTALK 1 // Optical validatation
+//#define MAXM86146_OPT_VALIDATION_IR 1 // Optical validatation
+#define MAXM86146_OPT_VALIDATION_XTALK 1 // Optical validatation
 
 // Comment out both of the below for Normal Algorithm Samples Format
 //#define EXTENDED_ALGO 1  // define this if you want the extended algo samples report format 
@@ -1128,7 +1128,7 @@
 #endif
  
 #if defined(MAXM86146_OPT_VALIDATION_XTALK)
-    // Set Green current 
+    // Set Green1 current
     cmd[0] = 0x40; cmd[1] = 0x00; cmd[2] = 0x23; cmd[3] = 0xFF;
     sh_i2c.write(SH_ADDR, cmd, 4);
     mfio = 1; thread_sleep_for(2); mfio = 0; wait_us(300);
@@ -1136,16 +1136,40 @@
     mfio = 1; mfio = 0; wait_us(300);
     pc.printf("wr afe reg Status: %x\n\r", rsp[0]);
  
-    // Set IR current to 1uA, 10uA or 30uA
-    cmd[0] = 0x40; cmd[1] = 0x00; cmd[2] = 0x24; cmd[3] = 0xFF;
+    // Set LED2 current
+    cmd[0] = 0x40; cmd[1] = 0x00; cmd[2] = 0x24; cmd[3] = 0x0;
+    sh_i2c.write(SH_ADDR, cmd, 4);
+    mfio = 1; thread_sleep_for(2); mfio = 0; wait_us(300);
+    sh_i2c.read(SH_ADDR, rsp, 1);
+    mfio = 1; mfio = 0; wait_us(300);
+    pc.printf("wr afe reg Status: %x\n\r", rsp[0]);
+
+    // Set Green2 current 
+    cmd[0] = 0x40; cmd[1] = 0x00; cmd[2] = 0x25; cmd[3] = 0xFF;
     sh_i2c.write(SH_ADDR, cmd, 4);
     mfio = 1; thread_sleep_for(2); mfio = 0; wait_us(300);
     sh_i2c.read(SH_ADDR, rsp, 1);
     mfio = 1; mfio = 0; wait_us(300);
     pc.printf("wr afe reg Status: %x\n\r", rsp[0]);
  
+    // Set LED4 current
+    cmd[0] = 0x40; cmd[1] = 0x00; cmd[2] = 0x26; cmd[3] = 0x0;
+    sh_i2c.write(SH_ADDR, cmd, 4);
+    mfio = 1; thread_sleep_for(2); mfio = 0; wait_us(300);
+    sh_i2c.read(SH_ADDR, rsp, 1);
+    mfio = 1; mfio = 0; wait_us(300);
+    pc.printf("wr afe reg Status: %x\n\r", rsp[0]);
+
     // Set Red current
-    cmd[0] = 0x40; cmd[1] = 0x00; cmd[2] = 0x25; cmd[3] = 0xFF;
+    cmd[0] = 0x40; cmd[1] = 0x00; cmd[2] = 0x27; cmd[3] = 0xFF;
+    sh_i2c.write(SH_ADDR, cmd, 4);
+    mfio = 1; thread_sleep_for(2); mfio = 0; wait_us(300);
+    sh_i2c.read(SH_ADDR, rsp, 1);
+    mfio = 1; mfio = 0; wait_us(300);
+    pc.printf("wr afe reg Status: %x\n\r", rsp[0]);
+
+    // Set IR current
+    cmd[0] = 0x40; cmd[1] = 0x00; cmd[2] = 0x28; cmd[3] = 0xFF;
     sh_i2c.write(SH_ADDR, cmd, 4);
     mfio = 1; thread_sleep_for(2); mfio = 0; wait_us(300);
     sh_i2c.read(SH_ADDR, rsp, 1);