![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Mode1 Optical Validation
Diff: main.cpp
- 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);