项目信息:
CCS910
SDK: simplelink_cc2640r2_sdk_3_40_00_10
从机运行的fimware:ble5_simple_peripheral
硬件板子: TI LaunchPad, 芯片是CC2640R2F
现象描述1:
四块开发板同时运行ble_5simple_perpheral程序,运行一段时间后从机无广播,并且主机scan不到从机。从设备供电电源连上示波器观察,没有正常的脉冲信号产生(正常广播会以一定的频率产生脉冲信号)。
目前在TI提供的ble_5simple_perpheral 只做了以下修改并且关闭了POWER_SAVE。
const PIN_Config BoardGpioInitTable[] = { //CC2640R2_LAUNCHXL_PIN_RLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,/* LED initially off */ //CC2640R2_LAUNCHXL_PIN_GLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,/* LED initially off */ //CC2640R2_LAUNCHXL_PIN_BTN1 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,/* Button is active low */ //CC2640R2_LAUNCHXL_PIN_BTN2 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,/* Button is active low */ //CC2640R2_LAUNCHXL_SPI_FLASH_CS | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MIN, /* External flash chip select */CC2640R2_LAUNCHXL_UART_RX | PIN_INPUT_EN | PIN_PULLDOWN,/* UART RX via debugger back channel */CC2640R2_LAUNCHXL_UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,/* UART TX via debugger back channel */ //CC2640R2_LAUNCHXL_SPI0_MOSI | PIN_INPUT_EN | PIN_PULLDOWN,/* SPI master out - slave in */ //CC2640R2_LAUNCHXL_SPI0_MISO | PIN_INPUT_EN | PIN_PULLDOWN,/* SPI master in - slave out */ //CC2640R2_LAUNCHXL_SPI0_CLK | PIN_INPUT_EN | PIN_PULLDOWN,/* SPI clock */PIN_TERMINATE };
现象描述2:
在TI提供的example (ble_5simple_perpheral)添加了一个周期时钟,每隔100毫秒去检测一次状态。
当从机运行一段时间后停止了广播,并且在周期时钟里面调用函数 uint8_t numActive = linkDB_NumActive(); 返回值是1.
uint8_t test_flag = 0; static void SimplePeripheral_performMonitorTask(void) {uint8_t numActive = linkDB_NumActive();if(numActive == 1){ZHOU_SetIOValue(USER_OUTPUT_10,1);}else{ZHOU_SetIOValue(USER_OUTPUT_10,0);}if(test_flag == 0){ZHOU_SetIOValue(USER_OUTPUT_9,1);test_flag = 1;}else{ZHOU_SetIOValue(USER_OUTPUT_9,0);test_flag = 0;} }
user6313700:
项目信息(SDK):
硬件板子: TI LaunchPad, 芯片是CC2640R2F
现象描述1:
四块开发板同时运行ble_5simple_perpheral程序,运行一段时间后从机无广播,并且主机scan不到从机。从设备供电电源连上示波器观察,没有正常的脉冲信号产生(正常广播会以一定的频率产生脉冲信号)。
目前在TI提供的ble_5simple_perpheral 只做了以下修改。
现象描述2:
在TI提供的example (ble_5simple_perpheral)添加了一个周期时钟,每隔100毫秒去检测一次状态。
当从机运行一段时间后停止了广播,并且在周期时钟里面调用函数 uint8_t numActive = linkDB_NumActive(); 返回值是1.
Kevin Qiu1:
请重新上传图片,运行一段时间后从机无广播,大概多长时间后搜索不到从机?
Kevin Qiu1:
已在另一帖回复你
user6313700:
回复 Kevin Qiu1:
这个时间不确定,有时候一个多小时,有时候十几个小时。这个bug是我在项目开发完做长时间测试的时候发现的。想要从机恢复广播的话需要reset开发板。
Kevin Qiu1:
回复 user6313700:
POWER_SAVE是在哪里关闭的,四个板子都是launchpad吗?供电部分检查过吗,在不修改ble5_simple_perpheral程序的时候有测试过吗?
建议你升级到simplelink_cc2640r2_sdk_4_10_00_10版本
user6313700:
回复 Kevin Qiu1:
POWER_SAVE 是在下面修改的,4块开发板分别供电。我只是屏蔽了一些不需要的GPIO口,应该没有影响的。
user6313700:
回复 Kevin Qiu1:
并且我在每块从机板子上挂了示波器的,根据你们的功耗测试,存在广播包的时候示波器会有一定频率的脉冲显示的。但是运行一段时间后,脉冲消失,主机也扫描不到从机而且直接使用MAC地址连接也会失败,返回code 0x3e。
Kevin Qiu1:
回复 user6313700:
返回 0x3e说明是连接失败了,四个从机都会出现这种情况吗,看起来好像没什么问题,这样你将升级simplelink_cc2640r2_sdk_4_10_00_10版本测一下。
user6313700:
回复 Kevin Qiu1:
这个版本怎么升级呢?我的应用怎么移植上去呢?有具体的操作流程吗?
Kevin Qiu1:
回复 user6313700:
下载地址:https://www.ti.com.cn/tool/cn/SIMPLELINK-CC2640R2-SDK
SDK中有ble5_simple_perpheral的例程,把你修改的部分在里面改一下就行了