Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Photodiode Sensor Analog Front End

Status: completed LTspice simulation study of the analog signal-conditioning path; documentation and reported-result checks are reproducible, while the original LTspice schematics, PWL stimulus, and raw waveform exports are not yet included.

Overview

This project studies a photodiode readout chain for recovering a noisy 1 kHz optical modulation. The implemented analog path combines a photodiode equivalent model, an AD8629 transimpedance amplifier (TIA), and a second-order unity-gain Sallen-Key low-pass filter. A downstream AD4000-based behavioral experiment and Python analysis were also explored, but are presented separately from the verified analog-core claims.

The work was completed as a self-directed academic simulation project using LTspice and Python in September 2025.

Engineering Takeaway

The strongest result is the analog bandwidth hierarchy:

  • the TIA uses (R_F=53.6\ \text{k}\Omega) and (C_F=2.7\ \text{pF}), giving a calculated feedback pole of 1.10 MHz and a reported simulated (-3\ \text{dB}) bandwidth of 1.07 MHz;
  • the filter uses (R_1=R_2=10\ \text{k}\Omega), (C_4=11\ \text{nF}), and (C_5=22\ \text{nF}), giving (f_0=1.023\ \text{kHz}) and (Q=0.707);
  • reported post-processing gives 17.68 dB system-level SNR and 2.64-bit system-equivalent ENOB, showing that analog noise and signal scaling - not ideal 16-bit quantization - limited the simulated chain.

The project therefore demonstrates signal conditioning and, equally importantly, identifies the gain, headroom, bandwidth, and model-fidelity issues that must be resolved before treating the chain as an implementation-ready data-acquisition system.

System Architecture

Photodiode sensor AFE architecture

The first three blocks form the primary analog-front-end result. The ADC and Python blocks are retained as a supplementary mixed-signal exploration.

Result Snapshot

Item Value Qualification
Photocurrent stimulus (10\ \mu\text{A}) DC + (5\ \mu\text{A}) at 1 kHz Reported input model
Added current-noise term (1\ \mu\text{A}) Reported Gaussian stimulus term
Photodiode junction capacitance 11 pF Schematic value
TIA feedback network 53.6 kOhm / 2.7 pF Schematic values
TIA feedback pole 1.100 MHz Recomputed from (R_FC_F)
TIA simulated bandwidth 1.07 MHz Reported (-3\ \text{dB}) point
Sallen-Key natural frequency 1.023 kHz Recomputed
Sallen-Key quality factor 0.707 Recomputed; Butterworth alignment
Signal RMS 0.1870313 V Reported Python result
Analog-noise RMS 0.0244340 V Reported Python result
Quantization-noise RMS 10.68 uV Reported Python result
System-level SNR 17.68 dB Recomputed from reported RMS values
System-equivalent ENOB 2.64 bits Recomputed from reported SNR

Machine-readable values and provenance are available in results/.

Photodiode Model

The simulation used a current source in parallel with an 11 pF junction capacitance. The report stimulus was

$$ i_{PD}(t)=I_{DC}+I_{AC}\sin(2\pi f_mt)+n(t), $$

with (I_{DC}=10\ \mu\text{A}), (I_{AC}=5\ \mu\text{A}), (f_m=1\ \text{kHz}), and a reported (1\ \mu\text{A}) Gaussian noise term. Series and shunt resistances were omitted, so this is a reduced photodiode model rather than a complete device model.

Photodiode equivalent model

Noisy photocurrent stimulus

Transimpedance Amplifier

The AD8629 TIA is biased near mid-supply and uses a parallel (R_F-C_F) feedback network:

$$ V_{OUT}\approx V_{REF}+i_{PD}R_F, $$

$$ f_{p,\mathrm{feedback}}=\frac{1}{2\pi R_FC_F}=1.100\ \text{MHz}. $$

The reported simulated (-3\ \text{dB}) point of 1.07 MHz is within approximately 2.7% of this first-order design value.

AD8629 transimpedance amplifier

TIA AC response

DC-sweep interpretation

The original report states that the output moves from 1.6 V to 3.3 V for a 0 to 90 uA sweep. Those endpoints imply only 18.9 kV/A, not the 53.6 kV/A set by (R_F). They also conflict with a stated 4.9 V design limit while the shown TIA supply is 3.3 V. The sweep is therefore retained as reported evidence, but it is not used as a verified linear-transimpedance claim.

Reported TIA DC sweep

Sallen-Key Low-Pass Filter

The unity-gain Sallen-Key stage uses equal resistors and a 2:1 capacitor ratio:

$$ f_0=\frac{1}{2\pi\sqrt{R_1R_2C_4C_5}}=1.023\ \text{kHz}, $$

$$ Q=\frac{\sqrt{R_1R_2C_4C_5}}{C_4(R_1+R_2)}=0.707. $$

This is a second-order low-pass response. It suppresses content above the signal band, but does not reject DC or low-frequency drift. Because the 1 kHz signal lies close to (f_0), amplitude attenuation and phase lag are expected at the signal frequency.

Second-order Sallen-Key filter

Filter AC response

Filter transient response

Supplementary ADC and Python Exploration

The report explored an AD8615 buffer, an AD4000-labeled behavioral block, quantized waveform export, FFT analysis, and signal reconstruction.

Behavioral ADC setup

ADC input waveform

Reported quantized output

This section is intentionally not presented as a hardware-accurate AD4000 interface:

  • the shown 5 V Vdd connection does not match the AD4000 data sheet's 1.8 V core-supply requirement;
  • the shown CNV period is 100 us, corresponding to a 10 kS/s conversion trigger;
  • the reported 3.3556 MHz value was derived from exported simulator time steps and is not the ADC conversion rate;
  • serial code readout through CNV/SCK/SDO was not documented.

The post-processing values are therefore treated as system-level behavioral metrics, not intrinsic AD4000 performance.

For the reported RMS quantities,

$$ \mathrm{SNR}_{dB}=20\log_{10}\left(\frac{V_{\mathrm{signal,rms}}}{V_{\mathrm{noise,rms}}}\right)=17.68\ \text{dB}, $$

$$ \mathrm{ENOB}_{system}=\frac{\mathrm{SNR}_{dB}-1.76}{6.02}=2.64\ \text{bits}. $$

FFT of the reported digitized waveform

Reported signal reconstruction

Verification Boundary

Verification item Status
Analog topology and component values Documented
DC, AC, and transient plots Documented in the supplied report
Equation and summary-metric recomputation Reproducible with included Python script
Original LTspice .asc schematics and netlists Not supplied
Original PWL stimulus and raw waveform data Not supplied
Original ADC export and analysis source Not supplied
Device-noise decomposition and tolerance analysis Not completed
Hardware measurement, PCB, layout, or silicon Not completed

Reproduce the Documentation Checks

python -m pip install -r scripts/requirements.txt
python scripts/verify_reported_metrics.py
python scripts/plot_summary.py
python scripts/build_technical_report.py

Generated plots are written to results/generated/, and the report builder refreshes the corrected public PDF from the committed figures. These scripts validate the published arithmetic and summary tables; they do not recreate the absent LTspice simulations.

For a full simulation replay, add the original .asc files, permitted vendor macromodel references, photocurrent.txt, exported waveform data, and the original Python analysis source under the locations described in sim/README.md.

Repository Structure

photodiode-sensor-afe-ltspice/
|-- docs/
|   |-- figures/
|   |-- Photodiode_Sensor_AFE_Technical_Report.pdf
|   `-- verification_notes.md
|-- results/
|   |-- design_parameters.csv
|   |-- reported_metrics.csv
|   `-- verification_checks.csv
|-- scripts/
|   |-- verify_reported_metrics.py
|   |-- plot_summary.py
|   `-- requirements.txt
|-- sim/
|   `-- README.md
|-- CITATION.cff
|-- LICENSE
`-- README.md

Recommended Next Work

  1. Re-run the TIA DC sweep with a current range consistent with (R_F), (V_{REF}), and the 3.3 V output headroom.
  2. Move the analog filter corner above 1 kHz if lower passband attenuation is required, or use a band-pass/high-pass stage if drift rejection is a requirement.
  3. Replace the simplified ADC block with a data-sheet-consistent supply, reference, acquisition, and serial-readout setup.
  4. Commit the original LTspice and Python sources so every public plot can be regenerated.
  5. Add component tolerance, op-amp noise, photodiode shot noise, and Monte Carlo analyses.
  6. Build and measure a PCB prototype before making hardware-performance claims.

References

Author

Srinivas N V — B.Tech Electronics and Communication Engineering, Amrita Vishwa Vidyapeetham, Coimbatore

License

Documentation, scripts, and original project material in this repository are released under the MIT License. Third-party device names, data sheets, and models remain the property of their respective owners.

About

LTspice study of a photodiode sensor analog front end using an AD8629 TIA and second-order Sallen-Key filtering.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages