buckpuck and tlc5940

The TLC5940 outputs are current sinks, not logic outputs.

What you need to do is first add a pullup resistor (around 10k) from the buckpuck input to +5v.

Then you need to set the current of the TLC5940.

For a 10k resistor, you need a sink current which drops 5v over the pullup resistor (to get a logic 0):
I = V/R = 5/10000 = 0.5mA

For this you need a maximum reference resistance (equation from datasheet):
Rref = 31.5*1.24/Iout = 39/0.5mA = 78k
So
Rref < 78k

This is not a standard value, however, if you round down, then a 68k resistor would give you 0.57mA sink current. This will still result in a logic 0 as the TLC5940 is able to sink 0.57mA, but the current is limited by the pullup resistor.

In summary, 10k pullups on each output to create a logic 1, and a 68k resistor from IREF (pin 20) to GND.