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.

[参考译文] AFE4404EVM:红色和红外 LED 信号非常低、几乎为0

Guru**** 2614265 points
Other Parts Discussed in Thread: AFE4404

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/660331/afe4404evm-the-red-and-ir-leds-signals-are-really-low-being-almost-0

器件型号:AFE4404EVM
主题中讨论的其他器件:AFE4404

您好!

请帮助客户解决问题。

当我将电路板连接到 PC 时、我可以看到绿色 LED 和红色 LED 正在工作、但当我处于捕获模式时、绿色 LED 正在工作。 此外、红色和红外 LED 信号实际上很低、几乎为0。 我阅读 SFH 7050数据表、了解所有 LED 的工作电流是多少、但即使正确配置 LED 也无法正常工作。 我附上一张图片。

此致、

Julie Ann

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

    绿色 LED 捕获 HR 比红色容易得多。 您可能需要尝试向上泵 LED 电流和增益级、以查看红色 LED 的 HR
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回答。 我增加了红色和红外 LED 电流、我得到了更好的响应。 Hover串 的噪音很高 、而且不总是使用相同的平均值、在某些情况下、噪音比其他的高(我使用的是 PC 电池电源)。 我能得到更好的回应吗? 我给你附加了一张图片。

     提前感谢您、Joan

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

    Joan、

    在测量时、噪声可能取决于许多因素。 尝试不要插入 PC、我认为您是这样做的。 在不同的位置尝试测试设置。 有关测试器件和 EVM 的更多信息、请参阅用户指南和数据表。

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

    您好、Amy、

    同一位客户仍然有问题。 我随函附上了以下详细信息。

    我正在尝试使用 Arduino 板控制 AFE 4404 EVM。 但我的 I2C 通信有问题。 我在发送地址后恢复 ACK 脉冲、但似乎无法在器件中写入数据。

    我已从 AFE 4404 EVM GUI 中复制配置寄存器。 电源如下:

    RX_SUP=3.3V

    IO_SUP=3.3V

    TX_SUP=5V

    I2C_SCL=4.8V

    I2C_SDA=4.8V

    I2C 时钟的工作频率为400kHz。

    下面是我使用的代码:

    #include /* I2*/
    
    
    字节 AFE_ADDR=0x58;/* AFE 地址*/
    字节 EEPROM_ADDR = 0x50;/* EEPROM 地址*/
    int ADCRST=2;/* ADC_RDY*/
    unsigned long EEPROM_Internal_ADDR=0;/内部 EEPROM 地址*/
    int CLK=3;
    long Retal=0;/* intradc=0*;/in_dac
    
    _boo=0*// boo=0* intrl;// t_boo_boost=0* intrag_s*;t_boos=0* intradc = 0*
    
    
    
    
    
    int Leer=0;
    bool flag_adc=0; 
    const 字节 Pin_RESETZ=8; 
    #define RESETZ 0x0 /*重置值*/
    ******* 内部 AFE 寄存器******* /*ADC
    
    
    
    读出寄存器*/
    int Reg_lectura [6]={
    
    /*AFE_LED2VAL*/ 0x2a、
    /*AFE_ALED2VAL*/ 0x2b、
    /*AFE_LED1VAL*/ 0x2C、
    /*AFE_ALED1VAL*/ 0x2D、
    /*AFE_LED2_ALED2VAL*/ 0x2E、
    /*AFE_LED1_ALED1VAL*/ 0x2F
    、};
    
    /******* 内部 AFE 设置******* /
    
    长设置[][2]={
    
    /*注册*/ /*Data*/*AFE4404
    control0 {0x0、 0x1}、*/
    /* AFE4404 LED2STC*/ {0x1、 0x64}、
    /* AFE4404 LED2ENDC*/ {0x2、 0x18F},
    /* AFE4404 LED1LEDSTC*/ {0x3、 0x322},
    /* AFE4404 LED1LEDENDC*/ {0x4、 0x4B1}、
    /* AFE4404 ALED2STC*/ {0x5、 0x1F5}、
    /* AFE4404 ALED2ENDC*/ {0x6、 0x320}、
    /* AFE4404 LED1STC*/ {0x7、 0x386},
    /* AFE4404 LED1ENDC*/ {0x8、 0x4B1}、
    /* AFE4404 LED2LEDSTC*/ {0x9、 0x0},
    /* AFE4404 LED2LEDENDC*/ {0xA、 0x18F},
    /* AFE4404 ALED1STC*/ {0xB、 0x517}、
    /* AFE4404 ALED1ENDC*/ {0xC、 0x642}、
    /* AFE4404 LED2CONVST*/ {0xD、 0x199},
    /* AFE4404 LED2CONVEND*/ {0xE、 0x5BC},
    /*AFE4404 ALED2CONVST*/ {0xF、 0x5C6},
    /* AFE4404 ALED2CONVEND*/ {0x10、 0x9E9}、
    /* AFE4404 LED1CONVST*/ {0x11、 0x9F3}、
    /* AFE4404 LED1CONVEND*/ {0x12、 0xE16},
    /*AFE4404 ALED1CONVST*/ {0x13、 0xE20},
    /*AFE4404 ALED1CONVEND*/ {0x14、 0x1243}、
    /*AFE4404 ADCRSTCT0*/ {0x15、 0x191}、
    /* AFE4404 ADCRSTENDCT0*/ {0x16、 0x197},
    /* AFE4404 ADCRSTCT1*/ {0x17、 0x5BE}、
    /* AFE4404 ADCRSTENDCT1*/ {0x18、 0x5C4}、
    /* AFE4404 ADCRSTCT2*/ {0x19、 0x9EB}、
    /* AFE4404 ADCRSTENDCT2*/ {0x1A、 0x9F1}、
    /* AFE4404 ADCRSTCT3*/ {0x1B、 0xE18}、
    /* AFE4404 ADCRSTENDCT3*/ {0x1C、 0xE1E}、
    /* AFE4404 PRPCOUNT*/ {0x1D、 0x9C3F}、
    /* AFE4404 control1*/ {0x1E、 0x103}、
    /* AFE4404 TIAGAIN*/ {0x20、 0x8003}、
    /* AFE4404 TIA_AMB_GAIN*/ {0x21、 0x3}、
    /* AFE4404 LEDCNTRL*/ {0x22、 0x14D3F}、
    /* AFE4404 Control2*/ {0x23、 0x104018},
    /*AFE4404 CLKDIV1*/ {0x29、 0x0}、
    /* AFE4404 LED2VAL {0x2A、 0x8DA5}、
    /* AFE4404 ALED2VAL {0x2B、 0x10600}、
    /* AFE4404 LED1VAL {0x2C、 0x74C0}、
    /* AFE4404 ALED1VAL {0x2D、 0x5FAF}、
    /* AFE4404 LED2-ALED2VAL {0x2E、 0xFF8400}、
    /* AFE4404 LED1-ALED1VAL {0x2F、 0x1605},*/
    /* AFE4404 Control3*/ {0x31、 0x20},
    /* AFE4404 PDNCYCLESTC*/ {0x32、 0x1563},
    /* AFE4404 PDNCYCLEENDC*/ {0x33、 0x991F}、
    /* AFE4404 PROG_TG_STC*/ {0x34、 0x0}、
    /* AFE4404 PROG_TG_ENDC*/ {0x35、 0x0}、
    /* AFE4404 LED3LEDSTC*/ {0x36、 0x191},
    /* AFE4404 LED3LEDENDC*/ {0x37、 0x320}、
    /* AFE4404 CLKDIV2*/ {0x39、 0x0},
    /*AFE4404 OFFDAC*/ {0x3A、 0x0}、
    
    
    
    
    };
    void setup(){
    
    Serial.begin(9600);
    
    /******* ADC 中断******* /
    pinMode (ADCRST、INPUT);/*当 ADC_RDY 产生脉冲时,该引脚连接到 ADC_RDY 以生成中断*/
    attachInterrupt (digitalPinToInterrupt (ADCRST)、Interrupt1、Rising);
    /******* configuración I2C *** /
    Wire.begin();
    Wire.setClock(400000);/*(400kHz)*/ 
    
    
    PinMode (PIN_RESETZ、OUTPUT);
    
    
    digitalWrite (Pin_RESETZ、low);
    delay (50);
    digitalWrite (Pin_RESETZ、high);
    
    /*AFE 重置*/
    flag_RESETZ=0;
    Serial.print ("flag_RESETZ=");
    Serial.print (flag_RESETZ);
    
    AFE_RESETZ_Init ();
    
    FLAG_RESETZ=1;
    Serial.print ("FLAG_RESETZ=");
    Serial.print (FLAG_RESETZ);
    
    /*AFE init*/
    flag_init=0;
    Serial.print (";flag_init=");
    Serial.println (flag_init);
    
    AFE_Init_Settings();
    
    flag_init=1;
    Serial.print (";flag_init=");
    Serial.println (flag_init);
    
    }
    
    void loop(){
    
    if (flag_adc==1){
    read_adc ();
    cont_adc++;
    Serial.print (";cont_adc=");
    Serial.println (cont_adc);
    flag_adc=0;
    }
    
    }
    
    / //*
    用户功能 */
    ********* /*Reset
    
    
    function*/
    void AFE_RESETZ_Init(){I2C_write(AFE_ADDR,
    
    0x0, 0x0);
    
    }/**用于
    发送配置的函数*/
    void AFE_Init_Settings(){
    int i=0;
    for (i=0;i<=43;i++){
    
    I2C_WRITE (AFE_ADDR、设置[I][1]、设置[I][2]);
    }
    
    
    
    /*** 中断函数*** /
    void Interrupt1 (){
    
    flag_adc=1;
    }
    void read_adc(){
    int j=0;
    for (j=0;j<=5;j++){
    I2C_Read (AFE_ADDR、ReG_lectura [j]、3);
    EEPROMWritelong (EEPROM_ADDR、EEPROM_Internal_ADDR、V_code);
    
    
    }
    J=0;
    
    }
    
    / //*
    写入 I2C 上的 AFE */
    ********* /
    void I2C_write (int slave_address、byte reg_address、unsigned long configData)
    {
    
    int ACK;
    Wire.beginTransmission (slave_address);
    Wire.write (reg_address);
    Wire.write ((configData >> 16)& 0xFF);
    Wire.write(configData >> 8)&
    0xFF);Wire.write=
    
    Transmission
    (Serial.ACK);print.end.ACK (Serial Transmission);print.ACK (configdata)
    
    
    
    
    
    / //*
    读取 I2C 上 AFE 的数据 */
    ********* /
    char I2C_read (int slave_address、unsigned long reg_address、int byteCount)
    {
    
    int m=0;
    Wire.beginTransmission(slave_address);
    Wire.write (reg_address);
    Wire.endTransmission ();
    Wire.requestFrom (slave_address、 3);
    while (Wire.Available ()&&(byteCount!= 0)
    ){
    v_code.[m]=Wire.read ();
    
    字节计数--;
    M++;
    }
    
    
    返回(V_code);
    
    }
    
    
    
    /* 写入 I2C EEPROM */
    ********* /
    
    空 EEPROMWritelong (字节 SLAVE_ADDRESS、unsigned long EEPROM_INTERNAL、int 值[])
    {
    int k=0;
    
    for (k=0;k<=2;k++){
    Wire.beginTransmission(slave_address);
    Wire.write (EEPROM_INTERNAL);
    Wire.write (value[k]);
    wire.endTransmission ();
    EEPROM_Internal_ADDR=EEPROM_Internal_ADDR+1;
    
    }
    
    } 

    你知道会发生什么吗?

    提前感谢您、Joan

    感谢您的支持。

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

    似乎 I2C 线路被上拉至5V。
    AFE4404 IO_SUP 电压电平为3.3V。
    I2C 线路必须上拉至 IO_SUP 电压电平。