EmbDev.net

Forum: µC & Digital Electronics nsec-resolution time measurement with MSP430 or alternatives ?


von Juan S. (Company: JSM) (jsln)


Rate this post
useful
not useful
Hello,

I am trying to measure the time between two pulses with a resolution of 
<10nsecs, using a cheap microcontroller.

I know some MSP430 parts (MSP430F51x1) include the Timer D which allows 
a resolution of 4ns, but I do not know of any development kit available.

Anybody has experience with this processor or knows of some other uC 
that allows this kind of time measurement?

Thanks,
Juan.

von gpsdo (Guest)


Rate this post
useful
not useful
You do not write about the application:
perhaps something like that?
http://www.febo.com/pipermail/time-nuts/2014-February/082820.html

von Juan S. (Company: JSM) (jsln)


Rate this post
useful
not useful
gpsdo wrote:
> You do not write about the application:
> perhaps something like that?
> http://www.febo.com/pipermail/time-nuts/2014-February/082820.html

thanks for the link, it seems interesting,

however I would like just to use a development kit without added 
electronics, connecting PPS signals to GPIO inputs.

I want to measure time between a number of PPS pulses coming from a GPS 
device as well as some computer synchronized with PTP.

Regards,
Juan.

von Uwe Bonnes (Guest)


Rate this post
useful
not useful
While the STM32F334 has a timer with 217 ps resolution, it is a pity 
that this resolution is only for output, not for capture, as the poster 
asked.

The Infineon Cortex Parts also have sub-nanosecond timers, but I don't 
know if this resolution can be used for capture. And datasheet download 
still requires a NDA!

You can get about 5 ns resolution with the STM32F405 and bigger parts, 
running the timer at 168/180 MHz or LPC43xx at 204 MHz.

von Georg (Guest)


Rate this post
useful
not useful
Juan Solano wrote:
> I know some MSP430 parts (MSP430F51x1) include the Timer D which allows
> a resolution of 4ns

You need of course a high clock frequency, but this condition is 
"necessary but not sufficient". Also all other elements must be fast 
enough, e.g. the input to control the capture. I dont believe that this 
is possible, since not all parts of such a processor are GHz fast.

Georg

von 6A66 (Guest)


Rate this post
useful
not useful
Juan Solano wrote:
> I am trying to measure the time between two pulses with a resolution of
> <10nsecs, using a cheap microcontroller.

Hi Juan,

as to my knowledge all uC using a high relsolution timer do so for the 
OUTPUT of the timer. The TI C2000 series even goes down below 1ns but 
there is no way to do a single measurement with this resolution. Using 
repeated signals one could think about soltions like tuning the timer 
output and comparing the signals.

Another option would be to feed a delayline with e.g. 1ns taps and to 
latch the taps into a register to do the measurement.

rgds

von Juan S. (Company: JSM) (jsln)


Rate this post
useful
not useful
Thanks all for your suggestions,

I am now looking into these alternatives which on paper seem to be able 
to cope with high resolution capture timer (less than 10nsec):

- STM32F405 as suggested above

- MSP430F5172

http://www.ti.com/product/MSP430F5172/datasheet/specifications#SLAS6194794

Regards,
Juan.

von ChrisSo (Guest)


Rate this post
useful
not useful
Hi Juan,

I have the same problem and just wanted to ask if you have already found 
a suitable solution. I would appreciate an answer.

best reguards Chris

von Juan S. (Company: JSM) (jsln)


Rate this post
useful
not useful
Chris,

I have had success with a MSP430F5172 in a Schmartboard:

http://www.schmartboard.com/index.asp?page=products_dev&id=641

I need to do more testing to precisely measure resolution/jitter and add 
a serial port output, but my initial tests seem to work OK, you can have 
a look at the code here:

https://github.com/jsln/msp430-time

regards,
Juan.

von Arc N. (arc)


Rate this post
useful
not useful

von W.S. (Guest)


Rate this post
useful
not useful
Juan Solano wrote:
> I want to measure time between a number of PPS pulses coming from a GPS

In this case I would suggest, to divide the problem into two separate 
problems:
1. measure the raw time span by counting with the available timer of 
your system
2. make a small time analog measurement from the starting edge of your 
signal to be measured to the counting edge of your raw measurement 
clock.

This is rather easy, if you have a small CPLD or a high speed TTL: after 
a reset a open collector shortcuts a resistor+inductivity (in series) to 
ground. This is a simple constant current source.. When the starting 
edge comes, the open collector is released, this rises the voltage on it 
and fron this node a fast diode goes to a capacitor, which is loaded by 
the constant current. When the edhe of your reference clock comes, it 
resets the open collector to ground again the current source. After that 
you have some time to measure the voltage on the capacitor with the 
builtin ADC and then zero out the capacitor to ground , now ready for 
the next measurement.

This is applicable for a small amount of digits, let me say for a time 
span of 20..50 ns with a useable resolution of approx. 5 bits, which 
makes ca. 1 ns resolution in time.

Obviousely, it needs to be calibrated.

W.S.

von gg (Guest)


Rate this post
useful
not useful
Try the LAUNCHXL-F28027 C2000 Piccolo LaunchPad from ti.
the processor contains a HRCAP module . 300ps reolution on capture.
Search "HRCAP" and youll get more info.

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.