Difference between revisions of "Interfacing with a Photodiode Array"

From Mech
Jump to navigationJump to search
 
(5 intermediate revisions by the same user not shown)
Line 2: Line 2:
[[Image:Expected Output.png|thumb|right|300px|Wiring Diagram]]
[[Image:Expected Output.png|thumb|right|300px|Wiring Diagram]]


The TAOS Photodiode Linear Sensor Array (TSL1406R) provides an analog output for each of the photodiodes in the array. During the integration time, a capacitor is charged by the photodiode. When the HOLD goes high, each of the charges accumulated during the integration time is simultaneously passed to its specific holding capacitor. The analog voltages on each holding capacitor can then be read one-by-one at the clock speed. We are using the PWM function of the PIC to act as the CLK signal.
The TAOS Photodiode Linear Sensor Array (TSL1406R) is an array of 768 photodiodes spread over the length of about 2 inches. Each of the individual photodiodes outputs an analog voltage which is proportional the intensity and duration of incident light.


During the "integration time", a capacitor accompanying each of the photodiodes is charged by its corresponding photodiode. When the HOLD signal goes high, each of the charges accumulated during the integration time is simultaneously passed to a dedicated holding capacitor. The analog voltages on each holding capacitor can then be read one-by-one at the clock speed. Here I use the PWM function of the PIC to act as the CLK signal.
In this interfacing structure, the data is clocked out so quickly that it is impossible to read every analog level. To remedy this, we lightly low pass filter the analog output and read in analog data as quickly as possible.


In this particular code, the data is clocked out so quickly that it is impossible to read every analog level (since the PIC is only capable of an analog read every ~5us). To remedy this, we low pass filter the analog output and read in analog data as quickly as possible.


Each TSL1406R has two 384-pixel arrays which can be interfaced in serial or in parallel. This code interfaces with a single 384-pixel array.
<b>Sample code: Photodiode_array.c</b>
<b>Sample code: Photodiode_array.c</b>

[http://peshkin.mech.northwestern.edu/pic/code Link to all sample code here.]
[http://peshkin.mech.northwestern.edu/pic/code Link to all sample code here.]

For code that interfaces both 384-pixel arrays, and determines a finger's position, see [[Finger Position Sensing with a Photodiode Array]]

Latest revision as of 19:33, 10 June 2009

Wiring Diagram
Wiring Diagram

The TAOS Photodiode Linear Sensor Array (TSL1406R) is an array of 768 photodiodes spread over the length of about 2 inches. Each of the individual photodiodes outputs an analog voltage which is proportional the intensity and duration of incident light.

During the "integration time", a capacitor accompanying each of the photodiodes is charged by its corresponding photodiode. When the HOLD signal goes high, each of the charges accumulated during the integration time is simultaneously passed to a dedicated holding capacitor. The analog voltages on each holding capacitor can then be read one-by-one at the clock speed. Here I use the PWM function of the PIC to act as the CLK signal.

In this particular code, the data is clocked out so quickly that it is impossible to read every analog level (since the PIC is only capable of an analog read every ~5us). To remedy this, we low pass filter the analog output and read in analog data as quickly as possible.

Each TSL1406R has two 384-pixel arrays which can be interfaced in serial or in parallel. This code interfaces with a single 384-pixel array. Sample code: Photodiode_array.c Link to all sample code here.

For code that interfaces both 384-pixel arrays, and determines a finger's position, see Finger Position Sensing with a Photodiode Array