- postgain_cal(0,1,2);
- cal1(1,8);
- cal1(2,0);
-}
-
-
-double ni_get_reference(int lsb_loc,int msb_loc)
-{
- int lsb,msb;
- int uv;
- double ref;
-
- lsb=read_eeprom(lsb_loc);
- msb=read_eeprom(msb_loc);
- printf("lsb=%d msb=%d\n",read_eeprom(425),read_eeprom(426));
-
- uv=lsb | (msb<<8);
- if(uv>=0x8000)uv-=0x10000;
- ref=5.000+1.0e-6*uv;
- printf("ref=%g\n",ref);
-
- return ref;
-}
-
-void cal_ni_16e_1(void)
-{
- double ref;
-
- reset_caldacs();
-
-/* Device name: at-mio-16e-2
- * bipolar zero offset, low gain [-10,10]
- * caldac[0] gain=-88.5(21)e-7 V/bit S_min=190.407 dof=254
- * caldac[1] gain=-8158.8(22)e-7 V/bit S_min=1238.12 dof=254
- * caldac[3] gain=-26.8(21)e-7 V/bit S_min=240.556 dof=254
- * bipolar zero offset, high gain [-0.05,0.05]
- * caldac[0] gain=-8866.2(13)e-9 V/bit S_min=1300.15 dof=254
- * caldac[1] gain=-4094.0(13)e-9 V/bit S_min=990.392 dof=254
- * unipolar zero offset, low gain [0,20]
- * caldac[0] gain=-85.0(22)e-7 V/bit S_min=255.978 dof=254
- * caldac[1] gain=-8074.9(50)e-7 V/bit S_min=198.098 dof=144
- * caldac[2] gain=-9560.0(51)e-7 V/bit S_min=255.782 dof=141
- * caldac[3] gain=-9.3(22)e-7 V/bit S_min=226.69 dof=254
- * bipolar voltage reference, low gain [-10,10]
- * caldac[0] gain=-88.2(21)e-7 V/bit S_min=264.253 dof=254
- * caldac[1] gain=-8104.5(21)e-7 V/bit S_min=640.274 dof=254
- * caldac[3] gain=-4838.9(22)e-7 V/bit S_min=808.443 dof=254
- */
-/*
- layout
-
- 0 AI pre-gain offset 1.5e-6
- 1 AI post-gain offset 8.1e-4
- 2 AI unipolar offset 7.9e-4
- 3 AI gain
- 4 AO 0 -1.2e-4 -1.2e-4
- 5 AO 0 -8.0e-4 -8.0e-4
- 6 AO 0 1.9e-4 -3.8e-7
- 7 AO 1 -8.0e-5 -1.2e-4
- 8 AO 1 -7.9e-4 -7.9e-4
- 9 AO 1 1.9e-4 3.0e-7
- 10 analog trigger
- 11 unknown
- */
- printf("last factory calibration %02d/%02d/%02d\n",
- read_eeprom(508),read_eeprom(507),read_eeprom(506));
-
- ref=ni_get_reference(425,426);
-
- printf("postgain offset\n");
- ni_mio_ai_postgain_cal();
-
- printf("pregain offset\n");
- chan_cal(0,0,7,0.0);
- chan_cal(0,0,7,0.0);
-
- printf("unipolar offset\n");
- chan_cal(0,2,8,0.0);
- chan_cal(0,2,8,0.0);
-
- printf("gain offset\n");
- chan_cal(5,3,0,5.0);
- chan_cal(5,3,0,5.0);
-
- printf("ao 0 offset\n");
- comedi_data_write(dev,1,0,0,0,2048);
- chan_cal(2,4,0,0.0);
- chan_cal(2,5,0,0.0);
-
- printf("ao 0 gain\n");
- comedi_data_write(dev,1,0,0,0,3072);
- chan_cal(6,6,0,0.0);
- chan_cal(6,6,0,0.0);
- comedi_data_write(dev,1,0,0,0,2048);
-
- cal_ni_results();
-}
-
-
-void cal_ni_16e_10(void)
-{
- double ref;
- int i;
-
-/*
- layout
-
- 0 AI pre-gain offset 1.5e-6
- 1 AI post-gain offset 8.1e-4
- 2 AI unipolar offset 7.9e-4
- 3 AI gain 3.5e-4
- 4 AO
- 5 AO
- 6 AO
- 7 AO
- 8 AO
- 9 AO
- 10 AI pre-gain offset 6.4e-5
- 11 unknown
- */
- printf("last factory calibration %02d/%02d/%02d\n",
- read_eeprom(508),read_eeprom(507),read_eeprom(506));
-
- ref=ni_get_reference(423,424);
-
- reset_caldacs();
-
- printf("postgain offset\n");
- ni_mio_ai_postgain_cal();
-
- printf("pregain offset\n");
- chan_cal(0,10,7,0.0);
- chan_cal(0,0,7,0.0);
- chan_cal(0,0,7,0.0);
-
- printf("unipolar offset\n");
- chan_cal(0,2,8,0.0);
- chan_cal(0,2,8,0.0);
-
- printf("gain offset\n");
- chan_cal(5,3,0,5.0);
- chan_cal(5,3,0,5.0);