This commit is contained in:
jess 2026-06-09 16:10:55 -07:00
parent cbfa931fe4
commit cf3aa05426
2 changed files with 6 additions and 10 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 KiB

After

Width:  |  Height:  |  Size: 179 KiB

View File

@ -270,6 +270,7 @@ static void configure_freq(float freq_hz)
static int32_t sign_extend_18(uint32_t v)
{
v &= 0x3FFFF; /* DFT register is 18-bit; mask off ECC/status junk in upper bits */
return (v & (1UL << 17)) ? (int32_t)(v | 0xFFFC0000UL) : (int32_t)v;
}
@ -297,31 +298,26 @@ static void dft_measure_pair(
AD5940_AFECtrlS(AFECTRL_WG | AFECTRL_ADCPWR, bTRUE);
settle(freq_hz, 2.0f, 100);
AD5940_ClrMCUIntFlag();
AD5940_INTCClrFlag(AFEINTSRC_DFTRDY);
AD5940_AFECtrlS(AFECTRL_ADCCNV | AFECTRL_DFT, bTRUE);
while (!AD5940_GetMCUIntFlag())
while (!AD5940_INTCTestFlag(AFEINTC_1, AFEINTSRC_DFTRDY))
vTaskDelay(1);
AD5940_AFECtrlS(AFECTRL_ADCCNV | AFECTRL_DFT, bFALSE);
AD5940_INTCClrFlag(AFEINTSRC_DFTRDY);
out1->Real = sign_extend_18(AD5940_ReadAfeResult(AFERESULT_DFTREAL));
out1->Image = sign_extend_18(AD5940_ReadAfeResult(AFERESULT_DFTIMAGE));
out1->Image = -out1->Image;
/* switch ADC mux, flush stale pipeline, settle one period */
/* switch ADC mux, settle one period */
AD5940_ADCMuxCfgS(mux2_p, mux2_n);
AD5940_ReadAfeResult(AFERESULT_DFTREAL);
AD5940_ReadAfeResult(AFERESULT_DFTIMAGE);
AD5940_INTCClrFlag(AFEINTSRC_DFTRDY);
settle(freq_hz, 1.0f, 50);
AD5940_ClrMCUIntFlag();
AD5940_INTCClrFlag(AFEINTSRC_DFTRDY);
AD5940_AFECtrlS(AFECTRL_ADCCNV | AFECTRL_DFT, bTRUE);
while (!AD5940_GetMCUIntFlag())
while (!AD5940_INTCTestFlag(AFEINTC_1, AFEINTSRC_DFTRDY))
vTaskDelay(1);
AD5940_AFECtrlS(AFECTRL_ADCCNV | AFECTRL_DFT |
AFECTRL_WG | AFECTRL_ADCPWR, bFALSE);
AD5940_INTCClrFlag(AFEINTSRC_DFTRDY);
out2->Real = sign_extend_18(AD5940_ReadAfeResult(AFERESULT_DFTREAL));
out2->Image = sign_extend_18(AD5940_ReadAfeResult(AFERESULT_DFTIMAGE));