PGA460-Q1: PGA460-Q1

Part Number: PGA460-Q1

We have the PGA460-Q1 Eval module and everything works perfectly for our application.  We are trying to watch the RX and TX serial data that the PC sends and receives to the Eval board.  We can clearly see the 55 and all RX and TX waveforms on the scope.  We use a simple 3.3V to RS-232 converter to watch the hex data on a serial monitors.  The data is random 00 FF 0C.... but we cannot determine the baud rate that the EVM is using.

I know that it autobauds on the 55 but our serial monitor cannot auto baud.

What is the Baud rate when the EVM does all of the register transfers and Commands?  115k, 9.6K... do not seem to work.

Thanks, Peter

33 Replies

  • In reply to peter mccormick:

    Hi Peter,
    You have the right idea, but you forgot one step to maximizing the initial threshold to ignore the initial activity. The threshold offset (toward the bottom of the threshold page). Referring to FAQ#5.2 & Figure 17: For threshold levels 1-8, the value of 255 can only be attained when the threshold level is maximized to a value of 248, and the threshold offset is set to a maximum positive value of +7. This offset applies to all 1- 8 levels.

    You can also try adjusting your the BPF bandwidth and cutoff frequency on the General-->Receive block.
    Akeem Whitehead
    Texas Instruments // ASC-SENSING-SSC // Applications Engineer
  • In reply to Pradeep Kumar R:

    Hi Pradeep,
    There is no direct address space to read the Ultrasonic Measurement Result (UMR)directly. Only command 5 can be used to read the results. Note, be sure to set the DATADUMP_EN bit to '0' to enable the UMR mode, and properly set your thresholds.

    What are the values of the first six bytes reutrned from the EEPROM bulk read command?
    Akeem Whitehead
    Texas Instruments // ASC-SENSING-SSC // Applications Engineer
  • In reply to Akeem Whitehead:

    Hello akeem whitehead

    What are the values of the first six bytes returned from the EEPROM bulk read command?
    3
    6
    18
    30
    C0
    80
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    C0
    32
    F0
    12
    12
    35
    F5
    58
    33
    EF
    7C
    F
    70
    0
    0
    10
    5
    0
    this is what i read through bulk read command..

    USER_DATA1 = 0x00;

    USER_DATA2 = 0x00;

    USER_DATA3 = 0x00;

    USER_DATA4 = 0x00;

    USER_DATA5 = 0x00;

    USER_DATA6 = 0x00;

    USER_DATA7 = 0x00;

    USER_DATA8 = 0x00;

    USER_DATA9 = 0x00;

    USER_DATA10 = 0x00;

    USER_DATA11 = 0x00;

    USER_DATA12 = 0x00;

    USER_DATA13 = 0x00;

    USER_DATA14 = 0x00;

    USER_DATA15 = 0x00;

    USER_DATA16 = 0x00;

    USER_DATA17 = 0x00;

    USER_DATA18 = 0x00;

    USER_DATA19 = 0x00;

    USER_DATA20 = 0x00;

    TVGAIN0 = 0x00;

    TVGAIN1 = 0x00;

    TVGAIN2 = 0x00;

    TVGAIN3 = 0x00;

    TVGAIN4 = 0x00;

    TVGAIN5 = 0x00;

    TVGAIN6 = 0x00;

    INIT_GAIN = 0xC0;

    FREQUENCY = 0x32;

    DEADTIME = 0xF0;

    PULSE_P1 = 0x12;

    PULSE_P2 = 0x12;

    CURR_LIM_P1 = 0x35;

    CURR_LIM_P2 = 0xF5;

    REC_LENGTH = 0x58;

    FREQ_DIAG = 0x33;

    SAT_FDIAG_TH = 0xEF;

    FVOLT_DEC = 0x7C;

    DECPL_TEMP = 0x0F;

    DSP_SCALE = 0x70;

    TEMP_TRIM = 0x00;

    P1_GAIN_CTRL = 0x00;

    P2_GAIN_CTRL = 0x10;

    this is what i exactly wrote into EEPROM.
  • In reply to Pradeep Kumar R:

    hello akeem whitehead

    And i have one more doubt. What are thresholds For two transducer configuration. Because there is no burst and decay time in receiving transducer.
  • In reply to Pradeep Kumar R:

    Hello akeem whitehead

    i just continued further testing with two transducers on default thresholds of case 0 as in sample program.

    good news is i found right for the object at 2.22 meters

    not so good news is am also finding stray values as in screenshot and the sequence continuesly repeats until anther stray value of 10.84 after which i do not either 2.22 or other stray values. In fact it remains 10.84 need guidance on what i may be doing wrong.

  • In reply to Pradeep Kumar R:

    Hi Pradeep,

    I am able to run the EEPROM bulk read command without the initial six-byte error. Here is a screen shot showing what the respond should look like when running the command via the GUI. Notice that the first byte should read out as 0x40, which represents the diagnostic byte with no errors reported from the last UART transaction. Do you also receive 0x40 as your first response byte when running the bulk EEPROM read command, and after (subsequent command)?

    How are you writing the first six bytes of the user EEPROM space? Are you using the bulk EEPROM write command? If so, send me the master transmitted sequence you are sending for the bulk write.

    When using a bi-static transducer configuration, the threshold does not need to consider the decay profile or time, and can be set more linearly.

    The "stray" values could be a result of the echo barely being strong enough to trigger an object detection capture, you are not clearing the serial buffer between commands, the serial read is too fast and corrupting the time-of-flight data, or you are not allowing enough time to pass between burst+listen commands. If not already, please refer to the latest version (1.0.2) of the PGA460 Energia library which helps to improve the ultrasonic measurement result stability by adding additional margin to the serial read time.

    Akeem Whitehead
    Texas Instruments // ASC-SENSING-SSC // Applications Engineer
  • In reply to Pradeep Kumar R:

    We tried using 2 transducers hoping that there we could have objects much closer than about 30mm.  The second transducer seems to "hear" the transmitting transducer so you really don't save much.  We had much better success by finding a transducer that has low ringing time instead of using 2 transducers.  I obviously don't know your application and am not a TI employee expert but thought this might be helpful.

    Peter

  • In reply to peter mccormick:

    Hello akeem whitehead

    How are you writing the first six bytes of the user EEPROM space? Are you using the bulk EEPROM write command? If so, send me the master transmitted sequence you are sending for the bulk write.

    1. Storing EEPROM DATA one by one into registers
    2. Moving them to buffer.
    3. writing them serially using softserial(my MCU has only one UART).
  • We wired the ability to send data to the RX line from the TI dev board, a PC and out product called the "Omega"

    We tested by sending the simple READ command to the PGA.  It returns a valid answer always when sent from the TIDev board and PC.

    Pulling our hair out trying to figure out why there is no response when 55 C9 1C 1A is sent from our device, ever.

    Overlays of traces from PC and our device are shown below.  Everything appears to be identical.  All I can think is that out baud rate is not Exactly 9600 so it does not respond.  Any ideas why we cannot get the PGA to respond when the traces going to the RX line seem identical?

    Thanks, Peter

  • In reply to peter mccormick:

    Got it to work so never mind. We changed the clock source on the MSP430 for more precision at 9600 baud. Even though it all looked good on the scope and serial monitors, it appears as if the PGA requires a more precise baud rate to do the autobaud on 55.