Forum Discussion

AdamT's avatar
AdamT
Icon for New Contributor rankNew Contributor
2 years ago

Issue with MAX10 FPGA ADC

We appear to have an issue with the ADC on the MAX 10 ADC. The ADC inputs appear to be feeding current onto the signal being measured. We are using the ADC to measure the voltage of a number of potential dividers. In the first example we would expect to to see 300 mV at the ADC input but using a DVM we measure 330 mV. This is confirmed by interrogating the ADC. This is the case across all 8 inputs. It seems that the ADC inputs are feeding about 130 uA back onto its inputs.

The only way I can explain this is that the weak internal pull-ups appear to be enabled. According to the MAX 10 documentation they can have a value of between 7 and 34 kOhms. A value of around 13k would give the effect we are observing.

If we define the pins as GPIO and turn off the internal pull-ups the problem is resolved.

It appears that once the pins are defined as ADC inputs it is not possible to turn on or off the internal pull-ups but they default to being enable. Are we mistaken?

We are currently using Quartus Prime 18.1. The device we are using is: 10M08SAU169A7G.

5 Replies

  • sstrell's avatar
    sstrell
    Icon for Super Contributor rankSuper Contributor

    I don't know if that device is single core or dual core ADC, but have you set the voltage reference(s) correctly? Have you enabled the prescaler that allows you to measure higher voltage on certain channels? You might need to take that into account in your voltage conversion.

  • AqidAyman_Altera's avatar
    AqidAyman_Altera
    Icon for Regular Contributor rankRegular Contributor

    You also need to check if below requirement is fulfilled:


    Intel® MAX® 10 devices are available in single or dual supply packages.

    • For devices with single power supply:
    1. Use on chip regulator to power up the digital supply.
      1. Use VCCA to power up the ADC analog.
    • For dual power supply devices, you must provide external power supplies of 1.2 V and 2.5 V to power up the ADC.

  • AdamT's avatar
    AdamT
    Icon for New Contributor rankNew Contributor

    Thank you for looking into this.

    The device we are using is a single supply variant. Our design powers it from a 3.3V supply, we use a 3.0 volt external reference.

    I believe the pre-scaler is only applicable to channel 8 on this device, our issue affects all channels. We have made sure the pre-scaler is not enabled.

    Our issue is not related to conversion accuracy the value we read from the ADC agrees with the voltage on the input. Our issue is that the ADC inputs are affecting the measured voltage, it looks like the weak internal pull-ups are enabled, this would explain why we measure 330mV on the input when we would expect 300 mV. This is emphasized in our application as the input impedance is higher than the value recommended in the datasheet.

    I have gone on to do a further test since my initial post. I have disconnected the input from the ADC by removing the resistor in series with the input. I have then connected a 22k resistor between ADCIN1 and ground. The effect of the 22k resistor should be to pull the input to ground. When I measure the voltage on ADCIN1, I get 2.06 volts. It looks like there is a 13k pull-up internal to the ADC input.

  • AqidAyman_Altera's avatar
    AqidAyman_Altera
    Icon for Regular Contributor rankRegular Contributor

    As we do not receive any response from you on the previous question/reply/answer that we have provided, please login to ‘https://supporttickets.intel.com’, view details of the desire request, and post a feed/response within the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. The community users will be able to help you on your follow-up questions.