Dear all,
I am working on a project involving the THS788 Timing Measurement Unit. Unfortunately, even if the part is NRND, we started the project many months ago and decided to use this chip.
- We feed the THS788 sync input and channel A input with the same signal delayed by few hundreds of ps.
- We read the results from the internal channel A register through the SPI interface (register 10h–12h for channel A)
- we use a configuration with the counter set to 18 bit and the external serial interface set to 16 bit (this shouldn't influence our read-out since at the moment we are reading all 40 bits direclty through the slow SPI interface)
The problem is:
- at low frequencies (below few MHz) everything works fine and the time stamps we read looks like this:
49bdd 0000 0011
49bdd 0000 0011
49bdd 0000 0010
49bdd 0000 0011
49bdd 0000 0010
49bdd 0000 0011
If I ignore the first 16 bits (don't know what they mean) I get a meaningful timestamp that changes value if I change the delay.
- at higher frequencies (when maybe there is a chance to get a negative number due to a sync arriving during the conversion), with the same setup, the time stamps look like this:
8MHz
49bdd 0000 0011
49bdd 0000 2544
49bdd 0000 2544
49bdd 0000 0010
49bdd 0000 0011
49bdd 0000 0011
49bdd 0000 0011
16 MHz
49bdd ffff 2811
49bdd ffff 2810
49bdd ffff 2810
49bdd ffff 2810
49bdd ffff 2811
49bdd ffff 2811
49bdd ffff 2810
The fast interface (LVDS) looks exactly the same with the only difference that when we set it to 16-bit we get only the 16 LSB of the entire register (49bdd ffff 2811 becomes 2811).
If I try to do the 2s-complement of those numbers (with 24bit since there should be 18 bit counter + 6 interpolator) I get a "huge" negative number...
Could you help out please? Is there something I am not taking into account in the number conversion?
Thanks,
Gianluca