Go Down

Topic: "Fooling" constant-current control loops in LED driving? (Read 7 times) previous topic - next topic

dhenry

Quote
with 16-bit resolution, ...
have 32-bit resolution for light intensity.


A couple of questions:

1) What kind of eyes do you have that require that kind of resolution?

2) What kind of computing power is required for that kind of resolution?

DVDdoug

Uh...  Yeah.... Dynamic range is the difference between full-bright and fully-dark.   You can't get any more dark than "off", so you can only go brighter ...  and you can't (or shouldn't) go over the device's maximum current rating on the bright-end.

16-bits (converted to decimal) gives you a range from 0 to 65,535.     I'm sure you can't tell the brightness-difference difference between 0 and 1, between 65,534 and 65,535, or between 30,000 and 30,001, etc.! 

petteri_t

#7
Oct 19, 2012, 01:26 am Last Edit: Oct 19, 2012, 01:47 am by petteri_t Reason: 1

Quote
with 16-bit resolution, ...
have 32-bit resolution for light intensity.


A couple of questions:

1) What kind of eyes do you have that require that kind of resolution?
2) What kind of computing power is required for that kind of resolution?



1) 32-bit resolution would give me 4.29 x 10^9 levels, thus around 9.6 log levels of light intensity which would be little less than normal ambient light levels experienced by humans [1]. So when designing a visual stimulator like that one for example in optimal case you would like to have the whole ambient light level intensity under electronic control and not having to play with neutral density filters for example. For example, using the same system when the subject is light-adapted and after full dark adaptation when retinal sensitivity is significantly increased [2].

[edit] So if you would only want a normal operating range of 256 intensity levels (8-bit) your retinal sensitivity would have increased around 4 log units during full dark adaptation (~45 minutes in full darkness, http://webvision.med.utah.edu/book/part-viii-gabac-receptors/light-and-dark-adaptation/) then it would not be possible at all to have the same operating range of 256 intensity levels in this new condition without using attenuating filters such as normal neutral density (ND) filters. That is why the high dynamic range was desired initially.

So the work by Demontis et al. [3] for example gave ~4.5 log units of resolution which is kinda nice for most of the applications, but if you would start modulating the output with a sinusoidal or other waveform envelope [e.g. 4], a little leeway could be nice.

[1] Fain, G L, H R Matthews, M C Cornwall, and Y Koutalos. "Adaptation in Vertebrate Photoreceptors." Physiological Reviews 81, no. 1 (January 2001): 117-151. http://www.ncbi.nlm.nih.gov/pubmed/11152756.

[2] Lamb, T. D., and E. N. Pugh. "Dark Adaptation and the Retinoid Cycle of Vision." Progress in Retinal and Eye Research 23, no. 3 (May 2004): 307-380. http://dx.doi.org/10.1016/j.preteyeres.2004.03.001.

[3] Demontis, Gian Carlo, Andrea Sbrana, Claudia Gargini, and Luigi Cervetto. "A Simple and Inexpensive Light Source for Research in Visual Neuroscience." Journal of Neuroscience Methods 146, no. 1 (July 15, 2005): 13-21. http://dx.doi.org/10.1016/j.jneumeth.2005.01.007.

[4] Gooley, Joshua J., Ivan Ho Mien, Melissa A. St Hilaire, Sing-Chen Yeo, Eric Chern-Pin Chua, Eliza van Reen, Catherine J. Hanley, Joseph T. Hull, Charles A. Czeisler, and Steven W. Lockley. "Melanopsin and Rod-Cone Photoreceptors Play Different Roles in Mediating Pupillary Light Responses During Exposure to Continuous Light in Humans." The Journal of Neuroscience 32, no. 41 (October 10, 2012): 14242-14253. http://dx.doi.org/10.1523/JNEUROSCI.1321-12.2012.


2) Computing power meaning what exactly in this context? I could control a LED driver with DMX input and DC output with 16-bit resolution using a DMX shield and then switch that with a Uno32's 16-bit PWM for example so not very special hardware would be required


Uh...  Yeah.... Dynamic range is the difference between full-bright and fully-dark.   You can't get any more dark than "off", so you can only go brighter ...  and you can't (or shouldn't) go over the device's maximum current rating on the bright-end.

16-bits (converted to decimal) gives you a range from 0 to 65,535.     I'm sure you can't tell the brightness-difference difference between 0 and 1, between 65,534 and 65,535, or between 30,000 and 30,001, etc.!  


So maybe I was not specific-enough about the application so it would be for a generic-purpose visual stimulator to be used in vision research. So I agree that in general the difference that you mentioned would not be of a huge aesthetic difference but especially if you start using the system with other species than humans, the same logic might not apply anymore.

dhenry

Quote
so not very special hardware would be required


You probably want your pwm sessions to end fairly quickly. Say 50hz, or 20ms.

Each tick of a 32-bit pwm train would be then 20ms / 2^32 = 5e-6 us. or about 200Ghz.

Good luck with that.

petteri_t

#9
Oct 19, 2012, 01:44 am Last Edit: Oct 19, 2012, 01:55 am by petteri_t Reason: 1

Quote
so not very special hardware would be required


You probably want your pwm sessions to end fairly quickly. Say 50hz, or 20ms.

Each tick of a 32-bit pwm train would be then 20ms / 2^32 = 5e-6 us. or about 200Ghz.

Good luck with that.



I think the 80 MHz clock signal provided by the 32-bit timers of Uno32 (http://chipkit.org/forum/viewtopic.php?f=6&t=988&start=0) should be enough for my purposes at this point. So the duty cycle resolution does not have to be necessarily 32-bit and I can compromise duty cycle resolution for temporal resolution and vice versa.

So I was thinking of combining 16 bit for constant current control and then another 8-16 bits for PWM duty cycle resolution to increase the already 16-bit resolution of the DC (unswitched current). So I did not really get the requirement for a 200 GHz frequency?

[edit] So if I did not quite misunderstood the PIC32 tutorial there: http://hades.mech.northwestern.edu/index.php/PIC32MX:_PWM_Motor_Control with 80 MHz you can have a PWM frequency of 20 kHz with 4000 duty cycle steps?

Code: [Select]
// init Timer2 mode and period (PR2) (frequency of 1 / 20 kHz = (3999 + 1) / 80MHz * 1
OpenTimer2( T2_ON | T2_PS_1_1 | T2_SOURCE_INT, MAX_DUTY);

Go Up