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-Q1: Burst not triggered after Run command

Part Number: PGA460-Q1
Other Parts Discussed in Thread: ENERGIA, MSP430F5308, PGA460, MSP430F5529, BOOSTXL-PGA460

Hi all,

I am currently developing a system with the PGA460-Q1 on my own PCB. I used the BOOSTXL PGA DevKit in order to test out my application along with the energia sketch to which I did some modifications.

I copied the transformer circuit on my PCB and interfaced the PGA460-Q1 with a MSP430F5308. The DevKit uses a MSP430F5529, so I had to modify the sketch to make it compatible with the MSP430F5308. So the only thing that I have to care about is the UART communication between the two ICs. I used two USB2UART converters to tap my terminal on the UART bus. Everything I send to the PGA460 is valid, and when I get a response from the PGA460, the number of bytes expected is good. I still use the Energia sketch, so I call initPGA460(); and I verified that the initialization goes well and that everything I send is valid.

The problem is that even though I used the same circuit (see attached) and even though I call the run command 0x55 0x00 0x03 0xFC for 3 objects (one is not working either) I cannot see any burst on my scope when I probe the two leads of my closed top transducer. I also checked at the OUTA and OUTB pins, and I only see VPWR, which is a clean 7.5V that I boost from a 3.6V battery backed-up with a supercap for current bursts.

What is weird is that when I retrieve the measurements from the PGA460 with command no5 0x55 0x05 0xFA, is get some results that do make sense, but it is definitely not coming from my transducer. The results are always the same... My capacitors are all rated with higher voltages, for example, C20 is 100V 0603. I used the same part number for the transformer and 100uF capacitor as well.

Any ideas?

Thanks!

Xavier

  • Hi,

    I just discovered that I have a diagnostic packet of 0x42. Looks like the CRC Treshold error? Also, I use 115200 baudrate.

    (Edit) Even if I set the thresholds at the beginning, I still get the 42 diag error... Here are a snapshot of what is sent and received with the diagpack circled. You can see the syncByte 0x55 in the TX window (the one below):


    Thanks!
    Xavier

  • Hi Xavier,

    Thank you for the detailed problem description. I agree that the no-burst issue is a result of the threshold CRC error not clearing because the threshold registers are not being successfully written to through the bulk write command.

    My suspect of the issue:

    Your UART frame has not been configured for 2-stop bits. The PGA460 requires either 2 stop bits or a single stop bit with a inter-byte space equivalent to a single bit width. At the high baud rate of 115.2k, you are likely to have less success writing to the device if only 1-stop bit is used for long write commands such as the bulk threshold command. Your bulk threshold write data and checksum is correct, which is why I assume it is a stop bit error. The Energia code will run without error at the slower baud rates; otherwise, the UART frame must be manually modified for a 2-stop bit format since Energia forces 1-stop bit by default.

    To confirm the stop bit error is an issue, you can execute a register write to a single threshold instead, which should be successful with the assumed 1-stop bit at 115.2kBaud setup given it is a shorter command. Try a register write to P1_THR_0 with a value of 1: { 0x55, 0A, 5F, 01, 95 }, and then check if the CRC error cleared. Alternatively, decrease your baud rate to 9.6kBaud with 1-stop bit, as this works for the default UART setup in the Energia example.
  • Xavier,
    A few notes about your schematic:
    1) If you only need asynchronous UART, then you can float the IO pin and 10kOhm pull-down the SCLK pin to GND.
    2) C22 is optional at the T1-pin2.
    3) If you are not using the decouple features, then you can float the DECPL pin, and short Ti-pin6 and C20 to SGND to eliminate R25, R26, R27, and Q3. For a simplified transformer implementation, refer to the following reference designs instead of the BOOSTXL-PGA460:
    •"PGA460 Mono-static Transducer Transformer Driver Small Form Factor Design File" ( www.ti.com/.../slac754 )
    •"PGA460 Bi-static Transducer Transformer Driver Small Form Factor Design File" ( www.ti.com/.../slac759 )
    •"PGA460 Mono-static Transducer Transformer Driver Ultra-Small Design File " ( www.ti.com/.../slac757 )
  • Akeem,

    Thank you for your fast reply.

    It is a good bet. The thing is that I also tried it at 9.6kbaud. You can see my UART parameters in the left lower corners of my cool-term terminal windows. So that confirms that the communication is really going at 9.6kbaud, but it still gives me the 0x42 bytes. I agree with you that this configuration worked well with the energia sketch, but it seems thats not doing it right now.

    Could it be that the MCU are not the same? Maybe I can sneak a delay somewhere to simulate a double stop?

    Thanks,

    Xavier

  • Hi Akeem,

    I solved the problem. I manually set the UART for 2 stop bits, and I also had a initialization sequence that was bad.

    I also figured out that I was changing the values of 

    byte EE_CRC = 0xFF;
    byte EE_CNTRL = 0x00;

    when I copied the memory from the GUI, and that was not helping at all ;)!

    9600baud still works with 1 stop bit, I checked that.

    Thanks for helping me think!

    Xavier