Skip to content

Commit d8098fd

Browse files
Using suttests.
1 parent 83a2cc5 commit d8098fd

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

test/test_adcdac.py

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -104,34 +104,38 @@ def test_adc_dac_all(self):
104104

105105
Vdd = 5
106106
Vrm = {
107-
# "OFF" : 0,
107+
#"OFF" : 0,
108108
"1.024V": 1.024,
109109
"2.048V": 2.048,
110110
"4.096V": 4.096,
111111
"VDD" : Vdd
112112
}
113-
margin = 30
114-
dac = 15
113+
max_error = 0.05 # relative error
114+
dac = 10
115115

116116
for adc_ref in Vrm.keys():
117117
for dac_ref in Vrm.keys():
118118

119-
self.mcp.ADC_config(adc_ref)
120-
self.mcp.DAC_config(dac_ref)
121-
self.mcp.DAC_write(dac)
119+
with self.subTest(ADC_Vref = adc_ref, DAC_Vref = dac_ref):
120+
self.mcp.ADC_config(adc_ref)
121+
self.mcp.DAC_config(dac_ref)
122+
self.mcp.DAC_write(dac)
122123

123-
sleep(0.1) # time to settle-up
124+
sleep(0.01) # time to settle-up
124125

125-
adc = self.mcp.ADC_read()[1]
126+
adc = self.mcp.ADC_read()[1]
126127

127-
expected = (Vrm[dac_ref] * dac / 32) * 1024 / Vrm[adc_ref]
128-
expected = round(expected)
128+
expected = (Vrm[dac_ref] * dac / 32) * 1024 / Vrm[adc_ref]
129+
expected = round(expected)
129130

130-
if expected > 1023:
131-
expected = 1023
131+
if expected > 1023:
132+
expected = 1023
132133

133-
self.assertTrue((expected - margin) < adc < (expected + margin),
134-
msg = "ADC_ref: %s, DAC_ref: %s, Expected: %d, Got: %d" % (adc_ref, dac_ref, expected, adc))
134+
error = (adc-expected)/expected
135+
136+
self.assertLess(abs(error), max_error,
137+
msg = "ADC_ref: %s, DAC_ref: %s, Expected: %d, Got: %d (%+.2f)%%" %
138+
(adc_ref, dac_ref, expected, adc, error*100))
135139

136140

137141
if __name__ == '__main__':

0 commit comments

Comments
 (0)