static int cal_ni_daqcard_ai_16xe_50(calibration_setup_t *setup);
static int cal_ni_at_mio_16e_1(calibration_setup_t *setup);
static int cal_ni_pci_mio_16e_1(calibration_setup_t *setup);
+static int cal_ni_pci_6014(calibration_setup_t *setup);
static int cal_ni_pci_6024e(calibration_setup_t *setup);
static int cal_ni_pci_6025e(calibration_setup_t *setup);
static int cal_ni_pci_6032e(calibration_setup_t *setup);
{ "at-mio-16de-10", STATUS_UNKNOWN, NULL, ni_setup_observables, 0x1a7, 0x1a8 },
{ "at-mio-16e-1", STATUS_DONE, cal_ni_at_mio_16e_1, ni_setup_observables, 0x1a9, 0x1aa },
{ "at-mio-16e-2", STATUS_DONE, cal_ni_at_mio_16e_2, ni_setup_observables, 0x1a9, 0x1aa },
- { "at-mio-16e-10", STATUS_SOME, cal_ni_at_mio_16e_10, ni_setup_observables, 0x1a7, 0x1a8 },
+ { "at-mio-16e-10", STATUS_DONE, cal_ni_at_mio_16e_10, ni_setup_observables, 0x1a7, 0x1a8 },
{ "at-mio-16xe-10", STATUS_UNKNOWN, NULL, ni_setup_observables, 0x1b7, 0x1b8 },
{ "at-mio-16xe-50", STATUS_SOME, cal_ni_at_mio_16xe_50, ni_setup_observables, 0x1b5, 0x1b6 },
{ "DAQCard-ai-16e-4", STATUS_DONE, cal_ni_daqcard_ai_16e_4, ni_setup_observables, 0x1b5, 0x1b6 },
{ "DAQCard-ai-16xe-50", STATUS_DONE, cal_ni_daqcard_ai_16xe_50, ni_setup_observables, 0x1be, 0x1bf },
{ "DAQCard-6024E", STATUS_SOME, cal_ni_daqcard_6024e, ni_setup_observables, -1, -1 },
- { "DAQCard-6036E", STATUS_SOME, cal_ni_daqcard_6036e, ni_setup_observables, -1, -1 },
+ { "DAQCard-6036E", STATUS_DONE, cal_ni_daqcard_6036e, ni_setup_observables, 0x1ab, 0x1ac },
{ "DAQCard-6062E", STATUS_DONE, cal_ni_daqcard_6062e, ni_setup_observables, 0x1a9, 0x1aa },
{ "pci-mio-16e-1", STATUS_DONE, cal_ni_pci_mio_16e_1, ni_setup_observables, 0x1a9, 0x1aa },
{ "pci-mio-16e-4", STATUS_SOME, cal_ni_pci_mio_16e_4, ni_setup_observables, 0x1a9, 0x1aa },
{ "pci-mio-16xe-10", STATUS_DONE, cal_ni_pci_mio_16xe_10, ni_setup_observables, 0x1ae, 0x1af },
{ "pci-mio-16xe-50", STATUS_SOME, cal_ni_pci_mio_16xe_50, ni_setup_observables, 0x1b5, 0x1b6 },
+ { "pci-6014", STATUS_SOME, cal_ni_pci_6014, ni_setup_observables, 0x1ab, 0x1ac },
{ "pci-6023e", STATUS_DONE, cal_ni_pci_6023e, ni_setup_observables, 0x1bb, 0x1bc },
{ "pci-6024e", STATUS_SOME, cal_ni_pci_6024e, ni_setup_observables, 0x1af, 0x1b0 },
{ "pci-6025e", STATUS_SOME, cal_ni_pci_6025e, ni_setup_observables, 0x1af, 0x1b0 },
int adc_unip_offset;
int adc_unip_offset_fine;
int dac_offset[ 2 ];
+ int dac_offset_fine[ 2 ];
int dac_gain[ 2 ];
int dac_gain_fine[ 2 ];
int dac_linearity[ 2 ];
for( i = 0; i < 2; i++ )
{
layout->dac_offset[ i ] = -1;
+ layout->dac_offset_fine[ i ] = -1;
layout->dac_gain[ i ] = -1;
layout->dac_gain_fine[ i ] = -1;
layout->dac_linearity[ i ] = -1;
return cal_ni_generic( setup, &layout );
}
+static int cal_ni_pci_6014(calibration_setup_t *setup)
+{
+ ni_caldac_layout_t layout;
+
+ init_ni_caldac_layout( &layout );
+ layout.adc_pregain_offset = 0;
+ layout.adc_postgain_offset = 4;
+ layout.adc_pregain_offset_fine = 8;
+ layout.adc_gain = 2;
+ layout.dac_offset[0] = 6;
+ layout.dac_offset_fine[0] = 10;
+ layout.dac_gain[0] = 7;
+ layout.dac_gain_fine[0] = 11;
+ layout.dac_offset[1] = 9;
+ layout.dac_offset_fine[1] = 1;
+ layout.dac_gain[1] = 3;
+ layout.dac_gain_fine[1] = 5;
+ return cal_ni_generic( setup, &layout );
+}
+
static int cal_ni_pci_6032e(calibration_setup_t *setup)
{
ni_caldac_layout_t layout;
init_ni_caldac_layout( &layout );
layout.adc_pregain_offset = 0;
+ layout.adc_pregain_offset_fine = 8;
layout.adc_postgain_offset = 4;
layout.adc_gain = 2;
- layout.dac_offset[ 0 ] = 6;
- layout.dac_gain[ 0 ] = 7;
-// layout.dac_gain_fine[ 0 ] = XXX;
+ layout.dac_offset[0] = 6;
+ layout.dac_gain[0] = 7;
+ layout.dac_gain_fine[ 0 ] = 11;
+ layout.dac_linearity[0] = 10;
- layout.dac_offset[ 1 ] = 1;
+ layout.dac_offset[ 1 ] = 9;
layout.dac_gain[ 1 ] = 3;
layout.dac_gain_fine[ 1 ] = 5;
+ layout.dac_linearity[1] = 1;
return cal_ni_generic( setup, &layout );
}
if( setup->old_calibration == NULL )
{
reset_caldac( setup, layout->dac_offset[ channel ] );
+ reset_caldac( setup, layout->dac_offset_fine[ channel ] );
reset_caldac( setup, layout->dac_gain[ channel ] );
reset_caldac( setup, layout->dac_gain_fine[ channel ] );
reset_caldac( setup, layout->dac_linearity[ channel ] );
{
DPRINT( 0, "Failed to apply existing calibration, reseting dac caldacs.\n" );
reset_caldac( setup, layout->dac_offset[ channel ] );
+ reset_caldac( setup, layout->dac_offset_fine[ channel ] );
reset_caldac( setup, layout->dac_gain[ channel ] );
reset_caldac( setup, layout->dac_gain_fine[ channel ] );
reset_caldac( setup, layout->dac_linearity[ channel ] );
generic_do_linearity( setup, current_cal, ni_ao_zero_offset( channel ),
ni_ao_mid_linearity( channel ), ni_ao_reference( channel ),
layout->dac_linearity[ channel ] );
+ reset_caldac(setup, layout->dac_offset_fine[channel]);
generic_do_cal( setup, current_cal, ni_ao_zero_offset( channel ),
layout->dac_offset[ channel ] );
+ generic_do_cal( setup, current_cal, ni_ao_zero_offset( channel ),
+ layout->dac_offset_fine[ channel ] );
reset_caldac( setup, layout->dac_gain_fine[ channel ] );
generic_do_cal( setup, current_cal, ni_ao_reference( channel ),
layout->dac_gain[ channel ] );
generic_do_linearity( setup, current_cal, ni_ao_unip_low_linearity( channel ),
ni_ao_unip_mid_linearity( channel ), ni_ao_unip_reference( channel ),
layout->dac_linearity[ channel ] );
+ reset_caldac( setup, layout->dac_offset_fine[ channel ] );
generic_do_cal( setup, current_cal, ni_ao_unip_zero_offset( channel),
layout->dac_offset[ channel ] );
+ generic_do_cal( setup, current_cal, ni_ao_unip_zero_offset( channel),
+ layout->dac_offset_fine[ channel ] );
+ reset_caldac( setup, layout->dac_gain_fine[ channel ] );
generic_do_cal( setup, current_cal, ni_ao_unip_reference( channel ),
layout->dac_gain[ channel ] );
generic_do_cal( setup, current_cal, ni_ao_unip_reference( channel ),