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.

CCS/PGA970: PGA970 Reset M0

Part Number: PGA970

Tool/software: Code Composer Studio

I would like to use PGA970 device for an 5 wire LVDT  sensor in a custom board. I just did some testing activities
by flashing a modified demo firmware onto the PGA970 device:


1) The software initializes the following registers:

1.1) DIG_IF_CTRL-> SPI_EN = 1
1.2) ALPWR->SD = 0, ALPWR->ADC_EN_VREF = 1
1.3) S1_CFG->GAIN0 = 0, S1_CFG->GAIN1 = 0, S1_CFG->S1_SEM = 0, S1_CFG->INV = 0
1.4) S1_S2_CFG->BIAS_VCM_CTR0 = 0, S1_S2_CFG->BIAS_VCM_CTR1 = 0 (BIAS_VCM_CTR = 1.25), S1_S2_CFG->VCM_EN = 1
1.5) DEMOD1_CFG->DEMOD_EN = 1, DEMOD1_CFG->DEMOD_DEC_RATE = 0
1.6) DEMOD2_CFG->DEMOD_EN = 1, DEMOD2_CFG->DEMOD_DEC_RATE = 0
1.7) S1_S2_DEMOD_CFG_1->RESET_MOD =0, S1_S2_DEMOD_CFG_1->RESET_CLK = 0, S1_S2_DEMOD_CFG_1->DEMOD_EN = 1
1.8) DEMOD1/2 BPF coefficients register, DEMOD1/2 LPF coefficients register
1.9) Waveform_Table_size = 0x52 for a 3KHz carrier wave, WAVEFORM_DAC_OFFSET_VAL = 0x2C08

2) I developed an application for an micro-controller that is able to communicate via SPI with the PGA970.
Briefly the application performs the following tasks:

2.1) Access to MICRO_INTERFACE_CTRL and set it to 0x03 (Enable SPI, and set Reset Mode)
2.2) Read the registers set via software on the PGA970
2.3) Read the DEMOD1_DATA and DEMOD2_DATA.

All seems working fine, we read the expected secondary voltages A and B.

The next step will be to understand: is there  a chance to erase memory in which is loaded PGA970 program?

Our intend is to configure DIG_IF_CTRL-> SPI_EN = 1 via software and then use it without software on board and accessing directly
all registers via SPI (when the ARM M0 processor is in reset).

For example during installation stage we could load the firmware to setup all needed registers (from 1.1 to 1.9) and then erase
program memory.

  • Hello Carmine,

    If your firmware includes the command to place the M0 in reset, then it's not entirely necessary to erase the firmware after running it. But if you would like to run the firmware on powerup to configure registers, then place the M0 in reset, and have your external microcontroller erase the program memory that is entirely possible. You would just have to load a hex file of all 0s to the PGA970 FRAM once the firmware has done its job. Note that if the power is interrupted and the PGA970 turns back on, it will continue with the default powerup states for all registers.

    If that is your intention, it would probably be simpler to always have no firmware programmed into the PGA970's program memory, and to set all of the configuration registers through SPI transactions from your external microcontroller on powerup.


    Regards,

  • Hello Scott

    Thank you for your prompt reply I would like to focus on your last sentence::

    "If that is your intention, it would probably be simpler to always have no firmware programmed into the PGA970's program memory, and to set all of the configuration registers through SPI transactions from your external microcontroller on powerup"

    So if I understood good after each reset/powerup DIG_IF_CTRL->SPI_EN should be 1, that condition guarantees SPI interface is enabled and everytime we should reconfigure all registers.

    Carmine