Подскажите пожалуйста в чем ошибка измерения сопротивления.
Выполняю следующий алгоритм:
1) Выбираю формирование Ucm от внутреннего ЦАП;
2) Записываю в регистр управления: токозадающий резистор Rext1 (1000 Ом) , К1 = 16, К3 = 2;
3) Запускаю автоматическую калибровку: номер канала 0, количество запусков АЦП = 1024;
4) Пункт 3 повторяю 9 раз (4К3+1), с задержкой 10мс;
5) Записываю задание на преобразование: канал 0, количество запусков АЦП = 1024;
6) Через 10мс два раза отправляю команду Чтения результата;
7) Из последней команды получаю значение АЦП = (SPI_data) & 0×0FFF;
8) Из формулы представленной в документации вычисляю Uсм = ((АЦП0,00058)+К1К3IопRканал0)/(2К3);
Rканал0 = 100 Ом. Uвх_ацп = АЦП0,00058.
9) Записываю задание на преобразование: канал 1, количество запусков АЦП = 1024;
(Rканал1 = 82 Ом)
10) Через 10мс два раза отправляю команду Чтения результата;
11) Получаю значение АЦП = (SPIdata) & 0×0FFF;
12) Вычисляю сопротивление на канале 1: Rt = (2К3Uсм - АЦП0,00058)/(К1К3Iоп);
Ioп = 1в/1000Ом=1мА.
В итоге измерении получается большая погрешность:
Реальное сопротивление - Результат
82 Ом - 74,1 Ом
90 Ом - 90,7 Ом
100 Ом - 99,9 Ом
110 Ом - 104,8 Ом
130 Ом - 109,1 Ом
Чем измеренное значение АЦП ближе к краю диапазона, тем больше погрешность.
В чем может быть ошибка? Что я делаю не так?