MAX11410 high speed 24-bit Delta-Sigma ADC

Dependents:   MAX11410BOB_24bit_ADC MAX11410BOB_Serial_Tester

Revision:
22:c6812214a933
Parent:
21:847b2220e96e
Child:
23:22e7830bcccb
--- a/MAX11410.cpp	Mon Apr 06 05:15:22 2020 -0700
+++ b/MAX11410.cpp	Mon Apr 13 02:59:22 2020 +0000
@@ -413,44 +413,71 @@
 // @future test xxxxxx // comment
 //
 // TODO1: #169 SelfTest support RegRead
+// @test group POR // verify initial register values (enabled by default)
 // @future test tinyTester.print("PART_ID value")
-// @test RegRead(MAX11410::CMD_r001_0001_xxxx_xxxx_xxxx_xxxx_xxxx_xddd_PART_ID, buffer) expect 1 expect-buffer 0x000F02
+// @test group POR RegRead(MAX11410::CMD_r001_0001_xxxx_xxxx_xxxx_xxxx_xxxx_xddd_PART_ID, buffer) expect 1 expect-buffer 0x000F02
 //
 // @future test tinyTester.print("POR value 0x04 CMD_r000_0100_dddd_xddd_GP0_CTRL")
-// @test RegRead(MAX11410::CMD_r000_0100_dddd_xddd_GP0_CTRL, buffer) expect 1 expect-buffer 0x00
+// @test group POR RegRead(MAX11410::CMD_r000_0100_dddd_xddd_GP0_CTRL, buffer) expect 1 expect-buffer 0x00
 //
 // @future test tinyTester.print("POR value 0x05 CMD_r000_0101_dddd_xddd_GP1_CTRL")
-// @test RegRead(MAX11410::CMD_r000_0101_dddd_xddd_GP1_CTRL, buffer) expect 1 expect-buffer 0x00
+// @test group POR RegRead(MAX11410::CMD_r000_0101_dddd_xddd_GP1_CTRL, buffer) expect 1 expect-buffer 0x00
 //
 // @future test tinyTester.print("POR value 0x07 CMD_r000_0111_xddd_dddd_GP_SEQ_ADDR")
-// @test RegRead(MAX11410::CMD_r000_0111_xddd_dddd_GP_SEQ_ADDR, buffer) expect 1 expect-buffer 0x00003a
+// @test group POR RegRead(MAX11410::CMD_r000_0111_xddd_dddd_GP_SEQ_ADDR, buffer) expect 1 expect-buffer 0x00003a
 //
 // TODO1: #169 SelfTest support RegWrite and custom enum types
 // @future test tinyTester.print("POR value 0x08 CMD_r000_1000_x0dd_dddd_FILTER")
-// @test RegRead(MAX11410::CMD_r000_1000_x0dd_dddd_FILTER, buffer) expect 1 expect-buffer 0x00
+// @test group POR RegRead(MAX11410::CMD_r000_1000_x0dd_dddd_FILTER, buffer) expect 1 expect-buffer 0x00
 // could also be stated as RegRead(0x08, buffer) expect 1 expect-buffer 0x00
 //
 // @future test tinyTester.print("POR value 0x09 CMD_r000_1001_dddd_dddd_CTRL")
-// @test RegRead(MAX11410::CMD_r000_1001_dddd_dddd_CTRL, buffer) expect 1 expect-buffer 0x000001
+// @test group POR RegRead(MAX11410::CMD_r000_1001_dddd_dddd_CTRL, buffer) expect 1 expect-buffer 0x000001
 //
 // @future test tinyTester.print("POR value 0x0a CMD_r000_1010_dddd_dddd_SOURCE")
-// @test RegRead(MAX11410::CMD_r000_1010_dddd_dddd_SOURCE, buffer) expect 1 expect-buffer 0x00
+// @test group POR RegRead(MAX11410::CMD_r000_1010_dddd_dddd_SOURCE, buffer) expect 1 expect-buffer 0x00
 //
 // @future test tinyTester.print("POR value 0x0b CMD_r000_1011_dddd_dddd_MUX_CTRL0")
-// @test RegRead(MAX11410::CMD_r000_1011_dddd_dddd_MUX_CTRL0, buffer) expect 1 expect-buffer 0x0000ff
+// @test group POR RegRead(MAX11410::CMD_r000_1011_dddd_dddd_MUX_CTRL0, buffer) expect 1 expect-buffer 0x0000ff
 //
 // @future test tinyTester.print("POR value 0x0c CMD_r000_1100_dddd_dddd_MUX_CTRL1")
-// @test RegRead(MAX11410::CMD_r000_1100_dddd_dddd_MUX_CTRL1, buffer) expect 1 expect-buffer 0x0000ff
+// @test group POR RegRead(MAX11410::CMD_r000_1100_dddd_dddd_MUX_CTRL1, buffer) expect 1 expect-buffer 0x0000ff
 //
 // @future test tinyTester.print("POR value 0x0d CMD_r000_1101_dddd_dddd_MUX_CTRL2")
-// @test RegRead(MAX11410::CMD_r000_1101_dddd_dddd_MUX_CTRL2, buffer) expect 1 expect-buffer 0x00
+// @test group POR RegRead(MAX11410::CMD_r000_1101_dddd_dddd_MUX_CTRL2, buffer) expect 1 expect-buffer 0x00
 //
 // @future test tinyTester.print("POR value 0x0e CMD_r000_1110_xxdd_xddd_PGA")
-// @test RegRead(MAX11410::CMD_r000_1110_xxdd_xddd_PGA, buffer) expect 1 expect-buffer 0x00
+// @test group POR RegRead(MAX11410::CMD_r000_1110_xxdd_xddd_PGA, buffer) expect 1 expect-buffer 0x00
 //
 // @future test     CMD_r000_1111_dddd_dddd_WAIT_EXT = 0x0f, //!< 0b0001111
 // @future test     CMD_r001_0000_xxxx_xxxx_WAIT_START = 0x10, //!< 0b0010000
 //
+// @test group RES1KA0A1TOGND // measure a 1kohm resistor between (AIN0,AIN1) and AGND to verify ref2_v (disabled by default)
+// @test group RES1KA0A1TOGNDMORE // measure a 1kohm resistor between (AIN0,AIN1) and AGND to verify ref2_v in more detail
+// @test group RES1KA0A1TOGNDMORE tinyTester.print("measure a 1kohm resistor between (AIN0,AIN1) and AGND to verify ref2_v")
+// @test group RES1KA0A1TOGND tinyTester.settle_time_msec = 1000 // default 250
+// @test group RES1KA0A1TOGND RegWrite(0x0C, 0xF1) expect 1 // *mux_ctrl1=0xf1 drives current source from AIN1
+//
+// @test group RES1KA0A1TOGNDMORE RegWrite(0x0A, 0x03) expect 1 // *source=0x03 idac_mode=100uA, 1k resistor 0.1V
+// @test group RES1KA0A1TOGNDMORE tinyTester.print("idac_mode=100uA, 1k resistor 0.1V")
+// @test group RES1KA0A1TOGNDMORE tinyTester.Wait_Output_Settling()
+// @test group RES1KA0A1TOGND_BAD Measure_Voltage(0,10) // TODO1 #175 MAX11410 Self Test why does Measure_Voltage(0,10) without expect cause an mbed hard fault?
+// @test group RES1KA0A1TOGNDMORE Measure_Voltage(0,10) expect 0.1
+// @test group RES1KA0A1TOGNDMORE AINcode[0] expect (uint32_t)337731 within 33773 // idac_mode=100uA, 1k resistor 0.1V
+//
+// @test group RES1KA0A1TOGNDMORE RegWrite(0x0A, 0x0D) expect 1 // *source=0x0d idac_mode=800uA, 1k resistor 0.8V
+// @test group RES1KA0A1TOGNDMORE tinyTester.print("idac_mode=800uA, 1k resistor 0.8V")
+// @test group RES1KA0A1TOGNDMORE tinyTester.Wait_Output_Settling()
+// @test group RES1KA0A1TOGND_BAD Measure_Voltage(0,10) // TODO1 #175 MAX11410 Self Test why does Measure_Voltage(0,10) without expect cause an mbed hard fault?
+// @test group RES1KA0A1TOGNDMORE Measure_Voltage(0,10) expect 0.8
+// @test group RES1KA0A1TOGNDMORE AINcode[0] expect (uint32_t)2724467 within 33773 // idac_mode=800uA, 1k resistor 0.8V
+//
+// @test group RES1KA0A1TOGND RegWrite(0x0A, 0x0B) expect 1 // *source=0x0b idac_mode=400uA, 1k resistor 0.4V
+// @test group RES1KA0A1TOGNDMORE tinyTester.print("idac_mode=400uA, 1k resistor 0.4V")
+// @test group RES1KA0A1TOGND tinyTester.Wait_Output_Settling()
+// @test group RES1KA0A1TOGND_BAD Measure_Voltage(0,10) // TODO1 #175 MAX11410 Self Test why does Measure_Voltage(0,10) without expect cause an mbed hard fault?
+// @test group RES1KA0A1TOGND Measure_Voltage(0,10) expect 0.4
+// @test group RES1KA0A1TOGNDMORE AINcode[0] expect (uint32_t)1343163 within 33773 // idac_mode=400uA, 1k resistor 0.4V
 //
 //
 //
@@ -487,27 +514,27 @@
     
     //----------------------------------------
     // AIN0-AIN1 reference voltage, in Volts
-    VRef_REF0 = 2.500;
+    ref0_v = 2.500;
     
     //----------------------------------------
     // REF1P-REF1N reference resistance, in Ohms
-    VRef_REF1 = 4999;
+    ref1_v = 4999;
     
     //----------------------------------------
     // REF2P-REF2N reference voltage, in Volts
-    VRef_REF2 = 2.500;
+    ref2_v = 2.500;
     
     //----------------------------------------
     // AVDD-AGND supply voltage, in Volts
-    VRef_AVDD = 3.300;
+    avdd_v = 3.300;
     
     //----------------------------------------
     // RTD Resistance measurement; Thermocouple Cold Junction, in Ohms
-    rtd_resistance = 1000.0;
+    rtd_ohm = 1000.0;
     
     //----------------------------------------
     // Temperature calculated from RTD Resistance; Thermocouple Cold Junction, in degrees C
-    RTD_Temperature = 25.0;
+    rtd_degc = 25.0;
     
     //----------------------------------------
     // shadow of register ctrl CMD_r000_1001_dddd_dddd_CTRL
@@ -521,14 +548,18 @@
     // When driver polls status of a pin signal or a register status bit,
     // and there is no device physically connected, the driver must
     // be able to halt and report failure if too many tries. Each attempt
-    // counts down until futility_countdown_limit is reached or exceeded.
+    // counts down until loop_limit is reached or exceeded.
     //
     // If driver seems to hang or takes too long to decide that device
     // is not connected, reduce the futility countdown limit value.
     //
     // If driver sometimes works but sometimes intermittently fails to
     // recognize device is attached, increase the futility countdown limit.
-    futility_countdown_limit =  30;
+    loop_limit = 30;
+    
+    //----------------------------------------
+    // timing delay after enable RTD bias current in Measure_RTD()
+    rtd_ms = 100;
     
     //----------------------------------------
     // list of registers to be read by menu item * with no arguments
@@ -613,18 +644,18 @@
     
     //----------------------------------------
     // Linear map min and max endpoints
-    double VRef = VRef_REF2;
+    double VRef = ref2_v;
     uint8_t ref_sel = (ctrl & 0x03); // MAX11410_REF_SEL_enum_t
     switch(ref_sel)
     {
-    case REF_SEL_000_AIN0_AIN1:     VRef = VRef_REF0; break;
-    case REF_SEL_001_REF1P_REF1N:   VRef = VRef_REF1; break;
-    case REF_SEL_010_REF2P_REF2N:   VRef = VRef_REF2; break;
-    case REF_SEL_011_AVDD_AGND:     VRef = VRef_AVDD; break;
-    case REF_SEL_100_AIN0_AGND:     VRef = VRef_REF0; break;
-    case REF_SEL_101_REF1P_AGND:    VRef = VRef_REF1; break;
-    case REF_SEL_110_REF2P_AGND:    VRef = VRef_REF2; break;
-    case REF_SEL_111_AVDD_AGND:     VRef = VRef_AVDD; break;
+    case REF_SEL_000_AIN0_AIN1:     VRef = ref0_v; break;
+    case REF_SEL_001_REF1P_REF1N:   VRef = ref1_v; break;
+    case REF_SEL_010_REF2P_REF2N:   VRef = ref2_v; break;
+    case REF_SEL_011_AVDD_AGND:     VRef = avdd_v; break;
+    case REF_SEL_100_AIN0_AGND:     VRef = ref0_v; break;
+    case REF_SEL_101_REF1P_AGND:    VRef = ref1_v; break;
+    case REF_SEL_110_REF2P_AGND:    VRef = ref2_v; break;
+    case REF_SEL_111_AVDD_AGND:     VRef = avdd_v; break;
     }
     double MaxScaleVoltage = VRef; // voltage of maximum code 0xffffff
     double MinScaleVoltage = 0.0; // voltage of minimum code 0x000
@@ -670,18 +701,18 @@
     
     //----------------------------------------
     // Linear map min and max endpoints
-    double VRef = VRef_REF2;
+    double VRef = ref2_v;
     uint8_t ref_sel = (ctrl & 0x03); // MAX11410_REF_SEL_enum_t
     switch(ref_sel)
     {
-    case REF_SEL_000_AIN0_AIN1:     VRef = VRef_REF0; break;
-    case REF_SEL_001_REF1P_REF1N:   VRef = VRef_REF1; break;
-    case REF_SEL_010_REF2P_REF2N:   VRef = VRef_REF2; break;
-    case REF_SEL_011_AVDD_AGND:     VRef = VRef_AVDD; break;
-    case REF_SEL_100_AIN0_AGND:     VRef = VRef_REF0; break;
-    case REF_SEL_101_REF1P_AGND:    VRef = VRef_REF1; break;
-    case REF_SEL_110_REF2P_AGND:    VRef = VRef_REF2; break;
-    case REF_SEL_111_AVDD_AGND:     VRef = VRef_AVDD; break;
+    case REF_SEL_000_AIN0_AIN1:     VRef = ref0_v; break;
+    case REF_SEL_001_REF1P_REF1N:   VRef = ref1_v; break;
+    case REF_SEL_010_REF2P_REF2N:   VRef = ref2_v; break;
+    case REF_SEL_011_AVDD_AGND:     VRef = avdd_v; break;
+    case REF_SEL_100_AIN0_AGND:     VRef = ref0_v; break;
+    case REF_SEL_101_REF1P_AGND:    VRef = ref1_v; break;
+    case REF_SEL_110_REF2P_AGND:    VRef = ref2_v; break;
+    case REF_SEL_111_AVDD_AGND:     VRef = avdd_v; break;
     }
     double MaxScaleVoltage = 2*VRef; // voltage of maximum code 0x7fffff
     double MinScaleVoltage = 0; // voltage of minimum code 0x800000;
@@ -738,18 +769,18 @@
     
     //----------------------------------------
     // Linear map min and max endpoints
-    double VRef = VRef_REF2;
+    double VRef = ref2_v;
     uint8_t ref_sel = (ctrl & 0x03); // MAX11410_REF_SEL_enum_t
     switch(ref_sel)
     {
-    case REF_SEL_000_AIN0_AIN1:     VRef = VRef_REF0; break;
-    case REF_SEL_001_REF1P_REF1N:   VRef = VRef_REF1; break;
-    case REF_SEL_010_REF2P_REF2N:   VRef = VRef_REF2; break;
-    case REF_SEL_011_AVDD_AGND:     VRef = VRef_AVDD; break;
-    case REF_SEL_100_AIN0_AGND:     VRef = VRef_REF0; break;
-    case REF_SEL_101_REF1P_AGND:    VRef = VRef_REF1; break;
-    case REF_SEL_110_REF2P_AGND:    VRef = VRef_REF2; break;
-    case REF_SEL_111_AVDD_AGND:     VRef = VRef_AVDD; break;
+    case REF_SEL_000_AIN0_AIN1:     VRef = ref0_v; break;
+    case REF_SEL_001_REF1P_REF1N:   VRef = ref1_v; break;
+    case REF_SEL_010_REF2P_REF2N:   VRef = ref2_v; break;
+    case REF_SEL_011_AVDD_AGND:     VRef = avdd_v; break;
+    case REF_SEL_100_AIN0_AGND:     VRef = ref0_v; break;
+    case REF_SEL_101_REF1P_AGND:    VRef = ref1_v; break;
+    case REF_SEL_110_REF2P_AGND:    VRef = ref2_v; break;
+    case REF_SEL_111_AVDD_AGND:     VRef = avdd_v; break;
     }
     double MaxScaleVoltage = 2 * VRef; // voltage of maximum code 0x7fffff
     double MinScaleVoltage = 0; // voltage of minimum code 0x800000
@@ -1793,6 +1824,11 @@
     RegWrite(CMD_r000_0001_xddd_xxdd_CONV_START, 0x01);
     
     //----------------------------------------
+    // purge any old data from data0 register
+    RegRead(CMD_r011_0000_dddd_dddd_dddd_dddd_dddd_dddd_DATA0, &AINcode[((int)ainp & 0x0F)]);
+    data0 = AINcode[((int)ainp & 0x0F)];
+    
+    //----------------------------------------
     // read24 0x80|0x38 STATUS (%SW 0xB8 0 0 0)
     RegRead(CMD_r011_1000_dddd_dddd_dddd_dddd_dxxx_dddd_STATUS, &status);
     
@@ -1801,7 +1837,7 @@
     // A bad SPI interface can cause bit slippage, which makes this loop get stuck. Expect *PART_ID? = 0x000F02
     // while ((status &  /* MAX11410_STATUS_enum_t:: */ STATUS_000010_DATA_RDY) == 0) {
     // possible infinite loop; need a timeout or futility countdown to escape
-    for (int futility_countdown = futility_countdown_limit;
+    for (int futility_countdown = loop_limit;
         ((futility_countdown > 0) &&
         ((status &  /* MAX11410_STATUS_enum_t:: */ STATUS_000010_DATA_RDY) == 0));
         futility_countdown--)
@@ -1820,19 +1856,19 @@
 }
 
 //----------------------------------------
-// Menu item 'R' -> rtd_resistance, RTD_Temperature
+// Menu item 'R' -> rtd_ohm, rtd_degc
 // Trigger Measurement for Resistive Temperature Device (RTD).
 //
 // Example code for typical RTD measurement.
 //
 // @pre external connection REF1P-REF1N is a reference resistor
-// @pre VRef_REF1 = reference resistance in ohms, default=4999
+// @pre ref1_v = reference resistance in ohms, default=4999
 // @param[in] rtd_iout = channel RTD high side force, default=AINP_SEL_0111_AIN7
 // @param[in] rtd_ainp = channel RTD high side sense, default=AINP_SEL_1000_AIN8
 // @param[in] rtd_ainn = channel RTD low side, default=AINN_SEL_1001_AIN9
 // @post AINcode[rtd_ainp]: measurement result LSB code
-// @post rtd_resistance: measurement result resistance in Ohms
-// @post RTD_Temperature: Temperature calculated from RTD Resistance; Thermocouple Cold Junction, in degrees C
+// @post rtd_ohm: measurement result resistance in Ohms
+// @post rtd_degc: Temperature calculated from RTD Resistance; Thermocouple Cold Junction, in degrees C
 //
 // @return resistance calculated from raw LSB code and reference resistance
 double MAX11410::Measure_RTD(MAX11410_AINP_SEL_enum_t rtd_iout, MAX11410_AINP_SEL_enum_t rtd_ainp, MAX11410_AINN_SEL_enum_t rtd_ainn)
@@ -1888,17 +1924,17 @@
                 (uint8_t) /* MAX11410_GAIN_enum_t:: */ GAIN_001_2);
     
     //----------------------------------------
-    // diagnostic GPIO pulse on GP1 during RTD_power_up_interval_msec
+    // diagnostic GPIO pulse on GP1 during RTD power-up interval rtd_ms
     RegWrite(CMD_r000_0101_dddd_xddd_GP1_CTRL, 0xc3); // diagnostic GPIO pulse GP1
             // write8 0x05 GP1_CTRL (%SW 0x05 0xc3) 11000 output 011 logic 0
     
     //----------------------------------------
     // timing delay after enable RTD bias current
-    const int RTD_power_up_interval_msec = 100; // timing delay after enable RTD bias current
-    wait_ms(RTD_power_up_interval_msec); // timing delay function, platform-specific
+    // const int rtd_ms = 100; // timing delay after enable RTD bias current
+    wait_ms(rtd_ms); // timing delay function, platform-specific
     
     //----------------------------------------
-    // diagnostic GPIO pulse on GP1 during RTD_power_up_interval_msec
+    // diagnostic GPIO pulse on GP1 during RTD power-up interval rtd_ms
     RegWrite(CMD_r000_0101_dddd_xddd_GP1_CTRL, 0xc4); // diagnostic GPIO pulse GP1
             // write8 0x05 GP1_CTRL (%SW 0x05 0xc4) 11000 output 100 logic 1
     
@@ -1915,7 +1951,7 @@
     // A bad SPI interface can cause bit slippage, which makes this loop get stuck. Expect *PART_ID? = 0x000F02
     // while ((status &  /* MAX11410_STATUS_enum_t:: */ STATUS_000010_DATA_RDY) == 0) {
     // possible infinite loop; need a timeout or futility countdown to escape
-    for (int futility_countdown = futility_countdown_limit;
+    for (int futility_countdown = loop_limit;
         ((futility_countdown > 0) &&
         ((status &  /* MAX11410_STATUS_enum_t:: */ STATUS_000010_DATA_RDY) == 0));
         futility_countdown--)
@@ -1933,18 +1969,18 @@
     Configure_MUX_CTRL1((uint8_t)IDAC1_SEL_1111_unconnected, (uint8_t)IDAC0_SEL_1111_unconnected);
     
     //----------------------------------------
-    // resistance calculated from raw LSB code and VRef_REF1 reference resistance in ohms
-    rtd_resistance = VoltageOfCode(AINcode[((int)rtd_ainp & 0x0F)]);
-    TemperatureOfRTD(rtd_resistance); // calculate RTD_Temperature
-    return rtd_resistance;
+    // resistance calculated from raw LSB code and ref1_v reference resistance in ohms
+    rtd_ohm = VoltageOfCode(AINcode[((int)rtd_ainp & 0x0F)]);
+    TemperatureOfRTD(rtd_ohm); // calculate rtd_degc
+    return rtd_ohm;
 }
 
 //----------------------------------------
 // Return the physical temperature corresponding to measured resistance
 // of a PT1000 type Resistive Temperature Device (RTD).
 //
-// @param[in] rtd_resistance = RTD resistance in ohms, default=1000
-// @post RTD_Temperature: Temperature calculated from RTD Resistance; Thermocouple Cold Junction, in degrees C
+// @param[in] rtd_ohm = RTD resistance in ohms, default=1000
+// @post rtd_degc: Temperature calculated from RTD Resistance; Thermocouple Cold Junction, in degrees C
 //
 // @return ideal temperature in degrees C, calculated from RTD resistance in ohms
 // @test group RTD_PT1000 // PT1000 type Resistive Temperature Device (RTD)
@@ -1956,7 +1992,7 @@
 // @test group RTD_PT1000 TemperatureOfRTD_PT1000(1479.5) expect 125.0 within 0.1 // PT-1000 RTD at 125C
 // @test group RTD_PT1000 tinyTester.blink_time_msec = 75 // default 75 resume hardware self test
 //
-double MAX11410::TemperatureOfRTD_PT1000(double rtd_resistance)
+double MAX11410::TemperatureOfRTD_PT1000(double rtd_ohm)
 {
     
     //----------------------------------------
@@ -1966,18 +2002,18 @@
     double a = 3.9083e-3;
     double b = -5.7750e-7;
     // calculate T from R and R0
-    double sqrtTerm = sqrt(R0*R0 * a*a - 4*R0*b*(R0 - rtd_resistance));
+    double sqrtTerm = sqrt(R0*R0 * a*a - 4*R0*b*(R0 - rtd_ohm));
     double denominator = 2 * R0 * b;
-    RTD_Temperature = ((-R0 * a) + (sqrtTerm)) / denominator;
-    return RTD_Temperature;
+    rtd_degc = ((-R0 * a) + (sqrtTerm)) / denominator;
+    return rtd_degc;
 }
 
 //----------------------------------------
 // Return the physical temperature corresponding to measured resistance
 // of a PT100 type Resistive Temperature Device (RTD).
 //
-// @param[in] rtd_resistance = RTD resistance in ohms, default=100
-// @post RTD_Temperature: Temperature calculated from RTD Resistance; Thermocouple Cold Junction, in degrees C
+// @param[in] rtd_ohm = RTD resistance in ohms, default=100
+// @post rtd_degc: Temperature calculated from RTD Resistance; Thermocouple Cold Junction, in degrees C
 //
 // @return ideal temperature in degrees C, calculated from RTD resistance in ohms
 // @test group RTD_PT100 // PT100 type Resistive Temperature Device (RTD)
@@ -1989,7 +2025,7 @@
 // @test group RTD_PT100 TemperatureOfRTD_PT100(147.95) expect 125.0 within 0.1 // PT-100 RTD at 125C
 // @test group RTD_PT100 tinyTester.blink_time_msec = 75 // default 75 resume hardware self test
 //
-double MAX11410::TemperatureOfRTD_PT100(double rtd_resistance)
+double MAX11410::TemperatureOfRTD_PT100(double rtd_ohm)
 {
     
     //----------------------------------------
@@ -1999,18 +2035,18 @@
     double a = 3.9083e-3;
     double b = -5.7750e-7;
     // calculate T from R and R0
-    double sqrtTerm = sqrt(R0*R0 * a*a - 4*R0*b*(R0 - rtd_resistance));
+    double sqrtTerm = sqrt(R0*R0 * a*a - 4*R0*b*(R0 - rtd_ohm));
     double denominator = 2 * R0 * b;
-    RTD_Temperature = ((-R0 * a) + (sqrtTerm)) / denominator;
-    return RTD_Temperature;
+    rtd_degc = ((-R0 * a) + (sqrtTerm)) / denominator;
+    return rtd_degc;
 }
 
 //----------------------------------------
 // Return the physical temperature corresponding to measured resistance
 // of a PT100 or PT1000 type Resistive Temperature Device (RTD).
 //
-// @param[in] rtd_resistance = RTD resistance in ohms, default=100
-// @post RTD_Temperature: Temperature calculated from RTD Resistance; Thermocouple Cold Junction, in degrees C
+// @param[in] rtd_ohm = RTD resistance in ohms, default=100
+// @post rtd_degc: Temperature calculated from RTD Resistance; Thermocouple Cold Junction, in degrees C
 //
 // @return ideal temperature in degrees C, calculated from RTD resistance in ohms
 // @test group RTD // Verify function TemperatureOfRTD
@@ -2027,23 +2063,23 @@
 // @test group RTD TemperatureOfRTD(1479.5) expect 125.0 within 0.1 // PT-1000 RTD at 125C
 // @test group RTD tinyTester.blink_time_msec = 75 // default 75 resume hardware self test
 //
-double MAX11410::TemperatureOfRTD(double rtd_resistance)
+double MAX11410::TemperatureOfRTD(double rtd_ohm)
 {
     
     //----------------------------------------
     // return TemperatureOfRTD_PT100 or TemperatureOfRTD_PT1000
-    if (rtd_resistance > 500.0)
+    if (rtd_ohm > 500.0)
     {
-        return TemperatureOfRTD_PT1000(rtd_resistance);
+        return TemperatureOfRTD_PT1000(rtd_ohm);
     }
     else
     {
-        return TemperatureOfRTD_PT100(rtd_resistance);
+        return TemperatureOfRTD_PT100(rtd_ohm);
     }
 }
 
 //----------------------------------------
-// Menu item 'TM' -> tc_voltage, tc_deltaT, tc_Temperature
+// Menu item 'TM' -> tc_v, tc_delta_degc, tc_degc
 // Trigger Measurement for Thermocouple
 //
 // Example code for typical Thermocouple measurement.
@@ -2056,9 +2092,9 @@
 // @param[in] rtd_ainp = channel RTD high side sense, default=AINP_SEL_1000_AIN8
 // @param[in] rtd_ainn = channel RTD low side, default=AINN_SEL_1001_AIN9
 // @post AINcode[tc_ainp]: measurement result LSB code
-// @post tc_voltage: raw thermocouple voltage in Volts
-// @post tc_deltaT: temperature in degC above cold junction
-// @post tc_Temperature: temperature in degC
+// @post tc_v: raw thermocouple voltage in Volts
+// @post tc_delta_degc: temperature in degC above cold junction
+// @post tc_degc: temperature in degC
 //
 // @return 1 on success; 0 on failure
 double MAX11410::Measure_Thermocouple(MAX11410_AINP_SEL_enum_t tc_ainp, MAX11410_AINN_SEL_enum_t tc_ainn, MAX11410_AINP_SEL_enum_t rtd_iout, MAX11410_AINP_SEL_enum_t rtd_ainp, MAX11410_AINN_SEL_enum_t rtd_ainn)
@@ -2132,7 +2168,7 @@
     // A bad SPI interface can cause bit slippage, which makes this loop get stuck. Expect *PART_ID? = 0x000F02
     // while ((status &  /* MAX11410_STATUS_enum_t:: */ STATUS_000010_DATA_RDY) == 0) {
     // possible infinite loop; need a timeout or futility countdown to escape
-    for (int futility_countdown = futility_countdown_limit;
+    for (int futility_countdown = loop_limit;
         ((futility_countdown > 0) &&
         ((status &  /* MAX11410_STATUS_enum_t:: */ STATUS_000010_DATA_RDY) == 0));
         futility_countdown--)
@@ -2147,27 +2183,27 @@
     
     //----------------------------------------
     // ideal voltage calculated from raw LSB code and reference voltage
-    tc_voltage = VoltageOfCode(AINcode[((int)tc_ainp & 0x0F)]);
+    tc_v = VoltageOfCode(AINcode[((int)tc_ainp & 0x0F)]);
     
     //----------------------------------------
     // ideal voltage calculated from raw LSB code and reference voltage
-    tc_deltaT = TemperatureOfTC_TypeK(tc_voltage);
+    tc_delta_degc = TemperatureOfTC_TypeK(tc_v);
     
     //----------------------------------------
     // ideal voltage calculated from raw LSB code and reference voltage
-    tc_Temperature = RTD_Temperature + tc_deltaT;
+    tc_degc = rtd_degc + tc_delta_degc;
     
     //----------------------------------------
     // ideal voltage calculated from raw LSB code and reference voltage
-    return tc_voltage;
+    return tc_v;
 }
 
 //----------------------------------------
 // Return the physical temperature corresponding to measured voltage
 // of a type K Thermocouple (TC).
 //
-// @pre {0}.RTD_Temperature = cold junction temperature, in degrees C
-// @param[in] tc_voltage = Thermocouple voltage in volts, default=0.0254
+// @pre {0}.rtd_degc = cold junction temperature, in degrees C
+// @param[in] tc_v = Thermocouple voltage in volts, default=0.0254
 //
 // @return ideal temperature in degrees C, calculated from RTD resistance in ohms
 // @test group TC_1 // Verify Thermocouple function TemperatureOfTC_TypeK
@@ -2220,16 +2256,16 @@
 // @test group TC_1 TemperatureOfTC_TypeK(20.218e-3) expect 490.0  // TC_TypeK at  490C = 20.218mV
 // @test group TC_1 tinyTester.blink_time_msec = 75 // default 75 resume hardware self test
 //
-double MAX11410::TemperatureOfTC_TypeK(double tc_voltage)
+double MAX11410::TemperatureOfTC_TypeK(double tc_v)
 {
     
     //----------------------------------------
     // Temperature from TC_TypeK voltage maths
     // define standard TC_TypeK coefficients
     // ITS-90 Thermocouple Inverse Polynomial for a Type K thermocouple
-    // calculate deltaT from tc_voltage
+    // calculate deltaT from tc_v
     //
-    // Voltage range -5891uV < tc_voltage < 0uV, 
+    // Voltage range -5891uV < tc_v < 0uV, 
     // Temperature Range -200 deg C to 0 deg C
     static double coefficients_TCtypeK_V_lt_0[] = {
          0.00000,
@@ -2243,7 +2279,7 @@
         -5.1920577e-28,
     };
     //
-    // Voltage range 0uV < tc_voltage < 20.644uV, 
+    // Voltage range 0uV < tc_v < 20.644uV, 
     // Temperature Range 0 deg C to 500 deg C
     static double coefficients_TCtypeK_0_lt_V_lt_20u644V[] = {
          0.00000,
@@ -2258,7 +2294,7 @@
         -1.052755e-35,
     };
     //
-    // Voltage range 20.6440uV < tc_voltage < 54.886uV, 
+    // Voltage range 20.6440uV < tc_v < 54.886uV, 
     // Temperature Range 500 deg C to 1372 deg C
     static double coefficients_TCtypeK_20u644V_lt_V_lt_54u886V[] = {
         -1.318058e2,
@@ -2271,7 +2307,7 @@
     };
     //
     double deltaT = 0;
-    double thermocouple_voltage_uV = tc_voltage * 1e6;
+    double thermocouple_voltage_uV = tc_v * 1e6;
     if (thermocouple_voltage_uV < 0)
     {
         // Voltage range -5891uV < DMMavg < 0uV, Temperature Range -200 deg C to 0 deg C
@@ -2287,7 +2323,7 @@
         // Voltage range 0uV < DMMavg < 20.644uV, Temperature Range 0 deg C to 500 deg C
         deltaT = temperatureDegC_polynomial(thermocouple_voltage_uV, 10, coefficients_TCtypeK_0_lt_V_lt_20u644V);
     }
-    return deltaT; //  + RTD_Temperature; // cold junction
+    return deltaT; //  + rtd_degc; // cold junction
 }
 
 //----------------------------------------