Maxim Integrated MAX11131 SPI 12-bit 16-channel ADC with SampleSet
Dependents: MAX11131BOB_Tester MAX11131BOB_12bit_16ch_SampleSet_SPI_ADC MAX11131BOB_Serial_Tester
Diff: MAX11131.cpp
- Revision:
- 4:8a0ae95546fa
- Parent:
- 3:621191a7e3fd
- Child:
- 5:6ef046dbe77e
--- a/MAX11131.cpp Fri Aug 02 23:27:03 2019 +0000 +++ b/MAX11131.cpp Sun Aug 04 00:14:52 2019 -0700 @@ -523,11 +523,11 @@ // Summary of Table 8: // UCH0/1=0, BCH0/1=0, RANGE0/1=0: AIN0/AIN1 two independent single-ended inputs, unipolar code (Full Scale = VREF, LSB = VREF/4096) // UCH0/1=1, BCH0/1=0, RANGE0/1=0: AIN0/AIN1 differential input pair, unipolar code (AIN0>AIN1) (Full Scale = VREF, LSB = VREF/4096) - // UCH0/1=0, BCH0/1=1, RANGE0/1=0: AIN0/AIN1 differential input pair ±½Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) + // UCH0/1=0, BCH0/1=1, RANGE0/1=0: AIN0/AIN1 differential input pair (+/-)(1/2)Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) // UCH0/1=1, BCH0/1=1, RANGE0/1=0: reserved do not use // UCH0/1=0, BCH0/1=0, RANGE0/1=1: reserved do not use // UCH0/1=1, BCH0/1=0, RANGE0/1=1: reserved do not use - // UCH0/1=0, BCH0/1=1, RANGE0/1=1: AIN0/AIN1 differential input pair ±Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) + // UCH0/1=0, BCH0/1=1, RANGE0/1=1: AIN0/AIN1 differential input pair (+/-)Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) // UCH0/1=1, BCH0/1=1, RANGE0/1=1: reserved do not use // Both channels of a differential pair must be within Input Voltage Range (dynamic signal range) 0..VREF. @@ -650,7 +650,7 @@ // ADC Channels AIN0, AIN1 = Differential Bipolar // Full Scale = VREF // Voltage per LSB count = VREF/4096 - // AIN0, AIN1 are a Differential pair using Bipolar transfer function with range ±½Vref + // AIN0, AIN1 are a Differential pair using Bipolar transfer function with range (+/-)(1/2)Vref // AIN0 voltage must always be between 0 and VREF. // AIN1 voltage must always be between 0 and VREF. // @@ -659,7 +659,7 @@ UNIPOLAR &= ~ (1 << AIN_0_1_LSB); BIPOLAR |= (1 << AIN_0_1_LSB); RANGE &= ~ (1 << AIN_0_1_LSB); - // UCH0/1=0, BCH0/1=1, RANGE0/1=0: AIN0/AIN1 differential input pair ±½Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) + // UCH0/1=0, BCH0/1=1, RANGE0/1=0: AIN0/AIN1 differential input pair (+/-)(1/2)Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) #endif // AIN_0_1_DifferentialBipolarFSVref #if AIN_0_1_DifferentialBipolarFS2Vref @@ -668,7 +668,7 @@ // ADC Channels AIN0, AIN1 = Differential Bipolar // Full Scale = 2 * VREF // Voltage per LSB count = VREF/2048 - // AIN0, AIN1 are a Differential pair using Bipolar transfer function with range ±Vref + // AIN0, AIN1 are a Differential pair using Bipolar transfer function with range (+/-)Vref // AIN0 voltage must always be between 0 and VREF. // AIN1 voltage must always be between 0 and VREF. // @@ -677,7 +677,7 @@ UNIPOLAR &= ~ (1 << AIN_0_1_LSB); BIPOLAR |= (1 << AIN_0_1_LSB); RANGE |= (1 << AIN_0_1_LSB); - // UCH0/1=0, BCH0/1=1, RANGE0/1=1: AIN0/AIN1 differential input pair ±Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) + // UCH0/1=0, BCH0/1=1, RANGE0/1=1: AIN0/AIN1 differential input pair (+/-)Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) #endif // AIN_0_1_DifferentialBipolarFS2Vref #if AIN_2_3_SingleEnded @@ -722,7 +722,7 @@ // ADC Channels AIN2, AIN3 = Differential Bipolar // Full Scale = VREF // Voltage per LSB count = VREF/4096 - // AIN2, AIN3 are a Differential pair using Bipolar transfer function with range ±½Vref + // AIN2, AIN3 are a Differential pair using Bipolar transfer function with range (+/-)(1/2)Vref // AIN2 voltage must always be between 0 and VREF. // AIN3 voltage must always be between 0 and VREF. // @@ -731,7 +731,7 @@ UNIPOLAR &= ~ (1 << AIN_2_3_LSB); BIPOLAR |= (1 << AIN_2_3_LSB); RANGE &= ~ (1 << AIN_2_3_LSB); - // UCH2/3=0, BCH2/3=1, RANGE2/3=0: AIN0/AIN1 differential input pair ±½Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) + // UCH2/3=0, BCH2/3=1, RANGE2/3=0: AIN0/AIN1 differential input pair (+/-)(1/2)Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) #endif // AIN_2_3_DifferentialBipolarFSVref #if AIN_2_3_DifferentialBipolarFS2Vref @@ -740,7 +740,7 @@ // ADC Channels AIN2, AIN3 = Differential Bipolar // Full Scale = 2 * VREF // Voltage per LSB count = VREF/2048 - // AIN2, AIN3 are a Differential pair using Bipolar transfer function with range ±Vref + // AIN2, AIN3 are a Differential pair using Bipolar transfer function with range (+/-)Vref // AIN2 voltage must always be between 0 and VREF. // AIN3 voltage must always be between 0 and VREF. // @@ -749,7 +749,7 @@ UNIPOLAR &= ~ (1 << AIN_2_3_LSB); BIPOLAR |= (1 << AIN_2_3_LSB); RANGE |= (1 << AIN_2_3_LSB); - // UCH2/3=0, BCH2/3=1, RANGE2/3=1: AIN0/AIN1 differential input pair ±Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) + // UCH2/3=0, BCH2/3=1, RANGE2/3=1: AIN0/AIN1 differential input pair (+/-)Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) #endif // AIN_2_3_DifferentialBipolarFS2Vref #if AIN_4_5_SingleEnded @@ -794,7 +794,7 @@ // ADC Channels AIN4, AIN5 = Differential Bipolar // Full Scale = VREF // Voltage per LSB count = VREF/4096 - // AIN4, AIN5 are a Differential pair using Bipolar transfer function with range ±½Vref + // AIN4, AIN5 are a Differential pair using Bipolar transfer function with range (+/-)(1/2)Vref // AIN4 voltage must always be between 0 and VREF. // AIN5 voltage must always be between 0 and VREF. // @@ -803,7 +803,7 @@ UNIPOLAR &= ~ (1 << AIN_4_5_LSB); BIPOLAR |= (1 << AIN_4_5_LSB); RANGE &= ~ (1 << AIN_4_5_LSB); - // UCH4/5=0, BCH4/5=1, RANGE4/5=0: AIN0/AIN1 differential input pair ±½Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) + // UCH4/5=0, BCH4/5=1, RANGE4/5=0: AIN0/AIN1 differential input pair (+/-)(1/2)Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) #endif // AIN_4_5_DifferentialBipolarFSVref #if AIN_4_5_DifferentialBipolarFS2Vref @@ -812,7 +812,7 @@ // ADC Channels AIN4, AIN5 = Differential Bipolar // Full Scale = 2 * VREF // Voltage per LSB count = VREF/2048 - // AIN4, AIN5 are a Differential pair using Bipolar transfer function with range ±Vref + // AIN4, AIN5 are a Differential pair using Bipolar transfer function with range (+/-)Vref // AIN4 voltage must always be between 0 and VREF. // AIN5 voltage must always be between 0 and VREF. // @@ -821,7 +821,7 @@ UNIPOLAR &= ~ (1 << AIN_4_5_LSB); BIPOLAR |= (1 << AIN_4_5_LSB); RANGE |= (1 << AIN_4_5_LSB); - // UCH4/5=0, BCH4/5=1, RANGE4/5=1: AIN0/AIN1 differential input pair ±Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) + // UCH4/5=0, BCH4/5=1, RANGE4/5=1: AIN0/AIN1 differential input pair (+/-)Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) #endif // AIN_4_5_DifferentialBipolarFS2Vref #if AIN_6_7_SingleEnded @@ -866,7 +866,7 @@ // ADC Channels AIN6, AIN7 = Differential Bipolar // Full Scale = VREF // Voltage per LSB count = VREF/4096 - // AIN6, AIN7 are a Differential pair using Bipolar transfer function with range ±½Vref + // AIN6, AIN7 are a Differential pair using Bipolar transfer function with range (+/-)(1/2)Vref // AIN6 voltage must always be between 0 and VREF. // AIN7 voltage must always be between 0 and VREF. // @@ -875,7 +875,7 @@ UNIPOLAR &= ~ (1 << AIN_6_7_LSB); BIPOLAR |= (1 << AIN_6_7_LSB); RANGE &= ~ (1 << AIN_6_7_LSB); - // UCH6/7=0, BCH6/7=1, RANGE6/7=0: AIN0/AIN1 differential input pair ±½Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) + // UCH6/7=0, BCH6/7=1, RANGE6/7=0: AIN0/AIN1 differential input pair (+/-)(1/2)Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) #endif // AIN_6_7_DifferentialBipolarFSVref #if AIN_6_7_DifferentialBipolarFS2Vref @@ -884,7 +884,7 @@ // ADC Channels AIN6, AIN7 = Differential Bipolar // Full Scale = 2 * VREF // Voltage per LSB count = VREF/2048 - // AIN6, AIN7 are a Differential pair using Bipolar transfer function with range ±Vref + // AIN6, AIN7 are a Differential pair using Bipolar transfer function with range (+/-)Vref // AIN6 voltage must always be between 0 and VREF. // AIN7 voltage must always be between 0 and VREF. // @@ -893,7 +893,7 @@ UNIPOLAR &= ~ (1 << AIN_6_7_LSB); BIPOLAR |= (1 << AIN_6_7_LSB); RANGE |= (1 << AIN_6_7_LSB); - // UCH6/7=0, BCH6/7=1, RANGE6/7=1: AIN0/AIN1 differential input pair ±Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) + // UCH6/7=0, BCH6/7=1, RANGE6/7=1: AIN0/AIN1 differential input pair (+/-)Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) #endif // AIN_6_7_DifferentialBipolarFS2Vref #if AIN_8_9_SingleEnded @@ -938,7 +938,7 @@ // ADC Channels AIN8, AIN9 = Differential Bipolar // Full Scale = VREF // Voltage per LSB count = VREF/4096 - // AIN8, AIN9 are a Differential pair using Bipolar transfer function with range ±½Vref + // AIN8, AIN9 are a Differential pair using Bipolar transfer function with range (+/-)(1/2)Vref // AIN8 voltage must always be between 0 and VREF. // AIN9 voltage must always be between 0 and VREF. // @@ -947,7 +947,7 @@ UNIPOLAR &= ~ (1 << AIN_8_9_LSB); BIPOLAR |= (1 << AIN_8_9_LSB); RANGE &= ~ (1 << AIN_8_9_LSB); - // UCH8/9=0, BCH8/9=1, RANGE8/9=0: AIN0/AIN1 differential input pair ±½Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) + // UCH8/9=0, BCH8/9=1, RANGE8/9=0: AIN0/AIN1 differential input pair (+/-)(1/2)Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) #endif // AIN_8_9_DifferentialBipolarFSVref #if AIN_8_9_DifferentialBipolarFS2Vref @@ -956,7 +956,7 @@ // ADC Channels AIN8, AIN9 = Differential Bipolar // Full Scale = 2 * VREF // Voltage per LSB count = VREF/2048 - // AIN8, AIN9 are a Differential pair using Bipolar transfer function with range ±Vref + // AIN8, AIN9 are a Differential pair using Bipolar transfer function with range (+/-)Vref // AIN8 voltage must always be between 0 and VREF. // AIN9 voltage must always be between 0 and VREF. // @@ -965,7 +965,7 @@ UNIPOLAR &= ~ (1 << AIN_8_9_LSB); BIPOLAR |= (1 << AIN_8_9_LSB); RANGE |= (1 << AIN_8_9_LSB); - // UCH8/9=0, BCH8/9=1, RANGE8/9=1: AIN0/AIN1 differential input pair ±Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) + // UCH8/9=0, BCH8/9=1, RANGE8/9=1: AIN0/AIN1 differential input pair (+/-)Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) #endif // AIN_8_9_DifferentialBipolarFS2Vref #if AIN_10_11_SingleEnded @@ -1010,7 +1010,7 @@ // ADC Channels AIN10, AIN11 = Differential Bipolar // Full Scale = VREF // Voltage per LSB count = VREF/4096 - // AIN10, AIN11 are a Differential pair using Bipolar transfer function with range ±½Vref + // AIN10, AIN11 are a Differential pair using Bipolar transfer function with range (+/-)(1/2)Vref // AIN10 voltage must always be between 0 and VREF. // AIN11 voltage must always be between 0 and VREF. // @@ -1019,7 +1019,7 @@ UNIPOLAR &= ~ (1 << AIN_10_11_LSB); BIPOLAR |= (1 << AIN_10_11_LSB); RANGE &= ~ (1 << AIN_10_11_LSB); - // UCH10/11=0, BCH10/11=1, RANGE10/11=0: AIN0/AIN1 differential input pair ±½Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) + // UCH10/11=0, BCH10/11=1, RANGE10/11=0: AIN0/AIN1 differential input pair (+/-)(1/2)Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) #endif // AIN_10_11_DifferentialBipolarFSVref #if AIN_10_11_DifferentialBipolarFS2Vref @@ -1028,7 +1028,7 @@ // ADC Channels AIN10, AIN11 = Differential Bipolar // Full Scale = 2 * VREF // Voltage per LSB count = VREF/2048 - // AIN10, AIN11 are a Differential pair using Bipolar transfer function with range ±Vref + // AIN10, AIN11 are a Differential pair using Bipolar transfer function with range (+/-)Vref // AIN10 voltage must always be between 0 and VREF. // AIN11 voltage must always be between 0 and VREF. // @@ -1037,7 +1037,7 @@ UNIPOLAR &= ~ (1 << AIN_10_11_LSB); BIPOLAR |= (1 << AIN_10_11_LSB); RANGE |= (1 << AIN_10_11_LSB); - // UCH10/11=0, BCH10/11=1, RANGE10/11=1: AIN0/AIN1 differential input pair ±Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) + // UCH10/11=0, BCH10/11=1, RANGE10/11=1: AIN0/AIN1 differential input pair (+/-)Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) #endif // AIN_10_11_DifferentialBipolarFS2Vref #if AIN_12_13_SingleEnded @@ -1082,7 +1082,7 @@ // ADC Channels AIN12, AIN13 = Differential Bipolar // Full Scale = VREF // Voltage per LSB count = VREF/4096 - // AIN12, AIN13 are a Differential pair using Bipolar transfer function with range ±½Vref + // AIN12, AIN13 are a Differential pair using Bipolar transfer function with range (+/-)(1/2)Vref // AIN12 voltage must always be between 0 and VREF. // AIN13 voltage must always be between 0 and VREF. // @@ -1091,7 +1091,7 @@ UNIPOLAR &= ~ (1 << AIN_12_13_LSB); BIPOLAR |= (1 << AIN_12_13_LSB); RANGE &= ~ (1 << AIN_12_13_LSB); - // UCH12/13=0, BCH12/13=1, RANGE12/13=0: AIN0/AIN1 differential input pair ±½Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) + // UCH12/13=0, BCH12/13=1, RANGE12/13=0: AIN0/AIN1 differential input pair (+/-)(1/2)Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) #endif // AIN_12_13_DifferentialBipolarFSVref #if AIN_12_13_DifferentialBipolarFS2Vref @@ -1100,7 +1100,7 @@ // ADC Channels AIN12, AIN13 = Differential Bipolar // Full Scale = 2 * VREF // Voltage per LSB count = VREF/2048 - // AIN12, AIN13 are a Differential pair using Bipolar transfer function with range ±Vref + // AIN12, AIN13 are a Differential pair using Bipolar transfer function with range (+/-)Vref // AIN12 voltage must always be between 0 and VREF. // AIN13 voltage must always be between 0 and VREF. // @@ -1109,7 +1109,7 @@ UNIPOLAR &= ~ (1 << AIN_12_13_LSB); BIPOLAR |= (1 << AIN_12_13_LSB); RANGE |= (1 << AIN_12_13_LSB); - // UCH12/13=0, BCH12/13=1, RANGE12/13=1: AIN0/AIN1 differential input pair ±Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) + // UCH12/13=0, BCH12/13=1, RANGE12/13=1: AIN0/AIN1 differential input pair (+/-)Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) #endif // AIN_12_13_DifferentialBipolarFS2Vref #if AIN_14_15_SingleEnded @@ -1154,7 +1154,7 @@ // ADC Channels AIN14, AIN15 = Differential Bipolar // Full Scale = VREF // Voltage per LSB count = VREF/4096 - // AIN14, AIN15 are a Differential pair using Bipolar transfer function with range ±½Vref + // AIN14, AIN15 are a Differential pair using Bipolar transfer function with range (+/-)(1/2)Vref // AIN14 voltage must always be between 0 and VREF. // AIN15 voltage must always be between 0 and VREF. // @@ -1163,7 +1163,7 @@ UNIPOLAR &= ~ (1 << AIN_14_15_LSB); BIPOLAR |= (1 << AIN_14_15_LSB); RANGE &= ~ (1 << AIN_14_15_LSB); - // UCH14/15=0, BCH14/15=1, RANGE14/15=0: AIN0/AIN1 differential input pair ±½Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) + // UCH14/15=0, BCH14/15=1, RANGE14/15=0: AIN0/AIN1 differential input pair (+/-)(1/2)Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) #endif // AIN_14_15_DifferentialBipolarFSVref #if AIN_14_15_DifferentialBipolarFS2Vref @@ -1172,7 +1172,7 @@ // ADC Channels AIN14, AIN15 = Differential Bipolar // Full Scale = 2 * VREF // Voltage per LSB count = VREF/2048 - // AIN14, AIN15 are a Differential pair using Bipolar transfer function with range ±Vref + // AIN14, AIN15 are a Differential pair using Bipolar transfer function with range (+/-)Vref // AIN14 voltage must always be between 0 and VREF. // AIN15 voltage must always be between 0 and VREF. // @@ -1181,7 +1181,7 @@ UNIPOLAR &= ~ (1 << AIN_14_15_LSB); BIPOLAR |= (1 << AIN_14_15_LSB); RANGE |= (1 << AIN_14_15_LSB); - // UCH14/15=0, BCH14/15=1, RANGE14/15=1: AIN0/AIN1 differential input pair ±Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) + // UCH14/15=0, BCH14/15=1, RANGE14/15=1: AIN0/AIN1 differential input pair (+/-)Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) #endif // AIN_14_15_DifferentialBipolarFS2Vref //---------------------------------------- @@ -1295,7 +1295,7 @@ // ADC Channels AIN(channelId), AIN(channelId+1) = Differential Bipolar // Full Scale = VREF // Voltage per LSB count = VREF/4096 -// AIN(channelId), AIN(channelId+1) are a Differential pair using Bipolar transfer function with range ±½Vref +// AIN(channelId), AIN(channelId+1) are a Differential pair using Bipolar transfer function with range (+/-)(1/2)Vref // AIN(channelId) voltage must always be between 0 and VREF. // AIN(channelId+1) voltage must always be between 0 and VREF. // @@ -1304,7 +1304,7 @@ //---------------------------------------- // UCH(ch)/(ch+1)=0, BCH(ch)/(ch+1)=1, RANGE(ch)/(ch+1)=0: - // AIN(ch)/AIN(ch+1) differential input pair ±½Vref, + // AIN(ch)/AIN(ch+1) differential input pair (+/-)(1/2)Vref, // bipolar code (Full Scale = VREF, LSB = VREF/4096) // const int channelPairIndex = channelNumber_0_15 / 2; @@ -1331,7 +1331,7 @@ // ADC Channels AIN(channelId), AIN(channelId+1) = Differential Bipolar // Full Scale = 2 * VREF // Voltage per LSB count = VREF/2048 -// AIN(channelId), AIN(channelId+1) are a Differential pair using Bipolar transfer function with range ±Vref +// AIN(channelId), AIN(channelId+1) are a Differential pair using Bipolar transfer function with range (+/-)Vref // AIN(channelId) voltage must always be between 0 and VREF. // AIN(channelId+1) voltage must always be between 0 and VREF. // @@ -1340,7 +1340,7 @@ //---------------------------------------- // UCH(ch)/(ch+1)=0, BCH(ch)/(ch+1)=1, RANGE(ch)/(ch+1)=1: - // AIN(ch)/AIN(ch+1) differential input pair ±Vref, + // AIN(ch)/AIN(ch+1) differential input pair (+/-)Vref, // bipolar code (Full Scale = 2VREF, LSB = VREF/2048) // const int channelPairIndex = channelNumber_0_15 / 2; @@ -1348,7 +1348,7 @@ UNIPOLAR &= ~ bitmask; BIPOLAR |= bitmask; RANGE |= bitmask; - // UCH0/1=0, BCH0/1=1, RANGE0/1=1: AIN0/AIN1 differential input pair ±Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) + // UCH0/1=0, BCH0/1=1, RANGE0/1=1: AIN0/AIN1 differential input pair (+/-)Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) //---------------------------------------- // SPI write UNIPOLAR BIPOLAR RANGE registers @@ -1537,12 +1537,12 @@ { if (RANGEn) { - // UCH0/1=0, BCH0/1=1, RANGE0/1=1: AIN0/AIN1 differential input pair ±Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) + // UCH0/1=0, BCH0/1=1, RANGE0/1=1: AIN0/AIN1 differential input pair (+/-)Vref, bipolar code (Full Scale = 2VREF, LSB = VREF/2048) return (TwosComplementValue(value_u12) * VRef / 2048); } else { - // UCH0/1=0, BCH0/1=1, RANGE0/1=0: AIN0/AIN1 differential input pair ±½Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) + // UCH0/1=0, BCH0/1=1, RANGE0/1=0: AIN0/AIN1 differential input pair (+/-)(1/2)Vref, bipolar code (Full Scale = VREF, LSB = VREF/4096) return (TwosComplementValue(value_u12) * VRef / 4096); } }