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: Ranging data and Threshold initialization questions

Part Number: PGA460
Other Parts Discussed in Thread: ENERGIA, ,

Posting this question for my customer:

We currently have a PGA460 EVM (flashed with preset code from the Energia libraries and using the MSP430 as the EVM documentation describes). In the future we will have a different microcontroller (non-TI) that will be reading information from the PGA460.

We were wondering on how a (non-TI) host controller can be used to send a “getRangingData()” signal via two wire UART to the PGA460 to have it send the information we need back?

 

In the datasheet of the PGA460 Programming guide in section 2.2.2 PGA460 Threshold Initialization that the threshold initialization is stored in volatile memory meaning that the threshold information will be lost upon each bootup, and that the threshold registers will have to be written to at least once each time we boot. I’m thinking then that our microcontroller will have to be the controller to send the PGA460 these values on each bootup?

I’m also curious when dealing with thresholds – can these be predefined in the EEPROM at manufacture. I noticed that the datasheet states that you must send the threshold each time. However, in the energia PGA460_USSC.c file it shows that this can be loaded from EEPROM?  Please explain which it is.


Thanks!

  • Hi Mark,
    We've got your request. Our response may be delayed due to holiday season, we will get back to you as soon as possible.

    Best Regards,
    Bala Ravi
  • Hi Mark,

    Configuring and loading the threshold can be frustrating when it comes to the PGA460. I've compiled some notes to help simplify the process:

    I. Configure:

        1) If optimizing the threshold to wrap around the noise floor is not feasible, then use a fixed-level threshold. A fixed-level threshold (i.e. mid-code 128 out of 255) is what the Energia demo uses by default. This method relies on the user to instead optimize the time varying gain profile and digital gain multipliers to ensure the noise does not ever exceed the threshold level of 128 out of 255.

        2) Use the master controller based auto-threshold routine to wrap the threshold around a no-object burst-and-listen echo data dump. The Energia demo library includes example code for this solution (AutosetThreshold.ino). The PGA460-Q1 EVM GUI also demonstrates and offers the visual equivalent controls for this solution on the Threshold page under the "Auto-Threshold" tab.

        3) Manually wrap the threshold around a no-object burst-and-listen echo data dump profile for best case results. Use FAQ #5.3 and 5.6 as a guide on setting the threshold ( www.ti.com/.../slaa733.pdf ).

    II. Loading:

        1)Because the threshold is in volatile memory, the thresholds must be written to after power-up or waking-up from low-power mode. Otherwise, the threshold values are random, and results will not be reliable. The master controller can be used to execute a bulk threshold write command to correctly set the threshold map.

        2) Store a local copy of a single preset threshold's time and level values into the USER_DATAx EEPROM space. This solution is only possible if at least 16 bytes of the USER_DATAx memory space is available. This allows the device to effective save it's threshold values so that the master controller only needs to bulk read the USER_DATA memory space, then bulk write this data to the Threshold memory space as a local copy and paste equivalent. See the attached PDF for instructions on implementing this solution ( PGA460_Storing_Threshold_in_User_EEPROM_Instructions.pdf )

  • Mark,
    For general PGA460 interface and communication routines, such as sending a burst/listen command, then reading the ultrasonic measurement results, please have the customer refer to the PGA460 Software Development Guide ( www.ti.com/.../slaa730a.pdf ). This document explains the required UART commands demonstrated in the Energia library ( www.ti.com/.../slac741 ) to systematically leverage the PGA460's command set for time-of-flight measurements to create a generic MCU command such as "getRangingData()".