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!
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.
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
: 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!
> 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:
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?
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.
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.