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: Help with frequency shift parameter.

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

Hello Colleagues,

Before explain my problem, I have a doubt about a PGA460 dataheet.

The note in page 14 is it right? The register correct is not TVGAIN6 (pages 71/72)?

"NOTE • For higher frequency support, the device has an option to shift up the burst frequency range which occurs by setting the FREQ_SHIFT bit in the CURR_LIM_P1 register. When this bit is set, the burst frequency is 6 times higher of the burst frequency selected by the FREQUENCY register. With this bit set, the range of burst frequencies is from 180 kHz to 480 kHz with a step of approximately 1.2 kHz."

So, Until now I was developt a industrial sensor that use center tap transformer (about 250Vpp@80KHz) and everything works very well. The problem happens when I change the transducer to 180Khz and the registers Frequency and TVGAIN6 (frequency shift bit). After command command1 (long range) and command 5 (UMR) I always receive the same value 00, 0x41, 0xFF, 0xFF, 0xFF, 0XBE.

Now I start to use the same hardware and firmware (MSP430FR5964) that works to 80Khz.I changed the C(inp) to 100pF and C(inn) to 10nf for 180Khz.

I took all registers values using a memory map generated in a PGA460-Q1 EVM and everything works there. It is the same strategy adopted before for 80Khz. I 'LL optimize after start work. Follow a Picture about the 180Khz response on GUI.

In my firmware the command sequence adopted in a PGA iniciallization is (UART baudrate 9600):

Command 25 Threshold bulk write (in HEX) Sync + CMD + : 1_THR_0 - 2_THR_15 : 

55 19 88 88 88 88 88 88 | 84 21 08 42 10 80 80 80 | 80 00 88 88 88 88 88 88 | 84 21 08 42 10 80 80 80 | 80 00 7c |;

No answer;

/*****************/

Command 10 Register write:  Is it right? (40 Addr, 68 =  EE_CNTRL Register)

55 0a 40 68 4d

No answer;

/****************/

Command 11 EEPROM bulk read (Byte1: USER_DATA1 data . . Byte43: P2_GAIN_CTRL data):

55 0b

Answer

03 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 | 00 00 00 00 88 88 88 82 | 08 20 81 60 00 80 7f 1f | bf 7f 23 11 22 69 4f 00 | 00 23 23 e5

/****************/

Command 12 EEPROM bulk write (Byte1: USER_DATA1 data . . Byte43: P2_GAIN_CTRL data)

55 0c 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 88 88 | 88 82 08 20 81 60 00 80 | 7f 1f bf 7f 23 11 22 69 | 4f 00 00 23 23 1a

Command 10 Register write:  Is it right?(40 Addr, 68 =  EE_CNTRL Register)

55 0a 40 68 4d

No answer;

/****************/

Command 10 Register write:  Is it right? (40 Addr, 69 =  EE_CNTRL Register)

55 0a 40 69 4c

No answer;

/****************/

After inicialization I repeat command 1 (Burst and listen (Preset2)) and Comand 5 (Ultrasonic measurement result) ever 60ms.

I thanks any help!

Best regards!

Reinaldo Borsato

  • Hello Reinaldo,

    Thanks for posting to the sensing forum! That is correct there is a typo on the datasheet, the correct location of the bit is in the TVGAIN6 address 0x1Ah.

    Now for the other question, if I understand correctly, your question is regarding when you try using a 180kHz transducer on the PGA460 you are not obtaining a good response from the device when previously a 80kHz transducer was yielding great results:

    The reason I think you may have a problem is due to the built in DSP bandpass filter of the device. When using the device with FREQ_SHIFT= 0 changing the burst frequency in the FREQUENCY register, the device will automatically rerun the sequence to input new bandpass filters values into the devices registers. When FREQ_SHIFT= 1 the device does not do this for you and the bandpass filters coefficients must be written in via UART to the PGA460 . If you are running this without updating the bandpass filter values then your signal does not look ideal because the signal is attenuated by the filter since you are  by the old filter 80kHz values. 

    This thread here has some suggested BP filter settings: https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/819254/pga460-frequency-offset-in-high-frequency-mode/3042619#3042619

    Please try them out to see if this improves performance, I hope this helps!

    Best,

    Isaac

  • Hi Isaac,


    Thanks for your answer.


    I think you are completely right. I'LL write the bandpass filters coefficients.


    All the best!


    Reinaldo

  • Thanks Reinaldo, let me know if you have any other questions!

    Best,

    Isaac

  • Hi Isaac,


    I tried to write the coefficients but I believe that I made some mistake. Could you help me please?

    See below:

    Write commands (command 10 = 55 + cmd + data + crc)

    55 0a 41 d1 e2
    55 0a 42 4e 65
    55 0a 43 f9 b8
    55 0a 44 a5 0c
    55 0a 45 03 ad
    55 0a 46 2d 82
    55 0a 47 7e 30
    55 0a 48 67 46
    55 0a 49 00 ac
    55 0a 4a 00 ab

    Read command (command 9 = 55 + cmd + addr + crc)
    55 09 41 b5
    answer: 40 d1 ed 00

    /**********/
    Read command
    55 09 42 b4
    answer: 73 8b 03

    /**********/
    Read command
    55 09 43 b3
    answer: cb c5 00

    /**********/
    Read command
    55 09 44 b2
    answer: 2b a7 0c

    /*********/

    Read command
    55 09 45 b1
    answer: 1b bc 00

    /*********/

    Read command
    55 09 46 b0
    answer:6b 26 0e

    /*********/

    Read command
    55 09 47 af

    answer:f3 0b 03

    /*********/

    Read command
    55 09 48 ae
    answer: 3b c3 03

    /*********/

    Read command
    55 09 49 ad

    answer:03 bf 00

    /*********/

    Read command
    55 09 4a ac
    answer: 03 bf 00

    The answers are not as I wrote and I received more than one byte when was used command 9. 

    Best Regads!

    Reinaldo

  • Hello Reinaldo,

    Yes the 1 byte of data indicates the actual register contents. Response operation for a read command includes the diagnostic field which is the first portion of the return, and the PGA460 will generate a checksum value at the end of the data to ensure that there were not missing bits or errors in the transmission. I included a figure below:

    In this case the data would only be 0:7, so the three bytes of data that you are getting should be correct. Although the data only looks correct in your first read besides the last two 00s. The rest of your read responses have the right amount of bytes but the data on them looks incorrect. Not sure if perhaps your read settings were incorrect since you were only expecting 1 byte and that's why the data doesn't look correct. I would attempt to read each register at a time and see if that looks more correct.

    Best,

    Isaac

  • Hi Isaac.

    In accordance with slaa732a "The band-pass filter coefficient values A2, A3, and B1 will automatically update based on the transducer frequency and band-pass filter bandwidth."

    I wrote only addresses 0x41 to 0x46 and it works!

    Thanks a lot for your help.

    Regards,

    Reinaldo