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.

EVM430-FR6047: Bigger "capture duration" or flexible Gap between pulse start and ADC capture"

Part Number: EVM430-FR6047

Hi, 

I'm using EVM430FR6047 for measuring distance in the water using 1 transducer that connected in parallel to CH0 CH1. 

I succeeded in measuring distance but, as you explained in the tutorials, i have to guess the TOF before measuring the distance in front if a wall.

I'm looking for a way to measure any time of flight in the range of 200 - 5500 [us] without manually set the  "Gap between pulse start and ADC capture".

I think that if i will make the "capture duration" very big - about 6000[s] and the "Gap between pulse start and ADC capture" to about 100-200, it will do the work. 

do I have a way to do so?

  • Hello Gilad,

    First, to increase the capture duration, I suggest utilizing some buffers which are not needed.  I have identified 4 buffers below which you could use.

    1.	Below buffer can be used fuly for UPS as DNS is not needed for this application
    __no_init int16_t gUSSLEATempMemBlock[2 * (USS_SW_LIB_APP_MAX_CAPTURE_SIZE +
                                USS_SW_LIB_APP_MAX_FILTER_LENGTH)];
    
    2.	gUSSLEARAMReservedBlock2[] should not be needed as it is used for Hilbert & HilbertWide AbsToF estimation
    USS_HAL_LEA_DATA(gUSSLEARAMReservedBlock2, 4)
    __no_init int16_t gUSSLEARAMReservedBlock2[USS_SW_LIB_APP_MAX_CAPTURE_SIZE +
                                               USS_SW_LIB_APP_MAX_HILBERT_FILTER_LENGTH];
    
    3.	This below is also not used for water applications
    USS_HAL_LEA_DATA(gUSSBinaryPattern, 4)
    __no_init int16_t gUSSBinaryPattern[USS_BINARY_ARRAY_MAX_SIZE];
    
    4.	The top ¼ of below is used in Lobe for water AbsToF. The other ¾ is unused. You can move the arrays around a little bit to get the most. Or you can declare a smaller size (1/4) for gNVMemBlock.
    __persistent int32_t gNVMemBlock[(USS_SW_LIB_APP_MAX_CAPTURE_SIZE * 2)]={0};

    For the ranging of the gap between pulse start and ADC capture, there are a couple of options that could be used.

    1. Use under sampling initially to sweep and look for the energy of the signal.  For example, if you use 400kHz sampling instead of 4MHz for 1MHz transducer, you can cover 10x the range.  After the approximate position of the signal is identified, you could switch to a capture at 4MHz.  A 1500 capture buffer corresponds to 375uS at 4MHz and 3.75ms at 400kHz.  To cover the 6ms range, you could also use 200kHz. 
    2. Keep the sampling at 4MHz but sweep the capture start from a small value of 30uS to 6000uS in buffers of about 400uS.  This may take about 15 excitations to approximate the correct capture start value. 

  • Hi, 

    thank u for your fast reply ! 

    about the capture duration increase you suggested, 

    1. Can you send me a guide to how to reach this code and change it?
    2. what do you mean in "utilizing these buffers", do you mean that i need to change them  ? like change :"
    • USS_SW_LIB_APP_MAX_CAPTURE_SIZE + USS_SW_LIB_APP_MAX_FILTER_LENGTH)"
    • to a bigger value? and than i will be able to use bigger capture duration value in USS software?

    3. about your second answer part 1, i understand you concept, but if i need to change the value after first looking in lower frequency it is still a manual method no? (am i missing something?)

    4. about your sencond answer part 2: how do i do that? thru the USS only ? or do i also need to touch the code?

    again thank you for the bright answer !




  • Hi, 

    thank u for your fast reply ! 

    about the capture duration increase you suggested, 

    1. Can you send me a guide to how to reach this code and change it?
    2. what do you mean in "utilizing these buffers", do you mean that i need to change them  ? like change :"
    • USS_SW_LIB_APP_MAX_CAPTURE_SIZE + USS_SW_LIB_APP_MAX_FILTER_LENGTH)"
    • to a bigger value? and than i will be able to use bigger capture duration value in USS software?

    3. about your second answer part 1, i understand you concept, but if i need to change the value after first looking in lower frequency it is still a manual method no? (am i missing something?)

    4. about your sencond answer part 2: how do i do that? thru the USS only ? or do i also need to touch the code?

    again thank you for the bright answer !

  • HI Gilad,

    Sorry for the delayed response.

    1. I recommend looking at the API users guide.  If you have the library installed in the default location, this is located at C:/ti/msp/USS_02_30_00_03/USS/docs.

    2. Yes, you would need to change these to a larger value.

    3. It would not really be a manual mode as the software you write would automate the search.

    4. Yes, you would need to change the startADCsamplingCount.  You can find the details of this in the API users guide as well.

**Attention** This is a public forum