Post Go back to editing

CN0510 board and the data results generated using Analog Devices SensorPal software do not match the results generated by the software on github.

Category: Software

XLSX

I am using a CN0510 board and the data results generated using Analog Devices SensorPal software do not match the results generated by the software on github.
No boards were moved during this process, please help with this, thanks!

I printed the values of the registers, are these register values correct?

Hello AD5940-Build Time:10:00:22

This AD594x!

Note: Current Silicon is S2

AD5940LIB Version:v0.2.1

REG_AFE_SWMUX: 0x0 ,REG_AFE_ADCCON: 0x10607

REG_AFE_SEQCON: 0x1 ,REG_AFE_FIFOCON: 0x4800 ,REG_AFE_SEQCRC: 0x1 ,REG_AFE_SEQCNT: 0x0 ,REG_AFE_SEQTIMEOUT: 0x0 ,REG_AFE_DATAFIFORD: 0x1203dae ,REG_AFE_SEQSLPLOCK: 0xa47e5 ,REG_AFE_SEQTRGSLP: 0x0 ,REG_AFE_SEQ0INFO: 0x60023 ,REG_AFE_CMDFIFOWADDR: 0x27 ,REG_AFE_CMDDATACON: 0x489 ,REG_AFE_DATAFIFOTHRES: 0x20000 ,REG_AFE_SEQ3INFO: 0x0 ,REG_AFE_SEQ1INFO: 0x230000 ,REG_AFE_FIFOCNTSTA: 0x3fe0000 ,REG_AFE_SYNCEXTDEVICE: 0x4 ,REG_AFECON_TRIGSEQ: 0x0

AD5940Err AppBATMeasureRCAL(void)
{
	uint32_t buff[100];
	uint32_t temp;
	AD5940_INTCCfg(AFEINTC_0, AFEINTSRC_DATAFIFOTHRESH, bFALSE); /* Disable INT0 interrupt for RCAL measurement. */
	AppBATCfg.state = STATE_RCAL;
	 printf("REG_AFE_SWMUX: 0x%x ,", AD5940_ReadReg(REG_AFE_SWMUX));
    printf("REG_AFE_ADCCON: 0x%x \n", AD5940_ReadReg(REG_AFE_ADCCON));
    printf("REG_AFE_SEQCON: 0x%x ,", AD5940_ReadReg(REG_AFE_SEQCON));
    printf("REG_AFE_FIFOCON: 0x%x ,", AD5940_ReadReg(REG_AFE_FIFOCON));
    printf("REG_AFE_SEQCRC: 0x%x ,", AD5940_ReadReg(REG_AFE_SEQCRC));
    printf("REG_AFE_SEQCNT: 0x%x ,", AD5940_ReadReg(REG_AFE_SEQCNT));
    printf("REG_AFE_SEQTIMEOUT: 0x%x ,", AD5940_ReadReg(REG_AFE_SEQTIMEOUT));
    printf("REG_AFE_DATAFIFORD: 0x%x ,", AD5940_ReadReg(REG_AFE_DATAFIFORD));
    printf("REG_AFE_SEQSLPLOCK: 0x%x ,", AD5940_ReadReg(REG_AFE_SEQSLPLOCK));
    printf("REG_AFE_SEQTRGSLP: 0x%x ,", AD5940_ReadReg(REG_AFE_SEQTRGSLP));
    printf("REG_AFE_SEQ0INFO: 0x%x ,", AD5940_ReadReg(REG_AFE_SEQ0INFO));
    printf("REG_AFE_CMDFIFOWADDR: 0x%x ,", AD5940_ReadReg(REG_AFE_CMDFIFOWADDR));
    printf("REG_AFE_CMDDATACON: 0x%x ,", AD5940_ReadReg(REG_AFE_CMDDATACON));
    printf("REG_AFE_DATAFIFOTHRES: 0x%x ,", AD5940_ReadReg(REG_AFE_DATAFIFOTHRES));
    printf("REG_AFE_SEQ3INFO: 0x%x ,", AD5940_ReadReg(REG_AFE_SEQ3INFO));
    printf("REG_AFE_SEQ1INFO: 0x%x ,", AD5940_ReadReg(REG_AFE_SEQ1INFO));
    printf("REG_AFE_FIFOCNTSTA: 0x%x ,", AD5940_ReadReg(REG_AFE_FIFOCNTSTA));
    printf("REG_AFE_SYNCEXTDEVICE: 0x%x ,", AD5940_ReadReg(REG_AFE_SYNCEXTDEVICE));
    printf("REG_AFECON_TRIGSEQ: 0x%x \n,", AD5940_ReadReg(REG_AFECON_TRIGSEQ));
	if(AppBATCfg.SweepCfg.SweepEn)
	{
		uint32_t i;
    for(i=0;i<AppBATCfg.SweepCfg.SweepPoints;i++)
    {
      AD5940_SEQMmrTrig(SEQID_0);
			while(AD5940_INTCTestFlag(AFEINTC_1, AFEINTSRC_DATAFIFOTHRESH) == bFALSE);
			printf("i: %d   Freq: %.2f ",AppBATCfg.SweepCfg.SweepIndex, AppBATCfg.SweepCurrFreq);
			AppBATISR(buff, &temp);
			AppBATCfg.RcalVoltTable[i][0] = AppBATCfg.RcalVolt.Real;
			AppBATCfg.RcalVoltTable[i][1] = AppBATCfg.RcalVolt.Image;
			printf(" RcalVolt:(%f,%f)\n",  AppBATCfg.RcalVoltTable[i][0], AppBATCfg.RcalVoltTable[i][1]);
			AD5940_Delay10us(10000);
    }
		AppBATCfg.RcalVolt.Real = AppBATCfg.RcalVoltTable[0][0];
		AppBATCfg.RcalVolt.Image = AppBATCfg.RcalVoltTable[0][1];
	}else
	{
		AD5940_SEQMmrTrig(SEQID_0);
		while(AD5940_INTCTestFlag(AFEINTC_1, AFEINTSRC_DATAFIFOTHRESH) == bFALSE);
		AppBATISR(buff, &temp);
	}
	AD5940_INTCCfg(AFEINTC_0, AFEINTSRC_DATAFIFOTHRESH, bTRUE);
	return 0;
}

I have uploaded the data.



Increased register values
[edited by: menglinwang at 11:04 AM (GMT -5) on 31 Jan 2024]
Parents Reply
  • I can get correct results with this version of the programme, are you using EVA_AD5941BATZ? Check the hardware for any damage, this is something I'm doing as well, I have 2 EVA_AD5941BATZ right now, a good one and a bad one, and the demo of the bad one gives random results as well, I'm checking the hardware where it's damaged.

Children