Jump to content
  • 0

Basys 3 XADC Overvoltage Protection


reck

Question

The Artix-7 ADC only has an input range of 1V.  I want to use it in bipolar mode so it becomes +/-500mV.  I would like to use the full resolution for my typical operating range, but in abnormal conditions it could exceed 500mV.  Normally I would think to clamp with a diode or similar IC, but I think the voltage is too low for this to work. 

Is there a reference design for protecting the ADC from overvoltage?  It seems like this should be a common problem so I thought I would check before getting too deep into it.

Thanks!

Edit: I must have missed a section in the manual.  https://docs.xilinx.com/r/en-US/ug480_7Series_XADC/External-Analog-Inputs

Quote

The input voltage can exceed VCCADC (1.8V) or go below GNDADC by as much as 100 mV without damage to the XADC. To limit the current to 1.0 mA, a current-limiting resistor of at least 100 Ω should be placed in series with the analog inputs. The resistors in the anti-alias filters fulfill this requirement. If the analog input range (1V) is exceeded, the ADC output code clips at the maximum output code shown in Figure 2-2, page 19 or Figure 2-3, page 20 , depending on the analog input mode. Negative input voltages clip at zero code.

In bipolar mode, does this mean I can safely input +/-900mV and anything beyond +/-500mV will be clipped?  That would be perfect for me but would like a sanity check before I damage something.

Edited by reck
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Hi @reck,

I looked around in UG480 and am finding the following (which you likely already read based on the nature of your question):

The Bipolar Input Signals and Bipolar Input Signal Range subsections within Analog Inputs (https://docs.xilinx.com/r/en-US/ug480_7Series_XADC/Analog-Inputs) strongly words the analog input range as +/- 0.5 V (note that negative voltages with respect to GNDADC cannot be applied, the +/- 0.5 V is only in reference to the common mode / reference voltage).

Quote

Bipolar Input Signals

The analog inputs can accommodate analog input signals that are positive and negative with respect to a common mode or reference. To accommodate these types of signals, the analog input must be configured to bipolar mode. Bipolar mode is selected by writing to configuration register 0 (see Control Registers ). All input voltages must be positive with respect to analog ground (GNDADC).

When bipolar operation is enabled, the differential analog input (V P – V N ) can have a maximum input range of ±0.5V. The common mode or reference voltage should not exceed 0.5V in this case (see Figure 2-7 ).

Bipolar Input Signal Range

The bipolar input mode also accommodates inputs signals driven from a true differential source, for example, a balanced bridge. In this case, V N and V P can swing positive and negative relative to a common mode or reference voltage (see Figure 2-8 ). The maximum differential input (V P – V N ) is ±0.5V. With maximum differential input voltages of ±0.5V and assuming balanced inputs on V N and V P , the common mode voltage must lie in the range 0.25V to 0.75V.

The Unipolar Input Signals section (just above the Bipolar sections) describes the 7 series devices being able to handle a higher input voltage than 1.0 V if you set V_N to be a common mode / reference voltage of up to 0.5 V.

Quote

Unipolar Input Signals

When measuring unipolar analog input signals, the ADCs must operate in a unipolar input mode. This mode is selected by writing to configuration register 0 (see Control Registers, page 35 ). When unipolar operation is enabled, the differential analog inputs (V P and V N ) have an input range of 0V to 1.0V. In this mode, the voltage on V P (measured with respect to V N ) must always be positive. Figure 2-6 shows a typical application of unipolar mode. V N is typically connected to a local ground or common mode signal. The common mode signal on V N can vary from 0V to +0.5V (measured with respect to GNDADC). Because the differential input range is from 0V to 1.0V (V P to V N ), the maximum signal on V P is 1.5V. Figure 2-6 shows the maximum signal levels on V N and V P in unipolar mode, measured with respect to analog ground (GNDADC package ball).

All this is to say that I don't know how far you might be able to exceed the rails and have the output values clip at the rails themselves. Looking at the XADC specifications of DS181 (https://docs.xilinx.com/v/u/en-US/ds181_Artix_7_Data_Sheet) doesn't define the values super well (that is, simply stating the 0 to 1 V range for unipolar and -0.5 to +0.5 V range for bipoloar with no extra information) or seemingly disagree with the UG480 specifications (such as with the Bipolar common mode range at Full scale input).

Personally, I would do what XAPP795 (https://docs.xilinx.com/v/u/en-US/xapp795-driving-xadc) recommends and implement an external resistor divider to bring the voltage range to as close within the stated ranges as you can as Xilinx does not offer any in depth insight regarding the absolute maximums for this overvoltage and undervoltage use case. That is what Digilent did on the Arty A7 at least for its analog inputs, set up a simple resistor divider to divide down 3.3 voltage scale down to 1 V (page 3 of the schematic: https://digilent.com/reference/_media/programmable-logic/arty-a7/arty-a7-e2-sch.pdf)

Thanks,
JColvin

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...