主题中讨论的其他器件:LAUNCHXL-CC2640R2、 CC2640、 CC2650、 UNIFLASH
你(们)好
我们在硬件中使用来自无线电控制的 RC-CC2640-B 模块。



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.
你(们)好
我们在硬件中使用来自无线电控制的 RC-CC2640-B 模块。



Tushar、
我不确定 Radiocontrolli 是如何设计其模块的、因此我不一定要确定在其产品中使用我们的 SDK 项目是否需要任何特定的详细信息。 如果您尚未这样做、也许您可以联系他们、看看在将软件调整为新软件包时是否会考虑到任何其他方面。
尽管如此,我想知道,为适应新的一揽子计划所做的修改是否正确。 您能否查看下面提供了执行此迁移的一些提示的参考?
另一个问题:simple_peripheral 是否与低功耗蓝牙中央设备正确通信? 我怀疑由于功耗非常不一致而未发生这种情况、但正如我之前提到的、该模块可能具有我不考虑的其他特性。
如果我发现任何相关问题、我将尝试思考其他方面并报告。
希望这对您有所帮助、
拉斐尔
你(们)好
我确实联系了 Radiocontrolli、他们要求我们联系 TI 支持 、因为他们主要是硬件制造商。 我可以做的是、询问他们是否可以共享硬件原理图、我可以与您共享。
正如您共享的链接中所述、我们创建了定制的特定于硬件的电路板文件。 但是、我们的顶级 board.c 和其他板级文件位于 ble5stack 目录中、而不是 blestack。 具体而言、我们遵循的步骤如下:
是的、simple_peripheral 正在正确广播、我可以通过手机连接到它。
谢谢
Tushar
Tushar、
感谢您重新发送文件。 该原理图看起来与我们的参考设计中的原理图非常相似、但由于缺少值或 PCB 图纸本身、我无法评估与器件型号或电路板上位置有关的任何偏差。 这对于直流/直流和电源路径尤其重要、因为它们会影响电流分布。
话虽如此、由于当前配置文件的行为因代码的不同执行周期而异、我怀疑某些特定外设(ADC、SPI 等)正在被激活、并导致代码执行发生变化。 另一种可能的情况是、外部任何东西、例如连接调试探针、都可能由于泄漏增加而增加电流消耗。
由于您提到应用程序在这种情况下正常运行、我认为这不是硬件引起的问题。 在这种情况下、我将通知软件团队中的某个人、以提供更多见解。
此致、
拉斐尔
你(们)好
我们一定会感谢软件团队对此提供的见解。 不过、我想提醒大家、我在 LAUNCHXL-CC2640R2上烧录了相同的代码、并观察了它在一段时间内的电流消耗行为、发现它完全正常(符合预期)、而且它正在进行广播、也可以连接到。 如果是软件问题、我本以为 LAUNCHXL 的行为与 Radio Controlli 模块的行为相同。 不过,我愿意接受建议。
我将尝试为您获取器件型号/值和电路板布局。
此致、
Tushar
您好、Tushar、
感谢您的耐心等待。 对于较长的响应时间表示歉意。 今天上午、我收到了您提出的问题的通知。
我认为这将有助于在具有不同软件映像的模块上运行新的能耗测量。 目标是尝试消除软件的可能性、并可能确定硬件问题的根源。
请尝试在器件上运行以下示例并测量能耗吗? 目标是确定哪些示例会导致能耗差异、哪些示例不会导致能耗差异。
除此之外、您是否有可能在其他几个模块上运行一些测试? 目标是确定高电流问题是否可在多个模块上重现。
此致、
您好 Clement
我尝试了您要求我提供的示例。 除了在编译时给我错误的 simple_peripheral (下面的屏幕截图)外、随附的是所有其他观察结果的屏幕截图。 我测试了两个模块。 总之、这些模块消耗的电流大于 LaunchPad。 其中一个模块消耗的电流大于另一个模块。
可从 https://www.dropbox.com/t/EW3eBqiBY8Gxh2aX 获取屏幕截图
上图显示了编译 simple_peripheral 时的错误。
-有刷
您好、Tushar、
您使用的模块使用 的是 CC2640FRSMR 而不是 CC2640R2F。
https://shop.radiocontrolli.com/it/moduli-iot-texas-instruments/67-rc-cc2640-b.html
-kel
您好、Tushar、
由于您使用 的是 CC2640FRSMR、因此应使用 BLE Stack 2.2.x 中的简单外设
https://www.ti.com/tool/BLE-STACK
您使用的是 CC2640R2F SDK 中的简单外设。
-kel
你(们)好、Kel
您能告诉我 在使用 SDK 中的 simple_peripheral 代码设置广播时是否缺少一些内容。 我想它应该默认是广播、但实际上不是。 请参阅下面的 GAP 设置代码。
GAP_SetParamValue(TGAP_CONN_PAUSE_PERIPHERAL, DEFAULT_CONN_PAUSE_PERIPHERAL);
// Setup the GAP Peripheral Role Profile
{
// For all hardware platforms, device starts advertising upon initialization
uint8_t initialAdvertEnable = TRUE;
// By setting this to zero, the device will go into the waiting state after
// being discoverable for 30.72 second, and will not being advertising again
// until the enabler is set back to TRUE
uint16_t advertOffTime = 0;
uint8_t enableUpdateRequest = DEFAULT_ENABLE_UPDATE_REQUEST;
uint16_t desiredMinInterval = DEFAULT_DESIRED_MIN_CONN_INTERVAL;
uint16_t desiredMaxInterval = DEFAULT_DESIRED_MAX_CONN_INTERVAL;
uint16_t desiredSlaveLatency = DEFAULT_DESIRED_SLAVE_LATENCY;
uint16_t desiredConnTimeout = DEFAULT_DESIRED_CONN_TIMEOUT;
// Set the GAP Role Parameters
GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t),
&initialAdvertEnable);
GAPRole_SetParameter(GAPROLE_ADVERT_OFF_TIME, sizeof(uint16_t),
&advertOffTime);
GAPRole_SetParameter(GAPROLE_SCAN_RSP_DATA, sizeof(scanRspData),
scanRspData);
GAPRole_SetParameter(GAPROLE_ADVERT_DATA, sizeof(advertData), advertData);
GAPRole_SetParameter(GAPROLE_PARAM_UPDATE_ENABLE, sizeof(uint8_t),
&enableUpdateRequest);
GAPRole_SetParameter(GAPROLE_MIN_CONN_INTERVAL, sizeof(uint16_t),
&desiredMinInterval);
GAPRole_SetParameter(GAPROLE_MAX_CONN_INTERVAL, sizeof(uint16_t),
&desiredMaxInterval);
GAPRole_SetParameter(GAPROLE_SLAVE_LATENCY, sizeof(uint16_t),
&desiredSlaveLatency);
GAPRole_SetParameter(GAPROLE_TIMEOUT_MULTIPLIER, sizeof(uint16_t),
&desiredConnTimeout);
}
// Set the GAP Characteristics
GGS_SetParameter(GGS_DEVICE_NAME_ATT, GAP_DEVICE_NAME_LEN, attDeviceName);
// Set advertising interval
{
uint16_t advInt = DEFAULT_ADVERTISING_INTERVAL;
GAP_SetParamValue(TGAP_LIM_DISC_ADV_INT_MIN, advInt);
GAP_SetParamValue(TGAP_LIM_DISC_ADV_INT_MAX, advInt);
GAP_SetParamValue(TGAP_GEN_DISC_ADV_INT_MIN, advInt);
GAP_SetParamValue(TGAP_GEN_DISC_ADV_INT_MAX, advInt);
}
您好、Tushar、
对于基于 CC2650/CC2640的项目、我使用 CCSv7.2。 在调试简单外设之前、我首先使用 SmartRF 闪存编程器2刷写堆栈十六进制文件和十六进制应用文件。 调试后,它应该会在 main()处中断,并且您应该能够调试步骤。 完成该调试步骤后,通过 SimpleBLEPeripheral_init()。
您可以设置编译器优化零、以便每行调试一个步骤行。
目标是使简单外设在您的定制板上运行、并能够使用智能手机应用程序查看其广播。
-kel
您好、Tushar、
抱歉、它是图像中的页面。 如果 SmartRF 闪存编程器2检测到 CC2640R2F、则您的电路板上有 CC2640R2F。 其页面上的信息未更新。
抱歉、您可以返回使用 CC2640R2F SDK 中的简单外设。 对于 CC640R2F 简单外设、只需对十六进制文件进行编程即可。
-kel
是的、我刚刚重新查看了他们的原理图、IC 标记为 CC2640R2。
您好 、Cl é ment 您对我先前分享的结果有什么意见/看法吗?
谢谢
Tushar
您好、Tushar、
我在下面推荐这种方法。 我没有使用过它、因此我不知道它是否能够实现低功耗。
-kel