AD5245 (256 позиций, номинал 100к) подключен к источнику стабильного тока и управляется от ATmega32 по шине I2C.
Потенциометр - в режиме реостата, вывод A подключен к источнику тока, выводы W и B заземлены.
Измерения показали:
D - зашиваемый код (десятичное значение), R - вычисленное значение сопротивления, Ом
D = 255 R = 77
D = 254 R = 444
D = 253 R = 807
.
.
.
D = 2 R = 92 592
D = 1 R = 92 963
D = 0 R = 94 444
Не могу понять, почему крайние значения не соотв ожидаемому шагу: Rstep = 100000/256=390.625 Ом и даже не соотв расчетам по приведенным в даташите формулам. В даташите вообще довольно затруднительно понять формулы на стр. 13.
1. Как правильно учесть сопротивление випера и как учесть его изменение в данном включении в зависимости от загружаемого кода?
2. Как понять рисунок 36 для расчета сопротивления на крайних значениях?
3. Вроде понятно, что в режиме реостата с заземленным випером эти формулы уже неверны.
4. Есть ли основания впредь не заземлять один из крайних выводов и оставлять его свободным?
На рис. приведена эквивалентная схема RDAC из даташита и ее откорректированнный вариант.
Если принять такую коррекцию, то формулы даташита в принципе работают, хотя как они считали значения в таблицах - мне непонятно... Например, как получено значение 10 060 Ом в таблице 7?
В принципе объяснить погрешность при высоких сопротивлениях (вблизи 100к при D= 0,1,2) еще возможно - обычный тестер замеряет напряжение в этих точках с большой погрешностью.
Но объяснить R = 77 Ом при D = 255 я что-то не могу...
Ведь должно быть так:
D = 255 R = 444
D = 254 R = 807
Можно было бы грешить на софт, но ни при каких условиях не должно быть возможно получить R = 77 Ом при D = 255, т. е. величина много меньше шага Rstep = 100000/256=390.625 Ом ....
-- Прилагается рисунок: --