EmbDev.net

Forum: FPGA, VHDL & Verilog How to interface FLASH ADC with FPGA?


Author: Safiqul (Guest)
Posted on:
Attached files:

Rate this post
0 useful
not useful
Hi,

I am trying to measure the RC time constant (exponential decay time) by 
FPGA. I have already done it by micro-controller with two comparators. 
But now, I want to do it by FPGA and want to use VHDL.

For that, I have choosed Flash ADC (MAX105) and FPGA - ACTEL ProASIC3E 
(A3PE1500). But, I have no idea how to interface between Flash ADC and 
FPGA. I need also the counter value that can count the time for each 
sample.

The RC time constant only 100 us.

Please help me to find out this! Thank you!

Author: Lothar Miller (lkmiller) (Moderator)
Posted on:

Rate this post
0 useful
not useful
Safiqul wrote:
> Hi,
>
> I am trying to measure the RC time constant (exponential decay time) by
> FPGA. I have already done it by micro-controller
How fast is your uC? Is it that uC solution to slow?

> with two comparators.
How fast are your comparators?

> For that, I have choosed Flash ADC (MAX105)
Do you really need an 800MHz ADC? Sounds like "technical overkill"...

> But, I have no idea how to interface between Flash ADC and FPGA.
To connect them you will need some copper wires...

> I need also the counter value that can count the time for each sample.
What language?

> The RC time constant only 100 us.
Thast fairly slow compared with your ADC...   :-o
Because with T=100us you will get about 4.000.000 samples for a 5T 
charge.

Lets do it this way:
tell, WHAT you want to do, not HOW you want to do it.

Author: Safiqul (Guest)
Posted on:

Rate this post
0 useful
not useful
Hi,

Thanks for your step by step comments :D!

In my system, RC time constant represents the temperature constant. For 
each degree change, the RC time constant changes only 5ns. That is why, 
I have chossed that ADC. I want to do it by
VHDL code
:

1. Capture the time by counter for each sampling. To get the precision 
points, I need higher ADC clock as well.

2. So, for 8 bit Flash ADC, I will get 255 counter values. Then add all 
these counter values to get the RC time constant.

That what I want to do. Please help me!

Author: Lothar Miller (lkmiller) (Moderator)
Posted on:

Rate this post
0 useful
not useful
> 1. Capture the time by counter for each sampling. To get the precision
> points, I need higher ADC clock as well.
What about noise? Any uncertainity of 1 bit will lead you false ways...
And this ADC has much of it:
DC ACCURACY 
Resolution RES 6 Bits          min    typ  max
Integral Nonlinearity     INL   -1   ±0.2    1 LSB
Differential Nonlinearity DNL   -1  ±0.25    1 LSB
Offset Voltage VOS (Note 2)     -1  ±0.25    1 LSB

> 2. So, for 8 bit Flash ADC, I will get 255 counter values.
But you have a 6 bit ADC...

> Then add all these counter values to get the RC time constant.
Are you sure?

Usually the time constant is to take the charge function of a capacitor 
for a calculation of the tim constant. So, the time to reach a level of 
approx. 63% is the time constant.

> For each degree change, the RC time constant changes only 5ns.
Just the practical way: why not choosing a much more simpler temperature 
sensor?

Author: PittyJ (Guest)
Posted on:

Rate this post
0 useful
not useful
As far as I understand, you simply want to measure the temperature?

Why not taking a integrated temperature sensor, which does everything 
for you?
e.g. LM73 with I2C interface or LM74 with SPI interface.
They are easy to access with a microcontroller or an FPGA. And the 
resolution is mostly sufficient.

Author: Uwe (Guest)
Posted on:

Rate this post
0 useful
not useful
You need to know how to develop digital Hardware (Printed Circuit 
Boards).(FlipFlops,and,or,not,nand,nor,xor,counter,muxes,latches,adder,s 
tatemachines)
And you have to know how you combine them. You have to know what are 
Setup times,hold times, Signal runtime and Routing, Clock domains ...
This is NOT C++
even if looks similar like Pascal VHDL is not a programming language.

Reply

Entering an e-mail address is optional. If you want to receive reply notifications by e-mail, please log in.

Rules — please read before posting

  • Post long source code as attachment, not in the text
  • Posting advertisements is forbidden.

Formatting options

  • [c]C code[/c]
  • [avrasm]AVR assembler code[/avrasm]
  • [vhdl]VHDL code[/vhdl]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]




Bild automatisch verkleinern, falls nötig
Note: the original post is older than 6 months. Please don't ask any new questions in this thread, but start a new one.