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.

[参考译文] BOOSTXL-CC2650MA:简单中央连接问题

Guru**** 2589245 points
Other Parts Discussed in Thread: CC2650MODA, CC2560, CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/603768/boostxl-cc2650ma-simple-central-connection-issues

器件型号:BOOSTXL-CC2650MA
主题中讨论的其他器件:CC2650MODACC2560CC2650

您好!

我想使用 Microchip RN4677连接 CC2650MODA。 因此,我使用 CC2560MODA BoosterPack。
为了测试连接、我修改了简单中心项目:

静态空 SimpleBLECentral_processRoleEvent (gapCentralRoleEvent_t *pEvent)
{
switch (pEvent->gap.opcode)
{
案例 GAP_DEVICE_INIT_DONE_EVENT:
{
maxPduSize = pEvent->initDone.dataPtLen;
Display_print0 (dispHandle、ROW_ZERO、0、"BLE Central");
Display_print0 (dispHandle、ROW_ONE、0、Util_convertBdAddr2Str (pEvent->initDone.devAddr));)
display_print0 (dispHandle、row_two、0、"已初始化");
Display_print0 (dispHandle、ROW_SEE、0、">扫描权限);


bStatus_t TEST = GPCentrole_EstablishLink (default_link_high_Duty_cycle、
default_link_white_list、
ADDRTYPE_PUBLIC、powerWheelAddrThree_ui);




..................................


attWriteReq_t req;
bStatus_t testStatus;

//分配 GATT 写入请求
REQ.pValue = GATT_BM_alloc (connHandle、ATT_WRITE_REQ、1、NULL);
//如果成功分配
if (req.pValue!= NULL)
{
//填充请求
REQ.Handle = 58;
Req.len = 1;
REQ.pValue[0]= 0x41;
REQ.SIG = 0;
REQ.cmd = 0;

//将 GATT 写入发送到控制器
testStatus = GATT_WriteCharValue (connHandle、&req、self 实体);
//如果未成功发送
if (testStatus!= 0)
{
//免费写入请求、因为控制器不会
GATT_BM_FREE ((gattMsg_t *)&req、ATT_WRITE_REQ);
}
} 

在堆栈初始化后、我连接到 Microchip RN4677。 我每2秒发送一个0x41。
在活动的调试会话中、我没有连接问题。
当我不在调试模式下运行程序时、CC2560MODA 只能保持几秒钟的连接。 如果不进行调试、连接将始终终止。
在活动调试会话中、我没有连接问题、CC2560MODA 可以保持连接而不会出现任何问题。
为了调查数据传输,我使用了 TI 软件“数据包监听器”。
在非调试会话中、我看到主设备(CC2560MODA)重试了很多次。 几秒钟后、从器件不会响应该重试。
在调试会话中、只需重试几次。 连接看起来稳定。
我认为这可能是 CC2560的时序问题。 我已连接数据包监听器数据(一个来自调试会话、一个来自无调试会话)。
是否有人可以查看这些文件?

e2e.ti.com/.../DEBUG_5F00_CONNECTION_5F00_002.psde2e.ti.com/.../NO_5F00_DEBUGG.psd

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

    您是否可以使用频率计数器来验证32kHz 时钟频率? 在 TRM www.ti.com/lit/pdf/swcu117 IO 一章中,有有关如何在 IO 引脚上输出 LF 时钟的说明。 如果您有一个计数器、您是否可以尝试在可用引脚上输出时钟并进行测量?

    另一种尝试是将 CCFG 中的 LF/RTC 时钟源更改为24MHz 晶体振荡器、并查看这是否解决了问题。

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

    您好、Fredrik、

    我已经插入 了 www.ti.com/lit/pdf/swcu117中提到的命令。

    //初始化应用
    SimpleBLECentral_init ();
    IOCPortConfigureSet (clock_output、IOC_PORT_AON_CLK32K、IOC_STD_output);
    AONIOC32kHzOutputEnable ();
    

    但我无法运行该程序。 我有以下错误:

     未定义              的首次引用                
     符号                                         
     ------               --------                
     AONIOC32kHzOutputEnable ./Application/simple_central.obj

    错误#10234-D:未解析的符号仍然存在
    错误#10010:链接期间遇到错误;未构建"simple_ecs_simple_central _cc2650lp_app.out"

    您能告诉我需要哪些包括哪些内容吗?

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

    我刚和客户打过电话。 他们发现、当"省电模式"被停用时、他们不会看到任何问题、但还无法编译上述代码示例。 您能否提供进一步的帮助来验证晶体频率?

    此外,此问题似乎与以下文章类似: e2e.ti.com/.../1856249

    由于模块由电池供电、因此电源安全模式至关重要。

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

    您好 Tobias、

    您必须在文件顶部包含 aon_ioc.h:

    #include aon_ioc.h

    此致、
    Fredrik

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

    您好、Fredrik、

     

    我测量了时钟。 请参见下图:

    我测量了32.780kHz 时钟频率。 在另一个帖子(https://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/p/511175/1856249?tisearch=e2e-sitesearch&keymatch=AONIOC32kHzOutputEnable();#1856249)中 、客户有类似的问题。 在禁用 POWER_Saving 后、我没有连接问题。 但对于我们的应用、我们必须节约能源。
    您能否确认测量时钟是否一切正常?
    是否使用32kHz 时钟唤醒 BLE 事件的 Moda?

    在您的第一个答案中、您建议将 CCFG 中的 LF/RTC 时钟源更改为24MHz 晶体振荡器。
    请告诉我所需的步骤吗?

    此致、

    托比亚斯

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

    尊敬的 Tobias Amann:
    连接到 Microchip RN4677之后。 您是否发现了 Microchip RN4677的所有特性?
    您的问题可能是32k 晶振(晶振或电容器)。 您可以尝试使用从24MHz 生成的内部32k 晶振。 它在 CC2650中受支持

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

    尊敬的 Luu Vy:

    我将一些数据传输到 RN4677、直到连接终止。
    您能告诉我在哪里可以找到有关如何使用内部32k 晶振的参考?

    此致、

    托比亚斯

     

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

    它看起来像关闭频率。 如果确实是这种情况、则模块存在问题。 您是否刚刚测试了一个装置、或者您是否有多个具有相同问题的器件?

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

    您好 Fredrik、

     

    我有第二个 CC2650MODA、在这里我测量了时钟(请参阅图片)。 在该板上、我有相同的问题。
    仅当我删除预定义的 Symbol power_saving 时、它才起作用。

    我已经了解了 CC2650的技术参考手册、该手册是 CC2650MODA 的一部分(http://www.ti.com/lit/ug/swcu117g/swcu117g.pdf)。 第416页第6.5.1章提供了多个时钟。
    我想您希望我测量 SCLK_LF 时钟(在下图中标记为黄色)。

    您能否确认您在谈论32kHz 时钟时是指该时钟?

    第418页显示了 SCLK_LF 的时钟多路复用器。 我已经检查了寄存器来验证哪个时钟在 SCLK_LF 上复用。

    DDI_0_OSC:CTL0.SCLK_LF_SRC_SEL = 0x3

    DDI_0_OSC:CTL0.XOSC_LF_DIG_BYPASS = 0x00

    当我的建议正确时、我将测量外部32.768kHz 振荡器。 然后、我认为频率看起来不错。 您为什么认为频率不佳?

    使用以下命令:

    IOCPortConfigureSet (clock_output、IOC_PORT_AON_CLK32K、IOC_STD_output);
    AONIOC32kHzOutputEnable (); 

    我在 DIO 上输出哪个时钟。 它是复用 SCLK_LF 时钟吗? 还是内部 LF_RC 或外部 LF_XTAL 时钟?

    此致、

    托比亚斯

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

    使用提供的命令、您将在 DIO 引脚上输出 SCLK_LF。 除非您对时钟配置进行了任何更改、否则该时钟来自32kHz 晶体振荡器。 这似乎由您的寄存器设置确认。

    只需确认:您没有更改 ccfg.c 中的任何设置、对吧?

    测量结果看起来不好、因为第一个是关断366ppm、第二个是关断-397ppm。 时钟偏移应在+/- 20ppm 内。 不过、您在测量频率时可能会遇到问题。 您可以尝试改用频率计数器吗?

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

    您好、Fredrik、

    是的、没错。 我没有更改 ccfg.c 文件。 现在、我使用了频率计数器、 我测量了:32769、71Hz。 现在、它是52 ppm。 此偏差是否与蓝牙规范相关?

    此致、

    托比亚斯  

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

    您好、Fredrik、

    我与客户再次通话、讨论振荡器问题。 对我来说、不清楚为什么频率非常稳定这么重要。 低频 RC 振荡器的温度系数非常高。

    请参阅所附的 Launchpad 和 BoosterPack 中的器件。 受此问题影响的人是否如此处所述:

    谢谢、此致、

    Felix

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、团队、
    您能回答我们的问题吗?
    谢谢、此致、
    Felix
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Felix、

    iCall 注册后,您能否在应用程序初始化中调用以下命令:

    HCI_EXT_SetSCACmd (60);

    该规格允许高达+/- 500ppm、但需要使用实际 PPM 值对堆栈进行配置。

    此外、由于您在 CC2650MODA 上移植了 SimpleCentral 应用程序、您是否为5XD 配置配置了天线?

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

    您好!

    我是 Felix 的客户。 我在 iCall 注册后添加了命令。 此命令不会带来改进。 否我没有更改任何天线配置。 我遵循了 TI 说明(http://www.ti.com/lit/an/swra534/swra534.pdf)。 我认为天线不是问题。 当我删除预定义符号 power_saving 时、我没有连接问题。
    我已经使用 freqeuny 计数器测量了 SCLK_LF。 我测量了32769、71Hz。 当您说蓝牙规格允许+/- 500ppm 时、频率在范围内为+52ppm。

    此致、

    Tobi

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

    虽然没有足够的信息来确定根本原因、但症状表明存在睡眠时钟问题。 为了简化软件、您能否运行 simple_peripheral 示例应用并使用以下建议的连接参数应用 SWRA534中的更改、包括将天线更改为 CC2650EM_5XD:

    #define DEFAULT_MIVEed_MIN_CONN_INTERVAL 300
    #define DEFAULT_MODED_MAX_CONN_INTERVAL 320
    #define DEFAULT_MODED_CONN_TIMEOUT 400

    此外、在您的应用中、最好通过以下 API 定期检查 SCLK 是否锁定到32k xtal:

    if (OSC_XOSC_LF =OSCClockSourceGet (OSC_SRC_CLK_LF)){}
    摘自 processors.wiki.ti.com/.../CC26xx_HW_Troubleshooting wiki 文章。

    您应该会看到丢包最小、并且不会丢失32k xtal 时钟。

    祝你一切顺利