pyradi icon indicating copy to clipboard operation
pyradi copied to clipboard

minimum and full well voltage for non-linear sense node gain.

Open fernandofdz94 opened this issue 6 years ago • 0 comments

Good Afternoon,

I am a master student at the air force institute of technology and I'm using Pyradi for my thesis project. For my thesis I am mainly focused on modeling CMOS and CCD sensor.

I was looking at the rystare.py code for the sensor model and I noticed that to obtain the full well voltage and the minimum voltage the same equation was used for the linear and non-linear models:

V_signal = (Electrons)*A_SN V-fullWell = (fullWellelectrons)*A_SN V-min = (1)*A_SN

but according to the documentation V_signal for non linear models is obtained using:

V_signal = Vref(1 - e^[-(electrons)*q/k1])

Now if I substitute the full well electrons into the equation I get:

V_fullWell = Vref(1 - e^[-(fullWellelectrons)*q/k1]) V_min = Vref(1 - e^[-(1)*q/k1])

Are this the correct equations? or should I use the ones that are on the code?

'if strh5['rystare/sensortype'].value in ['CMOS']:

    if strh5['rystare/sensenode/resetnoise/activate'].value:

        # Obtain the matrix for the Sense Node Reset Noise, saved in strh5['rystare/noise/sn_reset/resetnoise']
        # sigma is stored in 'rystare/sensenode/ResetKTC-sigma' 
        # diagram node 15 reset noise stored in 'rystare/noise/sn_reset/resetnoise'
        strh5 = sense_node_reset_noise(strh5,seed=strh5['rystare/sensenode/resetnoise/seed'].value)

        # diagram node 15b reset voltage with kTC noise stored in 'rystare/noise/sn_reset/vrefresetpluskTC'
        strh5['rystare/noise/sn_reset/vrefresetpluskTC'][...] = strh5['rystare/sensenode/vrefreset'].value + \
                strh5['rystare/sensenode/resetnoise/factor'].value * strh5['rystare/noise/sn_reset/resetnoise'].value
    #voltage on the Full Well
    strh5['rystare/sensenode/volt-fullwell'][...] = strh5['rystare/sensenode/gain'].value * strh5['rystare/sensenode/fullwellelectronselection/fullwellelectrons'].value
    strh5['rystare/sensenode/volt-min'][...] =      strh5['rystare/sensenode/gain'].value * 1.0

else: # CCD
    #voltage on the Full Well
    strh5['rystare/sensenode/volt-fullwell'][...] = strh5['rystare/sensenode/gain'].value * strh5['rystare/sensenode/fullwellelectronselection/fullwellelectrons'].value
    strh5['rystare/sensenode/volt-min'][...] =      strh5['rystare/sensenode/gain'].value * 1.0`

Thank you,

Fernando

fernandofdz94 avatar Sep 17 '18 20:09 fernandofdz94