I've got 176 infrared LEDs embedded in CNY70 optical reflectance sensors, which I would like to power, and I'd like to ensure that the current supplied to any given LED is +/-1% stable (or better) over the span of a year, down to 20kHz. What should I change/take into consideration to help achieve that?

MOSFET current sink

Additional context for the question:

The exact current should be in the ball park of 20mA, but stability matters more than the exact value. I can probably do some calibration on the other end to account for that, I just don't want to be recalibrating all the time.

I'm not wedded to the MCP1501-20E/SN, it just appears elsewhere in my design. I've left the exact op amp and MOSFET unspecified in my diagram, as in simulation this seems to behave well with a few different choices of old cheap op amp and transistor. Specific suggestions welcome.

+48V is expected to be an off the shelf reputable SMPS. It's all mains powered, and will be in human comfortable environments, with plenty of ambient (but non-forced) air. If I've got to stick a bit of heat sinking on the transistor, that's fine. The design is in part driven by the availability of inexpensive 48V supplies and the "low voltage-ness" of 48V.

The LEDs have a typical forward voltage of 1.25V, and a max of 1.6V. So multiplied by 22, there's quite a range of voltage drops to account for.

+VDC presumably needs to be 2.048V + whatever V_GS is necessary for I_D to to reach the target 20mA. Probably just give it 12V.

I'm interested in and would appreciate all forms of feedback including "do something different", but I'd like an answer to this regardless of how bad an idea it might actually be.

MCP1501 long term drift:

MCP1501 long term drift

Looks like after 48 hours of burn in, they experienced <=0.2mV of drift in the next 960 hours. If we optimistically pretend 960 hours == 1 year, then the MCP1501 may cause 0.0098% drift on the 2.048V model?

  • 1
    \$\begingroup\$ Seems like it depends almost entirely on the drift of the voltage reference with time. I guess R1 matters a bit, too. Maybe over-size the resistor a bit and use a low temperature coefficient resistor to make sure it doesn't drift with temperature. What does the datasheet for the reference say about long term drift? \$\endgroup\$
    – user57037
    Commented Nov 10, 2020 at 4:29
  • 1
    \$\begingroup\$ @mkeith I've extracted and included the long term drift chart from the MCP1501 data sheet. Seems pretty minor. \$\endgroup\$ Commented Nov 10, 2020 at 4:59
  • \$\begingroup\$ Agree. I think it seems pretty do-able. If you burn in the parts, then calibrate, I doubt you will have more than 1% drift after a year. 1mV of change in the reference is only half a part per thousand. I didn't look at the op-amp specs, but drift of the input offset voltage could also be a concern, unless the input offset is pretty low to begin with. I am confident there are op-amps with offsets that are far below 1mV. \$\endgroup\$
    – user57037
    Commented Nov 10, 2020 at 5:45
  • \$\begingroup\$ Tentatively thinking about the MCP6V51 for the op amps. Nice high supply voltage so I've got room to drive any FET I'd like, and the input offset voltage is probably even more stable than necessary (both temperature and age). \$\endgroup\$ Commented Nov 10, 2020 at 21:15

1 Answer 1


As ambient temperature varies, the LED voltages vary, the voltage across the FET varies, thus the heat varies and the heat to dump varies, thus the resistance of the sensor resistor may vary.

You need an error analysis to model these variations.


You can place the resistor in a region of the PCB that has little thermal linkage with the FET.

Standard copper foil has 70 degree C per watt per SQUARE OF FOIL thermal resistance. And with only 20mA to the resistor, you can use LONG THIN races from the FET to the resistor. Under that trace, have GROUND PLANE so the heat gets mostly shunted away and does not reach the resistor.

  • \$\begingroup\$ I agree with the value of an error analysis, I suppose in part I'm looking for help with figuring out which things are valuable to account for. As for the resistor, it seems it would be helpful to move the resistors physically away from the FETs on the board, so that the FET heat output impacts the resistors less. (And of course the error model could tell me how low I need to get my TCR to deal with any remaining thermal variations from the FETs, without just blowing money unnecessarily.) \$\endgroup\$ Commented Nov 10, 2020 at 4:50
  • \$\begingroup\$ Well if you can guesstimate the ambient temp in the vicinity of the resistor, and you know the resistor tempco in ppm, you can work it the other way, by picking a resistor and seeing how much it will vary over your temperature range. I am guessing it will be nice and warm. 40-60C. Since the resistor will be dissipating a little bit of power and the FET will be dissipating, I guess, a few hundred mW. \$\endgroup\$
    – user57037
    Commented Nov 10, 2020 at 5:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.