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.

[参考译文] CC2650MODA:TI 提供的 BLE 堆栈不符合 NPI 通信规范

Guru**** 2553260 points
Other Parts Discussed in Thread: CC2650MODA, BLE-STACK, AM3352

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1256707/cc2650moda-ti-provided-ble-stack-does-not-meet-npi-communication-specifications

器件型号:CC2650MODA
主题中讨论的其他器件: BLE-STACKAM3352

您好、专家:

我正在与 CPU 和 BLE 模块通信、但我已确认 BLE 持续通信期间的 SRDY 信号不满足 NPI 用户指南所述从设备持续通信的时序要求。 详情如下。


 -方法:网络处理器接口

 -主控: CPU (AM3352bzcz)

 -从属设备:BLE 模块(CC2650MODA)


 -NPI 用户指南要求: 270usmin

 -测量值:大约66us 到90us

用于 BLE 模块的软件使用 TI 提供的以下软件。

SDK 版本:BLE-Stack 2.2.7 (文件夹名称:BLE_SDK_2_02_07_06)

项目:\ble_sdk_2_02_07_06\examples\cc2650bp\simple_np

应在何处修改 TI 提供的软件以满足时序要求?

谢谢

酒井市

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

    您好,Sakai,

    感谢您与我们联系。


     -NPI 用户指南要求: 270usmin

    为了确保我完全理解您的要求、我可否请您指定哪个器件设置此要求? 如果您能分享有关该要求的链接和参考、那将非常有帮助。

    在 NPI 软件中、UART 操作由文件 NPI_tl_uart.c 处理

    此致、

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

    尊敬的 Clement:

    感谢您的答复。

    我们认为需要满足 CC2650MODA 的 BLE 堆栈用户指南中列出的时序要求。
    以下是 CC2650MODA 的 BLE 堆栈用户指南和 NPI 用户指南链接中介绍的 NPI 要求。

    NPI (UNPI)握手: 网络处理器接口(NPI)—SimpleLink CC13x2 / CC26x2 SDK BLE5-Stack 用户指南2.01.02.00文档

    NPI 用户指南: NPI 用户 Guide.pdf ( TI.com )

    如果您有任何其他问题、请联系我们。

    谢谢。

    酒井市

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

    您好,Sakai,

    感谢您提供的详细信息。 请注意、参考文档中提供的时间安排是基于测试的。 这些并不代表绝对值、而是经过测试证明可正常工作的值。

    SRDY 信号实际上由 NPI_tl.c 文件处理。
    为了进一步操作、我建议确定哪个代码行负责在遇到报告的行为时设置并重置 SRDY 信号。
    =>看一下代码,我假设 NPIL_handleMrdyEvent 中的"SRDY_ENABLE();"( npiTxActive && mrdyPktStamp == txPktCount )"为真时,负责设置 SRDY。

    void NPITL_handleMrdyEvent(void)
    {
        ICall_CSState key;
        key = ICall_enterCriticalSection();
    
        // Check to make sure this event is not occurring during the next packet
        // transmission
        if ( PIN_getInputValue(MRDY_PIN) == 0 ||
            (npiTxActive && mrdyPktStamp == txPktCount ) )
        {
            transportMrdyEvent();
            SRDY_ENABLE();
        }
    
        ICall_leaveCriticalSection(key);
    }

    之后、在 NPIL_transmissionCallBack (使用"SRDY_DISABLE ();"行)内重置 SRDY。

    在您的设备上执行代码时、请仔细检查。

    假设您可以确认我的假设、您可以略微修改代码以在确定的条件下设置 SRDY 信号时设置标志。 然后、当设置上述标志时、您启动计时器并在计时结束后将其复位、而不是在 NPIL_transmissionCallBack 中重置 SRDY 信号。

    我希望这将有所帮助、

    此致、

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

    尊敬的 Clement:

    感谢您的答复。

    内部考虑花了一些时间。

    有人指出、参考文档没有列出绝对值、因此我想根据 AM3352的规格检查是否能够在没有任何问题的情况下捕获信号。 我在 AM3352手册中找到了一种说明、如果在边沿设置中断、它需要2个时钟。 我认为上述时钟是 AM3352的 GPIO 内部时钟、但该时钟与 OSC0_IN 的时钟输入相同吗? 您能否告诉我是否有寄存器可以更改内部时钟设置?

    谢谢。
    酒井市

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

    您好,Sakai,

    请您打开一个新主题、讨论 AM3352的高级配置? 这样、该器件的专家就可以提供帮助。

    感谢您的理解。

    此致、

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

    尊敬的 Clement:

    感谢您的答复。
    我将启动一个与 AM3352相关的新主题。

    谢谢。
    酒井市