« Close

Datasheets and User Guides

App Notes

Software & Driver - AIN24: IOType = 2

AIN24, 4 Command Bytes: 
0 IOType=2
1 PositiveChannel
2 Bits 0-3: ResolutionIndex
  Bits 4-7: GainIndex
3 Bits 0-2: SettlingFactor
  Bit 7: Differential
3 Response Bytes: 
1 AIN Bits 8-15

This IOType returns a single analog input reading. If using the autorange feature, the AIN24AR IOType in the following Section should be used instead.

Note: Do not call this IO type while streaming.

  • PositiveChannel: 0-143 for AIN0-AIN143. 14 is the internal temperature sensor and 15 is internal GND.
  • ResolutionIndex: 0=default, 1-8 for high-speed ADC, 9-12 for high-res ADC on U6-Pro.
  • GainIndex: 0=x1, 1=x10, 2=x100, 3=x1000.
  • SettlingFactor: 0=Auto, 1=20us, 2=50us, 3=100us, 4=200us, 5=500us, 6=1ms, 7=2ms, 8=5ms, 9=10ms. This is the time between when the muxes are changed and the reading is sampled. "Auto" ensures enough settling for any gain and resolution with source impedances less than at least 1 kohms.
  • Differential: If this bit is set, a differential reading is done where the negative channel is PositiveChannel+1.
  • AIN bytes: Analog input reading is returned as a 24-bit value (always unsigned).



from the linux u6Feedback.c


       sendBuff[wr_index++] = 0 + 8*8;  //GainIndex(Bits 0-2) = 0 (+-10V),

                                         //ResolutionIndex(Bits 3-7) = 8


The table mentions gain is on bits 4-7 and resolution on 0-3, so the order is different and the amount per bits per index is different.

So what should it be?

Regards Andre



That is a mistake in the example.  The User's Guide is correct.  The other examples look like they have this correct (Feedback, AIN24 IOType), but for some reason the u3Feedback.c example has this error.  I'll get that fixed on github.  That part of the example should read:

sendBuff[wr_index++] = 8 + 0*16;  //ResolutionIndex(Bits 0-3) = 8,
                                                     //GainIndex(Bits 4-7) = 0 (+-10V)

Thank you for pointing this out.

How can I achieve 18+ bits resolution measurements on a U6 standard? What are the exact meanings of the different ResolutionIndex values?


Appendix B of the U6 User's Guide has the noise & resolution tables.  You can see, for example, that using the +/-10V range and ResolutionIndex=8, the typical effective (RMS) resolution is 19 bits.  You should be able to recreate these numbers with a channel jumpered to GND.

Increasing ResolutionIndex improves noise/resolution, but also increases the time per sample.  You can see this effect in the data rates in Section 3.