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.

[参考译文] CC2640R2F:协处理器问题

Guru**** 2609845 points
Other Parts Discussed in Thread: CC2640R2F

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1264469/cc2640r2f-co-processor-issue

器件型号:CC2640R2F

大家好、

要求: 协处理器每1ms 通过 SPI 获取一次数据并将其发送到主机处理器。  

1)  

a.如果使用以下代码进行初始化、使用 CCS 调试、可以看到每1ms 启动一次 SPI 请求。 AUXIO_I_DRDY_IRQ 始终为高电平、因此死区环路始终运行、fwGenAlertInterrupt 唤醒、并且主处理器 scTaskAlertCallback 不执行。

 

b.客户唤醒系统以移动系统、如以下代码所示。 每次执行 scTaskAlertCallback 时切换电平、使用逻辑分析仪的1引脚测试、理论上它不应翻转。 但逻辑分析仪只执行了一次。  为什么会这样?

C.通过将死区环路移除到以下代码中、可从逻辑分析中看出、数据并不是每1ms 获取一次。 为什么?

d: 上述数据由逻辑分析仪在 CCS 开发工具调试模式下捕获、当代码被移植且协处理器和 M3协同工作时、比较上面问题 C 的图、您可以看到无法捕获 SPI 信号、 但当采集到 scTaskAlertCallback 时、该信号会切换。 上图(问题 C)捕获 SPI 信号、但无法捕获 scTaskAlertCallback 处于活动状态时切换的信号。 在 CCS 开发工具的调试和运行期间可被捕捉的信号是相反的。 移植代码后、如果系统正常运行、很难确切地确定 SPI 信号的样子。  

2) 2) 根据逻辑分析仪的上图、基本上可以确定正在执行 scTaskAlertCallback。 将 SPI 数据取出并发送到主机、但奇怪的是主机收到了完全相同的数据。  

3) 3) 基于问题2的绿色数据、差异在于客户在测试时手动更改了第一个数据。 代码 D2应后跟 D3、这成为主机上的 D4。 这个问题很常见、甚至有一种情况、E8后面跟44。 为什么会这样?

您能帮助检查这个案例吗? 谢谢。

此致、

切里

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

    您好、Cherry:

    为清楚起见、协处理器是传感器控制器。

    您的客户问题是无法使用传感器控制器 SPI 接口读取 EEG。 我建议您的客户不要使用传感器控制器、而是使用 TI RTOS SPI 驱动程序。

    在您的客户使用 TI RTOS SPI 驱动程序使 SPI 通信正常工作后、请尝试传感器控制器方法。 然后了解将传感器控制器用于此应用的优势。 如果没有传感器、请不要使用传感器控制器。

    -克尔

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

    您好、Cherry:

    似乎你正在继续亚历克斯的工作: https://e2e.ti.com/f/1/t/1262851 

    请让客户从默认 SCS 示例开始、并在尝试实施其自定义应用之前完全理解该操作。  通过以增量步骤开发代码、他们可以一次避免出现多个问题、然后 E2E 论坛可以帮助解决出现的特有问题。

    此致、
    瑞安

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

    尊敬的 Markel 和 Ryan:

    感谢您的支持。

    请允许我进一步说明这一情况:

    客户已使用 TI RTOS SPI 驱动器进行 SPI 通信、以获取模拟前端捕获的 EEG 数据。

    想要使用协处理器的原因 是、 想要进行低功耗开发、通过协处理器收集数据、以及在捕获到一些数据时唤醒 M3。

    关于已成功运作的特殊字符集的例子,上述问题确实是 在实际发展中发现的。  但用于开发 SCS 的资源较少、您能为应该如何解决问题提供帮助吗?  

    谢谢。此致、

    切里

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

    根据 SCS 帮助文档,客户应使用 Task Debugging (任务调试)和 Run-Time Logging (运行时记录)来确保 SCS 内核按预期运行。  然后、主 CC2640R2F 内核需要正确管理/处理 SCIF OSAL 并 进行相应的调试。  我建议根据工作示例代码采取增量步骤、以确定问题的引入位置。

    此致、
    瑞安

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

    您好、Ryan、

    1) 1)当使用 CCS 附带的调试器进行调试时、请使用以下代码(state。 DRDYstate 始终为1)每1ms 传输一次数据的死区循环:

    不过、在消除死区环路后、两次传输之间存在较大的差距。

    仅执行代码在调试中运行:  

    2) 2) 该唤醒时间应为8ms、但实际上处于 us 级别、具体取决于协处理器 Time0的使用情况:  

    谢谢。此致、

    切里

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

    您好、Cherry:

    对于由 RTC 触发的每个任务迭代、或由系统 CPU 应用程序手动触发的每个任务迭代、执行代码运行一次。   RTC 节拍周期由系统 CPU 应用程序使用 scifStartRtcTicksNow() / scifStartRtcTicks() 功能进行配置。  请务必通读并理解 SCS 帮助文档中的 Timer 0和基于 RTC 的执行调度模块

    此致、
    瑞安