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.

[参考译文] AFE4300:AFE4300

Guru**** 2015290 points
Other Parts Discussed in Thread: AFE4300
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/713849/afe4300-afe4300

器件型号: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、它一直在下降、然后在没有明显模式的情况下增加。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Besel:

    您是否为其他基准电阻器(100欧姆)获得了相同的相位?
    如果即使对于另一个电阻器、也会得到相同的相位、则这可能是由于硼上的一些寄生效应、您可以通过实际测量进行补偿。
    为了确保一切正常、我建议测量一个未知的电阻器、并在处理真实的身体之前获得一致的结果。

    此致、
    Prabin
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Prabin、您好!

    另一个电阻器的相位略有不同、对于500欧姆电阻器、我们得到~-33.39;对于100欧姆、我们得到~-34.84  

    420欧姆的外部电阻器的测量值得到相位得到以下结果:

    -32.678

    32.65

    -32.673

    -32.664

    -32.667

    我认为可以肯定地说、结果是一致的。

    使用并行 RC 网络时出现问题,结果如下所示:

    R = 359 Ω、 C = 1190pF

    时间   用杀菌 RX 相位   校准后的相位
    12:21 -23.7154 33.3507 9.635321728
    12:30 -23.8027 33.3601 9.557403596
    12:38 -23.8248 33.3529 9.528103844
    12:40 -23.8408 33.3317 9.490876582
    12:43 -23.847 33.3482 9.501255583
    12时46分 -23.8629 33.3388 9.475883598
    12:48 -23.8408 33.3317 9.490876582
    12:52 -23.8629 33.3435 9.480586925
    1:39 -23.7264 33.3364 9.60993759
    1:43 -23.6932 33.3578 9.664649
    1:44 -23.8027 33.3364 9.533694044
    1:46 -23.89 33.3529 9.462961393
    1:49 -23.8519 33.3364 9.484507334
    1:51 -23.858 33.346 9.487927387
    1:53 -23.8629 33.3317 9.468734335
    1:56 -23.901 33.3341 9.433079518
    2:07 -23.9883 33.3435 9.355239349
    2:14 -23.9993 33.3364 9.337035104
    2:16 -23.6883 33.3364 9.648066429
    2:20 -23.5184 33.3554岁 9.837009935

     此致

    巴塞尔