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.

[参考译文] AFE4490:ATE4490 SPI 不读取

Guru**** 2526830 points


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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/853686/afe4490-ate4490-spi-does-not-read

器件型号:AFE4490

大家好、我正在尝试使用 NXP iMX RT1064 MCU 从 ATE4490读取一些寄存器。 请参阅随附的波形、您可以在其中看到蓝色的时钟和黄色的 MOSI 信号。 我最初将这4个字节发送到 CONTROL0:uint8_t CONTROL0ReadBuffer[4]={0x00、0x00、0x00、0x0F};在我发送其他4个字节读取 LED2VAL 之后:buffer[4]={0x2A、0x00、0x00、0x00};

请您仔细检查我缺少配置的内容。 可能 SPI 波特率大约为100KHz;我还验证了复位引脚(引脚20)和断电 PI (引脚29)被上拉为高电平。

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

    是否有任何机构可以在这方面提供帮助?

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

    您好 Farid Mabrouk、

    1) 1)引脚20为 ADE_PDN
    2) 2)引脚29复位
    3)如果设置了诊断位(DIAG_EN)(0x00[2:2])、则 ADC 数据无效、因为切换了诊断开关。
    4)如果软件复位位位(SW_RST)被置位(0x00[3:3])、则应用软件复位。 将所有内部寄存器复位为默认值、并将自清零设置为"0"

    此致、

    Midhun Raveendran

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

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

    您能看到我刚才发送的屏幕截图吗? 我正在尝试从寄存器 DIAG (地址:0x30)读取数据、但没有任何结果:我正在发送这组数据、如屏幕截图中所示:uint8_t buffer[12]={0x00、0x00、0x00、0x04、0x00、0x00、0x00、0x01、0x30、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00};

    该数据包有什么问题(多写、读取)? 我的 SPI 时钟为500kHz (太大了)

    请尽快帮我解决这个问题!!

    谢谢、

    Farid

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

    请帮助!

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

    您好 Farid Mabrouk、

     为了从任何寄存器读取、您需要设置 SPI_READ 位。

    此致、

    Midhun Raveendran

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

    感谢大家的回复。 我设法解决了这个问题。 我必须每帧发送32位。 我一次发送一个字节(CS 需要在整个4个字节内为低电平)。

    现在还有另一个问题:我正在读取 LED1VAL 的合理值。 但是、我始终从 LED2VAL 寄存器读取0x1FFF19值。 我怀疑这与我的默认设置有关。 是否有人可以查看下面的设置并告诉我它们是否正确?

    静态 uint32_t AFE4490DefaultsRegs[49]={
       //Reg0:control0:控制寄存器0
       0x00000、
         //Reg1:REDSTARTCOUNT:红色样本开始计数
       6000、
           //Reg2:REDENDCOUNT:红色结束计数采样
       7599、
           //Reg3:REDLEDSTARTCOUNT:红色 LED 开始计数
       6000、
           //Reg4:REDLEDENDCOUNT:红色 LED 结束计数
       7599、
       //Reg5:AMBREDSTARTCOUNT:环境红色样本开始计数
       0000、
       //Reg6:AMBREDENDCOUNT:环境红色采样结束计数
       1599、
       //Reg7:IRSTARTCOUNT:采样 IR 开始计数
       2000年、
           //Reg8:IRENDCOUNT:采样 IR 结束计数
       3599、
           //Reg9:IRLEDSTARTCOUNT:IR LED 启动计数
       2000年、
       //Reg10:IRLEDENDCOUNT:IR LED 结束计数
       3599、
       //Reg11:AMBIRSTARTCOUNT:采样环境 IR 开始计数
       4000、
           //Reg12:AMBIRENDCOUNT:环境红外结束计数采样
       5599、
       //Reg13:REDCONVSTART:REDCONVST
       2、
       //Reg14:REDCONVEND:红色转换结束计数
       1999年、
       //Reg15:AMBREDCONVSTART:红色环境转换开始计数
       2002年、
       //Reg16:AMBREDCONVEND:红色环境转换结束计数
       3999、
       //Reg17:IRCONVSTART:IR 转换开始计数
       4002、
       //Reg18:IRCONVEND:IR 转换结束计数
       5999、
       //Reg19:AMBIRCONVSTART:红外环境转换开始计数
       6002、
       //Reg20:AMBIRCONVEND:红外环境转换结束计数
       7999、
       //Reg21:ADCRESETSTCOUNT0:ADC 复位0开始计数
       0、
       //Reg22:ADCRESETENDCOUNT0:ADC 复位0结束计数
       0、
       //Reg23:ADCRESETSTCOUNT1:ADC 复位1开始计数
       2000年、
       //Reg24:ADCRESETENDCOUNT1:ADC 复位1结束计数
       2000年、
       //Reg25:ADCRESETENDCOUNT2:ADC 复位2开始计数
       4000、
       //Reg26:ADCRESETENDCOUNT2:ADC 复位2结束计数
       4000、
       //Reg27:ADCRESETENDCOUNT3:ADC 复位3开始计数
       6000、
       //Reg28:ADCRESETENDCOUNT3:ADC 复位3结束计数
       6000、
       //Reg29:PRPCOUNT:脉冲重复周期计数 默认为7999
       20000、
       //Reg30:CONTROL1:控制寄存器1
       0x00107、 //启用定时器、Averages=3、PD_ALM 和 LED_ALM 引脚上的红色和 IR LED 脉冲
       //Reg31:?:???
       0x00000、
       //Reg32:TIAGAIN:跨阻抗放大器增益设置寄存器
       0x00000、
       //Reg33:TIA_AMB_GAIN:跨阻抗 AAMPLIFIER 和环境 CANELLATION 级增益
       0x00000、
       //Reg34:LEDCNTRL:LED 控制寄存器
       0x11414、
       //Reg35:Control2:控制寄存器2
       0x00000、//位9
       //Reg36:????
       0x00000、
       //Reg37:???
       0x00000、
       //Reg38:???
       0x00000、
       //Reg39:???
       0x00000、
       //Reg40:??
       0x00000、
       //Reg41:报警:???
       0x00000、
       //Reg42:REDVAUE:红色数字采样值
       0x00000、
       //Reg43:AMBREDVAUE:环境红色数字采样值
       0x00000、
       //Reg44:IRVALUE:IR 数字采样值
       0x00000、
       //Reg45:AMBIRVALUE:环境红外数字采样值
       0x00000、
       //Reg46:RED-AMBREDVAUE:红色环境红色数字采样值
       0x00000、
       //Reg47:IR-AMBIRVALUE:红外环境红外数字采样值
       0x00000、
       //Reg48:DIGNOSTICS:诊断标志寄存器
       0x00000

    谢谢!

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

    任何 TI 技术工程师都能回答我的问题吗、请!

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

    您好 Farid Mabrouk、

      看起来您获得的值接近于饱和。 您可以降低 LED 电流和增益以脱离饱和状态并获得预期值。

    此致、

    Midhun Raveendran