请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:AFE4300 你(们)好
我们在 IQ 模式下使用 AFE4300、但我们获得的结果有问题、我们将解释我们为设置器件所做的工作:
首先、我们使用2个校准电阻器(500和100欧姆)正确完成幅度校准、没有任何问题、因为对于我们获取500欧姆电阻器的 I 和 Q 结果的相位、我们得到的参考相位大约为33.22。
这是我们正在使用的状态机的示例代码:
案例0: // Board_analog_enable
SPI_INIT_STACH = 1;
PIN_setOutputValue (perHandle、PIN_ID (Board_analog_enable)、1);
Util_eliteduleClock (&sMClock、100);
Util_startClock (sMClock);
中断;
情况1://复位脉冲
Util_stopClock (&sMClock);
SPI_INIT_STACH = 2;
PIN_setOutputValue (perHandle、PIN_ID (Board_Sensor_Reset)、1);/Basel
Util_eliteduleClock (&sMClock、1500);
Util_startClock (sMClock);
中断;
情况2://复位脉冲
Util_stopClock (&sMClock);
SPI_INIT_STACH = 3;
PIN_setOutputValue (perHandle、PIN_ID (Board_Sensor_Reset)、0);/Basel
Util_eliteduleClock (&sMClock、2);
Util_startClock (sMClock);
中断;
案例3: //复位脉冲
Util_stopClock (&sMClock);
SPI_INIT_STACH = 4;
PIN_setOutputValue (perHandle、PIN_ID (Board_Sensor_Reset)、1);/Basel
Util_eliteduleClock (&sMClock、5);
Util_startClock (sMClock);
中断;
案例4://打开 SPI 驱动器并启动 PWM 时钟,该时钟馈入 AFE4300的1MHz 时钟
Util_stopClock (&sMClock);
SPI_INIT_STACH = 14;
//在缓冲区中设置 regs adata
索引= 0;
txbufInitAFE[index++]= BCM_CON_BCM_DAC_FREQ_ADD |写入;
txbufInitAFE[index+]=(0x0000 >> 8);
txbufInitAFE[index+]=(0x0000 & 0x00FF);
//器件控制寄存器2复位
txbufInitAFE[index++]= device_Control2_Add | write;
txbufInitAFE[index+]=(0x0000 >> 8);
txbufInitAFE[index+]=(0x0000 & 0x00FF);
//set frequenccyf
txbufInitAFE[index++]= BCM_CON_BCM_DAC_FREQ_ADD |写入;
txbufInitAFE[index++]=(FREQ_64_DAC >> 8);
txbufInitAFE[index++]=(FREQ_64_DAC 和0x00FF);
//器件控制寄存器2
txbufInitAFE[index++]= device_Control2_Add | write;
txbufInitAFE[index++]=(IQ_64_DEMOD_CLOCK >> 8);
txbufInitAFE[index++]=(IQ_64_DEMOD_CLOCK & 0x00FF);
AFESPI_OPEN (perI_spiBufRCVDHandler);
AFECCLOCK_Start();
Util_eliteduleClock (&sMClock、20);
Util_startClock (sMClock);
中断;
案例14:
Util_stopClock (&sMClock);
SPI_INIT_STACH = 5;
firstTimeGPTInt = false;
regIndex = 0;
GPTimerCC26XX_enableInterrupt (shandle、GPT_INT_CAPTURE);
Util_eliteduleClock (&sMClock、2);
Util_startClock (sMClock);
中断;
情况5:
Util_stopClock (&sMClock);
// SPI_init_state = 6;
initAFE4300Chip();
afeWorking = true;
dataCount = 0;
DataReady = false;
Util_eliteduleClock (&sMClock、20);
Util_startClock (sMClock);
中断;
案例6:
Util_stopClock (&sMClock);
spi_init_state =15;
spiAcqTransaction.rxBuf =&Xc_Result[0];
RXCal = true;
writeToRegister (0x10、XC_DATA_ACQ);
Util_eliteduleClock (&sMClock、1000);
Util_startClock (sMClock);
中断;
案例30:
Util_stopClock (&sMClock);
startReadyinterrupt = false;
setDefaultElectrodesInput();
Util_eliteduleClock (&sMClock、1000);
Util_startClock (sMClock);
中断;
案例15:
Util_stopClock (&sMClock);
SPI_INIT_STACH = 20;
XCsum = 0;
XcCount = 0;
RSUM = 0;
RCount = 0;
printCounter = 0;
startReadyinterrupt = true;
Util_eliteduleClock (&sMClock、2);
Util_startClock (sMClock);
中断;
案例7: //只有当一个就绪中断发生时才会到达此处
Util_stopClock (&sMClock);
SPI_init_state = 20; //exit SM 将在事务完成后返回到状态8或9
DataReady = true;
readDataTransaction(); //通过 SPI 事务读取就绪数据
Util_eliteduleClock (&sMClock、2);
Util_startClock (sMClock);
中断;
当我们在内部时钟正边沿之一上收到中断时、DAC 频率和器件 control2寄存器会被写入正确、它与同步 SPI/器件 CLKS 一样接近、然后我们写入其余寄存器并启动继续模式。
我们在电阻器||电容器的采样网络上的结果不是100%一致、随着实际结果的时间推移会有一些增加和减少、 当在人体上进行测试时、整个东西都是干线、我们得到一个等于12的相位、例如、第一次尝试11、然后8、它一直在下降、然后在没有明显模式的情况下增加。

谢谢
巴塞尔
你(们)好
我们在 IQ 模式下使用 AFE4300、但我们获得的结果有问题、我们将解释我们为设置器件所做的工作:
首先、我们使用2个校准电阻器(500和100欧姆)正确完成幅度校准、没有任何问题、因为对于我们获取500欧姆电阻器的 I 和 Q 结果的相位、我们得到的参考相位大约为33.22。
这是我们正在使用的状态机的示例代码:
案例0: // Board_analog_enable
SPI_INIT_STACH = 1;
PIN_setOutputValue (perHandle、PIN_ID (Board_analog_enable)、1);
Util_eliteduleClock (&sMClock、100);
Util_startClock (sMClock);
中断;
情况1://复位脉冲
Util_stopClock (&sMClock);
SPI_INIT_STACH = 2;
PIN_setOutputValue (perHandle、PIN_ID (Board_Sensor_Reset)、1);/Basel
Util_eliteduleClock (&sMClock、1500);
Util_startClock (sMClock);
中断;
情况2://复位脉冲
Util_stopClock (&sMClock);
SPI_INIT_STACH = 3;
PIN_setOutputValue (perHandle、PIN_ID (Board_Sensor_Reset)、0);/Basel
Util_eliteduleClock (&sMClock、2);
Util_startClock (sMClock);
中断;
案例3: //复位脉冲
Util_stopClock (&sMClock);
SPI_INIT_STACH = 4;
PIN_setOutputValue (perHandle、PIN_ID (Board_Sensor_Reset)、1);/Basel
Util_eliteduleClock (&sMClock、5);
Util_startClock (sMClock);
中断;
案例4://打开 SPI 驱动器并启动 PWM 时钟,该时钟馈入 AFE4300的1MHz 时钟
Util_stopClock (&sMClock);
SPI_INIT_STACH = 14;
//在缓冲区中设置 regs adata
索引= 0;
txbufInitAFE[index++]= BCM_CON_BCM_DAC_FREQ_ADD |写入;
txbufInitAFE[index+]=(0x0000 >> 8);
txbufInitAFE[index+]=(0x0000 & 0x00FF);
//器件控制寄存器2复位
txbufInitAFE[index++]= device_Control2_Add | write;
txbufInitAFE[index+]=(0x0000 >> 8);
txbufInitAFE[index+]=(0x0000 & 0x00FF);
//set frequenccyf
txbufInitAFE[index++]= BCM_CON_BCM_DAC_FREQ_ADD |写入;
txbufInitAFE[index++]=(FREQ_64_DAC >> 8);
txbufInitAFE[index++]=(FREQ_64_DAC 和0x00FF);
//器件控制寄存器2
txbufInitAFE[index++]= device_Control2_Add | write;
txbufInitAFE[index++]=(IQ_64_DEMOD_CLOCK >> 8);
txbufInitAFE[index++]=(IQ_64_DEMOD_CLOCK & 0x00FF);
AFESPI_OPEN (perI_spiBufRCVDHandler);
AFECCLOCK_Start();
Util_eliteduleClock (&sMClock、20);
Util_startClock (sMClock);
中断;
案例14:
Util_stopClock (&sMClock);
SPI_INIT_STACH = 5;
firstTimeGPTInt = false;
regIndex = 0;
GPTimerCC26XX_enableInterrupt (shandle、GPT_INT_CAPTURE);
Util_eliteduleClock (&sMClock、2);
Util_startClock (sMClock);
中断;
情况5:
Util_stopClock (&sMClock);
// SPI_init_state = 6;
initAFE4300Chip();
afeWorking = true;
dataCount = 0;
DataReady = false;
Util_eliteduleClock (&sMClock、20);
Util_startClock (sMClock);
中断;
案例6:
Util_stopClock (&sMClock);
spi_init_state =15;
spiAcqTransaction.rxBuf =&Xc_Result[0];
RXCal = true;
writeToRegister (0x10、XC_DATA_ACQ);
Util_eliteduleClock (&sMClock、1000);
Util_startClock (sMClock);
中断;
案例30:
Util_stopClock (&sMClock);
startReadyinterrupt = false;
setDefaultElectrodesInput();
Util_eliteduleClock (&sMClock、1000);
Util_startClock (sMClock);
中断;
案例15:
Util_stopClock (&sMClock);
SPI_INIT_STACH = 20;
XCsum = 0;
XcCount = 0;
RSUM = 0;
RCount = 0;
printCounter = 0;
startReadyinterrupt = true;
Util_eliteduleClock (&sMClock、2);
Util_startClock (sMClock);
中断;
案例7: //只有当一个就绪中断发生时才会到达此处
Util_stopClock (&sMClock);
SPI_init_state = 20; //exit SM 将在事务完成后返回到状态8或9
DataReady = true;
readDataTransaction(); //通过 SPI 事务读取就绪数据
Util_eliteduleClock (&sMClock、2);
Util_startClock (sMClock);
中断;
当我们在内部时钟正边沿之一上收到中断时、DAC 频率和器件 control2寄存器会被写入正确、它与同步 SPI/器件 CLKS 一样接近、然后我们写入其余寄存器并启动继续模式。
我们在电阻器||电容器的采样网络上的结果不是100%一致、随着实际结果的时间推移会有一些增加和减少、 当在人体上进行测试时、整个东西都是干线、我们得到一个等于12的相位、例如、第一次尝试11、然后8、它一直在下降、然后在没有明显模式的情况下增加。