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]