Then something like this will suffice.
/---o Current sink
R1 1k (1.2V) |/
Logic in o---/\/\----+-----+---------|
| | |\
R2 | _V_ v
1k > | 2 x | (0.6V)
| | >
| | |
+-----+------------+
_|_ GND
R3 = 0.6 / Iout.
Or reverse the transistor and diodes for PNP (change GND to +V).
A transistor like TIP29 should suffice. Actually, a darlington (TIP120,
etc.) might not be a bad idea, in which case you will need three 1N914's in
series. The transistor will need a small heatsink, as you will be
dissipating about 12V * 0.6A = 5W.
Rise and fall time will be under a microsecond. If you need faster, put a
470pF capacitor across R1 and use a faster transistor.
If you need more accuracy, you can use more base voltage (i.e., more diodes
in series, or use a reverse-biased zener instead), in which case R3 needs
to change accordingly.
You can also cascode it:
o Iout
|
2.2k (3.3V) |/
+V o---/\/\---+-----|
_|_/ |\
3.3V //_\ v (2.7V)
Zener | |
_|_ GND o To above collector
Again, flip if you need a source.
Tim