Electronic – adc-fpga interface guidelines for vhdl

adcfpgainterfaceprogrammable-logicvhdl

I want to interface 3 separate ADS8548 ADC with XC3S200AN fpga. The fpga masters the control lines of the ADCs and it also acquires the digital data from the ADCs through parallel bus.

I will have to acquire data from all three Adcs simultaneously. I am a beginner when it comes to VHDL and I have no idea on the time span of the data acquisition.

What are the things I will have to consider in VHDL to make sure that all three Adcs are controlled effectively and data is acquired without any time lag between one another.

Replies in terms of Logic blocks in the code and example code for ADC data acquisition will be really helpful.

Best Answer

You'll have to supply a pulse to CONVST_A, CONVST_B, CONVST_C and CONVST_D for all three ADCs to start their conversions. Use an external clock (XCLK) to synchronize the conversions. Check the BUSY/INT output for end-of-conversion:

When bit C27 = 1 (BUSY/INT in CONFIG), this pin is an interrupt output. This pin transitions high after a conversion has been completed and remains high until the next read access. This mode can only be used if all eight channels are sampled simultaneously (all CONVST_x tied together). The polarity of the BUSY/INT output can be changed using bit C26 (BUSY L/H) in the Configuration Register. (page 16)

You then can read the data of the different ADCs into several registers. At that moment timing is no longer relevant to the synchronicity of the conversion.

Related Topic