This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDC1000-C2000EVM: Inconsistent Ultrasonic Level Sensing among the TDC1000-GASEVM, a modified TDC1000-GASEVM and the TDC1000-C2000EVM

Part Number: TDC1000-C2000EVM

I've been trying to make sense of how the TDC1000-GASEVM and the TDC1000-C2000EVM development boards work and for that, I've been trying to get the same results for the same experiment using each one of the devices with three different ultrasonic transducers (200kHz, 300kHz, 1MHz).

The application is level sensing and this is my set (ignore the devices attached on the top of the Keg):

These are the boards I used:

1 - TDC1000-GASEVM

2 - TDC1000-GASEVM modified according to these instructions. The discussion started on this thread.

3 - TDC1000-C2000EVM

These are the transducers I used:

1 - Ultrasonic Sensor, Transceiver, 19 mm Diameter, 200 kHz: http://www.farnell.com/datasheets/1759997.pdf?_ga=2.237902720.1692459751.1569926028-1607374703.1561714650&_gac=1.116315508.1567092170.Cj0KCQjw753rBRCVARIsANe3o44DI9hNu62LNAsw5eLuCPF1nzZApoYyLi9Vhwt8IxUQ6SvMdNmueooaAsKMEALw_wcB

2 - Ultrasonic Sensor, Transceiver, 13 mm Diameter, 300 kHz: http://www.farnell.com/datasheets/1760000.pdf?_ga=2.237902720.1692459751.1569926028-1607374703.1561714650&_gac=1.116315508.1567092170.Cj0KCQjw753rBRCVARIsANe3o44DI9hNu62LNAsw5eLuCPF1nzZApoYyLi9Vhwt8IxUQ6SvMdNmueooaAsKMEALw_wcB

3 - Ultrasonic Sensor, Transceiver, 1 MHz: https://media.digikey.com/pdf/Data%20Sheets/Audiowell%20PDFs/US0014-001.pdf

Here is where the transducers are attached (bottom of the Keg). The transducers were attached according to this document.

(Please, ignore the Piezo Disc).

For each board, I've tried the three different transducers and two different boarding settings (total of 18 experiments).

Initially, the Keg was filled with water up to a level of approximately 13.55cm.

Then, I tried the experiments listed below (The config files for all the experiments are attached) and here are the level measurements I got:

Modified TDC1000-GASEVM
Transducer 1MHz = TOF 185us – 10 Pulses - TOF STDEV 3us – 13.65cm
Transducer 1MHz = TOF 185us – 30 Pulses - TOF STDEV 3us – 13.65cm
Transducer 300KHz = TOF 195us – 10 Pulses - TOF STDEV 6us – 14.43cm
Transducer 300KHz = TOF 262us – 30 Pulses - TOF STDEV 9us – 19.38cm
Transducer 200KHz = TOF 172us – 10 Pulses - TOF STDEV 18us – 12.69cm
Transducer 200KHz = TOF 272us – 30 Pulses - TOF STDEV 20us – 20.09cm
TDC1000-GASEVM
Transducer 1MHz = TOF 110us – 10 Pulses - TOF STDEV 47us – 8.15cm
Transducer 1MHz = TOF 130us – 30 Pulses - TOF STDEV 48us – 9.62cm
Transducer 300KHz = TOF 196us – 10 Pulses - TOF STDEV 3us – 14.53cm
Transducer 300KHz = TOF 263us – 30 Pulses - TOF STDEV 5us – 19.48cm
Transducer 200KHz = TOF 173us – 10 Pulses - TOF STDEV 19us – 12.82cm
Transducer 200KHz = TOF 274us – 30 Pulses - TOF STDEV 23us – 20.24cm
TDC1000-C2000EVM
Transducer 1MHz = TOF 44us – 10 Pulses - TOF STDEV 0.0005us – 3.25cm
Transducer 1MHz = TOF 64us – 30 Pulses - TOF STDEV 0.007us – 4.73cm
Transducer 300KHz = TOF 77us – 10 Pulses - TOF STDEV 0.001us – 5.69cm (250KHz Clock) - No config file
Transducer 300KHz = TOF 157us – 30 Pulses - TOF STDEV 0.02us – 11.61cm (250KHz Clock) - No config file
Transducer 200KHz = TOF 80us – 10 Pulses - TOF STDEV 0.001us – 5.92cm (250KHz Clock) - No config file
Transducer 200KHz = TOF 161us – 30 Pulses - TOF STDEV 0.02us – 11.91cm (250KHz Clock) - No config file

Clearly, there is a significant variation of the level detected between experiments. I would like to understand the reason for that.

The Clock Frequency of each experiment was set in order to match the resonant frequency of the transducer (apart from the last four experiments) and the EN Period was calculated according to the equation shown in here (Page 6).

I don't have much information about the Keg since I couldn't fine the Engineering details on the manufacturer website.

TDC1000_Config0          5E
TDC1000_Config1          41
TDC1000_Config2          00
TDC1000_Config3          0C
TDC1000_Config4          5F
TDC1000_TOF-1            60
TDC1000_TOF-0            1E
TDC1000_Error_Flags      00
TDC1000_Timeout          23
TDC1000_Clock_Rate       01
TDC1000_Conts_Trigger    00
TRIGGER_UPDATE_FREQ      0000
TDC_AVG/STDEV_NUM_ELEMS  000A
SAVE_GRAPH_DATA_TO_FILE  00
TDC_Y-SCALE_IN_ns        00
Y-SCALE_CENTER           0032
ZOOM_IN_X-SCALE          0032
MEASURE_RTD1             00
RTD_AVG/STDEV_NUM_ELEMS  000A
TEMP_RTD_SELECT          00
TEMP_RTD_MODE            01
TEMP_AVG/STDEV_NUM_ELEMS 000A
SAVE_TEMP_DATA           00
SAVE_YMAX_DATA           0000000000000059
SAVE_YMIN_DATA           FFFFFFFFFFFFFFF5
TDC1000-HV_DRV_EN1       01
TDC1000-HV_DRV_EN2       00
HV_DRV_EN1_Period        003C
HV_DRV_EN2_Period        001E
CLK_SOURCE_SELECT        00
CLK_FREQ_(1-16MHz)        8.000000

TDC1000_Config0          4A
TDC1000_Config1          41
TDC1000_Config2          00
TDC1000_Config3          0C
TDC1000_Config4          5F
TDC1000_TOF-1            60
TDC1000_TOF-0            1E
TDC1000_Error_Flags      00
TDC1000_Timeout          23
TDC1000_Clock_Rate       01
TDC1000_Conts_Trigger    00
TRIGGER_UPDATE_FREQ      0000
TDC_AVG/STDEV_NUM_ELEMS  000A
SAVE_GRAPH_DATA_TO_FILE  00
TDC_Y-SCALE_IN_ns        00
Y-SCALE_CENTER           0032
ZOOM_IN_X-SCALE          0032
MEASURE_RTD1             00
RTD_AVG/STDEV_NUM_ELEMS  000A
TEMP_RTD_SELECT          00
TEMP_RTD_MODE            01
TEMP_AVG/STDEV_NUM_ELEMS 000A
SAVE_TEMP_DATA           00
SAVE_YMAX_DATA           0000000000000059
SAVE_YMIN_DATA           FFFFFFFFFFFFFFF5
TDC1000-HV_DRV_EN1       01
TDC1000-HV_DRV_EN2       00
HV_DRV_EN1_Period        0028
HV_DRV_EN2_Period        001E
CLK_SOURCE_SELECT        00
CLK_FREQ_(1-16MHz)        8.000000

TDC1000_Config0                         3E
TDC1000_Config1                         41
TDC1000_Config2                         00
TDC1000_Config3                         04
TDC1000_Config4                         5F
TDC1000_TOF-1                           C0
TDC1000_TOF-0                           1E
TDC1000_Error_Flags                     00
TDC1000_Timeout                         23
TDC1000_Clock_Rate                      00
TDC1000_Conts_Trigger                   00
TDC7200_Config1                         02
TDC7200_Config2                         40
TDC7200_Interrupt_Status                07
TDC7200_Interrupt_Mask                  07
TDC7200_Coarse_Cntr_Ov_H                FF
TDC7200_Coarse_Cntr_Ov_L                FF
TDC7200_Clock_Cntr_Ov_H                 FF
TDC7200_Clock_Cntr_Ov_L                 FF
TDC7200_Clock_Cntr_Stop_Mask_H          00
TDC7200_Clock_Cntr_Stop_Mask_L          00
TRIGGER_UPDATE_FREQ                     0000
TDC_AVG/STDEV_NUM_ELEMS                 0032
SAVE_GRAPH_DATA_TO_FILE                 00
FLOW_MODE_SELECT                        00
Y-SCALE_CENTER                          0000
X-SCALE_RANGE                           0032
MEASURE_RTD1                            00
SAVE_RESULT_REGR_TO_FILE                00
GRAPH_MULTI_STOPS                       00
TDC_SELECT                              00
TEMP_RTD_SELECT                         00
TEMP_RTD_MODE                           01
TEMP_AVG/STDEV_NUM_ELEMS                000A
SAVE_TEMP_DATA                          00
GRAPH_YMAX_DATA                         000000000003163C
GRAPH_YMIN_DATA                         0000000000030E08
TDC1000-HV_DRV_EN1                      01
TDC1000-HV_DRV_EN2                      00
HV_DRV_EN1_Period                       0082
HV_DRV_EN2_Period                       02BC
ENABLE_POWER_CYCLE                      00
CLK_FREQ_(1-16MHz)                      1.200000
CLK_SOURCE_SEL                          03
CPU_CLK_FREQ                            04
CPU_CLK_EN                              01
TDC1000-HV_BST_PWR_EN                   01
HV_BST_PWR_EN_Period                    0000
FWD2REV_FLOW_DELAY                      0000
TDC1000-IMPE_MATCH_EN                   00
ENABLE_UART_STREAM                      00
ENABLE_MSP430TIMER_TDC                  00

TDC1000_Config0                         2A
TDC1000_Config1                         41
TDC1000_Config2                         00
TDC1000_Config3                         04
TDC1000_Config4                         5F
TDC1000_TOF-1                           C0
TDC1000_TOF-0                           1E
TDC1000_Error_Flags                     00
TDC1000_Timeout                         23
TDC1000_Clock_Rate                      00
TDC1000_Conts_Trigger                   00
TDC7200_Config1                         02
TDC7200_Config2                         40
TDC7200_Interrupt_Status                07
TDC7200_Interrupt_Mask                  07
TDC7200_Coarse_Cntr_Ov_H                FF
TDC7200_Coarse_Cntr_Ov_L                FF
TDC7200_Clock_Cntr_Ov_H                 FF
TDC7200_Clock_Cntr_Ov_L                 FF
TDC7200_Clock_Cntr_Stop_Mask_H          00
TDC7200_Clock_Cntr_Stop_Mask_L          00
TRIGGER_UPDATE_FREQ                     0000
TDC_AVG/STDEV_NUM_ELEMS                 000A
SAVE_GRAPH_DATA_TO_FILE                 00
FLOW_MODE_SELECT                        00
Y-SCALE_CENTER                          0000
X-SCALE_RANGE                           0032
MEASURE_RTD1                            00
SAVE_RESULT_REGR_TO_FILE                00
GRAPH_MULTI_STOPS                       00
TDC_SELECT                              00
TEMP_RTD_SELECT                         00
TEMP_RTD_MODE                           01
TEMP_AVG/STDEV_NUM_ELEMS                000A
SAVE_TEMP_DATA                          00
GRAPH_YMAX_DATA                         000000000002FC1A
GRAPH_YMIN_DATA                         000000000002FBD9
TDC1000-HV_DRV_EN1                      01
TDC1000-HV_DRV_EN2                      00
HV_DRV_EN1_Period                       003F
HV_DRV_EN2_Period                       02BC
ENABLE_POWER_CYCLE                      00
CLK_FREQ_(1-16MHz)                      1.200000
CLK_SOURCE_SEL                          02
CPU_CLK_FREQ                            04
CPU_CLK_EN                              01
TDC1000-HV_BST_PWR_EN                   01
HV_BST_PWR_EN_Period                    0000
FWD2REV_FLOW_DELAY                      0000
TDC1000-IMPE_MATCH_EN                   00
ENABLE_UART_STREAM                      00
ENABLE_MSP430TIMER_TDC                  00

TDC1000_Config0                         5E
TDC1000_Config1                         41
TDC1000_Config2                         00
TDC1000_Config3                         04
TDC1000_Config4                         5F
TDC1000_TOF-1                           C0
TDC1000_TOF-0                           1E
TDC1000_Error_Flags                     00
TDC1000_Timeout                         23
TDC1000_Clock_Rate                      00
TDC1000_Conts_Trigger                   00
TDC7200_Config1                         02
TDC7200_Config2                         40
TDC7200_Interrupt_Status                07
TDC7200_Interrupt_Mask                  07
TDC7200_Coarse_Cntr_Ov_H                FF
TDC7200_Coarse_Cntr_Ov_L                FF
TDC7200_Clock_Cntr_Ov_H                 FF
TDC7200_Clock_Cntr_Ov_L                 FF
TDC7200_Clock_Cntr_Stop_Mask_H          00
TDC7200_Clock_Cntr_Stop_Mask_L          00
TRIGGER_UPDATE_FREQ                     0000
TDC_AVG/STDEV_NUM_ELEMS                 0032
SAVE_GRAPH_DATA_TO_FILE                 00
FLOW_MODE_SELECT                        00
Y-SCALE_CENTER                          0000
X-SCALE_RANGE                           0032
MEASURE_RTD1                            00
SAVE_RESULT_REGR_TO_FILE                00
GRAPH_MULTI_STOPS                       00
TDC_SELECT                              00
TEMP_RTD_SELECT                         00
TEMP_RTD_MODE                           01
TEMP_AVG/STDEV_NUM_ELEMS                000A
SAVE_TEMP_DATA                          00
GRAPH_YMAX_DATA                         000000000003163C
GRAPH_YMIN_DATA                         0000000000030E08
TDC1000-HV_DRV_EN1                      01
TDC1000-HV_DRV_EN2                      00
HV_DRV_EN1_Period                       00B4
HV_DRV_EN2_Period                       02BC
ENABLE_POWER_CYCLE                      00
CLK_FREQ_(1-16MHz)                      1.600000
CLK_SOURCE_SEL                          03
CPU_CLK_FREQ                            09
CPU_CLK_EN                              01
TDC1000-HV_BST_PWR_EN                   01
HV_BST_PWR_EN_Period                    0000
FWD2REV_FLOW_DELAY                      0000
TDC1000-IMPE_MATCH_EN                   00
ENABLE_UART_STREAM                      00
ENABLE_MSP430TIMER_TDC                  00

TDC1000_Config0                         4A
TDC1000_Config1                         41
TDC1000_Config2                         00
TDC1000_Config3                         04
TDC1000_Config4                         5F
TDC1000_TOF-1                           C0
TDC1000_TOF-0                           1E
TDC1000_Error_Flags                     00
TDC1000_Timeout                         23
TDC1000_Clock_Rate                      00
TDC1000_Conts_Trigger                   00
TDC7200_Config1                         02
TDC7200_Config2                         40
TDC7200_Interrupt_Status                07
TDC7200_Interrupt_Mask                  07
TDC7200_Coarse_Cntr_Ov_H                FF
TDC7200_Coarse_Cntr_Ov_L                FF
TDC7200_Clock_Cntr_Ov_H                 FF
TDC7200_Clock_Cntr_Ov_L                 FF
TDC7200_Clock_Cntr_Stop_Mask_H          00
TDC7200_Clock_Cntr_Stop_Mask_L          00
TRIGGER_UPDATE_FREQ                     0000
TDC_AVG/STDEV_NUM_ELEMS                 0032
SAVE_GRAPH_DATA_TO_FILE                 00
FLOW_MODE_SELECT                        00
Y-SCALE_CENTER                          0000
X-SCALE_RANGE                           0032
MEASURE_RTD1                            00
SAVE_RESULT_REGR_TO_FILE                00
GRAPH_MULTI_STOPS                       00
TDC_SELECT                              00
TEMP_RTD_SELECT                         00
TEMP_RTD_MODE                           01
TEMP_AVG/STDEV_NUM_ELEMS                000A
SAVE_TEMP_DATA                          00
GRAPH_YMAX_DATA                         000000000003163C
GRAPH_YMIN_DATA                         0000000000030E08
TDC1000-HV_DRV_EN1                      01
TDC1000-HV_DRV_EN2                      00
HV_DRV_EN1_Period                       0050
HV_DRV_EN2_Period                       02BC
ENABLE_POWER_CYCLE                      00
CLK_FREQ_(1-16MHz)                      1.600000
CLK_SOURCE_SEL                          02
CPU_CLK_FREQ                            09
CPU_CLK_EN                              01
TDC1000-HV_BST_PWR_EN                   01
HV_BST_PWR_EN_Period                    0000
FWD2REV_FLOW_DELAY                      0000
TDC1000-IMPE_MATCH_EN                   00
ENABLE_UART_STREAM                      00
ENABLE_MSP430TIMER_TDC                  00

TDC1000_Config0                         1E
TDC1000_Config1                         41
TDC1000_Config2                         00
TDC1000_Config3                         04
TDC1000_Config4                         5F
TDC1000_TOF-1                           60
TDC1000_TOF-0                           1E
TDC1000_Error_Flags                     00
TDC1000_Timeout                         23
TDC1000_Clock_Rate                      00
TDC1000_Conts_Trigger                   00
TDC7200_Config1                         02
TDC7200_Config2                         40
TDC7200_Interrupt_Status                07
TDC7200_Interrupt_Mask                  07
TDC7200_Coarse_Cntr_Ov_H                FF
TDC7200_Coarse_Cntr_Ov_L                FF
TDC7200_Clock_Cntr_Ov_H                 FF
TDC7200_Clock_Cntr_Ov_L                 FF
TDC7200_Clock_Cntr_Stop_Mask_H          00
TDC7200_Clock_Cntr_Stop_Mask_L          00
TRIGGER_UPDATE_FREQ                     0000
TDC_AVG/STDEV_NUM_ELEMS                 0032
SAVE_GRAPH_DATA_TO_FILE                 00
FLOW_MODE_SELECT                        00
Y-SCALE_CENTER                          0000
X-SCALE_RANGE                           0032
MEASURE_RTD1                            00
SAVE_RESULT_REGR_TO_FILE                00
GRAPH_MULTI_STOPS                       00
TDC_SELECT                              00
TEMP_RTD_SELECT                         00
TEMP_RTD_MODE                           01
TEMP_AVG/STDEV_NUM_ELEMS                000A
SAVE_TEMP_DATA                          00
GRAPH_YMAX_DATA                         00000000000324B0
GRAPH_YMIN_DATA                         000000000003102E
TDC1000-HV_DRV_EN1                      01
TDC1000-HV_DRV_EN2                      00
HV_DRV_EN1_Period                       003C
HV_DRV_EN2_Period                       02BC
ENABLE_POWER_CYCLE                      00
CLK_FREQ_(1-16MHz)                      2.000000
CLK_SOURCE_SEL                          02
CPU_CLK_FREQ                            0C
CPU_CLK_EN                              01
TDC1000-HV_BST_PWR_EN                   01
HV_BST_PWR_EN_Period                    0000
FWD2REV_FLOW_DELAY                      0000
TDC1000-IMPE_MATCH_EN                   00
ENABLE_UART_STREAM                      00
ENABLE_MSP430TIMER_TDC                  00

TDC1000_Config0                         0A
TDC1000_Config1                         41
TDC1000_Config2                         00
TDC1000_Config3                         04
TDC1000_Config4                         5F
TDC1000_TOF-1                           60
TDC1000_TOF-0                           1E
TDC1000_Error_Flags                     00
TDC1000_Timeout                         23
TDC1000_Clock_Rate                      00
TDC1000_Conts_Trigger                   00
TDC7200_Config1                         02
TDC7200_Config2                         40
TDC7200_Interrupt_Status                07
TDC7200_Interrupt_Mask                  07
TDC7200_Coarse_Cntr_Ov_H                FF
TDC7200_Coarse_Cntr_Ov_L                FF
TDC7200_Clock_Cntr_Ov_H                 FF
TDC7200_Clock_Cntr_Ov_L                 FF
TDC7200_Clock_Cntr_Stop_Mask_H          00
TDC7200_Clock_Cntr_Stop_Mask_L          00
TRIGGER_UPDATE_FREQ                     0000
TDC_AVG/STDEV_NUM_ELEMS                 0032
SAVE_GRAPH_DATA_TO_FILE                 00
FLOW_MODE_SELECT                        00
Y-SCALE_CENTER                          0000
X-SCALE_RANGE                           0032
MEASURE_RTD1                            00
SAVE_RESULT_REGR_TO_FILE                00
GRAPH_MULTI_STOPS                       00
TDC_SELECT                              00
TEMP_RTD_SELECT                         00
TEMP_RTD_MODE                           01
TEMP_AVG/STDEV_NUM_ELEMS                000A
SAVE_TEMP_DATA                          00
GRAPH_YMAX_DATA                         00000000000324B0
GRAPH_YMIN_DATA                         000000000003102E
TDC1000-HV_DRV_EN1                      01
TDC1000-HV_DRV_EN2                      00
HV_DRV_EN1_Period                       0028
HV_DRV_EN2_Period                       02BC
ENABLE_POWER_CYCLE                      00
CLK_FREQ_(1-16MHz)                      2.000000
CLK_SOURCE_SEL                          02
CPU_CLK_FREQ                            0C
CPU_CLK_EN                              01
TDC1000-HV_BST_PWR_EN                   01
HV_BST_PWR_EN_Period                    0000
FWD2REV_FLOW_DELAY                      0000
TDC1000-IMPE_MATCH_EN                   00
ENABLE_UART_STREAM                      00
ENABLE_MSP430TIMER_TDC                  00

  • Matheus,

    I have received your question, please give us some time until next wednesday to process your info and provide with an answer/reason.

  • Any answer yet?

    On top of the issue I described in my post I'm having the same issue as presented in TDC1000-C2000EVM: Minimum level sensing.

    The thread has been locked, but no final answer was given.

  • Matheus,

    I appreciate the detail experiments that you have made in this regard to measure liquid levels through a metal keg using the different EVMs.

    Higher Ultrasonic frequency leevl of 1Mhz or more is recommended to measure the distance through liquids and lower frequency ranges of 500Khz< are typically used for measuring the ToF through air.

    Hence in your experiments you are unable to measure proper time of flight while you use the transducers other than 1MHz.

    Also the modified GASEVM is the perfect fit in terms of circuitry setup inorder to measure liquid levels through metal tanks/pipes.

    It is not possible to measure levels in metal container using the TDC1000-C2000 EVM since it can only excite the transducer upto 3.6V and we will need more energy to penetrate the metal wall in general.