О, даже не дописал. Ладно, пусть здесь.
Самая главная часть здесь - преобразователь входящего тока в напряжение с логарифмированием. Результат получается на первой ноге. Однако для входящего тока результат имеет отрицательный потенциал, поэтому далее он подаётся на инвертирующий каскад, который 1:1 "переворачивает" его относительно нуля. Ноль напряжения на его выходе соответствует входному току, равному "нулевому", а +5 вольт - соответственно, току на пять порядков большему (на деле зависит от коэффициента преобразования).
Сама схема преобразователя нагло слизана из учебника "
Аналоговая электроника на операционных усилителях" и промоделирована в LTSpice c указанными компонентами (за достоверность компонент не ручаюсь, но похоже на правду). Там же (в книжке) упомянут способ несколько улучшить характеристики преобразователя.
Диод между первой и второй ногами ОУ преобразователя введён для недопущения введения в насыщение усилителя, когда входящий ток отсутствует. При этом напряжение ограничивается на уровне +0.7 вольт на выводе 1 (соответственно, -0.7 вольт на выходе на АЦП).
Внимание нужно уделить транзистору VT2. Это обязательно должна быть транзисторная сборка - это необходимо для температурной компенсации.
Самый левый ОУ на этой схеме призван задавать уровень обратного напряжения, прилагаемого к светодиоду. Имеет коэффициент усиления 2. Т.е. поданный на его вход потенциал от ЦАП уровнем 2,7 вольта означает поданное на светодиод обратное напряжение 5,4 вольта. R23 ограничивает выходной ток данного узла на безопасном уровне.
ОУ преобразователя обязательно с полевыми транзисторами на входе. Прецизионность очень желательна для всех ОУ. TL082/081 выбраны потому, что у меня их есть (а ещё эти ОУ имеют диапазон входных напряжений вплоть до +Vcc)
Вторая часть схемы.
Правый ОУ TL082 и TL081 работают как задатчик прямого тока светодиода. TL081 служит для преобразования падения напряжения на токоизмерительном резисторе (его сопротивление также достаточно велико, чтобы не вызвать катастрофу при замыкании и т.п., но и ещё достаточно мало для того, чтобы падение напряжения на нём не мешало измерениям). TL 081 выбран с учётом имеющихся у него выводов балансировки (на самом деле есть соблазн воткнуть все ОУ такого типа, но я достоверно пока не знаю, где это жизненно надо, а где "и так сойдёт") и полевиков на входе. Нужна высокая точность резисторов R6-R10. Если абсолютная точность недостижима, то хотя бы относительная попарная, но тогда придётся ввести регулировку усиления у TL082.
Левая часть TL082 работает на измерение прямого падения напряжения. Коэффициент усиления для этого параметра равен двум (определён отношением 1+R2/R1. При этом для получения эффекта растяжки шкалы используется вычитание опорного напряжения, подаваемого на левый конец R1 (его можно и на землю подсоединить, в итоге будет обычный усилитель с коэффициентом два. Но это неудобно - трудно вписываться в диапазон АЦП). Коэффициент усиления для этого напряжения =1 (определяется как R2/R1). Пример: пусть опорное напряжение от ЦАП равно 1.5 вольта. Напряжение, фиксируемое на светодиоде 3,2 вольта. Напряжение на выходе этого узла тогда будет 3,1*2-1,5 = 4,7 вольта, а диапазон сопоставляемых напряжений: 0.75~3.25. Т.е. Uвых=2*Uпадения - Uопоры. Если Uопоры сделать 4 вольта, то диапазон, соответственно, от 2 до 4,5 вольт. Очень удобно, когда разрешение АЦП мало (обычно только 10 бит), а падение напряжение на разных типах изделий может варьироваться.