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.

PGA970EVM: Unable to connect DAC on physical output OUT pin13

Part Number: PGA970EVM
Other Parts Discussed in Thread: PGA970

Hi,

I'm using the GUI with the digital interface to command PGA970EVM,

I 'm generate the wave form, the sensor lvdt is connected, i can read adc1, adc2 with the GUI and it works fine.

I try to active the DAC, in loop back configuration mode i read back adc1.

I have nothing on OUT pin13 of the PGA.

How is the way to connect output pin with the gui? is it possible?

Thanks for your reply,

Best regards.

Yannick Bouchet

  • Hi Yannick,

    If you have the TEST_MUX_DAC_EN turned on, do you see the output changing when you set the DAC REG0 in the GUI?

    Regards,
  • Hi scott,

    Yes, if i change value of dac_REG0_2, then i can see the output change.

    Is it possible to have the result of adc1 or adc2 or (adc1 - adc2) on the dac out pin with the gui?

    Regards,

    Yannick Bouchet

  • Hi scott,

    i tested too the adc with "PGA970_FW_Release_1_5_Generic"
    I compiled the project and use it with css.

    First, the dac output dosen't work with my sensor, the secondary signal was good on oscillo.

    After debugging, i understand that the compensation algorithm was an entry point arround the problem.
    then i decided to un-use it.
    Then i put in DAC_REG0 -> differrence == demod1 - demod2, and it also work, the dac send back an image of the sensor position.

    i show you my modifications: (look: COMPENSATION_ALGO_DISABLE )

    ---------------------------------------------------------------------------------
    interrupt void ADC_Handler(void)
    {
    SL coeffP;
    ADC_Count1++;
    #if(WATCH_DOG_TIMER_TESTING==1)
    if(WDOG_Low_Time_Cnt1==0)
    {
    WDOG_Low_Time_Cnt1=ADC_Count1;
    }

    #endif /*#if(WATCH_DOG_TIMER_TESTING==1)*/
    demod1 = (DEMOD1_DATA >> 8); //read 16bit ADC1 value
    demod2 = (DEMOD2_DATA >> 8); //read 16bit ADC2 value

    difference = demod1 - demod2;
    sum = demod1 + demod2;

    if (sum !=0)
    {
    FAST_DIV_NUMERATOR = difference;
    FAST_DIV_DENOMINATOR = sum>>8;

    FAST_DIV_CTRL = 0x01; // start division

    while ((FAST_DIV_STAT&0x01) == 0x00); // wait for division to complete

    ratio = FAST_DIV_QUOTIENT;
    }

    /* Accumulate the value of P channel */
    FIR_AccadcValue[0] = ratio;
    /* Accumulate the value of T channel */
    FIR_AccadcValue[1] += ADC3_PTAT_DATA;

    /* Update DAC with previous value */
    if (FaultDiag == 0)
    {
    #if(COMPENSATION_ALGO_DISABLE == 1)
    // add DC to place middle of the sensor position
    // 14 -> because of 14 bits DAC resolution
    DAC_REG0 = difference + ((SL)(1 << (14-1)));
    #else // (WAVEFORM_LBB315PA_100_lvdt_00 == 1)
    DAC_REG0 = DAC_Value;
    #endif // (WAVEFORM_LBB315PA_100_lvdt_00 == 1)
    }
    else if (FaultDiag == 1)
    {
    DAC_REG0 = 0x0000;
    }
    else if (FaultDiag == 2)
    {
    DAC_REG0 = 0x0FFF;
    }

    /*
    * Application specific Pcoefficient Calculation
    * Dn = H + G * PADC/2^14 + N * (PADC/2^14)^2
    * DAC = Dn
    * Please refer compensation algorithm document.
    */
    coeffP = (NtempCoeff[VarI] * FIR_AccadcValue[0]);
    coeffP = (coeffP >> 14);
    coeffP = coeffP + GtempCoeff[VarI];
    coeffP = (coeffP * FIR_AccadcValue[0]);
    coeffP = (coeffP >> 14);
    coeffP = coeffP + HtempCoeff[VarI];
    DAC_Value = (S2)(coeffP);

    vi = ADC3_VI_DATA;
    ptat = ADC3_PTAT_DATA;
    coil3 = ADC3_COIL3_DATA;
    }
    ------------------------------------------------------------------------------------------

    How is the good way to disable compensation algorithm? directly in the code.
    is there a reg related on the gui?
    Is this problem is in relation with my précédent post?
    How is the way, the good method, have you a documentation to calculate compensation coefficient depending of the application?
    In the software user guide, i read the application software, but it dosen't help me.

    Best regards,

    Yannick Bouchet