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.

[参考译文] ADS1147:CC2640R2F

Guru**** 2434370 points
Other Parts Discussed in Thread: ADS1147

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1187333/ads1147-cc2640r2f

器件型号:ADS1147

"发送16个 SCLK 以读取 DOUT/DRDY 中的转换数据;"我在 ADS1147数据表页码65伪代码中获取了该器件。 SCLK 信号是否使用 SPI 发送到 DIN 引脚? 还是 ADS1147的 SCLK 引脚? 我不清楚这一点。 成功运行后、如何识别它? 是否为其提供输出信号? 我已将时钟信号显示在以下代码中。

e2e.ti.com/.../ADS1147_5F00_Code.rar

在此 链接中上传的 Navodvishwa/ADS1147 (github.com)代码。 代码已包含在 Spimaster.c 文件中。 可以解释我的错误和遗漏。 我使用过 CC2640R2微控制器。

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

    您好、Navod Rajapaki、

    我不确定这里有什么问题、因此您可能需要对您的问题提供额外的澄清。

    SCLK 信号由控制器提供给 ADC 的 SCLK 引脚。 SCLK 是串行时钟、顾名思义、它是串行通信用于计时的时钟。 DIN 是数据输入引脚、因此您的控制器向该引脚发送命令(读取寄存器、写入寄存器、读取数据等)、以便能够控制 ADC。

    强烈建议您在发布其他问题之前完整阅读 ADS1147数据表、本文档中已包含许多答案

    我们通常不审查第三方代码。 TI.com 上提供了针对 ADS114x (16位)和 ADS124x (24位)器件的示例代码:https://www.ti.com/lit/zip/sbac144

    布莱恩

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

    如何为 ADS1147发送16个 SCLK?。使用持续时间为366ns。我不理解您的回复。 我使用了 CC2640R2板。

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

    您好、Navod Rajapaki、

    SCLK 是控制器发送的信号、因此您首先需要做的是在控制器(CC2640R2)中设置 SPI 外设。

    如果您需要 有关 CC2640R2的帮助、可单独访问 MCU 支持论坛 :https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum

    布莱恩

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

    您好、Bryan Lizon86、

    我已经在控制器中设置了 SPI 外设、并使用 SPI 发送了16个 SCLK、但我没有获得预期结果。 使用以下代码。

    void SCLK_16_COMMAND ()

    /*调用驱动程序初始化函数*/
    spi_init();

    SPI_Handle 句柄;
    SPI_Params 参数;
    SPI_Transaction 事务;
    uint32_t txBuf[]={0b010101010101010101010101010};// 16个 SCLK


    //初始化 SPI 并指定非默认参数
    SPI_PARAMS_INIT (params);
    params.bitrate = 2700000;
    params.frameFormat = SPI_POL0_PHA1;
    params.mode = SPI_MASTER;

    //配置事务
    transaction.count = sizeof (txBuf);
    transaction.txBuf = txBuf;
    transaction.rxBuf =空;

    //打开 SPI 并执行传输
    句柄= SPI_OPEN (CC2640R2_LAUNCHXL_SPI1、&params);

    SPI_TRANSFCTION (句柄、事务);

    SPI_Close (handle);


    //检查 DRDY (MISO 引脚作为数据就绪连接)是否为高电平


    while (DRDY = 1){

    Task_sleep (0.01 *(1000 / Clock_tickPeriod));
    RDATA_COMMAND();
    SCLK_16_COMMAND ();
    usleep(1.7);

    下图显示了时钟信号。

    为什么它不 继续32位时钟周期、或者在8位后提供延迟。我想清除该延迟并连续提供32位。

    请直接通过发送链接回答我的问题。  

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

    您好、Navod Rajapakisha、

    您有逻辑分析仪吗? 查看您发送到 ADC 和从 ADC 接收的所有信号会很有帮助。 这将帮助我们了解沟通是否存在任何问题。

    请包括:DOUT、DIN、DRDY、RESET、SCLK、 和 START 引脚

    布莱恩