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.

PGA460: Problem measuring distances between 25-50 cm (short range)

Part Number: PGA460

Hi Akeem Whitehead,

I am Umut BAKIR from TURKEY. I am a Senior Computer Engineer in ICterra Inc. I use the double PGA460 module for measuring distance between 25cm - 200 cm on our own electronic board. With my threshold values I successfully get time of flight with an accuracy of ~1 cm greater than 60 cm distances. 

But if my object (wall) is near than 60 cm to my transducers,  I get the time of flight values so differency , of course wrong values. 

I use the monostatic closed top transducer (TR + RCV) 40 kHz. Here is: https://urun.gittigidiyor.com/otomobil-motor-aksesuar/yedek-park-sensoru-gozu-tekli-beyaz-481899786

I communicate with each PGA via different UART ports in MCU on our board.  Here is my PGA's eeprom and register values that I used on our own board. 

I use only preset 1 for measuring distance. Here is my algorithm

1. I send "B+L with Preset 1" (0x00) command both of the PGA

2. Wait 20 ms (milliseconds)

3. I send  get "Ultrasonic measurement result (0x05)" command and get "time of flight value"

4. Calculate distance

--------------------------------------- EEPROM Parameters------------------------------------------------ 

#define TVGAIN0 0x47            // T0 Start Time: 600us, TO/T1 Delta Time: 1200us
#define TVGAIN1 0x78           // T1/T2 Delta Time: 1200us T2/T3 Delta Time: 1400us
#define TVGAIN2 0xC7          // T3/T4 Delta Time: 4000us T4/T5 Delta Time: 1200us
#define TVGAIN3 0x18           //
#define TVGAIN4 0x64
#define TVGAIN5 0xA4
#define TVGAIN6 0xC0
#define INIT_GAIN 0x00
#define FREQUENCY 0x32
#define DEADTIME 0xF0
#define PULSE_P1 0x08              
#define PULSE_P2 0x08            
#define CUR_LIM_P1 0x80 
#define CUR_LIM_P2 0x80 
#define REC_LENGTH 0x88 
#define FREQ_DIAG 0x00
#define SAT_FDIAG_TH 0x00
#define FVOLT_DEC 0x00
#define DECPL_TEMP 0x09
#define DSP_SCALE 0x00
#define TEMP_TRIM 0x00
#define P1_GAIN_CTRL 0x00 
#define P2_GAIN_CTRL 0x00

#define P1_THR_0 0x67
#define P1_THR_1 0x9A
#define P1_THR_2 0x36
#define P1_THR_3 0x66
#define P1_THR_4 0x66
#define P1_THR_5 0x7B
#define P1_THR_6 0xF7
#define P1_THR_7 0x86
#define P1_THR_8 0x32
#define P1_THR_9 0x94
#define P1_THR_10 0xA5
#define P1_THR_11 0x28
#define P1_THR_12 0x28
#define P1_THR_13 0x28
#define P1_THR_14 0x28
#define P1_THR_15 0x00

#define P2_THR_0 0xAA // T1: 2400 T2: 2400
#define P2_THR_1 0xAA // T3: 2400 T4: 2400
#define P2_THR_2 0xAA // T5: 2400 T6: 2400
#define P2_THR_3 0xAA // T7: 2400 T8: 2400
#define P2_THR_4 0xAA // T9: 2400 T10: 2400
#define P2_THR_5 0xAA // T11: 2400 T12: 2400
#define P2_THR_6 0xCC 
#define P2_THR_7 0xAA 
#define P2_THR_8 0xAA
#define P2_THR_9 0xAA
#define P2_THR_10 0xAA
#define P2_THR_11 0xAA
#define P2_THR_12 0xAA
#define P2_THR_13 0xAA
#define P2_THR_14 0xAA
#define P2_THR_15 0xAA

---------------------------------------------------------------------------------------------------------------------

I read all of your documents (Software Development Guide, FAQs Guide, Datasheet) and watched all videos about that topic. But I can not solve my problem.  Please help me about this issue.

My best regards.

  • umutbakir2,

    What value is the ultrasonic measurement result reporting back when the object is within 60cm? Is the error value consistent repeatable?

    Can you provide an echo data dump output of the following cases?:

    • No object
    • Object at 1m
    • Object at 30cm

  • What value is the ultrasonic measurement result reporting back when the object is within 60cm? Is the error value consistent repeatable?

    Answer: The measurement result is correct over 50 cm. So, my object (wall) is within 60 cm, measurement result is  between 59,9 and 60,1. But under 50 cm, I did not get any correct measurement result.

    When object is on 30-35 cm , the result is sometimes over  than 70 cm, sometimes is 0,01 cm . That is not consistent repeatable.

    Can you provide an echo data dump output of the following cases?:

    Answer: Unfortunately I can not provide echo data dump, because I did not use your EVB. And with your program PGA460-Q1 EVM, I can not connect via TX-RX with my PGA's. 

  • Hi ;

    Is there any update about that issue ? 

    Best regards

  • umutbakir2,

    The reason why a time-of-flight of ~75cm is reported though the actual distance is 30~35cm is because the 30~35cm is likely masked by the burst-decay energy, and the threshold is triggered at the second round-trip time of flight. If you are able to capture the echo data dump, this would confirm the behavior as a visual echo envelope.

    See the following post for a similar issue which shows the echo data dump envelope in comparison to the threshold level for cases when the object is actually at 20cm, 30cm, and 70cm: https://e2e.ti.com/support/sensors/f/1023/p/861879/3188317#3188317 . You are likely experiencing the same problem. If you need to enable a shorter range of detection (sub-30cm), you will likely need to consider using a different and higher-frequency transducer.