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.

[参考译文] CC2640:CC2640 ble stack problems

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1007097/cc2640-cc2640-ble-stack-problems

器件型号:CC2640
Thread 中讨论的其他器件: CC2650SYSBIOSTS5A3359

我有一个带有 CC2640的定制板、Smart RF Studio 告诉我天线工作正常。 我可以在手机上看到它、因此24MHz 时钟和天线相关的一切都可以。 但是、BLE 堆栈本身似乎无法正常工作。

我已经检查了所有引脚和电压、它们都很好。 我可以设置应用程序而不使用 LED 灯、并正确设置引脚、闪存 LED 等 我尝试了 clock_CC2650_Launchxl_TI、empty_CC2650_Launchxl_TI、empty_CC2650_Launchxl_TI 和 error_clock_CC2650_Launchxl_TI、它们都运行良好。

我正在尝试使 simple_peripheral_cc2650lp_app 正常工作、但对 BIOS_start()的调用会使所有内容崩溃。 我还检入了错误代码、发现 MCU 跳转到代码的空白区域。 它在进入 BIOS_start()、然后进入 iCall_taskEntry、然后直接进入0xF000后执行此操作。

在跳到空白区域之前、它就在这里

然后进入 ti_sysbios_KNL_Task_startCore__E,然后   调用 ti_sysbios_KNL_Queue_head_E,然后 调用 ti_initBIOS_BIOS_setThreadType__E,然后调用 ti_sysbios_hal_hwi_switchFromStack__E ,再调用 ti_initBIOS_bios_setThreadType__Boot_e_e__,然后调用 ti_syswi_bios_e_bers_e_e_e_e_e_support_e_和 syswi_e_e_e_bers_e_e_e_e_ 我跳过一些内容、然后转到 ti_sysbios_KNL_Task_enter__i、再转到   ti_sysbios_family_arm_m3/TaskSupport_cUST

然后、我们再次进入 iCall_taskEntry、这时就会发生这种情况。

同样相关的是,我尝试了 rfPacketTx_CC2650_Launchxl_ti,我在调用 BIOS_start()函数时发现了同样的问题。

编辑:实际上更准确地说、任务被调用、但一旦我尝试运行以下行、任务就会失败。

rf_postCmd (rfHandle、(rf_Op*)&rf_cmdf、rf_PriorityNormal、NULL、0); 然后调用 Swi_or (Swi_handle (&swifsm)、FSM_EventWakeup);

然后、在该函数内、一旦调用 Swi_post (swi);。。 那就是! 什么都不起作用!

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

    该块的最后一行被调用时。 就是这样!

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

    请参阅 www.ti.com/.../swra640e.pdf 中的第12章

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

    我检查了这里的一切,还可以。

    SmartRF 软件使我的 MCU 正常工作。 因此、我必须相信所有硬件都能正常工作。

    您是否认为 SmartRF 在出现硬件问题的同时使器件正常工作? 我很难相信。

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

    不、我不认为 SmartRF 会使器件在出现硬件问题时正常工作。

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

    我看到了一些有趣的东西。 我将 DIO_23和 DIO_24连接到 TS5A3359 (模拟多路复用器)。 模拟多路复用器的配置引脚具有5V 上拉电阻。 因此、我将配置设置为开漏模式。 但是,它似乎不起作用。

    当 BoardGpioInitTable 阵列上的配置与此类似时、我在 MCU 上读取3.7V:

    "充电器_RES_SEL2   | PIN_GPIO_OUTP_EN | PIN_GPIO_HIGH | PIN_OPENDRAIN、"

    我认为我应该读出5V。 如何正确配置开漏?

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

    我无法很好地理解您的最新问题。 由于 CC2640不能在5V 电源域上工作、您为什么希望能够获得5V 读数?

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

    除了 CC2650_APP、是否确定对 CC2650_STACK 项目进行了编程?  

    即使在开漏配置中、也无法将 IO 上拉至5V。 CC2650数据表的最大额定值适用于所有模式。

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

    我被用于微芯片 MCU、其中开漏配置允许5V 电压。

    我修改了电路板以使用3.3V 电压(幸运的是非常简单!) 它不会改变任何东西。

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

    不,我不知道。 如何确定蛋糕? 我是说堆栈项目被引用、它是随应用项目自动导入的。

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

    1.我仍然无法理解您对5V 问题的描述。

    2.在将应用程序 hex 下载到 cc2640之前、您还需要将堆栈 hex 下载到 CC2640中。

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

    我的天,就是这样! 当我首次测试 CC2640R2时、我不必首先刷写堆栈、它仅适用于应用、因此我无需单独刷写它们!

    它马上就能工作了!

    电压范围。 开漏配置通常用于连接更高的电压。 例如、I2C 是一个很好的示例。 您可以与5V I2C 通信、因为它是开漏配置。 我知道 TI MCU 是不同的、这是一个限制。 没问题、我能够轻松地从5V 更改为3.3V。 一切都很好!

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

    听得不错!

    旧的 CC2650/40项目需要分别构建和编程堆栈和应用程序。 这一点(幸运的是)通过 CC2640R2F 之后的版本进行了改进、其中堆栈是通过应用程序自动构建和编程的。  

    关于5V 容差、问题在于、即使输出缓冲器配置为开漏、您仍然具有 ESD 保护功能、并且可能还有其他电路连接到引脚。

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

    哈哈哈! 是的,很好的改进! 我刚刚失去了几个小时的工作!

    关于5V、这是有道理的。 我很高兴找到问题/解决方案! 我可以从那里获取它!

    谢谢!