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.

[参考译文] ADS7924:通过Simulink进行初始化和通信

Guru**** 2581585 points
Other Parts Discussed in Thread: ADS7924

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/630920/ads7924-initialization-and-communication-via-simulink

部件号:ADS7924

大家好,

我正在尝试通过I2C读取ADS7924的一些寄存器。 我已将其正确连接到F2.8377万D controlCARD 1.1。 我尝试通过MathWorks Simulink (R2017a)完成此操作。

我现在的问题是我没有从我的寄存器接收任何数据。 我怀疑我的初始化不正确或不完整。 目前,我只尝试将ADS7924从初始空闲模式切换到唤醒模式,然后再切换到自动扫描模式。 然后我是否应该已经能够读出注册DATA0_L之类的信息? 在初始化过程中是否需要进一步的步骤? 是否可以有人向我提供一些初始化代码,甚至是Simulink版本? 是否还有读取寄存器的示例代码?

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    要进一步指定,我的初始化步骤如下:
    1.将模式控制设置为唤醒模式(0x80)。
    2.将Interrupt Control (中断控制)设置为0x00。
    3.将中断配置设置为0x1C。
    4.将睡眠配置设置为0x07。
    5.将Acquire Config (获取配置)设置为0x00。
    6.将开机配置设置为0x00。
    7.将模式控制设置为自动扫描模式(0xCC)。

    要从设备ID寄存器接收数据,请执行以下操作:
    1.将模式控制设置为唤醒模式(0x80)。
    2.尝试从地址为16h的寄存器接收数据。
    3.将模式控制设置回自动扫描模式(0xCC)。

    基于TI E2E社区中的另一个威胁,我采取了这些步骤: e2e.ti.com/.../34.4643万 。 我的问题仍然像以前一样。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Dennis,

    感谢您提供详细信息。 我们没有此设备的任何代码示例,但我很乐意与您一起调试正在发生的情况。

    您能否使用示波器(理想情况下)或程序捕获数字波形,以便我可以验证计时和您在初始化期间提供的代码? 具体来说,我正在寻找初始化过程中的唤醒和自动扫描部分。

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

    您的针A0连接到什么? 对设备进行编程时,您是否看到了确认位?

    如果您可以使用示波器捕获唤醒和自动扫描命令,这将帮助我完成调试过程。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Evan:

    昨天,我与负责ADS7924布线的同事一起工作。 事实证明,他在接线重置引脚时犯了错误。 现在,我们将复位引脚连接到3.3V,我对初始化本身更有积极的看法。 回答您的问题:A0目前连接到3.3V。

    正如您在附件中所看到的,我可以成功完成初始化命令的传输。 目前,在我的Simulink模拟开始时,这些操作仅执行一次。 据我了解示波器的输出,主控制器发送两次数据以记录00,从属控制器确认。

    之后我想定期阅读第02号登记册的内容。 我定期(每0.1 秒)触发一个Simulink子系统,其中包含相应的块。 但是,在示波器上,我只看到发送至/来自地址"49R"的数据"Cc"(CD,CE或CF),但确认位缺失(请参阅第二个附件)。 由于数据CC至CF指的是二进制数字"11.0011万001100"至0.11万至"1.10011111亿",我怀疑这是我根据模式控制寄存器的描述通过通道0至通道3进行扫描的程序。 我希望在这种情况下,由于某种原因,不会发送确认位,因此我的从属设备从不会将任何数据发送回主设备。 如何解决此问题? 如何"插入"确认位?

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

    感谢您的屏幕截图。 从ADC的角度来看,我没有发现任何问题。 尽管如此,我不是数字专家,所以我将把这份报告转到Delfino论坛,并将继续帮助解决ADC引起的任何问题。

    Delfino团队,

    Dennis对F2.8377万D与ADS7924的接口有一些疑问。 我没有看到任何ADC问题,但我不熟悉他的处理器。 您能帮助调试这种情况吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Dennis,

    我相信F2.8377万D中的I2C将CC发送给CF。 在这种情况下,我应该期望ADS7924 (从机)发送确认信号。为什么要期待来自F2.8377万D I2C的确认信号?

    此外,如何确保初始化顺序正确通信? 您的I2C配置是什么?

    此致,
    Manoj