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 ADC未启动(RDY引脚未更改)

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/565679/afe4300-afe4300-adc-not-starting-up-rdy-pin-unchanged

部件号:AFE4300

您好,

 

我在让AFE4300启动ADC测量时遇到问题。 我开始使用一款使用TI的参考设计设计设计的新主板。 正在尝试通过Arduino UNO与主板通信。

 

这就是发生的情况

 

  1. 我能够在SPI上与AFE4300建立通信。 我已监控了CRO上的SPI时钟和数据,并且它正常。
  2. 我可以写入设备控制寄存器,也可以读回数据(读取后我又写回了数据),所有数据似乎都正常。
  3. 设备前端已通电。 我通过检查测量值~1.7V的VLDO来完成此操作。
  4. 我已使用分压器将50mV输入连接到Wight测量输入的INP1和INM1。 分压器由1.7V VLDO激发。
  5. 之后,我希望看到RDY (bar)提供脉冲以指示ADC测量就绪。 但我在RDY引脚上看不到任何内容(始终保持高位)
  6. 以下是AM如何写入AFE寄存器的代码片段。 (注意:使用SPI调用实现写入和读取寄存器)

 

  serial.println ("初始化称重器");

   writeRegister (device_control_1,0x6005);//启动称重信号链

   serial.println (readRegister (device_control_1));//读取以检查

   writeRegister (device_control_1,0x6005);//写回

   

   writeRegister (ADC_CONTINT_REGISTER,0x4140);//差分测量模式,128 SPS    

   serial.println (readRegister (ADC_control_register));//读取以检查

   writeRegister (ADC_CONTINT_REGISTER,0x4140);//写回

   

   writeRegister (ADC_CONTINT_REGISTER_2,0x0000);//ADC选择磅秤的输出

   serial.println (readRegister (ADC_CONTING_REGISTER_2);       //读取以检查

   writeRegister (ADC_CONTINT_REGISTER_2,0x0000);                   //写回

   

   writeRegister (weight_scale_control,0x0000);//增益= 1 DAC偏移= 0

   serial.println (readRegister (weight_scale));           //读取以检查

   writeRegister (weight_scale_control,0x0000);                      //写回

      

   writeRegister (BCM_DAC_FREQ,0x0040);//频率=默认值

   writeRegister (device_control_2,0x0000);

   writeRegister (IQ_MODE_ENABLE,0x0000);//禁用IQ模式

   writeRegister (ISW_Matrix,0x0000);//通道IOUTP1和IOUTN0

   writeRegister (VSW_Matrix,0x0000);//通道VSENSEP1和VSENSEN0

 

任何潜在客户都将有很大帮助

 

此致,

Shankar

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

    这是因为ADC已断电。 将"ADC_CONTROL _REGISTER1"设置更改为:

    writeRegister (ADC_CONTINT_REGISTER1,0x41C0);

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

    您好Prabin,

    我会尝试这种方法,但如果这种方法有效,那就很奇怪了,因为根据数据表ADC_PD是一个断电引脚,当我们向它写入1时,它会断电,当我们向它写入0时,它会在连续模式下通电。 这是数据表(第21页)的摘录。

    位7 ADC_PD:ADC断电
    此位将关闭ADC_PGA和ADC。 默认情况下,ADC断电(ADC_PDN ='1')。
    对于连续传送模式,该位必须设置为'0'。
    对于单次激发模式,该位必须与位15一起设置为'1'。 在单次激发转换模式下,设备
    自动为ADC通电,触发一个ADC转换,然后关闭ADC。

    无论如何,我会尝试并发布我的回复。

    ////////////////////////////////////////////////////////////////////////////////////////////

    已测试更改(writeRegister (ADC_CONTINT_REGISTER1,0x41C0);).  ADC未按预期打开。  

    请建议您还可以查看哪些内容

    //////////////////////////////////////////////////////////////////////////////

    此致,

    Shankar

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

    您是正确的ADC_PDN位应为0。
    您是否为设备提供1MHz clk?

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

    您好Prabin,

    是的,我使用1MHz晶体振荡器给的正是1MHz,我也在示波器上检查和验证了这一点。

    顺便提一下,还有一件事。 最大电压额定值是否也适用于时钟? 生成的时钟在5V AM时很高,担心电压水平!

    此致,
    Shankar

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

    您好Shankar:

    您正在使用的振荡器的部件号是多少?
    是,最大电压额定值也适用于CLK。 因此,将液位降低到AVDD。
    您是否还可以在所有寄存器已读注释的情况下尝试相同的寄存器设置。

    此致,
    Prabin。

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

    您好Prabin,

    问题似乎出在我的电平转换器模块上,我使用这些模块将电压电平从5V转换为3.3V。 在一小段时间内,我直接以5V运行AFE4300 (我知道不应该这样做,但作为最后的选择,我尝试了) 它触发了ADC,我在RDY引脚上获得脉冲,当我在INM1和INP1上输入20mV时,我也读取了ADC上的适当值。  

    目前,AM正在研究Arduino UNO的任何合适的替代产品,该产品可生成3.3V而不是5V。

    另一个问题是,我打算使用的负载单元的励磁额定值为10V至15V,但板载VLDO仅为1.7V。 我们如何处理这一问题? 我们能否通过外部电源激发称重传感器?

    此致,

    Shankar

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

    很高兴知道您发现了问题。
    有关测压元件激励的问题,您可以参阅以下帖子。
    e2e.ti.com/.../125.9489万

    此致,
    Prabin
x 出现错误。请重试或与管理员联系。