Hi,
I have designed and built 4 PCBs for optical centration or runout detection.
A laser beam either reflects off an optical surface or goes through in transmission and lands on a Position Sensing Detector (Hamamatsu S5991-01 in my case). As the optics are rotated, if not centred on rotation, the spot prescribes a circle.
I have the 4 outputs of this sensor connected to trans-impedance amplifiers, then that feed into two different detection channels (coarse and fine). One channel has diff with x1 gain, and the other with x100 gain. Both channels also have sum x1 and sum x10. There is an ADC for each channel, and voltages are measured relative to a split rail.
A Teensy reads out the voltages from the ADC and sends y,x,sum outputs for both channels to the PC, with 200 samples of history displayed on a 2-D plot.
With no PSD sensor connected, looking only at the y,x diff (no sum normalisation), I see a spot of noise with equal y,x and y_x100 and x_x100 RMS values. Normal.
But with a PSD sensor connected (blocking light or otherwise), I see a circle pattern with something like 12 points precessing around, and with major axis mostly along the y. The y RMS values are much higher. I should not see any coherent signal with the sensor just on my desk.
I have tried filtering caps between the PSD outputs and COM at the header, higher capacitors on the TIA feedback, more filtering on TIA outputs, but nothing gets rid of the pattern.
I have attached PCB schematic, captures of the signal with this pattern, and the whole project KiCAD folder.
I am stuck, going around in circles. All 4 boards show the same effect along the same direction.
Changing the Teensy ARM frequency can freeze the pattern with 12 points stationary around the oval.
I am thinking I need to isolate the Teensy via ferrites from the GND and 5V rail, and or add resistors to the SPI lines (although changing the SPI clock frequency did nothing).
Any help much appreciated.
Thanks.