5 Replies Latest reply on Apr 15, 2016 3:39 PM by Intel Corporation

    12 bit ADC real or fake




      I am following up on a point made by MGee in a thread about a temperature sensor and this is related to Intel Galileo Gen 2 boards.


      In it he comments that the 12 bit resolution is not true but rather the LSB shifted to rescale 10 bit values to a 12 bit scale.


      When I bought the Galileo, a selling point I liked was that it was advertised as 12 bit ADC and the definition of 12 bit being:


      • A0 – A5: 6 analog inputs, via an AD7298 A-to-D converter
        • Each of the 6 analog inputs, labeled A0 through A5, provides 12 bits of resolution (i.e., 4096 different values). By default they measure from ground to 5 volts.



      I notice from my own testing that I do not get 4096 different values only multiples of 4 as would be expected with a LSB shift of 2 bits.


      i have set the analogReadResolution(12) is there something else needed or do  I really only get 10 bits?

        • 1. Re: 12 bit ADC real or fake

          The source you cited is clearly for the Galileo and it is absolutely accurate with regard to having 12bit A2D as I stated in my post that you are following up on. According to what you wrote, you did not buy a Galileo, you bought a Galileo Generation 2 - different board, different A2D chip, different resolution, i.e. 10 bit, not 12 bit resolution. Now, if you see an advertisement for a Galileo Generation 2 board that claims 12 bit A2D resolution, I would agree with your point.


          This issue has been raised before and it has been answered before, both by users and Intel board members. For example, if you read this thread all the way through Re: Galileo ADC resolution too low? you will see what I am talking about....In fact, I raised the issue of using analogReadResolution() outright and challenged JPMontero_Intel on the point, and to his credit, he checked it out and reported the difference between the two boards accurately...


          I've checked the information and it appears to be this way: Intel Galileo has a 12-bit ADC (AD7298) and the Intel Galileo Gen 2 has a 10-bit ADC (ADC108S102). The improvement on the Intel Galileo Gen2 is in the PWM to 12-bits resolution, not the ADC.




          I don't think that there is anything "fake" about the analogReadResolution() statement, if it is used properly. See Arduino - AnalogReadResolution where it states clearly that the command was primarily for backward compatibility.


          It can be confusing - truth is, I never even knew about analogReadResolution() before reading the start of that thread.


          Just my "two bits"

          • 2. Re: 12 bit ADC real or fake

            The Intel product specification document to announce the Gen 2 board references only enhancements and makes no mention of the ADC being limited to 10 bits.

            The data sheet does highlight adding 12bit resolution to the PWM.  It does not state the reduction in resolution of the ADC relative the Gen 1 product so you could reasonably assume it remains the same.


            In fact the description on the Arduino site of the Gen 2 board also references 12 bit ADC.


            • Analog Inputs: pins A0 through A5
              • Each analog input provide 10/12 bits of resolution. The resolution can be changed with the analogReadResolution() function.
            • 3. Re: 12 bit ADC real or fake

              This explains the issue ( Getting Started with Intel® Galileo Gen 2: 4.1.3 TI ADS108S102 IIO-ADC Device Driver):


              The ADC resolution is 10-bit, but the ADC data is up-scaled to 12-bits when presented via the IIO user-space interface. This is to allow driver compatibility with the ADC128S102, which is a 12-bit variant of the same ADC chip.


              The Intel Galileo Gen 2 has a 10-bit adc but it's presented in 12-bit.

              • 4. Re: 12 bit ADC real or fake

                There is no question that the ADC is only 10 bit.  The concern is that the documentation from Intel is not forth coming about that limitation.  Additionally the Gen 1 product had a 12 bit and the data sheet for Gen 2 highlights the enhancements from Gen 1and does mention the downgrade of the ADC.

                • 5. Re: 12 bit ADC real or fake
                  Intel Corporation
                  This message was posted on behalf of Intel Corporation


                  The Galileo Gen2 has an ADC of 10 bits; you can check the schematic: http://www.intel.com/content/dam/support/us/en/documents/galileo/sb/galileo_fabh_schem_120514.pdf and you will see that it has the ADC 108s102 [http://www.ti.com/product/ADC108S102
                  The Datasheet/ProductBrief states that it has a 12bit resolution PWM, but it doesn’t mention the resolution of the Analog Inputs, for this is required to check the Schematic. I will contact the proper team in order to add the information regarding the resolution of the ADC on the Product Brief. I think this will help other developers too.

                  Regarding the documentation on https://www.arduino.cc/en/ArduinoCertified/IntelGalileoGen2 I suggest you to contact Arduino in order to do the respective clarification of the resolution of the boards.