I'm trying to drive an LED from a Lipo battery. The useable voltage range of the Lipo goes from 4.2V down to 3.4V, and the forward voltage of the LED is 3.2V. With a resistor in series with the LED, the voltage drop across the resistor will range from 1V [4.2V batt - 3.2V LED] to 0.2V [3.4V batt - 3.2V LED]. Therefore the current flowing through the resistor will drop significantly as the battery discharges.
So, I'm looking to supply a constant current to the LED over the Lipo's voltage range. I've tried using a basic typical constant current circuit (zener diode, transistor, and 2 resistors), however, the zener diode requires 5-10mA holding current, that makes the system inefficient because the LED requires only ~20mA. I've also tried using a boost circuit (NCP1402) which provides a constant 5V output, but again this is quite inefficient (LED only receives 60-70% of power from battery).
Can anyone suggest a low power and efficient circuit that will keep the LED constantly powered as the battery discharges?